Replace UtBS UNIT_ with public NAMED_NOTRAIT_UNIT.

This commit is contained in:
Eric S. Raymond 2008-11-19 19:08:12 +00:00
parent 6aa356f4c2
commit 1dddb6b024
9 changed files with 186 additions and 179 deletions

View file

@ -294,27 +294,27 @@
name=start
#ifdef EASY
{UNIT_ (Revenant) (Zur) ( _ "Zur") 2 20 22}
{UNIT_ (Wraith) (Grak) ( _ "Grak") 3 22 7}
{NAMED_NOTRAIT_UNIT 2 (Revenant) 20 22 (Zur) ( _ "Zur")}
{NAMED_NOTRAIT_UNIT 3 (Wraith) 22 7 (Grak) ( _ "Grak")}
# On medium and hard change champions type to more menacing
# and give them some help
#else
{UNIT_ (Skeleton Rider) () ("") 2 20 23}
{UNIT_ (Skeleton Rider) () ("") 2 21 23}
{UNIT_ (Necrophage) () ("") 3 22 6}
{UNIT_ (Necrophage) () ("") 3 23 7}
{NAMED_NOTRAIT_UNIT 2 (Skeleton Rider) 20 23 () ("")}
{NAMED_NOTRAIT_UNIT 2 (Skeleton Rider) 21 23 () ("")}
{NAMED_NOTRAIT_UNIT 3 (Necrophage) 22 6 () ("")}
{NAMED_NOTRAIT_UNIT 3 (Necrophage) 23 7 () ("")}
#endif
#ifdef NORMAL
{UNIT_ (Deathblade) (Zur) (_"Zur") 2 20 22}
{UNIT_ (Shadow) (Grak) (_"Grak") 3 22 7}
{NAMED_NOTRAIT_UNIT 2 (Deathblade) 20 22 (Zur) (_"Zur")}
{NAMED_NOTRAIT_UNIT 3 (Shadow) 22 7 (Grak) (_"Grak")}
#endif
#ifdef HARD
{UNIT_ (Draug) (Zur) (_"Zur") 2 20 22}
{UNIT_ (Nightgaunt) (Grak) (_"Grak") 3 22 7}
{NAMED_NOTRAIT_UNIT 2 (Draug) 20 22 (Zur) (_"Zur")}
{NAMED_NOTRAIT_UNIT 3 (Nightgaunt) 22 7 (Grak) (_"Grak")}
#endif
[message]
@ -537,7 +537,7 @@
[/or]
[then]
#ifdef HARD
{UNIT_ (Soulless) () ("") $unit.side $x1 $y1}
{NAMED_NOTRAIT_UNIT.side (Soulless) $x1 $y1 () ("") $unit}
#endif
#ifdef NORMAL
{RANDOM 0..100}
@ -547,15 +547,15 @@
less_than=51
[/variable]
[then]
{UNIT_ (Walking Corpse) () ("") $unit.side $x1 $y1}
{NAMED_NOTRAIT_UNIT.side (Walking Corpse) $x1 $y1 () ("") $unit}
[/then]
[else]
{UNIT_ (Soulless) () ("") $unit.side $x1 $y1}
{NAMED_NOTRAIT_UNIT.side (Soulless) $x1 $y1 () ("") $unit}
[/else]
[/if]
#endif
#ifdef EASY
{UNIT_ (Walking Corpse) () ("") $unit.side $x1 $y1}
{NAMED_NOTRAIT_UNIT.side (Walking Corpse) $x1 $y1 () ("") $unit}
#endif
[if]
[variable]
@ -1116,7 +1116,7 @@ This unit always strikes first with this attack, even if they are defending."
animate=yes
fire_event=no
[/kill]
{UNIT_ (Corrupted Elf) (Possessed Garak) ( _ "Possessed Garak") 2 $coords.x $coords.y}
{NAMED_NOTRAIT_UNIT.x (Corrupted Elf) $coords.y (Possessed Garak) ( _ "Possessed Garak") 2 $coords}
[message]
speaker=Zhul
message= _ "Eloh protect us, what has he done?"
@ -1145,7 +1145,7 @@ This unit always strikes first with this attack, even if they are defending."
animate=no
fire_event=no
[/kill]
{UNIT_ (Corrupted Elf) (Possessed Garak) ( _ "Possessed Garak") 2 $coords.x $coords.y}
{NAMED_NOTRAIT_UNIT.x (Corrupted Elf) $coords.y (Possessed Garak) ( _ "Possessed Garak") 2 $coords}
[message]
speaker=Possessed Garak
message=_"No, fool! Stop!"
@ -1252,7 +1252,7 @@ This unit always strikes first with this attack, even if they are defending."
x=1-60
y=1-60
[/place_shroud]
{UNIT_ (Corrupted Elf) (Possessed Garak) ( _ "Possessed Garak") 2 21 24}
{NAMED_NOTRAIT_UNIT 2 (Corrupted Elf) 21 24 (Possessed Garak) ( _ "Possessed Garak")}
{VARIABLE i 0}
#ifdef HARD
{FOREACH azkotep_casaulties i}
@ -1281,15 +1281,15 @@ This unit always strikes first with this attack, even if they are defending."
less_than=51
[/variable]
[then]
{UNIT_ (Walking Corpse) () ("") 2 21 24}
{NAMED_NOTRAIT_UNIT 2 (Walking Corpse) 21 24 () ("")}
[/then]
[else]
{UNIT_ (Soulless) () ("") 2 21 24}
{NAMED_NOTRAIT_UNIT 2 (Soulless) 21 24 () ("")}
[/else]
[/if]
#endif
#ifdef EASY
{UNIT_ (Walking Corpse) () ("") 2 21 24}
{NAMED_NOTRAIT_UNIT 2 (Walking Corpse) 21 24 () ("")}
#endif
{VARIABLE_OP i add 1}
[/do]
@ -1417,7 +1417,7 @@ This unit always strikes first with this attack, even if they are defending."
x=1-60
y=1-60
[/place_shroud]
{UNIT_ (Corrupted Elf) (Possessed Garak) ( _ "Possessed Garak") 3 23 6}
{NAMED_NOTRAIT_UNIT 3 (Corrupted Elf) 23 6 (Possessed Garak) ( _ "Possessed Garak")}
{VARIABLE i 0}
#ifdef HARD
{FOREACH ystara_casaulties i}
@ -1446,15 +1446,15 @@ This unit always strikes first with this attack, even if they are defending."
less_than=51
[/variable]
[then]
{UNIT_ (Walking Corpse) () ("") 3 23 6}
{NAMED_NOTRAIT_UNIT 3 (Walking Corpse) 23 6 () ("")}
[/then]
[else]
{UNIT_ (Soulless) () ("") 3 23 6}
{NAMED_NOTRAIT_UNIT 3 (Soulless) 23 6 () ("")}
[/else]
[/if]
#endif
#ifdef EASY
{UNIT_ (Walking Corpse) () ("") 3 23 6}
{NAMED_NOTRAIT_UNIT 3 (Walking Corpse) 23 6 () ("")}
#endif
{VARIABLE_OP i add 1}
[/do]
@ -1566,7 +1566,7 @@ This unit always strikes first with this attack, even if they are defending."
[/kill]
[/then]
[/if]
{UNIT_ (Corrupted Elf) (Possessed Garak) ( _ "Possessed Garak") 2 $coords.x $coords.y}
{NAMED_NOTRAIT_UNIT.x (Corrupted Elf) $coords.y (Possessed Garak) ( _ "Possessed Garak") 2 $coords}
[message]
speaker=Zhul
message= _ "Eloh protect us, what has she done?"
@ -1595,7 +1595,7 @@ This unit always strikes first with this attack, even if they are defending."
animate=no
fire_event=no
[/kill]
{UNIT_ (Corrupted Elf) (Possessed Garak) ( _ "Possessed Garak") 2 $coords.x $coords.y}
{NAMED_NOTRAIT_UNIT.x (Corrupted Elf) $coords.y (Possessed Garak) ( _ "Possessed Garak") 2 $coords}
[message]
speaker=Possessed Garak
message=_"No fool! Stop!"
@ -1694,7 +1694,7 @@ This unit always strikes first with this attack, even if they are defending."
x=1-60
y=1-60
[/place_shroud]
{UNIT_ (Corrupted Elf) (Possessed Garak) ( _ "Possessed Garak") 3 23 6}
{NAMED_NOTRAIT_UNIT 3 (Corrupted Elf) 23 6 (Possessed Garak) ( _ "Possessed Garak")}
{VARIABLE i 0}
#ifdef HARD
{FOREACH ystara_casaulties i}
@ -1723,15 +1723,15 @@ This unit always strikes first with this attack, even if they are defending."
less_than=51
[/variable]
[then]
{UNIT_ (Walking Corpse) () ("") 3 23 6}
{NAMED_NOTRAIT_UNIT 3 (Walking Corpse) 23 6 () ("")}
[/then]
[else]
{UNIT_ (Soulless) () ("") 3 23 6}
{NAMED_NOTRAIT_UNIT 3 (Soulless) 23 6 () ("")}
[/else]
[/if]
#endif
#ifdef EASY
{UNIT_ (Walking Corpse) () ("") 3 23 6}
{NAMED_NOTRAIT_UNIT 3 (Walking Corpse) 23 6 () ("")}
#endif
{VARIABLE_OP i add 1}
[/do]
@ -1856,7 +1856,7 @@ This unit always strikes first with this attack, even if they are defending."
animate=yes
fire_event=no
[/kill]
{UNIT_ (Corrupted Elf) (Possessed Garak) ( _ "Possessed Garak") 2 $coords.x $coords.y}
{NAMED_NOTRAIT_UNIT.x (Corrupted Elf) $coords.y (Possessed Garak) ( _ "Possessed Garak") 2 $coords}
[message]
speaker=Zhul
message= _ "Eloh protect us, what is happening?"
@ -1886,7 +1886,7 @@ This unit always strikes first with this attack, even if they are defending."
animate=no
fire_event=no
[/kill]
{UNIT_ (Corrupted Elf) (Possessed Garak) ( _ "Possessed Garak") 2 $coords.x $coords.y}
{NAMED_NOTRAIT_UNIT.x (Corrupted Elf) $coords.y (Possessed Garak) ( _ "Possessed Garak") 2 $coords}
[message]
speaker=Possessed Garak
message=_"No fool! Stop!"
@ -1984,7 +1984,7 @@ This unit always strikes first with this attack, even if they are defending."
x=1-60
y=1-60
[/place_shroud]
{UNIT_ (Corrupted Elf) (Possessed Garak) ( _ "Possessed Garak") 2 21 24}
{NAMED_NOTRAIT_UNIT 2 (Corrupted Elf) 21 24 (Possessed Garak) ( _ "Possessed Garak")}
{VARIABLE i 0}
#ifdef HARD
{FOREACH azkotep_casaulties i}
@ -2013,15 +2013,15 @@ This unit always strikes first with this attack, even if they are defending."
less_than=51
[/variable]
[then]
{UNIT_ (Walking Corpse) () ("") 2 21 24}
{NAMED_NOTRAIT_UNIT 2 (Walking Corpse) 21 24 () ("")}
[/then]
[else]
{UNIT_ (Soulless) () ("") 2 21 24}
{NAMED_NOTRAIT_UNIT 2 (Soulless) 21 24 () ("")}
[/else]
[/if]
#endif
#ifdef EASY
{UNIT_ (Walking Corpse) () ("") 2 21 24}
{NAMED_NOTRAIT_UNIT 2 (Walking Corpse) 21 24 () ("")}
#endif
{VARIABLE_OP i add 1}
[/do]

