1# tests for ConfigCompiler features
2
3starcraft:
4  __include: starcraft:/
5
6append_with_include:
7  list:
8    __include: starcraft/protoss/ground_units
9    __append:
10      - dark templar
11      - dark archon
12
13append_with_patch:
14  __include: starcraft
15  __patch:
16    # append to string
17    terrans/player/+: ', nada'
18    # append to empty list
19    terrans/air_units/+:
20      - wraith
21      - battlecruiser
22    # append to existing list
23    protoss/ground_units/+:
24      - dark templar
25      - dark archon
26
27merge_tree:
28  __include: starcraft
29  # merge tree triggered by `__include`
30  terrans:
31    ground_units:
32      - scv
33      - marine
34      - firebat
35      - vulture
36      - tank
37    # patch `/merge_tree/terrans` before merging
38    __patch:
39      # append with `__patch`
40      ground_units/+:
41      - medic
42      - goliath
43  protoss:
44    # append to exising list, alternative syntax
45    ground_units: {__append: [dark templar, dark archon]}
46  zerg:
47    # overwrite existing list
48    ground_units: []
49
50create_list_with_inplace_patch:
51  # map node without data key-value (exclude compiler directives) can be converted to list
52  all_ground_units:
53    __patch:
54      - __append: [scv, marine, firebat, vulture, tank]
55      - __append: {__include: starcraft/protoss/ground_units}
56      - __append: {__include: starcraft/zerg/ground_units}
57