wmllint now has the capability to automatically check...
...that every description= in [message] and [filter] blocks refers to a unit that is present in the scenario. This commit fixes almost all bugs found with this test, and adds magic comments to handle places where the WML doesn't supply a recognizable unit creation or recall (usually because of macros).
This commit is contained in:
parent
c7810fbb66
commit
13d01a4e51
79 changed files with 495 additions and 173 deletions
|
@ -23,7 +23,6 @@
|
|||
villages_per_scout="0"
|
||||
leader_value="3"
|
||||
village_value="1"
|
||||
recruitment_pattern=""
|
||||
income="0"
|
||||
recruit="Elvish Archer, Elvish Fighter, Elvish Scout, Elvish Shaman"
|
||||
[ai]
|
||||
|
|
|
@ -74,6 +74,8 @@
|
|||
name=knolls.ogg
|
||||
[/music]
|
||||
|
||||
# wmllint: recognize Darken Volk
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
[objective]
|
||||
|
|
|
@ -42,6 +42,8 @@
|
|||
[/ai]
|
||||
[/side]
|
||||
|
||||
# wmllint: recognize Darken Volk
|
||||
|
||||
[event]
|
||||
name=prestart
|
||||
[music]
|
||||
|
@ -141,6 +143,8 @@
|
|||
{GEN_GUARDIAN (Great Mage) (Lord Karres) (_ "Lord Karres") 2 $actualStart.x $actualStart.y}
|
||||
{CLEAR_VARIABLE actualStart}
|
||||
|
||||
# wmllint: recognize Lord Karres
|
||||
|
||||
{VARIABLE_OP i random (0..2)}
|
||||
{IF_VAR i numerical_equals 0 (
|
||||
[then]
|
||||
|
|
|
@ -146,7 +146,8 @@
|
|||
name=gold.ogg
|
||||
[/sound]
|
||||
[message]
|
||||
description=narrator
|
||||
speaker=narrator
|
||||
image=wesnoth-icon.png
|
||||
message= _ "You find 100 gold in the fortress!"
|
||||
[/message]
|
||||
[gold]
|
||||
|
|
|
@ -46,6 +46,8 @@
|
|||
{STARTING_VILLAGES_AREA 5 26 31 5}
|
||||
{STARTING_VILLAGES_AREA 5 29 46 1}
|
||||
|
||||
# wmllint: recognize Kalenz
|
||||
|
||||
[side]
|
||||
type=Fighter
|
||||
description=Konrad
|
||||
|
|
|
@ -55,6 +55,8 @@
|
|||
controller=human
|
||||
[/side]
|
||||
|
||||
# wmllint: recognize Delfador
|
||||
|
||||
[side]
|
||||
type=Orcish Warrior
|
||||
description="Usadar Q'kai"
|
||||
|
|
|
@ -172,6 +172,9 @@
|
|||
|
||||
{LOYAL_UNIT (Merman Fighter) (Kalba) ( _ "Kalba") 1 27 12}
|
||||
{LOYAL_UNIT (Merman Fighter) (Gnaba) ( _ "Gnaba") 1 31 14}
|
||||
# wmllint: recognize Kalba
|
||||
# wmllint: recognize Gnaba
|
||||
|
||||
[message]
|
||||
description=Konrad
|
||||
message= _ "Whew, I survived. But now where am I? Is this island inhabited?"
|
||||
|
@ -197,6 +200,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{LOYAL_UNIT (Outlaw) (Delurin) ( _ "Delurin") 1 21 12}
|
||||
# wmllint: recognize Delurin
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
|
|
@ -49,6 +49,8 @@
|
|||
{GOLD 180 120 120}
|
||||
[/side]
|
||||
|
||||
# wmllint: recognize Delfador
|
||||
|
||||
[side]
|
||||
type=Orcish Warlord
|
||||
description=Agadla
|
||||
|
|
|
@ -449,6 +449,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{LOYAL_UNIT (Elvish Archer) (Niodien) ( _ "Niodien") 1 11 13}
|
||||
# wmllint: recognize Niodien
|
||||
|
||||
[message]
|
||||
description=Niodien
|
||||
|
@ -470,6 +471,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{LOYAL_UNIT (Elvish Fighter) (Loflar) ( _ "Loflar") 1 5 15}
|
||||
# wmllint: recognize Loflar
|
||||
|
||||
[message]
|
||||
description=Loflar
|
||||
|
|
|
@ -311,6 +311,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{LOYAL_UNIT (Duelist) (Ronry) ( _ "Ronry") 2 6 40}
|
||||
# wmllint: recognize Ronry
|
||||
|
||||
[scroll_to_unit]
|
||||
x=6
|
||||
|
|
|
@ -102,6 +102,9 @@
|
|||
{LOYAL_UNIT (Sleeping Gryphon) (Graak) ( _ "Graak") 3 12 18}
|
||||
{LOYAL_UNIT (Sleeping Gryphon) (Grook) ( _ "Grook") 3 16 16}
|
||||
{LOYAL_UNIT (Sleeping Gryphon) (Gruak) ( _ "Gruak") 3 10 14}
|
||||
# wmllint: recognize Graak
|
||||
# wmllint: recognize Grook
|
||||
# wmllint: recognize Gruak
|
||||
|
||||
{VARIABLE gryphon_disposition 1}
|
||||
[/event]
|
||||
|
|
|
@ -146,6 +146,8 @@
|
|||
{VARIABLE_OP true_entrance_location random 1..2}
|
||||
[/event]
|
||||
|
||||
# wmllint: recognize Uncle Somf
|
||||
|
||||
[event]
|
||||
name=start
|
||||
[recall]
|
||||
|
@ -154,6 +156,9 @@
|
|||
[recall]
|
||||
description=Kalenz
|
||||
[/recall]
|
||||
[recall]
|
||||
description=Haldiel
|
||||
[/recall]
|
||||
[role]
|
||||
type=Elvish Outrider,Elvish Rider,Elvish Scout,Lancer,Paladin,Grand Knight,Knight,Horseman
|
||||
role=Rider
|
||||
|
@ -664,6 +669,7 @@
|
|||
[/filter]
|
||||
|
||||
{LOYAL_UNIT (Cuttle Fish) (Cuttle Fish) ( _ "Cuttle Fish") 5 13 13}
|
||||
# wmllint: recognize Cuttle Fish
|
||||
|
||||
[message]
|
||||
description=Cuttle Fish
|
||||
|
@ -693,6 +699,7 @@
|
|||
[/message]
|
||||
|
||||
{LOYAL_UNIT (Princess) (Li'sar) ( _ "Li'sar") 2 8 44}
|
||||
# wmllint: recognize Li'sar
|
||||
{LISAR_GUARD_DOORS}
|
||||
{LISAR_GUARD_DOORS}
|
||||
{LISAR_GUARD_DOORS}
|
||||
|
|
|
@ -135,6 +135,7 @@
|
|||
[/filter]
|
||||
|
||||
{LOYAL_UNIT (Dwarvish Fighter) (Burlin) ( _ "Burlin") 2 17 24}
|
||||
# wmllint: recognize Burlin
|
||||
|
||||
[message]
|
||||
description=Burlin
|
||||
|
@ -158,6 +159,7 @@
|
|||
{PLACE_IMAGE units/trolls/whelp-die-6.png 2 22}
|
||||
{PLACE_IMAGE units/trolls/whelp-die-5.png 4 21}
|
||||
{LOYAL_UNIT (Dwarvish Ulfserker) (Ulfdain) ( _ "Ulfdain") 2 2 21}
|
||||
# wmllint: recognize Ulfdain
|
||||
[teleport]
|
||||
[filter]
|
||||
x,y=$x1,$y1
|
||||
|
|
|
@ -50,6 +50,8 @@
|
|||
{UNDERGROUND_VOLCANO -32 -42 -42}
|
||||
{UNDERGROUND_VOLCANO -28 -38 -38}
|
||||
|
||||
# wmllint: recognize Konrad
|
||||
|
||||
[event]
|
||||
name=prestart
|
||||
[objectives]
|
||||
|
|
|
@ -351,7 +351,7 @@
|
|||
message= _ "Oh my! A monster!"
|
||||
[/message]
|
||||
[message]
|
||||
description=""Li'sar""
|
||||
description="Li'sar"
|
||||
message= _ "A dragon! A big one!"
|
||||
[/message]
|
||||
[message]
|
||||
|
@ -363,7 +363,7 @@
|
|||
message= _ "A talking dragon?"
|
||||
[/message]
|
||||
[message]
|
||||
description=""Li'sar""
|
||||
description="Li'sar"
|
||||
message= _ "I am beginning to understand why you were talking about monsters on our way here, Lord Kalenz."
|
||||
[/message]
|
||||
[message]
|
||||
|
|
|
@ -522,6 +522,7 @@
|
|||
side=4
|
||||
[/move_unit_fake]
|
||||
{LOYAL_UNIT (Elvish Rider) (Glarilon) ( _ "Glarilon") 4 $temp_x $temp_y}
|
||||
# wmllint: recognize Glarilon
|
||||
[message]
|
||||
description=Glarilon
|
||||
message= _ "My lords! I have found you at last."
|
||||
|
@ -534,6 +535,7 @@
|
|||
side=4
|
||||
[/move_unit_fake]
|
||||
{LOYAL_UNIT (Elvish Rider) (Thalindil) ( _ "Thalindil") 4 $temp_x $temp_y}
|
||||
# wmllint: recognize Thalindil
|
||||
[message]
|
||||
description=Thalindil
|
||||
message= _ "(exhausted) We have... (pant) finally found you!"
|
||||
|
@ -564,6 +566,7 @@
|
|||
side=4
|
||||
[/move_unit_fake]
|
||||
{LOYAL_UNIT (Elvish Rider) (Rholandir) ( _ "Rholandir") 4 $temp_x $temp_y}
|
||||
# wmllint: recognize Rholandir
|
||||
[message]
|
||||
description=Rholandir
|
||||
message= _ "Lord Kalenz, Lord Konrad, our forces are nigh! Do not lose hope!"
|
||||
|
|
|
@ -178,6 +178,7 @@
|
|||
{LOYAL_UNIT (Halberdier) (Dacayan) ( _ "Dacayan") 4 33 37}
|
||||
{LOYAL_UNIT (Halberdier) (Ceomyr) ( _ "Ceomyr") 4 32 37}
|
||||
{LOYAL_UNIT (Halberdier) (Gwellyn) ( _ "Gwellyn") 4 34 37}
|
||||
# wmllint: recognize Dacayan
|
||||
|
||||
#a little attempt at comic relief
|
||||
[message]
|
||||
|
|
|
@ -204,6 +204,8 @@
|
|||
{DALLBEN_PEASANT Thug_Peasant 5 30 Teneor ( _ "Teneor")}
|
||||
{DALLBEN_PEASANT Poacher_Peasant 3 28 Kembe ( _ "Kembe")}
|
||||
{DALLBEN_PEASANT Poacher_Peasant 3 30 Treagh ( _ "Treagh")}
|
||||
# wmllint: recognize Red
|
||||
# wmllint: recognize Kembe
|
||||
|
||||
[unit]
|
||||
type=Footpad_Peasant
|
||||
|
@ -318,6 +320,8 @@
|
|||
|
||||
{DALLBEN_PEASANT Thug_Peasant 10 2 Remald ( _ "Remald")}
|
||||
{DALLBEN_PEASANT Thug_Peasant 8 2 Wolmas ( _ "Wolmas")}
|
||||
# wmllint: recognize Remald
|
||||
# wmllint: recognize Wolmas
|
||||
|
||||
#ifdef EASY
|
||||
{DALLBEN_PEASANT Thug_Peasant 9 4 Jasken ( _ "Jasken")}
|
||||
|
|
|
@ -123,6 +123,8 @@
|
|||
[/recall]
|
||||
{LOYAL_UNIT 1 Outlaw 30 17 Jingo ( _ "Jingo")}
|
||||
{LOYAL_UNIT 1 Outlaw 32 17 Majel ( _ "Majel")}
|
||||
# wmllint: recognize Jingo
|
||||
# wmllint: recognize Majel
|
||||
[/event]
|
||||
|
||||
#
|
||||
|
@ -150,6 +152,7 @@
|
|||
[/message]
|
||||
|
||||
{LOYAL_UNIT 1 Dragoon 11 1 Pitcher ( _ "Pitcher")}
|
||||
# wmllint: recognize Pitcher
|
||||
|
||||
{MOVE_UNIT description=Pitcher 20 14}
|
||||
|
||||
|
|
|
@ -241,6 +241,8 @@
|
|||
message= _ "YES! We did it! We are free!"
|
||||
[/message]
|
||||
|
||||
# wmllint: recognize Un'Yin
|
||||
|
||||
[move_unit_fake]
|
||||
type=Orcish Grunt
|
||||
description="Un'Yin"
|
||||
|
|
|
@ -92,6 +92,7 @@
|
|||
[/event]
|
||||
|
||||
#define TEMPTATION_OF_TALLIN
|
||||
# wmllint: recognize Hamel
|
||||
[message]
|
||||
description=Malifor
|
||||
message= _ "But my my, what do we have here - Tallin."
|
||||
|
|
|
@ -529,6 +529,8 @@
|
|||
[/objectives]
|
||||
[/event]
|
||||
|
||||
# wmllint: recognize Abhai
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
|
@ -1055,6 +1057,7 @@
|
|||
[/message]
|
||||
|
||||
{LOYAL_UNIT (Sea Serpent) (Sea Serpent) ( _ "Sea Serpent") 2 31 5}
|
||||
# wmllint: recognize Sea Serpent
|
||||
|
||||
[message]
|
||||
description=Sea Serpent
|
||||
|
@ -1476,6 +1479,8 @@
|
|||
[/modifications]
|
||||
[/unit]
|
||||
|
||||
# wmllint: recognize Father Marcus
|
||||
|
||||
[message]
|
||||
description=Sister Theta
|
||||
message= _ "Freedom at last. Thank you Lord Tallin."
|
||||
|
|
|
@ -31,6 +31,46 @@
|
|||
|
||||
next_scenario=slave_of_undead
|
||||
|
||||
[side]
|
||||
type=Peasant
|
||||
description=Tallin
|
||||
canrecruit=1
|
||||
side=1
|
||||
controller=human
|
||||
gold=100
|
||||
recruit=Walking Corpse
|
||||
team_name=mob
|
||||
shroud=yes
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
type=Troll
|
||||
description=Franik
|
||||
user_description= _ "Franik"
|
||||
canrecruit=1
|
||||
side=2
|
||||
{GOLD4 20 30 35 40}
|
||||
recruit=Troll Whelp
|
||||
team_name=trolls
|
||||
[ai]
|
||||
recruitment_pattern=fighter
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
type=Troll
|
||||
description=Henie
|
||||
user_description= _ "Henie"
|
||||
canrecruit=1
|
||||
side=3
|
||||
{GOLD4 20 30 35 40}
|
||||
recruit=Troll Whelp
|
||||
team_name=trolls
|
||||
[ai]
|
||||
recruitment_pattern=fighter
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
[event]
|
||||
name=prestart
|
||||
[objectives]
|
||||
|
@ -167,46 +207,6 @@
|
|||
[/kill]
|
||||
[/event]
|
||||
|
||||
[side]
|
||||
type=Peasant
|
||||
description=Tallin
|
||||
canrecruit=1
|
||||
side=1
|
||||
controller=human
|
||||
gold=100
|
||||
recruit=Walking Corpse
|
||||
team_name=mob
|
||||
shroud=yes
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
type=Troll
|
||||
description=Franik
|
||||
user_description= _ "Franik"
|
||||
canrecruit=1
|
||||
side=2
|
||||
{GOLD4 20 30 35 40}
|
||||
recruit=Troll Whelp
|
||||
team_name=trolls
|
||||
[ai]
|
||||
recruitment_pattern=fighter
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
type=Troll
|
||||
description=Henie
|
||||
user_description= _ "Henie"
|
||||
canrecruit=1
|
||||
side=3
|
||||
{GOLD4 20 30 35 40}
|
||||
recruit=Troll Whelp
|
||||
team_name=trolls
|
||||
[ai]
|
||||
recruitment_pattern=fighter
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
[event]
|
||||
name=start
|
||||
|
||||
|
|
|
@ -177,6 +177,70 @@
|
|||
|
||||
map_data="{campaigns/Northern_Rebirth/maps/old_friend.map}"
|
||||
|
||||
[side]
|
||||
type=Peasant
|
||||
description=Tallin
|
||||
user_description=_ "Tallin"
|
||||
canrecruit=1
|
||||
side=1
|
||||
controller=human
|
||||
{GOLD4 450 350 300 250}
|
||||
recruit=Peasant,Woodsman,Thug,Poacher,Spearman,Bowman,Footpad
|
||||
team_name=mob
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
type=Orcish Sovereign
|
||||
description=Rakshas
|
||||
profile=portraits/Rakshas.jpg
|
||||
user_description= _ "Rakshas"
|
||||
canrecruit=1
|
||||
side=2
|
||||
recruit=Orcish Grunt,Orcish Archer,Wolf Rider,Orcish Assassin,Troll Whelp,Orcish Warrior,Orcish Crossbowman,Troll
|
||||
{GOLD4 400 500 600 700}
|
||||
{INCOME4 30 40 50 60}
|
||||
team_name=orcs
|
||||
[ai]
|
||||
aggression=1.0
|
||||
caution=-1.0
|
||||
leader_value=50
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
type=Orcish Warlord
|
||||
description=Drung
|
||||
user_description= _ "Drung"
|
||||
canrecruit=1
|
||||
side=3
|
||||
recruit=Orcish Grunt,Orcish Archer,Wolf Rider,Orcish Assassin,Troll Whelp,Orcish Warrior,Orcish Crossbowman,Troll
|
||||
{GOLD4 400 500 600 700}
|
||||
{INCOME4 30 40 50 60}
|
||||
team_name=orcs
|
||||
[ai]
|
||||
aggression=1.0
|
||||
caution=-1.0
|
||||
leader_value=50
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
type=Orcish Warlord
|
||||
description=Poul
|
||||
user_description= _ "Poul"
|
||||
canrecruit=1
|
||||
side=4
|
||||
recruit=Orcish Grunt,Orcish Archer,Wolf Rider,Orcish Assassin,Troll Whelp,Orcish Warrior,Orcish Crossbowman,Troll
|
||||
{GOLD4 400 500 600 700}
|
||||
{INCOME4 30 40 50 60}
|
||||
team_name=orcs
|
||||
[ai]
|
||||
aggression=1.0
|
||||
caution=-1.0
|
||||
leader_value=50
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
|
@ -293,70 +357,6 @@
|
|||
{CLEAR_VARIABLE typechange}
|
||||
[/event]
|
||||
|
||||
[side]
|
||||
type=Peasant
|
||||
description=Tallin
|
||||
user_description=_ "Tallin"
|
||||
canrecruit=1
|
||||
side=1
|
||||
controller=human
|
||||
{GOLD4 450 350 300 250}
|
||||
recruit=Peasant,Woodsman,Thug,Poacher,Spearman,Bowman,Footpad
|
||||
team_name=mob
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
type=Orcish Sovereign
|
||||
description=Rakshas
|
||||
profile=portraits/Rakshas.jpg
|
||||
user_description= _ "Rakshas"
|
||||
canrecruit=1
|
||||
side=2
|
||||
recruit=Orcish Grunt,Orcish Archer,Wolf Rider,Orcish Assassin,Troll Whelp,Orcish Warrior,Orcish Crossbowman,Troll
|
||||
{GOLD4 400 500 600 700}
|
||||
{INCOME4 30 40 50 60}
|
||||
team_name=orcs
|
||||
[ai]
|
||||
aggression=1.0
|
||||
caution=-1.0
|
||||
leader_value=50
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
type=Orcish Warlord
|
||||
description=Drung
|
||||
user_description= _ "Drung"
|
||||
canrecruit=1
|
||||
side=3
|
||||
recruit=Orcish Grunt,Orcish Archer,Wolf Rider,Orcish Assassin,Troll Whelp,Orcish Warrior,Orcish Crossbowman,Troll
|
||||
{GOLD4 400 500 600 700}
|
||||
{INCOME4 30 40 50 60}
|
||||
team_name=orcs
|
||||
[ai]
|
||||
aggression=1.0
|
||||
caution=-1.0
|
||||
leader_value=50
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
type=Orcish Warlord
|
||||
description=Poul
|
||||
user_description= _ "Poul"
|
||||
canrecruit=1
|
||||
side=4
|
||||
recruit=Orcish Grunt,Orcish Archer,Wolf Rider,Orcish Assassin,Troll Whelp,Orcish Warrior,Orcish Crossbowman,Troll
|
||||
{GOLD4 400 500 600 700}
|
||||
{INCOME4 30 40 50 60}
|
||||
team_name=orcs
|
||||
[ai]
|
||||
aggression=1.0
|
||||
caution=-1.0
|
||||
leader_value=50
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
[event]
|
||||
name=start
|
||||
|
||||
|
|
|
@ -553,6 +553,7 @@
|
|||
{LOYAL_UNIT (Giant Spider) (Giant Spider) ( _ "Giant Spider") 2 84 72}
|
||||
{LOYAL_UNIT (Giant Spider) (Giant Spider) ( _ "Giant Spider") 2 78 70}
|
||||
{LOYAL_UNIT (Giant Spider) (Giant Spider) ( _ "Giant Spider") 2 76 68}
|
||||
# wmllint: recognize Giant Spider
|
||||
|
||||
[message]
|
||||
description=Giant Spider
|
||||
|
@ -1085,6 +1086,8 @@
|
|||
[/if]
|
||||
[/event]
|
||||
|
||||
# wmllint: recognize Tentacle
|
||||
|
||||
[event]
|
||||
name=die
|
||||
first_time_only=no
|
||||
|
|
|
@ -264,6 +264,10 @@
|
|||
controller=human
|
||||
[/side]
|
||||
|
||||
# wmllint: recognize Ro'Arthian
|
||||
# wmllint: recognize Ro'Sothian
|
||||
# wmllint: recognize Anita
|
||||
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
|
|
|
@ -140,6 +140,8 @@
|
|||
controller=human
|
||||
[/side]
|
||||
|
||||
# wmllint: recognize Ro'Arthian
|
||||
|
||||
[event]
|
||||
name=start
|
||||
|
||||
|
|
|
@ -224,6 +224,7 @@
|
|||
{VARIABLE changealanin.y 5}
|
||||
[unstore_unit]
|
||||
variable=changealanin
|
||||
# wmllint: recognize Alanin
|
||||
[/unstore_unit]
|
||||
{MOVE_UNIT description=Alanin 6 9}
|
||||
[clear_variable]
|
||||
|
|
|
@ -374,7 +374,7 @@
|
|||
y=16,28
|
||||
[/move_unit_fake]
|
||||
{RANDOM_TRAIT_UNIT (
|
||||
description=Kawn
|
||||
description=Kawn # wmllint: ignore
|
||||
user_description= _ "Kawn"
|
||||
type=Gryphon Rider
|
||||
x,y=5,28
|
||||
|
|
|
@ -237,13 +237,13 @@
|
|||
type=Dwarvish Runesmith
|
||||
x,y=10,8
|
||||
side=1
|
||||
description=Kinan
|
||||
description=Kinan # wmllint: ignore
|
||||
user_description= _ "Kinan")}
|
||||
{RANDOM_TRAIT_UNIT (
|
||||
type=Dwarvish Runesmith
|
||||
x,y=12,6
|
||||
side=1
|
||||
description=Rynan
|
||||
description=Rynan # wmllint: ignore
|
||||
user_description= _ "Rynan")}
|
||||
[message]
|
||||
speaker=narrator
|
||||
|
|
|
@ -37,10 +37,14 @@
|
|||
|
||||
{SOF_DEATHS}
|
||||
|
||||
# wmllint: recognize Rugnur
|
||||
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
# Alanin and Krawg are taking a break
|
||||
# wmllint: recognize Alanin
|
||||
# wmllint: recognize Krawg
|
||||
|
||||
[store_unit]
|
||||
[filter]
|
||||
|
|
|
@ -322,7 +322,7 @@
|
|||
message= _ "I suppose..."
|
||||
[/message]
|
||||
[message]
|
||||
description=Glaenar
|
||||
description=Gaenlar
|
||||
message= _ "Come out, dwarves, and surrender! Or die in that cave, your choice."
|
||||
[/message]
|
||||
[/event]
|
||||
|
|
|
@ -210,13 +210,13 @@
|
|||
[/message]
|
||||
{RANDOM_TRAIT_UNIT (
|
||||
type=Spearman
|
||||
description=Rolin
|
||||
description=Rolin # wmllint: ignore
|
||||
user_description= _ "Rolin"
|
||||
x,y=$x1,$y1
|
||||
side=1
|
||||
upkeep=loyal)}
|
||||
[message]
|
||||
description=Rolin
|
||||
description=Rolin # wmllint: ignore
|
||||
message= _ "We will certainly help any warrior of Wesnoth who needs our help!"
|
||||
[/message]
|
||||
[/event]
|
||||
|
@ -256,13 +256,13 @@
|
|||
[/filter]
|
||||
{RANDOM_TRAIT_UNIT (
|
||||
type=Lieutenant
|
||||
description=Hadlin
|
||||
description=Hadlin # wmllint: ignore
|
||||
user_description= _ "Hadlin"
|
||||
x,y=10,63
|
||||
side=1
|
||||
upkeep=loyal)}
|
||||
[message]
|
||||
description=Hadlin
|
||||
description=Hadlin # wmllint: ignore
|
||||
message= _ "Who goes there?"
|
||||
[/message]
|
||||
[message]
|
||||
|
@ -270,7 +270,7 @@
|
|||
message= _ "I'm a dragoon, with Haldric II's personal bodyguard. I was sent on a mission in the northlands, and now elvish horsemen are chasing me. I barely evaded them."
|
||||
[/message]
|
||||
[message]
|
||||
description=Hadlin
|
||||
description=Hadlin # wmllint: ignore
|
||||
message= _ "I see. Well, come on in. I doubt they would be able to capture this fort, even if they did want to start a war, which I doubt."
|
||||
[/message]
|
||||
[store_unit]
|
||||
|
|
|
@ -174,6 +174,11 @@
|
|||
{HEROMACRO Baglur}
|
||||
{HEROMACRO Krawg}
|
||||
{HEROMACRO Thursagan}
|
||||
# wmllint: recognize Rugnor
|
||||
# wmllint: recognize Baglur
|
||||
# wmllint: recognize Krawg
|
||||
# wmllint: recognize Thursagan
|
||||
|
||||
{ROLEMACRO 1}
|
||||
{ROLEMACRO 2}
|
||||
{ROLEMACRO 3}
|
||||
|
@ -197,6 +202,9 @@
|
|||
{RECALLMACRO Baglur}
|
||||
{RECALLMACRO Krawg}
|
||||
{RECALLMACRO Thursagan}
|
||||
# wmllint: recognize Baglur
|
||||
# wmllint: recognize Krawg
|
||||
# wmllint: recognize Thursagan
|
||||
{RECALLMACRO 1}
|
||||
{RECALLMACRO 2}
|
||||
{RECALLMACRO 3}
|
||||
|
|
|
@ -102,6 +102,8 @@
|
|||
[/unit]
|
||||
[/event]
|
||||
|
||||
# wmllint: recognize Alanin
|
||||
|
||||
[event]
|
||||
name=start
|
||||
#dialogue starts
|
||||
|
@ -212,6 +214,7 @@
|
|||
[/set_variable]
|
||||
[unstore_unit]
|
||||
variable=krawg
|
||||
# wmllint: recognize Krawg
|
||||
[/unstore_unit]
|
||||
#/MUF
|
||||
[message]
|
||||
|
|
|
@ -282,6 +282,9 @@
|
|||
{ORCISH_SHAMAN 22 14 Pirk}
|
||||
{OLD_ORCISH_SHAMAN 22 15 Gork}
|
||||
{NOVICE_ORCISH_SHAMAN 21 15 Vraurk}
|
||||
# wmllint: recognize Pirk
|
||||
# wmllint: recognize Gork
|
||||
# wmllint: recognize Vraurk
|
||||
|
||||
[item]
|
||||
x=7
|
||||
|
|
|
@ -178,6 +178,10 @@
|
|||
{ORCISH_SHAMAN 26 1 Pirk}
|
||||
{OLD_ORCISH_SHAMAN 27 1 Gork}
|
||||
{NOVICE_ORCISH_SHAMAN 28 1 Vraurk}
|
||||
# wmllint: recognize Pirk
|
||||
# wmllint: recognize Gork
|
||||
# wmllint: recognize Vraurk
|
||||
|
||||
[recall]
|
||||
description=Grüü
|
||||
[/recall]
|
||||
|
|
|
@ -148,6 +148,9 @@
|
|||
{OLD_ORCISH_SHAMAN 32 30 Fabstep}
|
||||
{OLD_ORCISH_SHAMAN 32 30 Klebar}
|
||||
{OLD_ORCISH_SHAMAN 32 30 Echarp}
|
||||
# wmllint: recognize Fabstep
|
||||
# wmllint: recognize Klebar
|
||||
# wmllint: recognize Echarp
|
||||
[message]
|
||||
description="Echarp"
|
||||
message= _ "What is this? Are you mad!? Humans are to besiege our fortress at Prestim and you are fighting each other!?"
|
||||
|
@ -220,6 +223,9 @@
|
|||
{OLD_ORCISH_SHAMAN 32 30 Fabstep}
|
||||
{OLD_ORCISH_SHAMAN 32 30 Klebar}
|
||||
{OLD_ORCISH_SHAMAN 32 30 Echarp}
|
||||
# wmllint: recognize Fabstep
|
||||
# wmllint: recognize Klebar
|
||||
# wmllint: recognize Echarp
|
||||
[message]
|
||||
description="Echarp"
|
||||
message= _ "What is this? Are you mad!? Humans are to besiege our fortress at Prestim and you are fighting each other!?"
|
||||
|
|
|
@ -271,6 +271,7 @@
|
|||
y=4
|
||||
[/unit]
|
||||
{RECALL Grüü}
|
||||
# wmllint: recognize Grüü
|
||||
{WATCH_TOWER 30 5 (Eastern Tower)}
|
||||
{WATCH_TOWER 10 4 (Western Tower)}
|
||||
{WATCH_TOWER 19 5 (Southern Tower)}
|
||||
|
|
|
@ -160,6 +160,8 @@
|
|||
name=prestart
|
||||
{RECALL Grüü}
|
||||
{RECALL Inarix}
|
||||
# wmllint: recognize Grüü
|
||||
# wmllint: recognize Inarix
|
||||
[role]
|
||||
type=Orcish Warlord,Troll Warrior,Orcish Warrior,Saurian Ambusher,Troll,Orcish Grunt,Saurian Skirmisher,Troll Whelp
|
||||
role=cannonfodder
|
||||
|
|
|
@ -214,6 +214,8 @@
|
|||
[/unstore_unit]
|
||||
{RECALL Grüü}
|
||||
{RECALL Inarix}
|
||||
# wmllint: recognize Grüü
|
||||
# wmllint: recognize Inarix
|
||||
|
||||
[message]
|
||||
description=Mkel
|
||||
|
|
|
@ -197,6 +197,7 @@
|
|||
|
||||
{RECALL Grüü}
|
||||
{RECALL Inarix}
|
||||
# wmllint: recognize Grüü
|
||||
|
||||
{HUMAN GUARD 19 25}
|
||||
{HUMAN GUARD 13 25}
|
||||
|
|
|
@ -157,6 +157,8 @@
|
|||
|
||||
{RECALL Grüü}
|
||||
{RECALL Inarix}
|
||||
# wmllint: recognize Grüü
|
||||
# wmllint: recognize Inarix
|
||||
|
||||
{HUMAN GUARD 19 25}
|
||||
{HUMAN GUARD 13 25}
|
||||
|
|
|
@ -153,7 +153,7 @@
|
|||
|
||||
[if]
|
||||
[have_unit]
|
||||
description=_"Master Perrin"
|
||||
description="Master Perrin"
|
||||
[/have_unit]
|
||||
|
||||
[then]
|
||||
|
|
|
@ -157,72 +157,72 @@
|
|||
{CONDITIONAL_MAGE_RECRUITING}
|
||||
|
||||
[message]
|
||||
description= _ "Aiglondur"
|
||||
description="Aiglondur"
|
||||
message=_"(Psst, Angarthing...Karrag and those dwarves on the dais, they're all masked.)"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message=_"(I see it. There is something very wrong here.)"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Karrag"
|
||||
description="Karrag"
|
||||
message=_" Hail, fellow dwarves. All Kal Kartha thanks you for your timely rescue."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Aiglondur"
|
||||
description="Aiglondur"
|
||||
message=_"We are from Knalga; your clans are kin to ours of old. We but did our duty to kin."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Karrag"
|
||||
description="Karrag"
|
||||
message=_"All dwarves are kin, and must prevail against orcs and humans and other dirtgrubbers. You can be part of the fist that smites them."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message=_"We did not come to smite anyone, but to re-open contact and trade."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Karrag"
|
||||
description="Karrag"
|
||||
message=_"Trade? Your destruction of the besieging orcs was a far nobler act than trade. There can be more such victories. And there will be by the power of our ancient heirloom, the Hammer of Thursagan. "
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message=_"It is remembered in Knalga that Kal Kartha holds the Hammer."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Karrag"
|
||||
description="Karrag"
|
||||
message=_"Yes! And the Hammer holds the soul of the dwarves, the true people. Together, we can march to greater victories! Will you of Knalga join me?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message=_"On one condition. You must take off that mask and show your true face. I am a witness."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Karrag"
|
||||
description="Karrag"
|
||||
message=_"You...do not wish to see what is beneath this mask. I was terribly wounded in an orcish attack. Disfigured."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message=_"But the Law must see. A dwarf must put his name and his face behind his deeds. I am a witness."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Karrag"
|
||||
description="Karrag"
|
||||
message=_"Impertinent fool! It is not for you to dictate to a lord in his own holding, much less one who holds the very soul of the dwarves in his hand."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message=_"The Law speaks. Against him with the eyes to see, no deception can hold. I AM A WITNESS!"
|
||||
[/message]
|
||||
|
||||
|
@ -255,17 +255,17 @@
|
|||
[/redraw]
|
||||
|
||||
[message]
|
||||
description= _ "Dulcatulos"
|
||||
description="Dulcatulos"
|
||||
message=_"No...no...it is horrible! My lord, how did you come to this?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Karrag"
|
||||
description="Karrag"
|
||||
message=_"I lingered for weeks in agony. Only my hatred and the runelore of old sustained me, until I became as I am. I will have revenge; I will destroy the orcs, and the humans, and the elves, and all but the true people!"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Karrag"
|
||||
description="Karrag"
|
||||
message=_"And you have sealed your doom. Hundreds of dirtgrubbers have already died to weave a web of blood around the Hammer and the soul of the dwarves. You and your new friends will be the the last sacrifices I require to bind the entire dwarvish race to my purpose. TAKE THEM!"
|
||||
[/message]
|
||||
|
||||
|
|
|
@ -281,32 +281,32 @@
|
|||
{CONDITIONAL_MAGE_RECRUITING}
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message=_"This place smells of death."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Dulcatulos"
|
||||
description="Dulcatulos"
|
||||
message=_"It's been...it's been years since I've been down here. Only Karrag and his personal followers used this level. Why did I never wonder about that before?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message=_"Karrag's will, and his dark magic. I think he has been casting glamours on all of you ever since he passed over."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Aiglondur"
|
||||
description="Aiglondur"
|
||||
message=_"Where *is* Karrag? We can't have been more than seconds behind him."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Dulcatulos"
|
||||
description="Dulcatulos"
|
||||
message=_"This is the Grand Gallery. There are rows of small chambers along its sides; he could have slipped into any of them."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Aiglondur"
|
||||
description="Aiglondur"
|
||||
message=_"More likely he has cloaked himself, thinking to run ahead to gather his followers. He could be within a spear-cast of us now and we wouldn't know it in this gloom."
|
||||
[/message]
|
||||
|
||||
|
@ -315,12 +315,12 @@
|
|||
[/sound]
|
||||
|
||||
[message]
|
||||
description= _ "Dulcatulos"
|
||||
description="Dulcatulos"
|
||||
message=_"Those are war-drums!"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Aiglondur"
|
||||
description="Aiglondur"
|
||||
message=_"Aye. Karrag, calling his troops to battle. Only the Dark Gods know what hellspawn the lich will summon. AXES UP!"
|
||||
[/message]
|
||||
|
||||
|
@ -392,7 +392,7 @@
|
|||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message= _ "I sense these bindings to be the work of common sorcery, not the power of the Hammer. Usually to each such locking spell there is some sort of key. If we can but find the key, we will able to open these doors."
|
||||
[/message]
|
||||
[/then]
|
||||
|
@ -475,17 +475,17 @@
|
|||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message= _ "I believe that will be the key-spell for that sealed door."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message= _ " (reads) Kannin a'kana du'masi a'forigln de'amp."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message= _ "Now try the door again, it should open."
|
||||
[/message]
|
||||
|
||||
|
@ -848,7 +848,7 @@
|
|||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message= _ "It seems to be some sort of a teleportation device. What's more, the bindings that are preventing it from working seem to be the same ones that bar those sealed gates."
|
||||
[/message]
|
||||
[/then]
|
||||
|
@ -894,7 +894,7 @@
|
|||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message= _ "It seems to be some sort of a teleportation device. What's more, the bindings that are preventing it from working seem to be the same ones that bar those sealed gates."
|
||||
[/message]
|
||||
[/then]
|
||||
|
|
|
@ -98,9 +98,10 @@
|
|||
{KAL_KARTHAN 10 11 "Dwarvish Lord" Glamdrsol}
|
||||
{KAL_KARTHAN 10 12 "Dwarvish Steelclad" Pelaithil}
|
||||
{KAL_KARTHAN 10 13 "Dwarvish Fighter" Alaithus}
|
||||
#wmllint: recognize Narithil
|
||||
|
||||
[message]
|
||||
description= _ "Angarthing"
|
||||
description="Angarthing"
|
||||
message=_" Dwarves of Kal Kartha, I speak the Law. Your house is cast down; you have harbored a great evil. Who now will take the burden of cleansing this holding of its taint?"
|
||||
[/message]
|
||||
|
||||
|
@ -111,7 +112,7 @@
|
|||
[/message]
|
||||
|
||||
[message]
|
||||
description= _ "Dulcatulos"
|
||||
description="Dulcatulos"
|
||||
message=_"Loremaster...none of us is fit to take up the lordship. Karrag fooled us all, made us the tools of his foul scheme"
|
||||
[/message]
|
||||
|
||||
|
@ -134,7 +135,7 @@
|
|||
[unit]
|
||||
type=Lancer
|
||||
description=Pelias
|
||||
user_description= _ "Pelias"
|
||||
user_description="Pelias"
|
||||
side=2
|
||||
x,y=12,11
|
||||
[/unit]
|
||||
|
|
|
@ -61,6 +61,7 @@
|
|||
name=prestart
|
||||
|
||||
{HERO (Warrior King) (King Eldaric IV) ( _ "King Eldaric IV") 1 28 15 "portraits/eldaric.png"}
|
||||
# wmllint: recognize King Eldaric IV
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
|
|
|
@ -178,6 +178,8 @@
|
|||
|
||||
{FULL_HEAL (description=Wesfolk Leader)}
|
||||
|
||||
# wmllint: recognize Wesfolk Leader
|
||||
|
||||
[message]
|
||||
speaker=narrator
|
||||
message= _ "Summer passes into fall, and King Eldaric fortifies his frontiers. It is not long before the first orcish scouts are spotted. War has come to the valley."
|
||||
|
@ -321,6 +323,7 @@
|
|||
[/unstore_unit]
|
||||
|
||||
{MAKE_HERO (Lady Outlaw)}
|
||||
# wmliint: recognize Lady Outlaw
|
||||
|
||||
{FULL_HEAL (description=Lady Outlaw)}
|
||||
|
||||
|
@ -357,6 +360,7 @@
|
|||
[/unstore_unit]
|
||||
|
||||
{MAKE_HERO (Lady Outlaw)}
|
||||
# wmllint: recognize Lady Outlaw
|
||||
|
||||
{FULL_HEAL (description=Lady Outlaw)}
|
||||
|
||||
|
|
|
@ -336,7 +336,6 @@ SW - The Midlands."
|
|||
amount=60
|
||||
[/gold]
|
||||
{LOYAL_UNIT (Orcish Slayer) (Hashnak) ( _ "Hashnak") 3 25 40}
|
||||
|
||||
#else
|
||||
[gold]
|
||||
side=3
|
||||
|
@ -348,6 +347,7 @@ SW - The Midlands."
|
|||
{LOYAL_UNIT (Orcish Assassin) (Vigdish) ( _ "Vigdish") 3 26 40}
|
||||
|
||||
#endif
|
||||
# wmllint: recognize Hashnak
|
||||
[message]
|
||||
description=Tan-NauVong
|
||||
message= _ "Come and get it!"
|
||||
|
|
|
@ -248,6 +248,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{LOYAL_UNIT (Goblin Knight) (Grilg) ( _ "Grilg") 3 11 33}
|
||||
# wmllint: recognize Grilg
|
||||
|
||||
[message]
|
||||
description=Grilg
|
||||
|
@ -276,6 +277,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{LOYAL_UNIT (Orcish Slayer) (Vrogar) ( _ "Vrogar") 4 36 33}
|
||||
# wmllint: recognize Vrogar
|
||||
|
||||
[message]
|
||||
description=Vrogar
|
||||
|
|
|
@ -175,6 +175,7 @@
|
|||
[/unstore_unit]
|
||||
|
||||
{FULL_HEAL description="Lady Outlaw"}
|
||||
# wmllint: recognize Lady Outlaw
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
|
@ -321,6 +322,7 @@
|
|||
[/unstore_unit]
|
||||
|
||||
{FULL_HEAL description="Lady Jessica"}
|
||||
# wmllint: recognize Lady Jessica
|
||||
|
||||
{CLEAR_VARIABLE lady_store}
|
||||
|
||||
|
|
|
@ -211,6 +211,7 @@
|
|||
{LOYAL_UNIT (Peasant) (Angry Farmer) ( _ "Angry Farmer") 2 26 18}
|
||||
{LOYAL_UNIT (Peasant) (Angry Farmer) ( _ "Angry Farmer") 2 28 19}
|
||||
{LOYAL_UNIT (Peasant) (Angry Farmer) ( _ "Angry Farmer") 2 29 22}
|
||||
# wmllint: recognize Angry Farmer
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
|
|
|
@ -544,6 +544,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{LOYAL_UNIT (Yeti) (Rarlg) ( _ "Rarlg") 4 12 11}
|
||||
# wmllint: recognize Rarlg
|
||||
|
||||
[message]
|
||||
description=Rarlg
|
||||
|
@ -571,6 +572,7 @@
|
|||
[/scroll_to_unit]
|
||||
|
||||
{LOYAL_UNIT (Yeti) (Raul-Rarlg) ( _ "Raul-Rarlg") 4 15 11}
|
||||
# wmllint: recognize Raul-Rarg
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
|
|
@ -208,6 +208,7 @@
|
|||
{GUARD_UNIT (Swordsman) (Southbay Guard 2) ( _ "Southbay Guard") 2 21 30}
|
||||
{GUARD_UNIT (Swordsman) (Southbay Guard 3) ( _ "Southbay Guard") 2 28 24}
|
||||
{GUARD_UNIT (Swordsman) (Southbay Guard 4) ( _ "Southbay Guard") 2 27 22}
|
||||
# wmllint: recognize Southbay Guard 1
|
||||
|
||||
[object]
|
||||
description= _ "The Ruby of Fire was imbued with magic in the distant west, and can be used to scorch enemies into submission."
|
||||
|
@ -305,7 +306,7 @@
|
|||
message= _ "Humph. Fool of a boy's just gonna burn us all up. Humans, always playing at being wizards."
|
||||
[/message]
|
||||
[message]
|
||||
description=Southbay Guard
|
||||
description=Southbay Guard 1
|
||||
message= _ "Orcs sighted! They've seized the frontier! To arms! To arms!"
|
||||
[/message]
|
||||
[message]
|
||||
|
@ -332,6 +333,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{HERO (Merman Warrior) (Lord Typhon) ( _ "Lord Typhon") 1 4 19 ("portraits/typhon.png")}
|
||||
# wmllint: recognize Lord Typhon
|
||||
|
||||
[message]
|
||||
description=Lord Typhon
|
||||
|
@ -426,6 +428,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{UNDEAD_INTEL (Ancient Lich) (Lich-Lord Jevyan) ( _ "Lich-Lord Jevyan") "portraits/jevyan.png" 5 42 24}
|
||||
# wmllint: recognize Lich-Lord Jevyan
|
||||
|
||||
[message]
|
||||
description=Lich-Lord Jevyan
|
||||
|
@ -437,6 +440,7 @@
|
|||
[/message]
|
||||
|
||||
{UNDEAD_INTEL (Death Knight) (Fool Prince) ( _ "Fool Prince") "unit_image" 5 43 24}
|
||||
# wmllint: recognize Fool Prince
|
||||
|
||||
[message]
|
||||
description=Lich-Lord Jevyan
|
||||
|
|
|
@ -230,6 +230,7 @@
|
|||
{VARIABLE_OP yy1 random 16..19}
|
||||
|
||||
{LOYAL_UNIT (Sea Serpent) (Bitey the Serpent) ( _ "Bitey the Serpent") 4 $xx1 $yy1}
|
||||
# wmllint: recognize Bitey The Sepent
|
||||
|
||||
[message]
|
||||
speaker=unit
|
||||
|
@ -276,6 +277,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{UNDEAD_INTEL (Blood Bat) (Familiar) ( _ "Familiar") "portraits/familiar.png" 4 4 2}
|
||||
# wmllint: recognize Familiar
|
||||
|
||||
[message]
|
||||
description=Familiar
|
||||
|
|
|
@ -207,6 +207,7 @@
|
|||
{VARIABLE_OP yy1 random 23..30}
|
||||
|
||||
{LOYAL_UNIT (Sea Serpent) (Chompey the Serpent) ( _ "Chompey the Serpent") 2 $xx1 $yy1}
|
||||
# wmllint: recognize Chompey the Serpent
|
||||
|
||||
[message]
|
||||
speaker=unit
|
||||
|
@ -235,6 +236,7 @@
|
|||
{VARIABLE_OP yy1 random 7..8}
|
||||
|
||||
{LOYAL_UNIT (Sea Serpent) (Scaly the Serpent) ( _ "Scaly the Serpent") 2 $xx1 $yy1}
|
||||
# wmllint: recognize Scaly the Serpent
|
||||
|
||||
[message]
|
||||
speaker=unit
|
||||
|
@ -263,6 +265,7 @@
|
|||
{VARIABLE_OP yy1 random 12..13}
|
||||
|
||||
{LOYAL_UNIT (Sea Serpent) (Toothey the Serpent) ( _ "Toothey the Serpent") 2 $xx1 $yy1}
|
||||
# wmllint: recognize Toothey the Serpent
|
||||
|
||||
[message]
|
||||
speaker=unit
|
||||
|
@ -304,6 +307,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{UNDEAD_INTEL (Blood Bat) (Familiar) ( _ "Familiar") "portraits/familiar.png" 4 3 26}
|
||||
# wmllint: recognize Familiar
|
||||
|
||||
[message]
|
||||
description=Familiar
|
||||
|
|
|
@ -231,6 +231,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{HERO (Elvish Shyde) (Lord Dionli) ( _ "Lord Dionli") 2 28 7 ("portraits/dionli.png")}
|
||||
# wmllint: recognize Lord Dionli
|
||||
|
||||
[message]
|
||||
description=Lord Dionli
|
||||
|
|
|
@ -156,6 +156,7 @@
|
|||
[/teleport]
|
||||
|
||||
{HERO (Elvish Marshal) ("Lord El'Isomithir") ( _ "Lord El'Isomithir") 4 13 14 ("portraits/isomithir.png")}
|
||||
# wmllint: recognize Lord El'Isomithir
|
||||
[/event]
|
||||
|
||||
#define DRAGON
|
||||
|
@ -626,6 +627,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{HERO (Lieutenant) (Commander Aethyr) ( _ "Commander Aethyr") 1 19 24 ("portraits/aethyr.png")}
|
||||
# wmllint: recognize Commander Aethyr
|
||||
|
||||
[message]
|
||||
description=Lord Logalmier
|
||||
|
|
|
@ -344,6 +344,7 @@
|
|||
[/variable]
|
||||
[then]
|
||||
{LOYAL_UNIT (Fire Dragon) ("Shek'kahan") ( _ "Shek'kahan") 5 20 27}
|
||||
# wmllint: recognize Shek'kahan
|
||||
|
||||
[set_variable]
|
||||
name=dragon_awake
|
||||
|
|
|
@ -243,6 +243,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{LOYAL_UNIT (Naga Warrior) (Riaa) ( _ "Riaa") 2 6 15}
|
||||
# wmllint: recognize Riaa
|
||||
|
||||
[message]
|
||||
description=Riaa
|
||||
|
|
|
@ -139,6 +139,7 @@
|
|||
|
||||
#define TEMP_QUEEN X Y
|
||||
[event]
|
||||
# wmllint: recognize Lady Jessica
|
||||
name=moveto
|
||||
[filter]
|
||||
side=1
|
||||
|
@ -151,6 +152,7 @@
|
|||
[/message]
|
||||
|
||||
{UNDEAD_INTEL (Vampire Lady) (Midnight Queen) ( _ "Midnight Queen") "unit_image" 2 ({X}) ({Y})}
|
||||
# wmllint: recognize Midnight Queen
|
||||
|
||||
{UNDEAD_UNIT (Blood Bat) 3 ({X}) ({Y})}
|
||||
{UNDEAD_UNIT (Blood Bat) 2 ({X}) ({Y})}
|
||||
|
|
|
@ -78,6 +78,7 @@
|
|||
[/hide_unit]
|
||||
|
||||
{HERO (Elvish Marshal) (Lord El'Isomithir) ( _ "Lord El'Isomithir") 4 13 14 ("portraits/isomithir.png")}
|
||||
# wmllint: recognize Lord El'Isomithir
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -92,6 +93,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{HERO (Outlaw Queen) (Jessica in Hiding) ( _ "Jessica in Hiding") 4 19 16 "portraits/jessica.png"}
|
||||
# wmllint: recognize Jessica in Hiding
|
||||
|
||||
[scroll_to_unit]
|
||||
description=Jessica in Hiding
|
||||
|
|
|
@ -350,6 +350,7 @@
|
|||
[/filter_second]
|
||||
|
||||
{UNDEAD_INTEL (Banebow) (Rabbin) ( _ "Rabbin") "unit_image" 2 1 28}
|
||||
# wmllint: recognize Rabbin
|
||||
|
||||
[message]
|
||||
description=Rabbin
|
||||
|
@ -371,6 +372,7 @@
|
|||
[/filter_second]
|
||||
|
||||
{UNDEAD_INTEL (Draug) (General Kafka) ( _ "General Kafka") "unit_image" 3 35 19}
|
||||
# wmllint: recognize General Kafka
|
||||
|
||||
[message]
|
||||
description=General Kafka
|
||||
|
|
|
@ -273,6 +273,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{UNDEAD_INTEL (Blood Bat) (Familiar) ( _ "Familiar") "portraits/familiar.png" 2 28 2}
|
||||
# wmllint: recognize Familiar
|
||||
|
||||
[move_unit_fake]
|
||||
type=Ancient Lich
|
||||
|
@ -282,6 +283,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{UNDEAD_INTEL (Ancient Lich) (Lich-Lord Jevyan) ( _ "Lich-Lord Jevyan") "portraits/jevyan.png" 2 25 2}
|
||||
# wmllint: recognize Lich-Lord Jevyan
|
||||
|
||||
[message]
|
||||
description=Lich-Lord Jevyan
|
||||
|
@ -408,6 +410,7 @@
|
|||
[/unstore_unit]
|
||||
|
||||
{CLEAR_VARIABLE jessica_store}
|
||||
# wmllint: recognize Lady Jessica
|
||||
|
||||
[message]
|
||||
description=Lady Jessica
|
||||
|
@ -465,6 +468,7 @@
|
|||
{LOYAL_UNIT (Cuttle Fish) (Cuttle Fish) ( _ "Cuttle Fish") 3 11 18}
|
||||
{LOYAL_UNIT (Cuttle Fish) (Cuttle Fish) ( _ "Cuttle Fish") 3 12 16}
|
||||
#endif
|
||||
# wmllint: recognize Cuttle Fish
|
||||
[message]
|
||||
description=Cuttle Fish
|
||||
message= _ "Slurp, click, click, click!"
|
||||
|
@ -482,6 +486,7 @@
|
|||
x=25-40
|
||||
y=13-18
|
||||
[/filter]
|
||||
# wmllint: recognize Flixta
|
||||
{LOYAL_UNIT (Saurian Flanker) (Flixta) ( _ "Flixta") 4 34 15}
|
||||
{LOYAL_UNIT (Saurian Oracle) ("Bzz'Kza") ( _ "Bzz'Kza") 4 34 16}
|
||||
{LOYAL_UNIT (Saurian Soothsayer) (Tirasch) ( _ "Tirasch") 4 33 16}
|
||||
|
|
|
@ -265,6 +265,7 @@
|
|||
#[/remove_shroud]
|
||||
|
||||
{UNDEAD_INTEL (Blood Bat) (Familiar) ( _ "Familiar") "portraits/familiar.png" 2 40 39}
|
||||
# wmllint: recognize Familiar
|
||||
|
||||
[set_variable]
|
||||
name=num_orcs_alive
|
||||
|
@ -1013,6 +1014,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{LOYAL_UNIT (Naga Warrior) (Abraxas) ( _ "Abraxas") 2 6 32}
|
||||
# wmllint: recognize Abraxas
|
||||
|
||||
[scroll_to_unit]
|
||||
description=Abraxas
|
||||
|
|
|
@ -92,6 +92,9 @@
|
|||
{SG_GUARD (Naga Warrior) (Lesssh) (_"Lesssh") 2 13 7}
|
||||
#endif
|
||||
[/side]
|
||||
# wmllint: recognize Queen Xeila
|
||||
# wmllint: recognize Kramak
|
||||
# wmllint: recognize Abdur
|
||||
|
||||
#prestart
|
||||
|
||||
|
@ -100,6 +103,10 @@
|
|||
|
||||
# Store away Deoran, his human troops, Ethiliel and her bodyguards, so
|
||||
# that only Gerrick and the rest of the elves remain.
|
||||
# wmllint: recognize Ethiliel
|
||||
# wmllint: recognize Minister Hylas
|
||||
# wmllint: recognize Elvish Bodyguard
|
||||
# wmllint: recognize Sir Gerrick
|
||||
|
||||
[store_unit]
|
||||
[filter]
|
||||
|
|
|
@ -908,6 +908,8 @@
|
|||
# first stable encounter
|
||||
{VARIABLE grasslands_dialogue 2}
|
||||
{RANDOM_TRAIT_UNIT 1 "Desert Scout" $x1 $y1 "Naru" ( _ "Naru") ()}
|
||||
# wmllint: recognize Naru
|
||||
|
||||
[message]
|
||||
description=Naru
|
||||
message= _ "Is it safe to come out? I was so scared."
|
||||
|
@ -936,6 +938,7 @@
|
|||
message= _ "Hey Nisa, the rocks have stopped falling. You can come out now!"
|
||||
[/message]
|
||||
{RANDOM_TRAIT_UNIT 1 "Desert Scout" 43 31 "Nisa" ( _ "Nisa") (gender="female")}
|
||||
# wmllint: recognize Nisa
|
||||
[message]
|
||||
description=Nisa
|
||||
message= _ "Oh, thank Eloh, I thought they would never stop."
|
||||
|
@ -1189,6 +1192,7 @@
|
|||
{RANDOM_TRAIT_UNIT 1 "Desert Fighter" 29 1 "Narn" ( _ "Narn") ()}
|
||||
{RANDOM_TRAIT_UNIT 1 "Desert Scout" 27 2 "Jokli" ( _ "Jokli") ()}
|
||||
{RANDOM_TRAIT_UNIT 1 "Desert Archer" 28 1 "Lyia" ( _ "Lyia") (gender="female")}
|
||||
# wmllint: recognize Pythos
|
||||
|
||||
[message]
|
||||
description=Pythos
|
||||
|
|
|
@ -730,6 +730,7 @@
|
|||
[/if]
|
||||
|
||||
#!***Set scorpion death event when needed only***
|
||||
# wmllint: recognize Scorpion
|
||||
|
||||
[event]
|
||||
name=die
|
||||
|
@ -1372,6 +1373,7 @@
|
|||
{PLACE_UNITS_RANDOMLY $archers 4 "Skeleton Archer" "Undead Raider" ( _ "Undead Raider") (role="ElyssaUndead")}
|
||||
{PLACE_UNITS_RANDOMLY $revenants 4 "Revenant" "Undead Raider" ( _ "Undead Raider") (role="ElyssaUndead")}
|
||||
{PLACE_UNITS_RANDOMLY $shooters 4 "Bone Shooter" "Undead Raider" ( _ "Undead Raider") (role="ElyssaUndead")}
|
||||
# wmllint: recognize Go'hag
|
||||
|
||||
{CLEAR_VARIABLE skeletons}
|
||||
{CLEAR_VARIABLE archers}
|
||||
|
@ -1391,14 +1393,14 @@
|
|||
#ifdef HARD
|
||||
|
||||
[message]
|
||||
description=Go'hag
|
||||
description="Go'hag"
|
||||
message= _ "You have defied our master for the last time. Now you shall die! And I shall personally make it slow and painful, to thank you for that scorching you gave me. "
|
||||
[/message]
|
||||
|
||||
#else
|
||||
|
||||
[message]
|
||||
description=Go'hag
|
||||
description="Go'hag"
|
||||
message= _ "You have defied our master for the last time. Now you shall die!"
|
||||
[/message]
|
||||
|
||||
|
@ -1620,6 +1622,7 @@
|
|||
#endif
|
||||
{PLACE_UNITS_RANDOMLY $ogres 3 "Ogre" "Ogre Nomad" ( _ "Ogre Nomad") (random_traits="no")}
|
||||
{PLACE_UNITS_RANDOMLY $young_ogres 3 "Young Ogre" "Ogre Nomad" ( _ "Ogre Nomad") (random_traits="no")}
|
||||
# wmllint: recognize Ogre Nomad
|
||||
|
||||
{CLEAR_VARIABLE ogres}
|
||||
{CLEAR_VARIABLE young_ogres}
|
||||
|
|
|
@ -49,6 +49,16 @@
|
|||
# These macros store the various important dialogue sections, which are
|
||||
# often called by several events (the macros have to appear before they
|
||||
# are called).
|
||||
#
|
||||
# Tell wmllint what descriptions are good in the macros
|
||||
# wmllint: recognize Nym
|
||||
# wmllint: recognize Kaleh
|
||||
# wmllint: recognize Azkotep
|
||||
# wmllint: recognize Ystara
|
||||
# wmllint: recognize Elyssa
|
||||
# wmllint: recognize Garak
|
||||
# wmllint: recognize Zhul
|
||||
# wmllint: recognize Ganthos
|
||||
|
||||
#opening dialogue at start of scenario
|
||||
#define INTRO_DIALOGUE
|
||||
|
@ -148,7 +158,9 @@
|
|||
#enddef
|
||||
|
||||
#dialogue when one undead leader possesses Garak
|
||||
#define GARAK_DIALOGUE_PART_ONE
|
||||
# wmllint: recognize Possessed Garak
|
||||
|
||||
#define GARAK_DIALOGUE_PART_ONE
|
||||
|
||||
[message]
|
||||
description=Zhul
|
||||
|
|
|
@ -819,6 +819,8 @@
|
|||
#endif
|
||||
|
||||
#endif
|
||||
# wmllint: recognize Goblin Scout
|
||||
# wmllint: recognize Goblin Coward
|
||||
|
||||
[message]
|
||||
description=Goblin Scout
|
||||
|
@ -861,6 +863,7 @@
|
|||
#else
|
||||
{UNIT_ (Orcish Slayer) (Orac) ( _ "Orac") 2 24 32}
|
||||
#endif
|
||||
# wmllint: recognize Orac
|
||||
|
||||
#2 two goblins back him up
|
||||
|
||||
|
@ -879,6 +882,7 @@
|
|||
#else
|
||||
{UNIT_ (Naga Warrior) (Scylla) ( _ "Scylla") 2 20 34}
|
||||
#endif
|
||||
# wmllint: recognize Scylla
|
||||
#hack to make Scylla female
|
||||
[+unit]
|
||||
gender=female
|
||||
|
@ -1237,6 +1241,7 @@
|
|||
[/filter]
|
||||
|
||||
{UNIT_ (Goblin Impaler) (Greebo) ( _ "Greebo") 4 35 7}
|
||||
# wmllint: recognize Greebo
|
||||
|
||||
{PLACE_IMAGE items/chest-plain-closed.png 35 6}
|
||||
|
||||
|
@ -1354,6 +1359,7 @@
|
|||
|
||||
[command]
|
||||
{UNIT_ (Darawf) (Purple Abomination) ( _ "Purple Abomination") 3 14 15}
|
||||
# wmllint: recognize Purple Abomination
|
||||
[/command]
|
||||
|
||||
[command]
|
||||
|
|
|
@ -997,6 +997,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{UNIT_ (Dwarvish Fighter) (Wounded Dwarf) ( _ "Wounded Dwarf") 4 21 29}
|
||||
# wmllint: recognize Wounded Dwarf
|
||||
|
||||
[message]
|
||||
description=Wounded Dwarf
|
||||
|
@ -1051,6 +1052,7 @@
|
|||
[event]
|
||||
name=moveto
|
||||
|
||||
# wmllint: recognize Fundin
|
||||
[filter]
|
||||
x=23-31
|
||||
y=8-17
|
||||
|
@ -1097,6 +1099,7 @@
|
|||
[event]
|
||||
name=moveto
|
||||
|
||||
# wmllint: recognize Nori
|
||||
[filter]
|
||||
x=41-51
|
||||
y=10-16
|
||||
|
@ -1143,6 +1146,7 @@
|
|||
[event]
|
||||
name=moveto
|
||||
|
||||
# wmllint: recognize Thungar
|
||||
[filter]
|
||||
x=23-31
|
||||
y=37-44
|
||||
|
@ -1181,6 +1185,7 @@
|
|||
[event]
|
||||
name=moveto
|
||||
|
||||
# wmllint: recognize Gnarl
|
||||
[filter]
|
||||
x=42-51
|
||||
y=37-45
|
||||
|
@ -1335,6 +1340,11 @@
|
|||
{UNIT_T (Troll Whelp) (Troll Defender) ( _ "Troll Defender") 3 42 32}
|
||||
{UNIT_T (Troll Shaman) (Troll Defender) ( _ "Troll Defender") 3 44 31}
|
||||
|
||||
# wmllint: recognize Dwarf Leader
|
||||
# wmllint: recognize Troll Leader
|
||||
# wmllint: recognize Dwarf Defender
|
||||
# wmllint: recognize Troll Defender
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
|
@ -2129,6 +2139,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{UNIT_T (Troll Shaman) (Troll Flamecaster) ( _ "Troll Flamecaster") 3 43 19}
|
||||
# wmllint: recognize Troll Flamecaster
|
||||
#endif
|
||||
|
||||
[message]
|
||||
|
@ -2393,6 +2404,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{UNIT_T (Dwarvish Thunderguard) (Dwarf Grenadier) ( _ "Dwarf Grenadier") 5 42 22}
|
||||
# wmllint: recognize Dwarf Grenadier
|
||||
#endif
|
||||
|
||||
[message]
|
||||
|
@ -2962,6 +2974,8 @@
|
|||
|
||||
#define ZURG_CONVERSATION
|
||||
|
||||
# wmllint: recognize Zurg
|
||||
# wmllint: recognize Cloaked Figure
|
||||
[message]
|
||||
description=Zurg
|
||||
message= _ "Congratulations! Some of trolls didn't think you strong enough to beat dwarves."
|
||||
|
@ -3052,6 +3066,7 @@
|
|||
|
||||
#define GRENDEL_CONVERSATION
|
||||
|
||||
# wmllint: recognize Grendel
|
||||
[message]
|
||||
description=Grendel
|
||||
message= _ "Congratulations, some of me boys didn't think you could beat the trolls."
|
||||
|
|
|
@ -686,6 +686,7 @@
|
|||
#else
|
||||
{UNIT_ (Troll Whelp) (Troll Guard) ( _ "Troll Guard") 3 21 19}
|
||||
#endif
|
||||
# wmllint: recognize Troll Guard
|
||||
|
||||
# Have Grendel blow the explosives to destroy the wall
|
||||
|
||||
|
@ -1144,6 +1145,8 @@
|
|||
name=new turn
|
||||
first_time_only=no
|
||||
|
||||
# wmllint: recognize Guardian Phoenix
|
||||
# wmllint: recognize Dust Devil
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
|
@ -1153,7 +1156,10 @@
|
|||
[filter]
|
||||
side=1,3,4
|
||||
[not]
|
||||
description=Guardian Phoenix,Dust Devil
|
||||
description=Guardian Phoenix
|
||||
[/not]
|
||||
[not]
|
||||
description=Dust Devil
|
||||
[/not]
|
||||
[/filter]
|
||||
variable=locs
|
||||
|
@ -2232,6 +2238,7 @@
|
|||
name=moveto
|
||||
first_time_only=no
|
||||
|
||||
# wmllint: recognize Dwarf Ghost
|
||||
[filter]
|
||||
x=7-11
|
||||
y=17-21
|
||||
|
|
|
@ -668,6 +668,7 @@
|
|||
{UNIT_ (Dwarvish Scout) (Dwarf Guard) ( _ "Dwarf Guard") 2 20 34}
|
||||
{UNIT_ (Dwarvish Scout) (Dwarf Guard) ( _ "Dwarf Guard") 2 24 34}
|
||||
#endif
|
||||
# wmllint: recognize Dwarf Guard
|
||||
|
||||
# Have Zurg cast spell to destroy wall
|
||||
|
||||
|
@ -831,6 +832,7 @@
|
|||
#ifdef HARD
|
||||
{UNIT_T (Dwarvish Fighter) (Dwarf Conscript) ( _ "Dwarf Conscript") 2 9 35}
|
||||
#endif
|
||||
# wmllint: recognize Dwarf Conscript
|
||||
|
||||
[message]
|
||||
description=Dwarf Sergeant
|
||||
|
@ -1189,6 +1191,7 @@
|
|||
[/remove_shroud]
|
||||
|
||||
{UNIT_T (Dwarvish Sentinel) (Jorgi) ( _ "Jorgi") 6 19 25}
|
||||
# wmllint: recognize Jorgi
|
||||
|
||||
#ifdef HARD
|
||||
{UNIT_T (Dwarvish Steelclad) (Dwarf Guard) ( _ "Dwarf Guard") 6 18 26}
|
||||
|
@ -1286,6 +1289,7 @@
|
|||
[event]
|
||||
name=moveto
|
||||
|
||||
# wmllint: recognize Dwarf High Guard
|
||||
[filter]
|
||||
x=12-21
|
||||
y=19-26
|
||||
|
@ -1488,6 +1492,7 @@
|
|||
[event]
|
||||
name=die
|
||||
|
||||
# wmllint: recognize Big Hairy Bat
|
||||
[filter]
|
||||
description=Big Hairy Bat
|
||||
[/filter]
|
||||
|
@ -2126,7 +2131,7 @@
|
|||
[/unit]
|
||||
|
||||
[message]
|
||||
description=Small Tentacle
|
||||
description=Smaller Tentacle
|
||||
message= _ "Splash! Splash!"
|
||||
[/message]
|
||||
|
||||
|
@ -2319,6 +2324,7 @@
|
|||
|
||||
[command]
|
||||
{UNIT_ (Ghost) (Angry Ghost) ( _ "Angry Ghost") 9 47 22}
|
||||
# wmllint: recognize Angry Ghost
|
||||
|
||||
[message]
|
||||
description=Angry Ghost
|
||||
|
|
|
@ -1536,6 +1536,10 @@
|
|||
[/redraw]
|
||||
|
||||
#endif
|
||||
# wmllint: recognize Bernard
|
||||
# wmllint: recognize Daryl
|
||||
# wmllint: recognize Oswald
|
||||
|
||||
|
||||
[message]
|
||||
description=Daryl
|
||||
|
@ -2522,6 +2526,11 @@
|
|||
{FREE_UNIT (Ghost) (Novice Iona) ( _ "Novice Iona") 3 11 41}
|
||||
{FREE_UNIT (Ghost) (Novice Dani) ( _ "Novice Dani") 3 12 42}
|
||||
|
||||
# wmllint: recognize Blessed Kali
|
||||
# wmllint: recognize Novice Pior
|
||||
# wmllint: recognize Novice Iona
|
||||
# wmllint: recognize Novice Dani
|
||||
|
||||
[message]
|
||||
description=Blessed Kali
|
||||
message= _ "All right you runts, let's try this again. Pior, remember to swing your sword with your whole body, not just your arms."
|
||||
|
@ -2920,6 +2929,7 @@
|
|||
#ifdef NORMAL
|
||||
{FREE_UNIT (Skeleton Archer) (Restless Dead) ( _ "Restless Dead") 3 17 37}
|
||||
#endif
|
||||
# wmllint: recognize Restless Dead
|
||||
|
||||
[message]
|
||||
description=Restless Dead
|
||||
|
@ -3139,6 +3149,7 @@
|
|||
[/removeitem]
|
||||
|
||||
{FREE_UNIT (Flesh Golem) (Kromph) ( _ "Kromph") 1 18 29}
|
||||
# wmllint: recognize Kromph
|
||||
[/command]
|
||||
|
||||
[command]
|
||||
|
@ -3460,6 +3471,7 @@
|
|||
#create crypt guardian unit
|
||||
|
||||
{FREE_UNIT (Spider Lich) (Crypt Guardian) ( _ "Crypt Guardian") 3 12 25}
|
||||
# wmllint: recognize Crypt Guardian
|
||||
|
||||
[message]
|
||||
description=Crypt Guardian
|
||||
|
@ -4513,6 +4525,7 @@
|
|||
|
||||
[then]
|
||||
#if Kaleh isn't the unit moving outside then Eloh calls for him
|
||||
# wmllint: recognize Eloh
|
||||
|
||||
[message]
|
||||
description=Eloh
|
||||
|
@ -4697,6 +4710,8 @@
|
|||
{FREE_UNIT (Dragoon) (Human Guard) ( _ "Human Guard") 2 31 26}
|
||||
{FREE_UNIT (Swordsman) (Human Guard) ( _ "Human Guard") 2 30 24}
|
||||
{FREE_UNIT (Longbowman) (Human Guard) ( _ "Human Guard") 2 30 26}
|
||||
# wmllint: recognize Sergeant Durstrag
|
||||
# wmllint: recognize Human Guard
|
||||
|
||||
[message]
|
||||
description=Sergeant Durstrag
|
||||
|
@ -5194,6 +5209,7 @@
|
|||
[/move_unit_fake]
|
||||
|
||||
{FREE_UNIT (ENightgaunt) (Undead Emissary) ( _ "Undead Emissary") 5 35 30}
|
||||
# wmllint: recognize Undead Emissary
|
||||
|
||||
[message]
|
||||
description=Undead Emissary
|
||||
|
@ -5493,12 +5509,12 @@
|
|||
|
||||
[filter]
|
||||
side=8
|
||||
description = _ "Human Messenger"
|
||||
description = "Human Messenger"
|
||||
y=1
|
||||
[/filter]
|
||||
|
||||
[kill]
|
||||
description= _ "Human Messenger"
|
||||
description= "Human Messenger"
|
||||
animate=no
|
||||
fire_event=no
|
||||
[/kill]
|
||||
|
|
|
@ -2410,7 +2410,7 @@
|
|||
|
||||
[if]
|
||||
[have_unit]
|
||||
description=eloh
|
||||
description=Eloh
|
||||
[/have_unit]
|
||||
|
||||
[then]
|
||||
|
@ -2575,6 +2575,7 @@
|
|||
[/remove_shroud]
|
||||
|
||||
{UNIT_T (Necromancer) (Hekuba) ( _ "Hekuba") 4 15 28}
|
||||
# wmllint: recognize Hekuba
|
||||
|
||||
[message]
|
||||
description=Hekuba
|
||||
|
@ -2851,6 +2852,7 @@
|
|||
[/remove_shroud]
|
||||
|
||||
{UNIT_ (Necromancer) (Hekuba) ( _ "Hekuba") 4 15 28}
|
||||
# wmllint: recognize Hekuba
|
||||
|
||||
[message]
|
||||
description=Hekuba
|
||||
|
@ -3151,6 +3153,7 @@
|
|||
{RANDOM_PLACEMENT_AREA 50 28 3}
|
||||
|
||||
{PLACE_UNITS_RANDOMLY 3 7 "Crab Man" "Angry Crab" ( _ "Angry Crab") ()}
|
||||
# wmllint: recognize Angry Crab
|
||||
|
||||
{CLEAR_PLACEMENT_AREA}
|
||||
|
||||
|
@ -3177,6 +3180,7 @@
|
|||
{RANDOM_PLACEMENT_AREA 41 23 3}
|
||||
|
||||
{PLACE_UNITS_RANDOMLY 3 7 "Crab Man" "Angry Crab" ( _ "Angry Crab") ()}
|
||||
# wmllint: recognize Angry Crab
|
||||
|
||||
{CLEAR_PLACEMENT_AREA}
|
||||
|
||||
|
|
|
@ -1776,6 +1776,7 @@
|
|||
[/kill]
|
||||
|
||||
{UNIT_T (Sea Serpent) (Sea Serpent) ( _ "Sea Serpent") 2 13 9}
|
||||
# wmllint: recognize Sea Serpent
|
||||
|
||||
[message]
|
||||
description=Sea Serpent
|
||||
|
|
|
@ -525,6 +525,35 @@
|
|||
[/unit]
|
||||
#enddef
|
||||
|
||||
#define RECALL_OR_CREATE TYPE NAME
|
||||
# A substitute for [recall] that works even when there's no-one to recall
|
||||
# useful for testing scenarios out of order.
|
||||
[recall]
|
||||
description={NAME}
|
||||
[/recall]
|
||||
[if]
|
||||
[have_unit]
|
||||
description={NAME}
|
||||
[/have_unit]
|
||||
[else]
|
||||
[store_starting_location]
|
||||
side=1
|
||||
variable=tmp
|
||||
[/store_starting_location]
|
||||
[unit]
|
||||
type={TYPE}
|
||||
description={NAME}
|
||||
side=1
|
||||
x=$tmp.x
|
||||
y=$tmp.y
|
||||
[/unit]
|
||||
[clear_variable]
|
||||
name=tmp
|
||||
[/clear_variable]
|
||||
[/else]
|
||||
[/if]
|
||||
#enddef
|
||||
|
||||
# FIXME: Documentation for these is needed.
|
||||
|
||||
#define MENU_IMG_TXT IMG TXT
|
||||
|
|
|
@ -36,6 +36,22 @@
|
|||
#
|
||||
# You can also prevent description insertions with "wmllint: no-icon".
|
||||
#
|
||||
# You can force otherwise undeclared characters to be recogized with
|
||||
# a magic comment containing the string "wmllint: recognize".
|
||||
# The rest of the line is stripped and treated as the name of a character
|
||||
# who should be recognized in descriptions. This will be useful,
|
||||
# for example, if your scenario follows a continue so there are
|
||||
# characters present who were not explicitly recalled. It may
|
||||
# also be useful if you have wrapped unit-creation or recall markup in macros
|
||||
# and wmllint cannot recognize it.
|
||||
#
|
||||
# Similarly, it is possible to explicitly declare a unit's usage class
|
||||
# with a magic comment that looks like thisL
|
||||
# wmllint: usage of <unit> is <class>
|
||||
# Note that <unit> must be a string wrapped in ASCII doublequotes. This
|
||||
# declaration will be useful if you are declaring units with macros that
|
||||
# include a substitutable formal in the unit name; there are examples in UtBS.
|
||||
#
|
||||
# You can disable stack-based malformation checks with a comment
|
||||
# containing "wmllint: validate-off" and re-enable with "wmllint: validate-on".
|
||||
#
|
||||
|
@ -540,23 +556,38 @@ notepairs = (
|
|||
trait_note = dict(notepairs)
|
||||
note_trait = dict(map(lambda p: (p[1], p[0]), notepairs))
|
||||
|
||||
def string_strip(value):
|
||||
"String-strip the value"
|
||||
if value.startswith('"'):
|
||||
value = value[1:]
|
||||
if value.endswith('"'):
|
||||
value = value[:-1]
|
||||
if value.startswith("'"):
|
||||
value = value[1:]
|
||||
if value.endswith("'"):
|
||||
value = value[:-1]
|
||||
return value
|
||||
|
||||
def parse_attribute(str):
|
||||
"Parse a WML key-value pair from a line."
|
||||
if '=' not in str:
|
||||
return None
|
||||
m = re.match(r"(^\s*[a-z0-9_]+\s*=\s*)(.+)((?<=\S)\s*#?.*\s*)", str)
|
||||
if not m:
|
||||
return None
|
||||
(leader, value, comment) = m.groups()
|
||||
# String-strip the value
|
||||
if value.startswith('"'):
|
||||
value = value[1:]
|
||||
if value.endswith('"'):
|
||||
value = value[:-1]
|
||||
key = m.group(1).replace("=", "").strip()
|
||||
where = str.find("=")
|
||||
leader = str[:where]
|
||||
after = str[where+1:]
|
||||
after = after.lstrip()
|
||||
if "#" in after:
|
||||
where = after.find("#")
|
||||
while after[where-1] in (" ", "\t"):
|
||||
where -= 1
|
||||
value = after[:where+1]
|
||||
comment = after[where:]
|
||||
else:
|
||||
value = after.rstrip()
|
||||
comment = ""
|
||||
# Return four fields: stripped key, part of line before value,
|
||||
# value, trailing whitespace and comment.
|
||||
return (key, leader, value, comment)
|
||||
return (leader.strip(), leader+"=", string_strip(value), comment)
|
||||
|
||||
# This needs to match the list of usagge types in ai_python.cpp
|
||||
usage_types = ("scout", "fighter", "mixed fighter", "archer", "healer")
|
||||
|
@ -666,6 +697,48 @@ def sanity_check(filename, lines):
|
|||
% (filename, i+1, utype)
|
||||
except TypeError:
|
||||
pass
|
||||
# Consistency-check the description attributes in [side], [unit], [recall],
|
||||
# and [message] scopes.
|
||||
present = []
|
||||
in_scenario = False
|
||||
in_person = False
|
||||
ignoreable = False
|
||||
for i in range(len(lines)):
|
||||
if "[scenario]" in lines[i]:
|
||||
in_scenario = True
|
||||
elif "[/scenario]" in lines[i]:
|
||||
in_scenario = False
|
||||
elif "[objective]" in lines[i] or "[kill]" in lines[i] or "[object]" in lines[i] or "[move_unit_fake]" in lines[i] or "[scroll_to_unit]" in lines[i]:
|
||||
ignoreable = True
|
||||
elif "[/objective]" in lines[i] or "[/kill]" in lines[i] or "[/object]" in lines[i] or "[/move_unit_fake]" in lines[i] or "[/scroll_to_unit]" in lines[i]:
|
||||
ignoreable = False
|
||||
elif "[side]" in lines[i] or "[unit]" in lines[i] or "[recall]" in lines[i]:
|
||||
in_person = True
|
||||
continue
|
||||
elif "[/side]" in lines[i] or "[/unit]" in lines[i] or "[/recall]" in lines[i]:
|
||||
in_person = False
|
||||
if not in_scenario:
|
||||
continue
|
||||
m = re.search("# *wmllint: recognize +(.*)", lines[i])
|
||||
if m:
|
||||
present.append(string_strip(m.group(1)).strip())
|
||||
if '=' not in lines[i] or ignoreable:
|
||||
continue
|
||||
try:
|
||||
(key, prefix, value, comment) = parse_attribute(lines[i])
|
||||
if key == 'role':
|
||||
present.append(value)
|
||||
if "wmllint: ignore" in comment or key != "description":
|
||||
continue
|
||||
if in_person:
|
||||
present.append(value)
|
||||
elif value in ('narrator', 'unit', 'second_unit') or value[0] in ("$", "{"):
|
||||
continue
|
||||
elif value not in present:
|
||||
print '"%s", line %d: unknown \'%s\' referred to by description' \
|
||||
% (filename, i+1, value)
|
||||
except TypeError:
|
||||
pass
|
||||
# Interpret magic comments for setting the sage pattern of units.
|
||||
# This copes with some wacky UtBS units that are defined with
|
||||
# variant-spawning macros. The prototype comment looks like this:
|
||||
|
|
Loading…
Add table
Reference in a new issue