View file

@ -216,7 +216,7 @@
name=prestart
# test units
#{UNIT_ (Troll2) (Kaleh) ( _ "Kaleh") 1 7 2}
#{NAMED_NOTRAIT_UNIT 1 (Troll2) 7 2 (Kaleh) ( _ "Kaleh")}
# set starting scenario objectives
@ -731,11 +731,11 @@
#If Easy: 5 goblins
{UNIT_ (Goblin Spearman) (Goblin Coward) ( _ "Goblin Coward") 2 28 37}
{UNIT_ (Goblin Spearman) (Goblin Scout) ( _ "Goblin Scout") 2 29 33}
{UNIT_ (Goblin Spearman) (Goblin Scout) ( _ "Goblin Scout") 2 38 31}
{UNIT_ (Goblin Spearman) (Goblin Scout) ( _ "Goblin Scout") 2 37 34}
{UNIT_ (Goblin Spearman) (Goblin Scout) ( _ "Goblin Scout") 2 30 38}
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 28 37 (Goblin Coward) ( _ "Goblin Coward")}
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 29 33 (Goblin Scout) ( _ "Goblin Scout")}
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 38 31 (Goblin Scout) ( _ "Goblin Scout")}
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 37 34 (Goblin Scout) ( _ "Goblin Scout")}
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 30 38 (Goblin Scout) ( _ "Goblin Scout")}
#ifdef EASY
@ -743,16 +743,16 @@
#If Medium: +2 goblins (5)
{UNIT_ (Goblin Spearman) (Goblin Scout) ( _ "Goblin Scout") 2 26 35}
{UNIT_ (Goblin Spearman) (Goblin Scout) ( _ "Goblin Scout") 2 33 32}
{UNIT_ (Goblin Spearman) (Goblin Scout) ( _ "Goblin Scout") 2 27 32}
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 26 35 (Goblin Scout) ( _ "Goblin Scout")}
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 33 32 (Goblin Scout) ( _ "Goblin Scout")}
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 27 32 (Goblin Scout) ( _ "Goblin Scout")}
#If Hard: +2 goblins (7)
#ifdef HARD
{UNIT_ (Goblin Spearman) (Goblin Scout) ( _ "Goblin Scout") 2 29 36}
{UNIT_ (Goblin Spearman) (Goblin Scout) ( _ "Goblin Scout") 2 33 34}
{UNIT_ (Goblin Spearman) (Goblin Scout) ( _ "Goblin Scout") 2 31 31}
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 29 36 (Goblin Scout) ( _ "Goblin Scout")}
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 33 34 (Goblin Scout) ( _ "Goblin Scout")}
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 31 31 (Goblin Scout) ( _ "Goblin Scout")}
#endif
@ -797,28 +797,28 @@
#1 orcish assassin/slayer leads the goblins
#ifdef EASY
{UNIT_ (Orcish Assassin) (Orac) ( _ "Orac") 2 24 32}
{NAMED_NOTRAIT_UNIT 2 (Orcish Assassin) 24 32 (Orac) ( _ "Orac")}
#else
{UNIT_ (Orcish Slayer) (Orac) ( _ "Orac") 2 24 32}
{NAMED_NOTRAIT_UNIT 2 (Orcish Slayer) 24 32 (Orac) ( _ "Orac")}
#endif
# wmllint: recognize Orac
#2 two goblins back him up
#ifdef EASY
{UNIT_ (Goblin Spearman) (Goblin Scout) ( _ "Goblin Scout") 2 24 31}
{UNIT_ (Goblin Spearman) (Goblin Scout) ( _ "Goblin Scout") 2 25 33}
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 24 31 (Goblin Scout) ( _ "Goblin Scout")}
{NAMED_NOTRAIT_UNIT 2 (Goblin Spearman) 25 33 (Goblin Scout) ( _ "Goblin Scout")}
#else
{UNIT_ (Goblin Impaler) (Goblin Scout) ( _ "Goblin Scout") 2 24 31}
{UNIT_ (Goblin Impaler) (Goblin Scout) ( _ "Goblin Scout") 2 25 33}
{NAMED_NOTRAIT_UNIT 2 (Goblin Impaler) 24 31 (Goblin Scout) ( _ "Goblin Scout")}
{NAMED_NOTRAIT_UNIT 2 (Goblin Impaler) 25 33 (Goblin Scout) ( _ "Goblin Scout")}
#endif
#3 nagas appear at edge of lake
#ifdef EASY
{UNIT_ (Naga Fighter) (Scylla) ( _ "Scylla") 2 20 34}
{NAMED_NOTRAIT_UNIT 2 (Naga Fighter) 20 34 (Scylla) ( _ "Scylla")}
#else
{UNIT_ (Naga Warrior) (Scylla) ( _ "Scylla") 2 20 34}
{NAMED_NOTRAIT_UNIT 2 (Naga Warrior) 20 34 (Scylla) ( _ "Scylla")}
#endif
# wmllint: recognize Scylla
#hack to make Scylla female
@ -827,15 +827,15 @@
[/unit]
#ifdef HARD
{UNIT_ (Naga Warrior) (Lake Naga) ( _ "Lake Naga") 2 19 34}
{NAMED_NOTRAIT_UNIT 2 (Naga Warrior) 19 34 (Lake Naga) ( _ "Lake Naga")}
#else
{UNIT_ (Naga Fighter) (Lake Naga) ( _ "Lake Naga") 2 19 34}
{NAMED_NOTRAIT_UNIT 2 (Naga Fighter) 19 34 (Lake Naga) ( _ "Lake Naga")}
#endif
#ifdef HARD
{UNIT_ (Naga Warrior) (Lake Naga) ( _ "Lake Naga") 2 20 35}
{NAMED_NOTRAIT_UNIT 2 (Naga Warrior) 20 35 (Lake Naga) ( _ "Lake Naga")}
#else
{UNIT_ (Naga Fighter) (Lake Naga) ( _ "Lake Naga") 2 20 35}
{NAMED_NOTRAIT_UNIT 2 (Naga Fighter) 20 35 (Lake Naga) ( _ "Lake Naga")}
#endif
#enddef
@ -973,11 +973,11 @@
[/variable]
[then]
{UNIT_ (Orcish Slayer) (Orac) ( _ "Orac") 2 24 32}
{NAMED_NOTRAIT_UNIT 2 (Orcish Slayer) 24 32 (Orac) ( _ "Orac")}
{UNIT_ (Naga Fighter) (Lake Naga) ( _ "Lake Naga") 2 19 34}
{UNIT_ (Naga Fighter) (Lake Naga) ( _ "Lake Naga") 2 20 35}
{UNIT_ (Naga Warrior) (Scylla) ( _ "Scylla") 2 20 34}
{NAMED_NOTRAIT_UNIT 2 (Naga Fighter) 19 34 (Lake Naga) ( _ "Lake Naga")}
{NAMED_NOTRAIT_UNIT 2 (Naga Fighter) 20 35 (Lake Naga) ( _ "Lake Naga")}
{NAMED_NOTRAIT_UNIT 2 (Naga Warrior) 20 34 (Scylla) ( _ "Scylla")}
#hack to make Scylla female
[+unit]
gender=female
@ -1016,11 +1016,11 @@
[/variable]
[then]
{UNIT_ (Orcish Slayer) (Orac) ( _ "Orac") 2 24 32}
{NAMED_NOTRAIT_UNIT 2 (Orcish Slayer) 24 32 (Orac) ( _ "Orac")}
{UNIT_ (Naga Warrior) (Lake Naga) ( _ "Lake Naga") 2 19 34}
{UNIT_ (Naga Warrior) (Lake Naga) ( _ "Lake Naga") 2 20 35}
{UNIT_ (Naga Warrior) (Scylla) ( _ "Scylla") 2 20 34}
{NAMED_NOTRAIT_UNIT 2 (Naga Warrior) 19 34 (Lake Naga) ( _ "Lake Naga")}
{NAMED_NOTRAIT_UNIT 2 (Naga Warrior) 20 35 (Lake Naga) ( _ "Lake Naga")}
{NAMED_NOTRAIT_UNIT 2 (Naga Warrior) 20 34 (Scylla) ( _ "Scylla")}
#hack to make Scylla female
[+unit]
gender=female
@ -1180,7 +1180,7 @@
side=1
[/filter]
{UNIT_ (Goblin Impaler) (Greebo) ( _ "Greebo") 4 35 7}
{NAMED_NOTRAIT_UNIT 4 (Goblin Impaler) 35 7 (Greebo) ( _ "Greebo")}
# wmllint: recognize Greebo
{PLACE_IMAGE items/chest-plain-closed.png 35 6}
@ -1299,7 +1299,7 @@
[/command]
[command]
{UNIT_ (Darawf) (Purple Abomination) ( _ "Purple Abomination") 3 14 15}
{NAMED_NOTRAIT_UNIT 3 (Darawf) 14 15 (Purple Abomination) ( _ "Purple Abomination")}
# wmllint: recognize Purple Abomination
[/command]

View file

@ -848,21 +848,21 @@
#make ants easy: 3 medium: 4 hard: 5
{UNIT_ (Giant Ant) () ("") 8 17 26}
{UNIT_ (Giant Ant) () ("") 8 17 27}
{UNIT_ (Giant Ant) () ("") 8 18 26}
{NAMED_NOTRAIT_UNIT 8 (Giant Ant) 17 26 () ("")}
{NAMED_NOTRAIT_UNIT 8 (Giant Ant) 17 27 () ("")}
{NAMED_NOTRAIT_UNIT 8 (Giant Ant) 18 26 () ("")}
#ifdef EASY
#else
{UNIT_ (Giant Ant) () ("") 8 18 27}
{NAMED_NOTRAIT_UNIT 8 (Giant Ant) 18 27 () ("")}
#endif
#ifdef HARD
{UNIT_ (Giant Ant) () ("") 8 19 27}
{NAMED_NOTRAIT_UNIT 8 (Giant Ant) 19 27 () ("")}
#endif
#make spider
{UNIT_ (Cave Spider) () ("") 9 4 25}
{NAMED_NOTRAIT_UNIT 9 (Cave Spider) 4 25 () ("")}
[redraw]
[/redraw]
@ -975,7 +975,7 @@
y=28,28,29,28,29
[/move_unit_fake]
{UNIT_ (Dwarvish Fighter) (Wounded Dwarf) ( _ "Wounded Dwarf") 4 21 29}
{NAMED_NOTRAIT_UNIT 4 (Dwarvish Fighter) 21 29 (Wounded Dwarf) ( _ "Wounded Dwarf")}
# wmllint: recognize Wounded Dwarf
[message]
@ -3171,7 +3171,7 @@
terrain=Uu
[/terrain]
{UNIT_ (Troll Shaman) (Zurg) ( _ "Zurg") 2 20 14}
{NAMED_NOTRAIT_UNIT 2 (Troll Shaman) 20 14 (Zurg) ( _ "Zurg")}
[remove_shroud]
x=19-23
@ -3223,7 +3223,7 @@
terrain=Uu
[/terrain]
{UNIT_ (Troll) (Zurg) ( _ "Zurg") 2 51 12}
{NAMED_NOTRAIT_UNIT 2 (Troll) 51 12 (Zurg) ( _ "Zurg")}
[remove_shroud]
x=49-52
@ -3277,7 +3277,7 @@
terrain=Uu
[/terrain]
{UNIT_ (Dwarvish Pathfinder) (Grimnir) ( _ "Grimnir") 5 52 41}
{NAMED_NOTRAIT_UNIT 5 (Dwarvish Pathfinder) 52 41 (Grimnir) ( _ "Grimnir")}
[remove_shroud]
x=46-53
@ -3333,7 +3333,7 @@
time=200
[/delay]
{UNIT_ (Dwarvish Pathfinder) (Grimnir) ( _ "Grimnir") 5 21 46}
{NAMED_NOTRAIT_UNIT 5 (Dwarvish Pathfinder) 21 46 (Grimnir) ( _ "Grimnir")}
[remove_shroud]
x=20-26

View file

@ -195,7 +195,7 @@
# test units
#{UNIT_ (Dwarvish Fighter) (Test) ( _ "Test") 1 23 7}
#{NAMED_NOTRAIT_UNIT 1 (Dwarvish Fighter) 23 7 (Test) ( _ "Test")}
#set starting scenario objectives
@ -671,19 +671,19 @@
[/unit]
# 1 Troll Rocklobber
{UNIT_ (Troll Rocklobber) (Troll Guard) ( _ "Troll Guard") 3 23 8}
{NAMED_NOTRAIT_UNIT 3 (Troll Rocklobber) 23 8 (Troll Guard) ( _ "Troll Guard")}
# 0-1 extra Trolls
{UNIT_ (Troll) (Troll Guard) ( _ "Troll Guard") 3 21 9}
{NAMED_NOTRAIT_UNIT 3 (Troll) 21 9 (Troll Guard) ( _ "Troll Guard")}
# 2-3 troll whelps occupy base and villages
# 2 troll whelps in villages
{UNIT_ (Troll Whelp) (Troll Guard) ( _ "Troll Guard") 3 21 5}
{UNIT_ (Troll Whelp) (Troll Guard) ( _ "Troll Guard") 3 23 6}
{NAMED_NOTRAIT_UNIT 3 (Troll Whelp) 21 5 (Troll Guard) ( _ "Troll Guard")}
{NAMED_NOTRAIT_UNIT 3 (Troll Whelp) 23 6 (Troll Guard) ( _ "Troll Guard")}
#ifdef EASY
#else
{UNIT_ (Troll Whelp) (Troll Guard) ( _ "Troll Guard") 3 21 19}
{NAMED_NOTRAIT_UNIT 3 (Troll Whelp) 21 19 (Troll Guard) ( _ "Troll Guard")}
#endif
# wmllint: recognize Troll Guard
@ -1470,15 +1470,15 @@
[/redraw]
#ifdef EASY
{UNIT_ (Lava Monster) (Guardian Phoenix) ( _ "Guardian Phoenix") 5 26 21}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster) 26 21 (Guardian Phoenix) ( _ "Guardian Phoenix")}
#endif
#ifdef NORMAL
{UNIT_ (Lava Monster2) (Guardian Phoenix) ( _ "Guardian Phoenix") 5 26 21}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster2) 26 21 (Guardian Phoenix) ( _ "Guardian Phoenix")}
#endif
#ifdef HARD
{UNIT_ (Lava Monster3) (Guardian Phoenix) ( _ "Guardian Phoenix") 5 26 21}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster3) 26 21 (Guardian Phoenix) ( _ "Guardian Phoenix")}
#endif
[scroll_to_unit]
@ -1540,15 +1540,15 @@
[/redraw]
#ifdef EASY
{UNIT_ (Lava Monster) (Guardian Phoenix) ( _ "Guardian Phoenix") 5 26 21}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster) 26 21 (Guardian Phoenix) ( _ "Guardian Phoenix")}
#endif
#ifdef NORMAL
{UNIT_ (Lava Monster2) (Guardian Phoenix) ( _ "Guardian Phoenix") 5 26 21}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster2) 26 21 (Guardian Phoenix) ( _ "Guardian Phoenix")}
#endif
#ifdef HARD
{UNIT_ (Lava Monster3) (Guardian Phoenix) ( _ "Guardian Phoenix") 5 26 21}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster3) 26 21 (Guardian Phoenix) ( _ "Guardian Phoenix")}
#endif
[scroll_to_unit]
@ -1638,19 +1638,19 @@
[/scroll_to]
#ifdef EASY
{UNIT_ (Lava Monster) (Fire Guardian) ( _ "Fire Guardian") 5 26 17}
{UNIT_ (Lava Monster) (Fire Guardian) ( _ "Fire Guardian") 5 26 18}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster) 26 17 (Fire Guardian) ( _ "Fire Guardian")}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster) 26 18 (Fire Guardian) ( _ "Fire Guardian")}
#endif
#ifdef NORMAL
{UNIT_ (Lava Monster2) (Fire Guardian) ( _ "Fire Guardian") 5 26 17}
{UNIT_ (Lava Monster2) (Fire Guardian) ( _ "Fire Guardian") 5 26 18}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster2) 26 17 (Fire Guardian) ( _ "Fire Guardian")}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster2) 26 18 (Fire Guardian) ( _ "Fire Guardian")}
#endif
#ifdef HARD
{UNIT_ (Lava Monster3) (Fire Guardian) ( _ "Fire Guardian") 5 25 18}
{UNIT_ (Lava Monster3) (Fire Guardian) ( _ "Fire Guardian") 5 26 17}
{UNIT_ (Lava Monster3) (Fire Guardian) ( _ "Fire Guardian") 5 26 18}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster3) 25 18 (Fire Guardian) ( _ "Fire Guardian")}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster3) 26 17 (Fire Guardian) ( _ "Fire Guardian")}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster3) 26 18 (Fire Guardian) ( _ "Fire Guardian")}
#endif
{CHECK_EXPLORER}
@ -1689,19 +1689,19 @@
[/scroll_to]
#ifdef EASY
{UNIT_ (Lava Monster) (Fire Guardian) ( _ "Fire Guardian") 5 26 22}
{UNIT_ (Lava Monster) (Fire Guardian) ( _ "Fire Guardian") 5 27 22}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster) 26 22 (Fire Guardian) ( _ "Fire Guardian")}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster) 27 22 (Fire Guardian) ( _ "Fire Guardian")}
#endif
#ifdef NORMAL
{UNIT_ (Lava Monster2) (Fire Guardian) ( _ "Fire Guardian") 5 26 22}
{UNIT_ (Lava Monster2) (Fire Guardian) ( _ "Fire Guardian") 5 27 22}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster2) 26 22 (Fire Guardian) ( _ "Fire Guardian")}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster2) 27 22 (Fire Guardian) ( _ "Fire Guardian")}
#endif
#ifdef HARD
{UNIT_ (Lava Monster3) (Fire Guardian) ( _ "Fire Guardian") 5 26 21}
{UNIT_ (Lava Monster3) (Fire Guardian) ( _ "Fire Guardian") 5 26 22}
{UNIT_ (Lava Monster3) (Fire Guardian) ( _ "Fire Guardian") 5 27 22}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster3) 26 21 (Fire Guardian) ( _ "Fire Guardian")}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster3) 26 22 (Fire Guardian) ( _ "Fire Guardian")}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster3) 27 22 (Fire Guardian) ( _ "Fire Guardian")}
#endif
{CHECK_EXPLORER}
@ -1740,19 +1740,19 @@
[/scroll_to]
#ifdef EASY
{UNIT_ (Lava Monster) (Fire Guardian) ( _ "Fire Guardian") 5 22 16}
{UNIT_ (Lava Monster) (Fire Guardian) ( _ "Fire Guardian") 5 23 17}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster) 22 16 (Fire Guardian) ( _ "Fire Guardian")}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster) 23 17 (Fire Guardian) ( _ "Fire Guardian")}
#endif
#ifdef NORMAL
{UNIT_ (Lava Monster2) (Fire Guardian) ( _ "Fire Guardian") 5 22 16}
{UNIT_ (Lava Monster2) (Fire Guardian) ( _ "Fire Guardian") 5 23 17}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster2) 22 16 (Fire Guardian) ( _ "Fire Guardian")}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster2) 23 17 (Fire Guardian) ( _ "Fire Guardian")}
#endif
#ifdef HARD
{UNIT_ (Lava Monster3) (Fire Guardian) ( _ "Fire Guardian") 5 23 17}
{UNIT_ (Lava Monster3) (Fire Guardian) ( _ "Fire Guardian") 5 22 16}
{UNIT_ (Lava Monster3) (Fire Guardian) ( _ "Fire Guardian") 5 22 17}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster3) 23 17 (Fire Guardian) ( _ "Fire Guardian")}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster3) 22 16 (Fire Guardian) ( _ "Fire Guardian")}
{NAMED_NOTRAIT_UNIT 5 (Lava Monster3) 22 17 (Fire Guardian) ( _ "Fire Guardian")}
#endif
{CHECK_EXPLORER}
[message]
@ -2017,33 +2017,33 @@
message= _ "Arise, our brothers of ages past! Arise and destroy the intruders!"
[/message]
{UNIT_ (Walking Corpse) (troll_wc_1) ("") 4 39 22}
{NAMED_NOTRAIT_UNIT 4 (Walking Corpse) 39 22 (troll_wc_1) ("")}
{INVOKE_TROLL_VARIATION id=troll_wc_1}
{UNIT_ (Walking Corpse) (troll_wc_2) ("") 4 40 28}
{NAMED_NOTRAIT_UNIT 4 (Walking Corpse) 40 28 (troll_wc_2) ("")}
{INVOKE_TROLL_VARIATION id=troll_wc_2}
{UNIT_ (Walking Corpse) (troll_wc_3) ("") 4 36 23}
{NAMED_NOTRAIT_UNIT 4 (Walking Corpse) 36 23 (troll_wc_3) ("")}
{INVOKE_TROLL_VARIATION id=troll_wc_3}
{UNIT_ (Walking Corpse) (troll_wc_4) ("") 4 37 29}
{NAMED_NOTRAIT_UNIT 4 (Walking Corpse) 37 29 (troll_wc_4) ("")}
{INVOKE_TROLL_VARIATION id=troll_wc_4}
#ifdef NORMAL
{UNIT_ (Walking Corpse) (troll_wc_5) ("") 4 33 25}
{NAMED_NOTRAIT_UNIT 4 (Walking Corpse) 33 25 (troll_wc_5) ("")}
{INVOKE_TROLL_VARIATION id=troll_wc_5}
{UNIT_ (Walking Corpse) (troll_wc_6) ("") 4 34 28}
{NAMED_NOTRAIT_UNIT 4 (Walking Corpse) 34 28 (troll_wc_6) ("")}
{INVOKE_TROLL_VARIATION id=troll_wc_6}
#endif
#ifdef HARD
{UNIT_ (Walking Corpse) (troll_wc_5) ("") 4 42 21}
{NAMED_NOTRAIT_UNIT 4 (Walking Corpse) 42 21 (troll_wc_5) ("")}
{INVOKE_TROLL_VARIATION id=troll_wc_5}
{UNIT_ (Walking Corpse) (troll_wc_6) ("") 4 43 26}
{NAMED_NOTRAIT_UNIT 4 (Walking Corpse) 43 26 (troll_wc_6) ("")}
{INVOKE_TROLL_VARIATION id=troll_wc_6}
#endif
@ -2139,7 +2139,7 @@
y=15,16,16,17,17,18,19
[/move_unit_fake]
{UNIT_ (Dwarvish Pathfinder) (Grimnir) ( _ "Grimnir") 2 45 19}
{NAMED_NOTRAIT_UNIT 2 (Dwarvish Pathfinder) 45 19 (Grimnir) ( _ "Grimnir")}
[remove_shroud]
x=43-46
@ -2236,7 +2236,7 @@
message= _ "It's cooler here, there seems to be a draft to the west."
[/message]
{UNIT_ (Haunt) (Dwarf Ghost) ( _ "Dwarf Ghost") 2 8 20}
{NAMED_NOTRAIT_UNIT 2 (Haunt) 8 20 (Dwarf Ghost) ( _ "Dwarf Ghost")}
[delay]
time=300
@ -2308,7 +2308,7 @@
[/kill]
# create new unit so that ghost can deliver final dialogue before leaving
{UNIT_ (Haunt) (Dwarf Ghost) ( _ "Dwarf Ghost") 2 14 13}
{NAMED_NOTRAIT_UNIT 2 (Haunt) 14 13 (Dwarf Ghost) ( _ "Dwarf Ghost")}
[message]
speaker=Dwarf Ghost
@ -2337,7 +2337,7 @@
[/not]
[/filter]
{UNIT_ Soulless cryptguard ( _ "Crypt Guardian") 4 7 25}
{NAMED_NOTRAIT_UNIT 4 (Soulless) 7 25 cryptguard ( _ "Crypt Guardian")}
{INVOKE_TROLL_VARIATION id=cryptguard}
[message]

View file

@ -271,12 +271,12 @@
# Test Units
#{UNIT_ (Troll) (Test) ( _ "Test") 1 19 37}
#{UNIT_ (Troll) (Test) ( _ "Test") 1 21 25}
#{NAMED_NOTRAIT_UNIT 1 (Troll) 19 37 (Test) ( _ "Test")}
#{NAMED_NOTRAIT_UNIT 1 (Troll) 21 25 (Test) ( _ "Test")}
# tentacle secret event test
# {UNIT_ (Desert Prowler) (Test) ( _ "Test") 1 20 13}
# {UNIT_ (Troll) (Test) ( _ "Test") 1 20 14}
# {NAMED_NOTRAIT_UNIT 1 (Desert Prowler) 20 13 (Test) ( _ "Test")}
# {NAMED_NOTRAIT_UNIT 1 (Troll) 20 14 (Test) ( _ "Test")}
#set starting scenario objectives
@ -645,27 +645,27 @@
# HARD: 1 dwarf steelclad, 2 thunderguard, 3 pathfinders
# 1 Dwarf Sergeant
{UNIT_ (Dwarvish Fighter) (Dwarf Sergeant) ( _ "Dwarf Sergeant") 2 22 33}
{NAMED_NOTRAIT_UNIT 2 (Dwarvish Fighter) 22 33 (Dwarf Sergeant) ( _ "Dwarf Sergeant")}
# 2 Dwarf shooters
#ifdef EASY
{UNIT_ (Dwarvish Thunderer) (Dwarf Guard) ( _ "Dwarf Guard") 2 21 34}
{UNIT_ (Dwarvish Thunderer) (Dwarf Guard) ( _ "Dwarf Guard") 2 23 34}
{NAMED_NOTRAIT_UNIT 2 (Dwarvish Thunderer) 21 34 (Dwarf Guard) ( _ "Dwarf Guard")}
{NAMED_NOTRAIT_UNIT 2 (Dwarvish Thunderer) 23 34 (Dwarf Guard) ( _ "Dwarf Guard")}
#else
{UNIT_ (Dwarvish Thunderguard) (Dwarf Guard) ( _ "Dwarf Guard") 2 21 34}
{UNIT_ (Dwarvish Thunderguard) (Dwarf Guard) ( _ "Dwarf Guard") 2 23 34}
{NAMED_NOTRAIT_UNIT 2 (Dwarvish Thunderguard) 21 34 (Dwarf Guard) ( _ "Dwarf Guard")}
{NAMED_NOTRAIT_UNIT 2 (Dwarvish Thunderguard) 23 34 (Dwarf Guard) ( _ "Dwarf Guard")}
#endif
# 3 dwarf scouts occupy base and villages
#ifdef HARD
{UNIT_ (Dwarvish Pathfinder) (Dwarf Guard) ( _ "Dwarf Guard") 2 22 34}
{UNIT_ (Dwarvish Pathfinder) (Dwarf Guard) ( _ "Dwarf Guard") 2 20 34}
{UNIT_ (Dwarvish Pathfinder) (Dwarf Guard) ( _ "Dwarf Guard") 2 24 34}
{NAMED_NOTRAIT_UNIT 2 (Dwarvish Pathfinder) 22 34 (Dwarf Guard) ( _ "Dwarf Guard")}
{NAMED_NOTRAIT_UNIT 2 (Dwarvish Pathfinder) 20 34 (Dwarf Guard) ( _ "Dwarf Guard")}
{NAMED_NOTRAIT_UNIT 2 (Dwarvish Pathfinder) 24 34 (Dwarf Guard) ( _ "Dwarf Guard")}
#else
{UNIT_ (Dwarvish Scout) (Dwarf Guard) ( _ "Dwarf Guard") 2 22 34}
{UNIT_ (Dwarvish Scout) (Dwarf Guard) ( _ "Dwarf Guard") 2 20 34}
{UNIT_ (Dwarvish Scout) (Dwarf Guard) ( _ "Dwarf Guard") 2 24 34}
{NAMED_NOTRAIT_UNIT 2 (Dwarvish Scout) 22 34 (Dwarf Guard) ( _ "Dwarf Guard")}
{NAMED_NOTRAIT_UNIT 2 (Dwarvish Scout) 20 34 (Dwarf Guard) ( _ "Dwarf Guard")}
{NAMED_NOTRAIT_UNIT 2 (Dwarvish Scout) 24 34 (Dwarf Guard) ( _ "Dwarf Guard")}
#endif
# wmllint: recognize Dwarf Guard
@ -1985,7 +1985,7 @@
y=24,23,22,21,21,20,19
[/move_unit_fake]
{UNIT_ (Troll Shaman) (Zurg) ( _ "Zurg") 2 6 19}
{NAMED_NOTRAIT_UNIT 2 (Troll Shaman) 6 19 (Zurg) ( _ "Zurg")}
[remove_shroud]
x=5-7
@ -2322,7 +2322,7 @@
[/command]
[command]
{UNIT_ (Ghost) (Angry Ghost) ( _ "Angry Ghost") 9 47 22}
{NAMED_NOTRAIT_UNIT 9 (Ghost) 47 22 (Angry Ghost) ( _ "Angry Ghost")}
# wmllint: recognize Angry Ghost
[message]

View file

@ -317,20 +317,20 @@
name=prestart
#escaped from caves events tests
#{UNIT_ (Desert Archer) (Test) ( _ "Test") 1 24 23}
#{UNIT_ (Desert Fighter) (Test) ( _ "Test") 1 20 20}
#{NAMED_NOTRAIT_UNIT 1 (Desert Archer) 24 23 (Test) ( _ "Test")}
#{NAMED_NOTRAIT_UNIT 1 (Desert Fighter) 20 20 (Test) ( _ "Test")}
#training hall test
#{UNIT_ (Great Mage) (Test) ( _ "Test") 1 12 44}
#{NAMED_NOTRAIT_UNIT 1 (Great Mage) 12 44 (Test) ( _ "Test")}
#wizard lair tests
#{UNIT_ (Great Mage) (Test) ( _ "Test") 1 16 27}
#{UNIT_ (Great Mage) (Test) ( _ "Test") 1 16 27}
#{UNIT_ (Desert Star) (Test) ( _ "Test") 1 16 27}
#{NAMED_NOTRAIT_UNIT 1 (Great Mage) 16 27 (Test) ( _ "Test")}
#{NAMED_NOTRAIT_UNIT 1 (Great Mage) 16 27 (Test) ( _ "Test")}
#{NAMED_NOTRAIT_UNIT 1 (Desert Star) 16 27 (Test) ( _ "Test")}
#cloaked figure tests
#{UNIT_ (Great Mage) (Test) ( _ "Test") 1 10 21}
#{UNIT_ (Great Mage) (Test) ( _ "Test") 1 10 21}
#{NAMED_NOTRAIT_UNIT 1 (Great Mage) 10 21 (Test) ( _ "Test")}
#{NAMED_NOTRAIT_UNIT 1 (Great Mage) 10 21 (Test) ( _ "Test")}
# add items to map
@ -534,7 +534,7 @@
# recall heroes
# this is a placeholder unit, used to make sure heroes recall
# in encampment hexes
{UNIT_ (Desert Hero) (Test) ( _ "Test") 1 51 41}
{NAMED_NOTRAIT_UNIT 1 (Desert Hero) 51 41 (Test) ( _ "Test")}
[recall]
id=Zhul
@ -4874,10 +4874,10 @@
[/modifications]
[/unit]
{UNIT_ (Dragoon) (Human Guard) ( _ "Human Guard") 2 43 28}
{UNIT_ (Dragoon) (Human Guard) ( _ "Human Guard") 2 44 26}
{UNIT_ (Swordsman) (Human Guard) ( _ "Human Guard") 2 43 27}
{UNIT_ (Longbowman) (Human Guard) ( _ "Human Guard") 2 44 27}
{NAMED_NOTRAIT_UNIT 2 (Dragoon) 43 28 (Human Guard) ( _ "Human Guard")}
{NAMED_NOTRAIT_UNIT 2 (Dragoon) 44 26 (Human Guard) ( _ "Human Guard")}
{NAMED_NOTRAIT_UNIT 2 (Swordsman) 43 27 (Human Guard) ( _ "Human Guard")}
{NAMED_NOTRAIT_UNIT 2 (Longbowman) 44 27 (Human Guard) ( _ "Human Guard")}
[message]
speaker=Eloh

View file

@ -292,15 +292,15 @@
# scenario testing units
#{UNIT_ (Desert Fighter) (Test) ( _ "Test") 1 16 13}
#{UNIT_ (Desert Fighter) (Test) ( _ "Test") 1 10 16}
#{NAMED_NOTRAIT_UNIT 1 (Desert Fighter) 16 13 (Test) ( _ "Test")}
#{NAMED_NOTRAIT_UNIT 1 (Desert Fighter) 10 16 (Test) ( _ "Test")}
# units to free merfolk instantly
#{UNIT_ (Desert Marshal) (Lycia) ( _ "Lycia") 1 27 18}
#{UNIT_ (Desert Druid) (Shea) ( _ "Shea") 1 32 25}
#{UNIT_ (Desert Avenger) (Pythos) ( _ "Pythos") 1 18 31}
#{UNIT_ (Desert Marksman) (Larea) ( _ "Larea") 1 26 36}
#{UNIT_ (Desert Horseman) (Nonthar) ( _ "Nonthar") 1 33 32}
#{NAMED_NOTRAIT_UNIT 1 (Desert Marshal) 27 18 (Lycia) ( _ "Lycia")}
#{NAMED_NOTRAIT_UNIT 1 (Desert Druid) 32 25 (Shea) ( _ "Shea")}
#{NAMED_NOTRAIT_UNIT 1 (Desert Avenger) 18 31 (Pythos) ( _ "Pythos")}
#{NAMED_NOTRAIT_UNIT 1 (Desert Marksman) 26 36 (Larea) ( _ "Larea")}
#{NAMED_NOTRAIT_UNIT 1 (Desert Horseman) 33 32 (Nonthar) ( _ "Nonthar")}
# increase cost of all units by 1
@ -1305,7 +1305,7 @@
y=26-30
side=1
[/remove_shroud]
{UNIT_ (Necromancer) (Hekuba) ( _ "Hekuba") 4 15 28}
{NAMED_NOTRAIT_UNIT 4 (Necromancer) 15 28 (Hekuba) ( _ "Hekuba")}
[message]
side=4
type=Necromancer
@ -2457,7 +2457,7 @@
side=1
[/remove_shroud]
{UNIT_ (Necromancer) (Hekuba) ( _ "Hekuba") 4 15 28}
{NAMED_NOTRAIT_UNIT 4 (Necromancer) 15 28 (Hekuba) ( _ "Hekuba")}
# wmllint: recognize Hekuba
[message]

View file

@ -98,18 +98,6 @@ multiply=-1
#enddef
# wmlindent: stop ignoring
# create a unit with full upkeep
#define UNIT_ TYPE ID_STRING NAME_STRING SIDE X Y
[unit]
type={TYPE}
id={ID_STRING}
name={NAME_STRING}
side={SIDE}
upkeep=full
x={X}
y={Y}
[/unit]
#enddef
# create a unit with no upkeep
#define FREE_UNIT TYPE ID_STRING NAME_STRING SIDE X Y

View file

@ -47,10 +47,10 @@
#enddef
#define NOTRAIT_UNIT SIDE TYPE X Y
# Creates a unit with no traits, random gender and name.
# Creates a unit with no traits, random gender and generated name.
#
# Example:
#! {NOTRAIT_UNIT (Elvish Fighter) 1 19 16}
#! {NOTRAIT_UNIT 1 (Elvish Fighter) 19 16}
#
[unit]
side={SIDE}
@ -130,6 +130,25 @@
[/unit]
#enddef
#define NAMED_NOTRAIT_UNIT SIDE TYPE X Y ID_STRING NAME_STRING
# Creates a unit with no traits, random gender and specified name.
#
# Example:
#! {NOTRAIT_UNIT 1 (Elvish Fighter) 19 16}
#
[unit]
side={SIDE}
type={TYPE}
id={ID_STRING}
name={NAME_STRING}
x={X}
y={Y}
generate_name=yes
random_traits=no
random_gender=yes
[/unit]
#enddef
#define RECALL_OR_CREATE TYPE ID_STRING
# A substitute for [recall] that works even when there's no-one to recall
# useful for testing scenarios out of order.