Campaigns: wmlindent pass

[ci skip]
This commit is contained in:
Charles Dang 2020-03-08 21:51:45 +11:00
parent 1f17434ec0
commit daff648482
66 changed files with 807 additions and 861 deletions

View file

@ -258,7 +258,7 @@
[/if] [/if]
[/event] [/event]
# This event makes the storm trident even more obvious # This event makes the storm trident even more obvious
[event] [event]
name=turn 3 name=turn 3

View file

@ -1,9 +1,9 @@
#textdomain wesnoth-dw #textdomain wesnoth-dw
#define NOTE_STUN #define NOTE_STUN
[special_note] [special_note]
note=_ "This unit is able to stun its enemies, disrupting their zones of control." note=_ "This unit is able to stun its enemies, disrupting their zones of control."
[/special_note] [/special_note]
#enddef #enddef
#define WEAPON_SPECIAL_STUN #define WEAPON_SPECIAL_STUN

View file

@ -1,9 +1,9 @@
#textdomain wesnoth-dm #textdomain wesnoth-dm
#define OBJECT_LOYAL #define OBJECT_LOYAL
# There are several changes of leader to hero & vice versa during the campaign, # There are several changes of leader to hero & vice versa during the campaign,
# so this object is given to any that may have hero status at some point to ensure # so this object is given to any that may have hero status at some point to ensure
# the unit has no upkeep and to avoid taking up another trait slot # the unit has no upkeep and to avoid taking up another trait slot
[object] [object]
[effect] [effect]
apply_to=loyal apply_to=loyal

View file

@ -389,7 +389,6 @@
[/message] [/message]
[/event] [/event]
# First area (two young ogres) # First area (two young ogres)
[event] [event]
name=last breath name=last breath
@ -968,22 +967,22 @@
#ifdef EASY #ifdef EASY
{VARIABLE_OP malin.experience add 30} {VARIABLE_OP malin.experience add 30}
[floating_text] [floating_text]
x,y=$malin.x,$malin.y x,y=$malin.x,$malin.y
text="<span color='#800080'>" + "+30 exp" + "</span>" text="<span color='#800080'>" + "+30 exp" + "</span>"
[/floating_text] [/floating_text]
#endif #endif
#ifdef NORMAL #ifdef NORMAL
{VARIABLE_OP malin.experience add 25} {VARIABLE_OP malin.experience add 25}
[floating_text] [floating_text]
x,y=$malin.x,$malin.y x,y=$malin.x,$malin.y
text="<span color='#800080'>" + "+25 exp" + "</span>" text="<span color='#800080'>" + "+25 exp" + "</span>"
[/floating_text] [/floating_text]
#endif #endif
#ifdef HARD #ifdef HARD
{VARIABLE_OP malin.experience add 20} {VARIABLE_OP malin.experience add 20}
[floating_text] [floating_text]
x,y=$malin.x,$malin.y x,y=$malin.x,$malin.y
text="<span color='#800080'>" + "+20 exp" + "</span>" text="<span color='#800080'>" + "+20 exp" + "</span>"
[/floating_text] [/floating_text]
#endif #endif
@ -1371,22 +1370,22 @@
#ifdef EASY #ifdef EASY
{VARIABLE_OP malin.experience add 30} {VARIABLE_OP malin.experience add 30}
[floating_text] [floating_text]
x,y=$malin.x,$malin.y x,y=$malin.x,$malin.y
text="<span color='#800080'>" + "+30 exp" + "</span>" text="<span color='#800080'>" + "+30 exp" + "</span>"
[/floating_text] [/floating_text]
#endif #endif
#ifdef NORMAL #ifdef NORMAL
{VARIABLE_OP malin.experience add 25} {VARIABLE_OP malin.experience add 25}
[floating_text] [floating_text]
x,y=$malin.x,$malin.y x,y=$malin.x,$malin.y
text="<span color='#800080'>" + "+25 exp" + "</span>" text="<span color='#800080'>" + "+25 exp" + "</span>"
[/floating_text] [/floating_text]
#endif #endif
#ifdef HARD #ifdef HARD
{VARIABLE_OP malin.experience add 20} {VARIABLE_OP malin.experience add 20}
[floating_text] [floating_text]
x,y=$malin.x,$malin.y x,y=$malin.x,$malin.y
text="<span color='#800080'>" + "+20 exp" + "</span>" text="<span color='#800080'>" + "+20 exp" + "</span>"
[/floating_text] [/floating_text]
#endif #endif

View file

@ -364,7 +364,6 @@
variable=orc_leader_store variable=orc_leader_store
[/store_unit] [/store_unit]
{CLEAR_VARIABLE orc_leader_store.status.poisoned} {CLEAR_VARIABLE orc_leader_store.status.poisoned}
[move_unit_fake] [move_unit_fake]

View file

@ -466,7 +466,6 @@
[show_objectives][/show_objectives] [show_objectives][/show_objectives]
[/event] [/event]
# In-scenario Events # In-scenario Events
[event] [event]

View file

@ -250,7 +250,6 @@
{STARTING_VILLAGES 1 3} {STARTING_VILLAGES 1 3}
{STARTING_VILLAGES 2 15} {STARTING_VILLAGES 2 15}
{PLACE_IMAGE scenery/whirlpool.png 38 23} {PLACE_IMAGE scenery/whirlpool.png 38 23}
# City # City

View file

@ -193,7 +193,6 @@
x,y=2,26 x,y=2,26
[/recall] [/recall]
[remove_trait] [remove_trait]
id=Darken Volk id=Darken Volk
trait_id="loyal" trait_id="loyal"

View file

@ -207,7 +207,7 @@
[/variable] [/variable]
[then] [then]
[terrain] [terrain]
x,y=$hex[$i].x,$hex[$i].y x,y=$hex[$i].x,$hex[$i].y
terrain=Qxu terrain=Qxu
[/terrain] [/terrain]
[/then] [/then]
@ -238,7 +238,7 @@
[/variable] [/variable]
[then] [then]
[terrain] [terrain]
x,y=$hex[$i].x,$hex[$i].y x,y=$hex[$i].x,$hex[$i].y
terrain=Qxu terrain=Qxu
[/terrain] [/terrain]
[/then] [/then]
@ -295,7 +295,6 @@
animate=no animate=no
[/harm_unit] [/harm_unit]
[delay] [delay]
time=400 time=400
[/delay] [/delay]
@ -314,7 +313,6 @@
animate=no animate=no
[/harm_unit] [/harm_unit]
[delay] [delay]
time=700 time=700
[/delay] [/delay]
@ -333,7 +331,6 @@
animate=no animate=no
[/harm_unit] [/harm_unit]
[delay] [delay]
time=1000 time=1000
[/delay] [/delay]
@ -741,7 +738,6 @@
[/objectives] [/objectives]
[/event] [/event]
#define RESET_RUNES #define RESET_RUNES
{REMOVE_IMAGE 13 6} {REMOVE_IMAGE 13 6}
{REMOVE_IMAGE 11 9} {REMOVE_IMAGE 11 9}
@ -757,7 +753,7 @@
{PLACE_IMAGE scenery/rune1.png 13 9} {PLACE_IMAGE scenery/rune1.png 13 9}
#enddef #enddef
# Ritual part 2 # Ritual part 2
[event] [event]
name=die name=die
@ -969,7 +965,7 @@
{MODIFY_UNIT (side=2) moves 0} {MODIFY_UNIT (side=2) moves 0}
[/event] [/event]
# Ritual part 3 # Ritual part 3
[event] [event]
name=die name=die
@ -1178,7 +1174,7 @@
[/random_placement] [/random_placement]
[/event] [/event]
# Malin gets to heal upon killing a unit # Malin gets to heal upon killing a unit
[event] [event]
name=die name=die
first_time_only=no first_time_only=no
@ -1215,7 +1211,7 @@
[/message] [/message]
[/event] [/event]
# Sighting the bosses # Sighting the bosses
[event] [event]
name=sighted name=sighted
[filter] [filter]
@ -1259,7 +1255,7 @@
[/message] [/message]
[/event] [/event]
# Ritual runes # Ritual runes
[event] [event]
name=moveto name=moveto
@ -1528,7 +1524,7 @@
[/message] [/message]
[/event] [/event]
# Ritual completion # Ritual completion
[event] [event]
name=last breath name=last breath
@ -1940,7 +1936,7 @@
[/objectives] [/objectives]
[/event] [/event]
# text at lair entrance # text at lair entrance
[event] [event]
name=moveto name=moveto
first_time_only=no first_time_only=no
@ -1977,7 +1973,7 @@
[/message] [/message]
[/event] [/event]
# monolith # monolith
[event] [event]
name=moveto name=moveto
[filter] [filter]
@ -2158,7 +2154,7 @@
[/remove_event] [/remove_event]
[/event] [/event]
# treasure boxes # treasure boxes
[event] [event]
name=moveto name=moveto
[filter] [filter]
@ -2283,10 +2279,10 @@
[/gold] [/gold]
[/event] [/event]
# potion puzzle # potion puzzle
# Solution: Pick up the brazier and melt the ice, creating water # Solution: Pick up the brazier and melt the ice, creating water
# pick up the empty flask and move to the water, then pick up the filled flask # pick up the empty flask and move to the water, then pick up the filled flask
# go to the altar, which puts the filled flask there and creates a potion # go to the altar, which puts the filled flask there and creates a potion
[event] [event]
name=moveto name=moveto
@ -2608,10 +2604,10 @@ Into pitch black shadow.</i>"
[/message] [/message]
[/event] [/event]
# coffin puzzle # coffin puzzle
# Solution: pick up the key, move to the coffin to open it # Solution: pick up the key, move to the coffin to open it
# then, pick up the bones, put them in the coffin # then, pick up the bones, put them in the coffin
# finally, pick up the brazier and cremate the bones # finally, pick up the brazier and cremate the bones
[event] [event]
name=moveto name=moveto
@ -2906,7 +2902,7 @@ And the tongue of fire begets ashen repose.</i>"
[/message] [/message]
[/event] [/event]
# reflection pool scene # reflection pool scene
[event] [event]
name=moveto name=moveto
[filter] [filter]
@ -3245,7 +3241,7 @@ And the tongue of fire begets ashen repose.</i>"
[unlock_view][/unlock_view] [unlock_view][/unlock_view]
[/event] [/event]
# Sighting the enemy lair # Sighting the enemy lair
[event] [event]
name=moveto name=moveto
[filter] [filter]
@ -3292,7 +3288,7 @@ And the tongue of fire begets ashen repose.</i>"
[cancel_action][/cancel_action] [cancel_action][/cancel_action]
[/event] [/event]
# Initiate boss battle # Initiate boss battle
[event] [event]
name=enter hex name=enter hex
[filter] [filter]
@ -3625,7 +3621,6 @@ And the tongue of fire begets ashen repose.</i>"
[/if] [/if]
#endif #endif
[message] [message]
speaker=Xanthric speaker=Xanthric
message= _ "<i><big>A few decrepit souls will do you no good, necromancer. Your bones shall soon join my garden of carcasses!</big></i>" message= _ "<i><big>A few decrepit souls will do you no good, necromancer. Your bones shall soon join my garden of carcasses!</big></i>"
@ -3667,7 +3662,7 @@ And the tongue of fire begets ashen repose.</i>"
[cancel_action][/cancel_action] [cancel_action][/cancel_action]
[/event] [/event]
# flavor text if you capture the dragon's keep # flavor text if you capture the dragon's keep
[event] [event]
name=moveto name=moveto
[filter] [filter]
@ -3692,7 +3687,7 @@ And the tongue of fire begets ashen repose.</i>"
[/message] [/message]
[/event] [/event]
# spawns # spawns
[event] [event]
name=new turn name=new turn
first_time_only=no first_time_only=no
@ -3784,9 +3779,9 @@ And the tongue of fire begets ashen repose.</i>"
[unit] [unit]
side=1 side=1
#ifdef HARD #ifdef HARD
type=Walking Corpse type=Walking Corpse
#else #else
type=Soulless type=Soulless
#endif #endif
x,y=11,7 x,y=11,7
animate=yes animate=yes
@ -3796,9 +3791,9 @@ And the tongue of fire begets ashen repose.</i>"
[unit] [unit]
side=1 side=1
#ifdef EASY #ifdef EASY
type=Soulless type=Soulless
#else #else
type=Walking Corpse type=Walking Corpse
#endif #endif
x,y=10,5 x,y=10,5
animate=yes animate=yes
@ -4003,7 +3998,6 @@ And the tongue of fire begets ashen repose.</i>"
[/message] [/message]
[/event] [/event]
# Victory # Victory
[event] [event]
name=last breath name=last breath

View file

@ -341,8 +341,8 @@
[/harm_unit] [/harm_unit]
[floating_text] [floating_text]
x,y=$unit.x,$unit.y x,y=$unit.x,$unit.y
text="<span color='#ff0000'>" + "5" + "</span>" text="<span color='#ff0000'>" + "5" + "</span>"
[/floating_text] [/floating_text]
{VARIABLE counter 0} {VARIABLE counter 0}
@ -683,8 +683,8 @@
[/harm_unit] [/harm_unit]
[floating_text] [floating_text]
x,y=$unit.x,$unit.y x,y=$unit.x,$unit.y
text="<span color='#ff0000'>" + "2" + "</span>" text="<span color='#ff0000'>" + "2" + "</span>"
[/floating_text] [/floating_text]
[/then] [/then]
[/if] [/if]

View file

@ -209,15 +209,15 @@
############## MAL KESHAR OPTIONS ############## ############## MAL KESHAR OPTIONS ##############
#define AMLA_MAL_KESHAR #define AMLA_MAL_KESHAR
{AMLA_OPTION_MELEE_TOUCH} {AMLA_OPTION_MELEE_TOUCH}
{AMLA_OPTION_CHILL_TEMPEST} {AMLA_OPTION_CHILL_TEMPEST}
{AMLA_OPTION_SHADOW_WAVE} {AMLA_OPTION_SHADOW_WAVE}
{AMLA_OPTION_MALICE2} {AMLA_OPTION_MALICE2}
{AMLA_OPTION_SHADOW_VEIL} {AMLA_OPTION_SHADOW_VEIL}
{AMLA_OPTION_FROST_NOVA} {AMLA_OPTION_FROST_NOVA}
{AMLA_OPTION_SPELLBIND} {AMLA_OPTION_SPELLBIND}
{AMLA_OPTION_REND} {AMLA_OPTION_REND}
{AMLA_DEFAULT} {AMLA_DEFAULT}
#enddef #enddef
#define AMLA_OPTION_MELEE_TOUCH #define AMLA_OPTION_MELEE_TOUCH
@ -479,12 +479,12 @@
############## EIDOLON OPTIONS ############## ############## EIDOLON OPTIONS ##############
#define AMLA_EIDOLON #define AMLA_EIDOLON
{AMLA_OPTION_BANEBLADE} {AMLA_OPTION_BANEBLADE}
{AMLA_OPTION_WAIL} {AMLA_OPTION_WAIL}
{AMLA_OPTION_REAPER} {AMLA_OPTION_REAPER}
{AMLA_OPTION_SORROW1} {AMLA_OPTION_SORROW1}
{AMLA_OPTION_SORROW2} {AMLA_OPTION_SORROW2}
{AMLA_DEFAULT} {AMLA_DEFAULT}
#enddef #enddef
#define AMLA_OPTION_BANEBLADE #define AMLA_OPTION_BANEBLADE
@ -646,13 +646,13 @@
############## MALIN KESHAR OPTIONS ############## ############## MALIN KESHAR OPTIONS ##############
#define AMLA_MALIN_KESHAR #define AMLA_MALIN_KESHAR
{AMLA_OPTION_MELEE_SWORD} {AMLA_OPTION_MELEE_SWORD}
{AMLA_OPTION_MALIN_RANGED} {AMLA_OPTION_MALIN_RANGED}
{AMLA_OPTION_VITALIZE} {AMLA_OPTION_VITALIZE}
{AMLA_OPTION_CORPSE_LAUNCHER} {AMLA_OPTION_CORPSE_LAUNCHER}
{AMLA_OPTION_CORPSE_MASTER} {AMLA_OPTION_CORPSE_MASTER}
{AMLA_OPTION_ZOMBIE_FRENZY} {AMLA_OPTION_ZOMBIE_FRENZY}
{AMLA_DEFAULT} {AMLA_DEFAULT}
#enddef #enddef
#define AMLA_OPTION_MELEE_SWORD #define AMLA_OPTION_MELEE_SWORD

View file

@ -120,15 +120,15 @@
#enddef #enddef
#define SET_GOT_INSIDE_MANOR #define SET_GOT_INSIDE_MANOR
{MODIFY_UNIT ( {MODIFY_UNIT (
side=1 side=1
{NOT_ON_RECALL_LIST} {NOT_ON_RECALL_LIST}
[not] [not]
id=Malin Keshar id=Malin Keshar
[or] [or]
id=Darken Volk id=Darken Volk
[/or] [/or]
[/not] [/not]
) variables.got_inside_manor yes} ) variables.got_inside_manor yes}
#enddef #enddef

View file

@ -48,7 +48,6 @@
x=20,28 x=20,28
y= 4, 8 y= 4, 8
[/avoid] [/avoid]
[/ai] [/ai]
{FLAG_VARIANT undead} {FLAG_VARIANT undead}
[/side] [/side]

View file

@ -349,7 +349,7 @@
[/filter] [/filter]
[sound] [sound]
name=thunderstick.ogg name=thunderstick.ogg
[/sound] [/sound]
[delay] [delay]
time=200 time=200

View file

@ -800,7 +800,7 @@ Soooo... It is you who sent your subordinates to attack us. Now when weve des
message= _ "Im glad we agree, Lisar. Now, onward! We must continue downstream, past these drakes." message= _ "Im glad we agree, Lisar. Now, onward! We must continue downstream, past these drakes."
[/message] [/message]
[/else] [/else]
)} )}
{VARIABLE sergeant_sighted yes} {VARIABLE sergeant_sighted yes}
[show_objectives][/show_objectives] [show_objectives][/show_objectives]
[/event] [/event]

View file

@ -326,7 +326,6 @@
# #
# GL-2016JUL # GL-2016JUL
# For background references, see Delfador's Memoirs, scenario 8 ("Ur Thorodor"). # For background references, see Delfador's Memoirs, scenario 8 ("Ur Thorodor").
[event] [event]
@ -414,7 +413,6 @@
[/message] [/message]
[/then] [/then]
[else] [else]
[message] [message]
speaker=unit speaker=unit

View file

@ -17,7 +17,7 @@
#enddef #enddef
#define NOTE_INITIATIVE #define NOTE_INITIATIVE
[special_note] [special_note]
note=_"This units grasp of melee tactics allows adjacent allies to strike the first blow even when defending." note=_"This units grasp of melee tactics allows adjacent allies to strike the first blow even when defending."
[/special_note] [/special_note]
#enddef #enddef

View file

@ -1,56 +1,56 @@
#textdomain wesnoth-httt #textdomain wesnoth-httt
#define HTTT_INTRO #define HTTT_INTRO
[story] [story]
[part] [part]
music=revelation.ogg music=revelation.ogg
story= _ "In the twenty-eighth year of the reign of Garard II, king of Wesnoth, the kingdom was plunged into a bitter war with the Orcs of the North." story= _ "In the twenty-eighth year of the reign of Garard II, king of Wesnoth, the kingdom was plunged into a bitter war with the Orcs of the North."
{HTTT_BIGMAP} {HTTT_BIGMAP}
[/part] [/part]
[part] [part]
# wmllint: local spelling Galcadar # wmllint: local spelling Galcadar
story= _ "The Northern host encamped at Galcadar, by the Ford of Abez, and the king led his forces to meet them. Splitting his army in two, he led one half while his son, the crown prince Eldred, led the other." story= _ "The Northern host encamped at Galcadar, by the Ford of Abez, and the king led his forces to meet them. Splitting his army in two, he led one half while his son, the crown prince Eldred, led the other."
background=story/httt_story1.jpg background=story/httt_story1.jpg
[/part] [/part]
[part] [part]
story= _ "Eldred was a brave and courageous warrior, able to lead his soldiers well. Unfortunately for Garard, his son was also ambitious... and treacherous. In the heat of battle, Eldreds men turned on the king. And so, Garard was slain in battle that day, along with his brother and all his sons but Eldred." story= _ "Eldred was a brave and courageous warrior, able to lead his soldiers well. Unfortunately for Garard, his son was also ambitious... and treacherous. In the heat of battle, Eldreds men turned on the king. And so, Garard was slain in battle that day, along with his brother and all his sons but Eldred."
background=story/httt_story2.jpg background=story/httt_story2.jpg
[/part] [/part]
[part] [part]
story= _ "Garards queen, Asheviere, looked on with glee, having come to watch the battle from a nearby hill. The rule of her son would surely satisfy her lust for power far better than her husbands had." story= _ "Garards queen, Asheviere, looked on with glee, having come to watch the battle from a nearby hill. The rule of her son would surely satisfy her lust for power far better than her husbands had."
background=story/httt_story3.jpg background=story/httt_story3.jpg
[/part] [/part]
[part] [part]
story= _ "In exchange for tribute, the warlord of the North happily made peace with Eldred, who proclaimed himself king and led his army south towards Weldyn." story= _ "In exchange for tribute, the warlord of the North happily made peace with Eldred, who proclaimed himself king and led his army south towards Weldyn."
{HTTT_BIGMAP} {HTTT_BIGMAP}
[/part] [/part]
[part] [part]
story= _ "But Garards arch-mage, Delfador, had escaped the battle and, riding with haste, reached Weldyn first. He mustered a force of loyalists to fight Eldred and avenge the kings death. The loyalist army marched north to meet Eldred." story= _ "But Garards arch-mage, Delfador, had escaped the battle and, riding with haste, reached Weldyn first. He mustered a force of loyalists to fight Eldred and avenge the kings death. The loyalist army marched north to meet Eldred."
background=story/httt_story4.jpg background=story/httt_story4.jpg
[/part] [/part]
[part] [part]
story= _ "Eldred made war upon Delfador and his forces with his mothers advice ringing in his ears: <i>“Fight no one great or small except the old mage, whose head should be severed from his shoulders.”</i>" story= _ "Eldred made war upon Delfador and his forces with his mothers advice ringing in his ears: <i>“Fight no one great or small except the old mage, whose head should be severed from his shoulders.”</i>"
background=story/httt_story4.jpg background=story/httt_story4.jpg
[/part] [/part]
[part] [part]
story= _ "And Eldred did indeed meet Delfador face-to-face in battle, in the hinterlands near Tath. Sword clashed against staff, as the wise old mage fought the brash young warrior." story= _ "And Eldred did indeed meet Delfador face-to-face in battle, in the hinterlands near Tath. Sword clashed against staff, as the wise old mage fought the brash young warrior."
background=story/httt_story5.jpg background=story/httt_story5.jpg
[/part] [/part]
[part] [part]
story= _ "In the end Delfadors men were defeated and routed, but Asheviere found her sons lifeless body, fixed to the ground by the great mages staff." story= _ "In the end Delfadors men were defeated and routed, but Asheviere found her sons lifeless body, fixed to the ground by the great mages staff."
background=story/httt_story6.jpg background=story/httt_story6.jpg
[/part] [/part]
[part] [part]
story= _ "Asheviere herself then took command of the army and led it back to Weldyn. Knowing that the kings young nephews were next in line to the throne, she ordered them all killed, and declared herself Queen of Wesnoth." story= _ "Asheviere herself then took command of the army and led it back to Weldyn. Knowing that the kings young nephews were next in line to the throne, she ordered them all killed, and declared herself Queen of Wesnoth."
{HTTT_BIGMAP} {HTTT_BIGMAP}
[/part] [/part]
[part] [part]
story= _ "Soon after news of Ashevieres orders reached Delfador, he secretly entered the palace and stole away Konrad, the youngest of Garards nephews, thereby saving him from death." story= _ "Soon after news of Ashevieres orders reached Delfador, he secretly entered the palace and stole away Konrad, the youngest of Garards nephews, thereby saving him from death."
background=story/httt_story7.jpg background=story/httt_story7.jpg
[/part] [/part]
[part] [part]
story= _ "Fleeing to the Aethenwood beyond the south-western border of Wesnoth, Delfador raised the child Konrad under the protection of the Elves, watching sadly as Ashevieres reign of terror over the land began..." story= _ "Fleeing to the Aethenwood beyond the south-western border of Wesnoth, Delfador raised the child Konrad under the protection of the Elves, watching sadly as Ashevieres reign of terror over the land began..."
background=story/httt_story8.jpg background=story/httt_story8.jpg
[/part] [/part]
[/story] [/story]
#enddef #enddef

View file

@ -206,7 +206,7 @@
message= _ "I agree. But, Baldras, what will you tell him? We know something has been going badly wrong in Wesnoth of late, that more than ordinary corruption and incompetence is afoot. But when the effects fall on mere peasants, the wrong of it may not seem so obvious from a nobles chair." message= _ "I agree. But, Baldras, what will you tell him? We know something has been going badly wrong in Wesnoth of late, that more than ordinary corruption and incompetence is afoot. But when the effects fall on mere peasants, the wrong of it may not seem so obvious from a nobles chair."
[/message] [/message]
[sound] [sound]
name=ambient/wardrums.ogg name=ambient/wardrums.ogg
[/sound] [/sound]
[message] [message]
speaker=Baldras speaker=Baldras

View file

@ -734,7 +734,6 @@
[/and] [/and]
[/filter_condition] [/filter_condition]
[fire_event] [fire_event]
name=win event name=win event
[/fire_event] [/fire_event]
@ -762,7 +761,7 @@
[message] [message]
speaker=Harper speaker=Harper
message= _ "Attack them directly? I thought you said there was no way we could fight them head on." message= _ "Attack them directly? I thought you said there was no way we could fight them head on."
[/message] [/message]
[message] [message]

View file

@ -456,7 +456,6 @@
{GENERIC_UNIT 2 (Heavy Infantryman) 37 15} {GENERIC_UNIT 2 (Heavy Infantryman) 37 15}
{MOVE_UNIT x,y,side=37,15,2 33 15} {MOVE_UNIT x,y,side=37,15,2 33 15}
[gold] [gold]
side=2 side=2
#ifdef EASY #ifdef EASY

View file

@ -69,7 +69,7 @@
name= _ "Galim" name= _ "Galim"
x,y=12,11 x,y=12,11
facing=se facing=se
# todo: is the unit loyal or not? before it had the {IS_LOYAL} but without the real loyal trait. # todo: is the unit loyal or not? before it had the {IS_LOYAL} but without the real loyal trait.
[/unit] [/unit]
[/side] [/side]

View file

@ -90,15 +90,7 @@
name= _ "Glildur" name= _ "Glildur"
side=3 side=3
canrecruit=yes canrecruit=yes
profile="portraits/elves/captain.png~CHAN( {SOF_GLILDUR_PORTRAIT}
if((blue < 100) and (red > green), red*0.6, red),
if(
(blue < 100) and (red < green), green*0.7,
(blue < 100) and (red < 100) and (red > green), green*0.7,
green
),
if((blue < 100) and (red < green), blue*1.5, blue)
)"
facing=sw facing=sw
[modifications] [modifications]
{TRAIT_RESILIENT} {TRAIT_RESILIENT}
@ -213,7 +205,6 @@
[event] [event]
name=prestart name=prestart
[set_variable] [set_variable]
name=incominggold name=incominggold
value=5000 value=5000
@ -239,7 +230,7 @@
{VARIABLE_CONDITIONAL havestone boolean_not_equals yes} {VARIABLE_CONDITIONAL havestone boolean_not_equals yes}
[/show_if] [/show_if]
[/objective] [/objective]
# {ALTERNATIVE_OBJECTIVE_BONUS ( _ "Defeat Glildur")} # {ALTERNATIVE_OBJECTIVE_BONUS ( _ "Defeat Glildur")}
[objective] [objective]
description= _ "Death of Rugnur" description= _ "Death of Rugnur"
condition=lose condition=lose
@ -582,8 +573,8 @@
[/event] [/event]
#define SOF1_HOME_AREA #define SOF1_HOME_AREA
x=26,27-28,29-32 x=26,27-28,29-32
y=1-2,1-3,1-4 #enddef y=1-2,1-3,1-4 #enddef
# Alanin reaches the dwarvish citadel # Alanin reaches the dwarvish citadel
@ -853,8 +844,8 @@
[filter] [filter]
id=Glildur id=Glildur
[/filter] [/filter]
variable=glildur variable=glildur
kill=no kill=no
[/store_unit] [/store_unit]
[/event] [/event]

View file

@ -37,10 +37,10 @@
team_name=orcs team_name=orcs
user_team_name= _ "Orcs" user_team_name= _ "Orcs"
{FLAG_VARIANT ragged} {FLAG_VARIANT ragged}
# [ai] # [ai]
# aggression=1.0 # aggression=1.0
# caution=0.0 # caution=0.0
# [/ai] # [/ai]
[/side] [/side]
[side] [side]
@ -55,10 +55,10 @@
team_name=orcs team_name=orcs
user_team_name= _ "Goblins" user_team_name= _ "Goblins"
{FLAG_VARIANT ragged} {FLAG_VARIANT ragged}
# [ai] # [ai]
# aggression=1.0 # aggression=1.0
# caution=0.0 # caution=0.0
# [/ai] # [/ai]
[/side] [/side]
[story] [story]
@ -70,7 +70,7 @@
[/part] [/part]
[/story] [/story]
# {SOF_TRACK {JOURNEY_02_NEW} } # {SOF_TRACK {JOURNEY_02_NEW} }
{SOF_DEATHS} {SOF_DEATHS}
@ -352,6 +352,4 @@
{NEW_GOLD_CARRYOVER 40} {NEW_GOLD_CARRYOVER 40}
[/endlevel] [/endlevel]
[/event] [/event]
[/scenario] [/scenario]

View file

@ -562,7 +562,6 @@
replace_if_failed=yes replace_if_failed=yes
terrain=Uu^Br/ terrain=Uu^Br/
[/rule] [/rule]
[/terrain_mask] [/terrain_mask]
# one cart near the player, another cart randomly further out # one cart near the player, another cart randomly further out
@ -575,7 +574,6 @@
canrecruit=yes canrecruit=yes
[/filter] [/filter]
radius=7 radius=7
[/and] [/and]
variable=possible_cart1_locations variable=possible_cart1_locations
@ -642,7 +640,6 @@
carryover_percentage=40 carryover_percentage=40
[/gold_carryover] [/gold_carryover]
[/objectives] [/objectives]
[/event] [/event]
[event] [event]

View file

@ -72,15 +72,7 @@
side=3 side=3
persistent=yes persistent=yes
save_id=Glildur save_id=Glildur
profile="portraits/elves/captain.png~CHAN( {SOF_GLILDUR_PORTRAIT}
if((blue < 100) and (red > green), red*0.6, red),
if(
(blue < 100) and (red < green), green*0.7,
(blue < 100) and (red < 100) and (red > green), green*0.7,
green
),
if((blue < 100) and (red < green), blue*1.5, blue)
)"
facing=sw facing=sw
[modifications] [modifications]
{TRAIT_RESILIENT} {TRAIT_RESILIENT}
@ -235,7 +227,7 @@
name= _ "Durstorn" name= _ "Durstorn"
unrenamable=yes unrenamable=yes
side=1 side=1
# profile=portraits/durstorn-insane.png # profile=portraits/durstorn-insane.png
profile=portraits/durstorn.png profile=portraits/durstorn.png
random_traits=no random_traits=no
[modifications] [modifications]
@ -377,13 +369,13 @@
speaker=Thursagan speaker=Thursagan
message= {WHISPER _"Are you mad?!"} message= {WHISPER _"Are you mad?!"}
[/message] [/message]
# this is causing errors, so doing it the hard way for now but this could be fixed # this is causing errors, so doing it the hard way for now but this could be fixed
# [modify_unit] # [modify_unit]
# [filter] # [filter]
# id=Durstorn # id=Durstorn
# [/filter] # [/filter]
# profile=portraits/durstorn-insane.png # profile=portraits/durstorn-insane.png
# [/modify_unit] # [/modify_unit]
[message] [message]
speaker=Durstorn speaker=Durstorn
message= _ "Of course not!" message= _ "Of course not!"
@ -419,7 +411,6 @@
[/message] [/message]
[/event] [/event]
[event] [event]
name=moveto name=moveto
[filter] [filter]

View file

@ -32,15 +32,7 @@
id=Glildur id=Glildur
name= _ "Glildur" name= _ "Glildur"
side=2 side=2
profile="portraits/elves/captain.png~CHAN( {SOF_GLILDUR_PORTRAIT}
if((blue < 100) and (red > green), red*0.6, red),
if(
(blue < 100) and (red < green), green*0.7,
(blue < 100) and (red < 100) and (red > green), green*0.7,
green
),
if((blue < 100) and (red < green), blue*1.5, blue)
)"
facing=sw facing=sw
[modifications] [modifications]
{TRAIT_RESILIENT} {TRAIT_RESILIENT}

View file

@ -287,7 +287,6 @@
[/unit] [/unit]
[/event] [/event]
[story] [story]
[part] [part]
story= _ "Rugnur and the dwarves fled down the cave path, deeper into the volcano, with the elves and mercenaries close behind. Unfortunately, they began to see litter and wall markings indicating they were plunging into the land of orcs and trolls." story= _ "Rugnur and the dwarves fled down the cave path, deeper into the volcano, with the elves and mercenaries close behind. Unfortunately, they began to see litter and wall markings indicating they were plunging into the land of orcs and trolls."
@ -403,16 +402,16 @@
[objectives] [objectives]
side=1 side=1
[objective] [objective]
description= _ "Find and destroy the remaining runic tablets" description= _ "Find and destroy the remaining runic tablets"
condition=win condition=win
[/objective] [/objective]
[objective] [objective]
description= _ "Death of Rugnur" description= _ "Death of Rugnur"
condition=lose condition=lose
[/objective] [/objective]
[objective] [objective]
description= _ "Death of Krawg" description= _ "Death of Krawg"
condition=lose condition=lose
[/objective] [/objective]
[objective] [objective]
description= _ "Death of Thursagan" description= _ "Death of Thursagan"
@ -480,16 +479,16 @@
[objectives] [objectives]
side=1 side=1
[objective] [objective]
description= _ "Find and destroy the remaining runic tablets" description= _ "Find and destroy the remaining runic tablets"
condition=win condition=win
[/objective] [/objective]
[objective] [objective]
description= _ "Death of Rugnur" description= _ "Death of Rugnur"
condition=lose condition=lose
[/objective] [/objective]
[objective] [objective]
description= _ "Death of Krawg" description= _ "Death of Krawg"
condition=lose condition=lose
[/objective] [/objective]
[objective] [objective]
description= _ "Death of Thursagan" description= _ "Death of Thursagan"
@ -524,9 +523,9 @@
id=Gathor id=Gathor
[/have_unit] [/have_unit]
[or] [or]
[have_unit] [have_unit]
id=Toomak id=Toomak
[/have_unit] [/have_unit]
[/or] [/or]
[/filter_condition] [/filter_condition]
[message] [message]
@ -547,14 +546,14 @@
[/filter] [/filter]
[filter_condition] [filter_condition]
[not] [not]
[have_unit] [have_unit]
id=Gathor id=Gathor
[/have_unit] [/have_unit]
[or] [or]
[have_unit] [have_unit]
id=Toomak id=Toomak
[/have_unit] [/have_unit]
[/or] [/or]
[/not] [/not]
[/filter_condition] [/filter_condition]
[message] [message]
@ -743,8 +742,8 @@
[recall] [recall]
side=1 side=1
[/recall] [/recall]
# original version of this scenario recalled everyone at the start, but that makes this a slog. # original version of this scenario recalled everyone at the start, but that makes this a slog.
# instead, recall cost is now just 1, and there are lots of little keeps scattered on the map. # instead, recall cost is now just 1, and there are lots of little keeps scattered on the map.
#ifdef __UNUSED__ #ifdef __UNUSED__
[store_unit] [store_unit]
[filter] [filter]
@ -944,142 +943,141 @@
), ),
if((blue < 100) and (red < green), blue*1.5, blue) if((blue < 100) and (red < green), blue*1.5, blue)
)" )"
facing=sw facing=sw
[modifications] [modifications]
{TRAIT_RESILIENT} {TRAIT_RESILIENT}
{TRAIT_INTELLIGENT} {TRAIT_INTELLIGENT}
[object] [object]
silent=yes silent=yes
[effect] [effect]
apply_to=image_mod apply_to=image_mod
add=CS(-10,-25,+5) add=CS(-10,-25,+5)
[/effect] [/effect]
[/object] [/object]
[/modifications] [/modifications]
extra_recruit=Elvish Hero, Elvish Ranger extra_recruit=Elvish Hero, Elvish Ranger
[/unit] [/unit]
[message] [message]
speaker=Glildur speaker=Glildur
message= _ "End of the road, little dwarves! That ruby is as good as ours..." message= _ "End of the road, little dwarves! That ruby is as good as ours..."
[/message] [/message]
{RANDOM_MERCENARY_2 "Dwarvish Lord"} {RANDOM_MERCENARY_2 "Dwarvish Lord"}
{RANDOM_MERCENARY_2 "Dwarvish Lord"} {RANDOM_MERCENARY_2 "Dwarvish Lord"}
{RANDOM_MERCENARY_2 "Dwarvish Lord"} {RANDOM_MERCENARY_2 "Dwarvish Lord"}
{RANDOM_MERCENARY_2 "Dwarvish Lord"} {RANDOM_MERCENARY_2 "Dwarvish Lord"}
#ifdef HARD #ifdef HARD
{RANDOM_MERCENARY_2 "Dwarvish Lord"} {RANDOM_MERCENARY_2 "Dwarvish Lord"}
#endif #endif
{RANDOM_MERCENARY_2 "Dwarvish Dragonguard"} {RANDOM_MERCENARY_2 "Dwarvish Dragonguard"}
{RANDOM_MERCENARY_2 "Dwarvish Dragonguard"} {RANDOM_MERCENARY_2 "Dwarvish Dragonguard"}
{RANDOM_MERCENARY_2 "Dwarvish Dragonguard"} {RANDOM_MERCENARY_2 "Dwarvish Dragonguard"}
{RANDOM_MERCENARY_2 "Dwarvish Dragonguard"} {RANDOM_MERCENARY_2 "Dwarvish Dragonguard"}
#ifdef HARD #ifdef HARD
{RANDOM_MERCENARY_2 "Dwarvish Dragonguard"} {RANDOM_MERCENARY_2 "Dwarvish Dragonguard"}
#endif #endif
{RANDOM_MERCENARY_2 "Elvish Champion"} {RANDOM_MERCENARY_2 "Elvish Champion"}
{RANDOM_MERCENARY_2 "Elvish Champion"} {RANDOM_MERCENARY_2 "Elvish Champion"}
{RANDOM_MERCENARY_2 "Elvish Champion"} {RANDOM_MERCENARY_2 "Elvish Champion"}
{RANDOM_MERCENARY_2 "Elvish Champion"} {RANDOM_MERCENARY_2 "Elvish Champion"}
#ifdef HARD #ifdef HARD
{RANDOM_MERCENARY_2 "Elvish Champion"} {RANDOM_MERCENARY_2 "Elvish Champion"}
#endif #endif
{RANDOM_MERCENARY_2 "Elvish Avenger"} {RANDOM_MERCENARY_2 "Elvish Avenger"}
{RANDOM_MERCENARY_2 "Elvish Avenger"} {RANDOM_MERCENARY_2 "Elvish Avenger"}
{RANDOM_MERCENARY_2 "Elvish Avenger"} {RANDOM_MERCENARY_2 "Elvish Avenger"}
{RANDOM_MERCENARY_2 "Elvish Avenger"} {RANDOM_MERCENARY_2 "Elvish Avenger"}
#ifdef HARD #ifdef HARD
{RANDOM_MERCENARY_2 "Elvish Avenger"} {RANDOM_MERCENARY_2 "Elvish Avenger"}
#endif #endif
{RANDOM_MERCENARY_2 "Elvish Outrider"} {RANDOM_MERCENARY_2 "Elvish Outrider"}
{RANDOM_MERCENARY_2 "Elvish Outrider"} {RANDOM_MERCENARY_2 "Elvish Outrider"}
{RANDOM_MERCENARY_2 "Elvish Outrider"} {RANDOM_MERCENARY_2 "Elvish Outrider"}
{RANDOM_MERCENARY_2 "Elvish Outrider"} {RANDOM_MERCENARY_2 "Elvish Outrider"}
#ifdef HARD #ifdef HARD
{RANDOM_MERCENARY_2 "Elvish Outrider"} {RANDOM_MERCENARY_2 "Elvish Outrider"}
#endif #endif
[message] [message]
speaker=Rugnur speaker=Rugnur
message= _ "Thursagan! The elves are right on our tail! What should we do?" message= _ "Thursagan! The elves are right on our tail! What should we do?"
[/message] [/message]
[message] [message]
speaker=Thursagan speaker=Thursagan
message= _ "We should try to set off the volcano as soon as possible. Draw the elves further into the caves, so they cant escape when it does erupt." message= _ "We should try to set off the volcano as soon as possible. Draw the elves further into the caves, so they cant escape when it does erupt."
[/message] [/message]
[terrain] [terrain]
terrain=Qxu^Bp/ terrain=Qxu^Bp/
x=34,34,35 x=34,34,35
y=4,5,6 y=4,5,6
[/terrain] [/terrain]
[unstore_unit] [unstore_unit]
variable=harohk variable=harohk
find_vacant=no find_vacant=no
[/unstore_unit] [/unstore_unit]
{CLEAR_VARIABLE harohk} {CLEAR_VARIABLE harohk}
[/event] [/event]
[event] [event]
name=last_breath name=last_breath
[filter] [filter]
id=Glildur id=Glildur
[/filter] [/filter]
[message] [message]
speaker=Glildur speaker=Glildur
message= _ "Damnation! I almost had it... but now I join Landar..." message= _ "Damnation! I almost had it... but now I join Landar..."
[/message] [/message]
[/event] [/event]
#when the elves lose troops, the orcs gain them #when the elves lose troops, the orcs gain them
[event] [event]
name=die name=die
first_time_only=no first_time_only=no
[filter] [filter]
side=2 side=2
[/filter] [/filter]
[gold] [gold]
side=4 side=4
amount=50 amount=50
[/gold] [/gold]
[gold] [gold]
side=5 side=5
amount=50 amount=50
[/gold] [/gold]
[/event] [/event]
# the orcs are held back # the orcs are held back
[event] [event]
name=enter_hex name=enter_hex
[filter] [filter]
side=1 side=1
x,y=30,3-8 x,y=30,3-8
[/filter] [/filter]
[filter_condition] [filter_condition]
[variable] [variable]
name=turn_number name=turn_number
less_than=6 less_than=6
[/variable] [/variable]
[/filter_condition] [/filter_condition]
{MOVE_UNIT (id=Gathor) 36 5} {MOVE_UNIT (id=Gathor) 36 5}
[remove_shroud] [remove_shroud]
side=1 side=1
x,y=32-43,3-9 x,y=32-43,3-9
[/remove_shroud] [/remove_shroud]
[redraw] [redraw]
side=1 side=1
[/redraw] [/redraw]
[message] [message]
speaker=Gathor speaker=Gathor
message= _ "Ah ha! I knew it, there are intruders! And yet our damned bridge is broken, it was built by idiots. Come, come, bring planks, we've got to get across!" message= _ "Ah ha! I knew it, there are intruders! And yet our damned bridge is broken, it was built by idiots. Come, come, bring planks, we've got to get across!"
[/message] [/message]
[message] [message]
speaker=Rugnur speaker=Rugnur
message= _ "Huh. Well, let's not stay here too long." message= _ "Huh. Well, let's not stay here too long."
[/message] [/message]
[message] [message]
speaker=Thursagan speaker=Thursagan
message= _ "Right, if we can get both the orcs and the elves behind us, maybe they'll fight each other." message= _ "Right, if we can get both the orcs and the elves behind us, maybe they'll fight each other."
[/message] [/message]
[/event] [/event]
[/scenario]
[/scenario]
#undef RANDOM_MERCENARY_2 #undef RANDOM_MERCENARY_2

View file

@ -30,6 +30,4 @@
[/specials] [/specials]
attack_weight=0.0 attack_weight=0.0
[/attack] [/attack]
[/unit_type] [/unit_type]

View file

@ -8,301 +8,353 @@
#define SOF_MINECART_PLACE_IMAGE X Y #define SOF_MINECART_PLACE_IMAGE X Y
[if] [if]
[have_location]
terrain=*^Br/
x,y={X},{Y}
[/have_location]
[then]
[item]
# This IPF is needed to keep the cart from sitting too lowin the hex.
# Cannot just move image around in the 72x72 canvas because then
# it won't overlay the unit sprite correctly.
# this might be making the shadows brighter, for some reason -> removing shadows for now
image=misc/blank-hex.png~BLIT(misc/mine-cart-ne.png~CROP(0,24,72,48),0,2)
x,y={X},{Y}
[/item]
[/then]
[elseif]
[have_location] [have_location]
terrain=*^Br\ terrain=*^Br/
x,y={X},{Y} x,y={X},{Y}
[/have_location] [/have_location]
[then] [then]
[item] [item]
image=misc/blank-hex.png~BLIT(misc/mine-cart-ne.png~FL(horiz)~CROP(0,24,72,48),0,2) # This IPF is needed to keep the cart from sitting too lowin the hex.
# Cannot just move image around in the 72x72 canvas because then
# it won't overlay the unit sprite correctly.
# this might be making the shadows brighter, for some reason -> removing shadows for now
image=misc/blank-hex.png~BLIT(misc/mine-cart-ne.png~CROP(0,24,72,48),0,2)
x,y={X},{Y} x,y={X},{Y}
[/item] [/item]
[/then] [/then]
[/elseif] [elseif]
[else] [have_location]
[item] terrain=*^Br\
image=misc/blank-hex.png~BLIT(misc/mine-cart-n.png~CROP(0,20,72,52),0,1) x,y={X},{Y}
x,y={X},{Y} [/have_location]
[/item] [then]
[/else] [item]
[/if] image=misc/blank-hex.png~BLIT(misc/mine-cart-ne.png~FL(horiz)~CROP(0,24,72,48),0,2)
x,y={X},{Y}
[/item]
[/then]
[/elseif]
[else]
[item]
image=misc/blank-hex.png~BLIT(misc/mine-cart-n.png~CROP(0,20,72,52),0,1)
x,y={X},{Y}
[/item]
[/else]
[/if]
#enddef #enddef
#define SOF_OBJ_MINECART VAR #define SOF_OBJ_MINECART VAR
[object] [object]
silent=yes silent=yes
id=sof_mine_cart_{VAR} id=sof_mine_cart_{VAR}
take_only_once=no take_only_once=no
[filter] [filter]
id=${VAR}.id id=${VAR}.id
race=dwarf race=dwarf
[/filter] [/filter]
[effect] [effect]
apply_to=new_animation apply_to=new_animation
[standing_anim] [standing_anim]
start_time=0 start_time=0
base_score=2 base_score=2
terrain_type=*^Br* terrain_type=*^Br*
[if] [if]
terrain_type=*^Br| terrain_type=*^Br|
[frame] [frame]
image=misc/mine-cart-n.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-n.png,0,0),0,0):100 image=misc/mine-cart-n.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-n.png,0,0),0,0):100
auto_hflip=no auto_hflip=no
auto_vflip=no auto_vflip=no
[/frame] [/frame]
[/if] [/if]
[else] [else]
terrain_type=*^Br\ terrain_type=*^Br\
[frame] [frame]
image=misc/mine-cart-ne.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-ne.png,0,0),0,0)~FL(horiz):100 image=misc/mine-cart-ne.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-ne.png,0,0),0,0)~FL(horiz):100
auto_hflip=no auto_hflip=no
auto_vflip=no auto_vflip=no
[/frame] [/frame]
[/else] [/else]
[else] [else]
terrain_type=*^Br/ terrain_type=*^Br/
[frame] [frame]
image=misc/mine-cart-ne.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-ne.png,0,0),0,0):100 image=misc/mine-cart-ne.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-ne.png,0,0),0,0):100
auto_hflip=no auto_hflip=no
auto_vflip=no auto_vflip=no
[/frame] [/frame]
[/else] [/else]
[/standing_anim] [/standing_anim]
[/effect] [/effect]
[effect] [effect]
apply_to=new_animation apply_to=new_animation
[idle_anim] [idle_anim]
start_time=0 start_time=0
base_score=2 base_score=2
terrain_type=*^Br* terrain_type=*^Br*
[if] [if]
terrain_type=*^Br| terrain_type=*^Br|
[frame] [frame]
image=misc/mine-cart-n.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-n.png,0,0),0,0):100 image=misc/mine-cart-n.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-n.png,0,0),0,0):100
auto_hflip=no auto_hflip=no
auto_vflip=no auto_vflip=no
[/frame] [/frame]
[/if] [/if]
[else] [else]
terrain_type=*^Br\ terrain_type=*^Br\
[frame] [frame]
image=misc/mine-cart-ne.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-ne.png,0,0),0,0)~FL(horiz):100 image=misc/mine-cart-ne.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-ne.png,0,0),0,0)~FL(horiz):100
auto_hflip=no auto_hflip=no
auto_vflip=no auto_vflip=no
[/frame] [/frame]
[/else] [/else]
[else] [else]
terrain_type=*^Br/ terrain_type=*^Br/
[frame] [frame]
image=misc/mine-cart-ne.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-ne.png,0,0),0,0):100 image=misc/mine-cart-ne.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-ne.png,0,0),0,0):100
auto_hflip=no auto_hflip=no
auto_vflip=no auto_vflip=no
[/frame] [/frame]
[/else] [/else]
[/idle_anim] [/idle_anim]
[/effect] [/effect]
[effect] [effect]
apply_to=new_animation apply_to=new_animation
[movement_anim] [movement_anim]
start_time=0 start_time=0
base_score=2 base_score=2
terrain_type=*^Br* terrain_type=*^Br*
[if] [if]
terrain_type=*^Br| terrain_type=*^Br|
[frame] [frame]
image=misc/mine-cart-n.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-n.png,0,0),0,0):200 image=misc/mine-cart-n.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-n.png,0,0),0,0):200
auto_hflip=no auto_hflip=no
auto_vflip=no auto_vflip=no
[/frame] [/frame]
[/if] [/if]
[else] [else]
terrain_type=*^Br\ terrain_type=*^Br\
[frame] [frame]
image=misc/mine-cart-ne.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-ne.png,0,0),0,0)~FL(horiz):200 image=misc/mine-cart-ne.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-ne.png,0,0),0,0)~FL(horiz):200
auto_hflip=no auto_hflip=no
auto_vflip=no auto_vflip=no
[/frame] [/frame]
[/else] [/else]
[else] [else]
terrain_type=*^Br/ terrain_type=*^Br/
[frame] [frame]
image=misc/mine-cart-ne.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-ne.png,0,0),0,0):200 image=misc/mine-cart-ne.png~BLIT(${VAR}.image|~TC(${VAR}.side|,magenta)~MASK(misc/mine-cart-mask-ne.png,0,0),0,0):200
auto_hflip=no auto_hflip=no
auto_vflip=no auto_vflip=no
[/frame] [/frame]
[/else] [/else]
[/movement_anim] [/movement_anim]
[/effect] [/effect]
[effect] [effect]
apply_to=movement apply_to=movement
increase=5 increase=5
[/effect] [/effect]
[effect] [effect]
apply_to=movement_costs apply_to=movement_costs
replace=yes replace=yes
[movement_costs] [movement_costs]
shallow_water=99 shallow_water=99
reef=99 reef=99
swamp_water=99 swamp_water=99
flat=99 flat=99
sand=99 sand=99
forest=99 forest=99
hills=99 hills=99
mountains=99 mountains=99
village=99 village=99
castle=99 castle=99
cave=99 cave=99
frozen=99 frozen=99
fungus=99 fungus=99
unwalkable=99 unwalkable=99
impassable=99 impassable=99
rails=1 rails=1
[/movement_costs] [/movement_costs]
[/effect] [/effect]
[then] [then]
# it's one of these # it's one of these
[remove_item] [remove_item]
image=misc/blank-hex.png~BLIT(misc/mine-cart-n.png~CROP(0,20,72,52),0,1) image=misc/blank-hex.png~BLIT(misc/mine-cart-n.png~CROP(0,20,72,52),0,1)
x,y=${VAR}.x|,${VAR}.y| x,y=${VAR}.x|,${VAR}.y|
[/remove_item] [/remove_item]
[remove_item] [remove_item]
image=misc/blank-hex.png~BLIT(misc/mine-cart-ne.png~CROP(0,24,72,48),0,2) image=misc/blank-hex.png~BLIT(misc/mine-cart-ne.png~CROP(0,24,72,48),0,2)
x,y=${VAR}.x|,${VAR}.y| x,y=${VAR}.x|,${VAR}.y|
[/remove_item] [/remove_item]
[remove_item] [remove_item]
image=misc/blank-hex.png~BLIT(misc/mine-cart-ne.png~FL(horiz)~CROP(0,24,72,48),0,2) image=misc/blank-hex.png~BLIT(misc/mine-cart-ne.png~FL(horiz)~CROP(0,24,72,48),0,2)
x,y=${VAR}.x|,${VAR}.y| x,y=${VAR}.x|,${VAR}.y|
[/remove_item] [/remove_item]
[/then] [/then]
[/object] [/object]
#enddef #enddef
#define SOF_REMOVE_OBJ_MINECART VAR #define SOF_REMOVE_OBJ_MINECART VAR
[remove_object] [remove_object]
id=${VAR}.id id=${VAR}.id
object_id=sof_mine_cart_{VAR} object_id=sof_mine_cart_{VAR}
[/remove_object] [/remove_object]
#enddef #enddef
#define SOF_MINECART_MENU VAR X Y #define SOF_MINECART_MENU VAR X Y
{SOF_MINECART_PLACE_IMAGE {X} {Y}} {SOF_MINECART_PLACE_IMAGE {X} {Y}}
[set_variables] [set_variables]
name={VAR} name={VAR}
mode=replace mode=replace
[value] [value]
load="empty" load="empty"
x={X} x={X}
y={Y} y={Y}
[/value] [/value]
[/set_variables] [/set_variables]
[set_menu_item] [set_menu_item]
id=sof_minecart_boarding_{VAR} id=sof_minecart_boarding_{VAR}
description= _ "Board Cart" description= _ "Board Cart"
image=buttons/WML-custom.png image=buttons/WML-custom.png
[show_if] [show_if]
[variable]
name={VAR}.load
equals=empty
[/variable]
[variable]
name={VAR}.x
equals=$x1
[/variable]
[variable]
name={VAR}.y
equals=$y1
[/variable]
[have_unit]
x,y=${VAR}.x|,${VAR}.y|
race=dwarf
[/have_unit]
[/show_if]
[filter_location]
terrain=*^Br*
[/filter_location]
[command]
[store_unit]
[filter]
x,y=${VAR}.x|,${VAR}.y|
[/filter]
variable=passenger_{VAR}
kill=no
[/store_unit]
[set_variable]
name={VAR}.load
value=$passenger_{VAR}.id
[/set_variable]
{SOF_OBJ_MINECART passenger_{VAR}}
# this is needed for graphics reasons, not just the movement
[store_unit]
[filter]
x,y=${VAR}.x|,${VAR}.y|
[/filter]
variable=passenger_redraw
kill=no
[/store_unit]
[if]
# this variable is removed every new turn
[variable] [variable]
name=passenger_moves name={VAR}.load
equals=yes equals=empty
[/variable] [/variable]
[else] [variable]
[set_variable] name={VAR}.x
name=passenger_redraw.moves equals=$x1
add=5 [/variable]
[/set_variable] [variable]
[set_variable] name={VAR}.y
equals=$y1
[/variable]
[have_unit]
x,y=${VAR}.x|,${VAR}.y|
race=dwarf
[/have_unit]
[/show_if]
[filter_location]
terrain=*^Br*
[/filter_location]
[command]
[store_unit]
[filter]
x,y=${VAR}.x|,${VAR}.y|
[/filter]
variable=passenger_{VAR}
kill=no
[/store_unit]
[set_variable]
name={VAR}.load
value=$passenger_{VAR}.id
[/set_variable]
{SOF_OBJ_MINECART passenger_{VAR}}
# this is needed for graphics reasons, not just the movement
[store_unit]
[filter]
x,y=${VAR}.x|,${VAR}.y|
[/filter]
variable=passenger_redraw
kill=no
[/store_unit]
[if]
# this variable is removed every new turn
[variable]
name=passenger_moves name=passenger_moves
value=yes equals=yes
[/set_variable] [/variable]
[/else] [else]
[/if] [set_variable]
[unstore_unit] name=passenger_redraw.moves
variable=passenger_redraw add=5
find_vacant=no [/set_variable]
[/unstore_unit] [set_variable]
{CLEAR_VARIABLE passenger_redraw} name=passenger_moves
[redraw] value=yes
side=1 [/set_variable]
[/redraw] [/else]
[/command] [/if]
[/set_menu_item] [unstore_unit]
[set_menu_item] variable=passenger_redraw
id=sof_minecart_unboarding_{VAR} find_vacant=no
description= _ "Leave Cart" [/unstore_unit]
image=buttons/WML-custom.png {CLEAR_VARIABLE passenger_redraw}
[show_if] [redraw]
[have_unit] side=1
x,y=$x1|,$y1| [/redraw]
id=${VAR}.load [/command]
[/have_unit] [/set_menu_item]
[/show_if] [set_menu_item]
[filter_location] id=sof_minecart_unboarding_{VAR}
terrain=*^Br* description= _ "Leave Cart"
[/filter_location] image=buttons/WML-custom.png
[command] [show_if]
[have_unit]
x,y=$x1|,$y1|
id=${VAR}.load
[/have_unit]
[/show_if]
[filter_location]
terrain=*^Br*
[/filter_location]
[command]
[set_variable]
name={VAR}.load
value="empty"
[/set_variable]
[set_variable]
name={VAR}.x
value=$x1
[/set_variable]
[set_variable]
name={VAR}.y
value=$y1
[/set_variable]
{SOF_REMOVE_OBJ_MINECART passenger_{VAR}}
[store_unit]
[filter]
x,y=${VAR}.x|,${VAR}.y|
[/filter]
variable=passenger_redraw
kill=no
[/store_unit]
[if]
[variable]
name=passenger_redraw.moves
greater_than=$passenger_redraw.max_moves
[/variable]
[then]
[set_variable]
name=passenger_redraw.moves
value=$passenger_redraw.max_moves
[/set_variable]
[/then]
[/if]
[unstore_unit]
variable=passenger_redraw
find_vacant=no
[/unstore_unit]
{CLEAR_VARIABLE passenger_redraw}
{SOF_MINECART_PLACE_IMAGE $x1 $y1}
{CLEAR_VARIABLE passenger_{VAR}}
[/command]
[/set_menu_item]
# if a cart-rider attacks, they exit the cart
[event]
name=attack
first_time_only=no
[filter_condition]
[variable]
name={VAR}.load
equals=$unit.id
[/variable]
[/filter_condition]
[set_variable] [set_variable]
name={VAR}.load name={VAR}.load
value="empty" value="empty"
@ -316,101 +368,49 @@
value=$y1 value=$y1
[/set_variable] [/set_variable]
{SOF_REMOVE_OBJ_MINECART passenger_{VAR}} {SOF_REMOVE_OBJ_MINECART passenger_{VAR}}
[store_unit]
[filter]
x,y=${VAR}.x|,${VAR}.y|
[/filter]
variable=passenger_redraw
kill=no
[/store_unit]
[if]
[variable]
name=passenger_redraw.moves
greater_than=$passenger_redraw.max_moves
[/variable]
[then]
[set_variable]
name=passenger_redraw.moves
value=$passenger_redraw.max_moves
[/set_variable]
[/then]
[/if]
[unstore_unit]
variable=passenger_redraw
find_vacant=no
[/unstore_unit]
{CLEAR_VARIABLE passenger_redraw}
{SOF_MINECART_PLACE_IMAGE $x1 $y1} {SOF_MINECART_PLACE_IMAGE $x1 $y1}
{CLEAR_VARIABLE passenger_{VAR}} {CLEAR_VARIABLE passenger_{VAR}}
[/command] [/event]
[/set_menu_item]
# if a cart-rider attacks, they exit the cart # if a cart-rider is attacked, they exit the cart
[event] [event]
name=attack name=attack
first_time_only=no first_time_only=no
[filter_condition] [filter_condition]
[variable] [variable]
name={VAR}.load
equals=$second_unit.id
[/variable]
[/filter_condition]
[set_variable]
name={VAR}.load name={VAR}.load
equals=$unit.id value="empty"
[/variable] [/set_variable]
[/filter_condition] [set_variable]
[set_variable] name={VAR}.x
name={VAR}.load value=$x2
value="empty" [/set_variable]
[/set_variable] [set_variable]
[set_variable] name={VAR}.y
name={VAR}.x value=$y2
value=$x1 [/set_variable]
[/set_variable] {SOF_REMOVE_OBJ_MINECART passenger_{VAR}}
[set_variable] {SOF_MINECART_PLACE_IMAGE $x2 $y2}
name={VAR}.y {CLEAR_VARIABLE passenger_{VAR}}
value=$y1 [/event]
[/set_variable]
{SOF_REMOVE_OBJ_MINECART passenger_{VAR}}
{SOF_MINECART_PLACE_IMAGE $x1 $y1}
{CLEAR_VARIABLE passenger_{VAR}}
[/event]
# if a cart-rider is attacked, they exit the cart # part of mechanism that prevents infinite movement by reboarding the cart
[event] [event]
name=attack name=side 1 turn
first_time_only=no first_time_only=no
[filter_condition] {CLEAR_VARIABLE passenger_moves}
[variable] [/event]
name={VAR}.load
equals=$second_unit.id
[/variable]
[/filter_condition]
[set_variable]
name={VAR}.load
value="empty"
[/set_variable]
[set_variable]
name={VAR}.x
value=$x2
[/set_variable]
[set_variable]
name={VAR}.y
value=$y2
[/set_variable]
{SOF_REMOVE_OBJ_MINECART passenger_{VAR}}
{SOF_MINECART_PLACE_IMAGE $x2 $y2}
{CLEAR_VARIABLE passenger_{VAR}}
[/event]
# part of mechanism that prevents infinite movement by reboarding the cart # variables cleanup
[event] [event]
name=side 1 turn name=scenario_end
first_time_only=no {SOF_REMOVE_OBJ_MINECART passenger_{VAR}}
{CLEAR_VARIABLE passenger_moves} {CLEAR_VARIABLE passenger_{VAR}}
[/event] [/event]
# variables cleanup
[event]
name=scenario_end
{SOF_REMOVE_OBJ_MINECART passenger_{VAR}}
{CLEAR_VARIABLE passenger_{VAR}}
[/event]
#enddef #enddef

View file

@ -88,3 +88,17 @@
[/endlevel] [/endlevel]
[/event] [/event]
#enddef #enddef
# wmlindent: start ignoring
#define SOF_GLILDUR_PORTRAIT
profile="portraits/elves/captain.png~CHAN(
if((blue < 100) and (red > green), red*0.6, red),
if(
(blue < 100) and (red < green), green*0.7,
(blue < 100) and (red < 100) and (red > green), green*0.7,
green
),
if((blue < 100) and (red < green), blue*1.5, blue)
)"
#enddef
# wmlindent: stop ignoring

View file

@ -222,7 +222,7 @@ I decided to hide in the cemetery. That way I could try my experiment to animate
[/modifications] [/modifications]
[/unit] [/unit]
#enddef #enddef
# wmllint: whofield PLACE_GUARD 6 # wmllint: whofield PLACE_GUARD 6
# *************************** PRESTART *************************** # *************************** PRESTART ***************************
[event] [event]
@ -620,7 +620,7 @@ of Healing"
name=location name=location
[/clear_variable] [/clear_variable]
#enddef #enddef
# wmllint: whofield MOVE_AND_PLACE_GUARD 3 # wmllint: whofield MOVE_AND_PLACE_GUARD 3
[event] [event]
name=guards_emerge name=guards_emerge
@ -936,7 +936,7 @@ Well, I might as well do my experiment and worry about leaving later."
{MAKE_BATS_NORMAL} {MAKE_BATS_NORMAL}
{ZOMBIES} {ZOMBIES}
# wmllint: whofield clear PLACE_GUARD MOVE_AND_PLACE_GUARD # wmllint: whofield clear PLACE_GUARD MOVE_AND_PLACE_GUARD
#undef PLACE_GUARD #undef PLACE_GUARD
#undef MOVE_AND_PLACE_GUARD #undef MOVE_AND_PLACE_GUARD
#undef SET_MENU_ITEM_FOR #undef SET_MENU_ITEM_FOR

View file

@ -311,7 +311,7 @@ We crossed the high plateaus, and forded the Arkan-thoria. Then we headed up int
[/if] [/if]
[remove_item] [remove_item]
x,y=$x1,$y1 x,y=$x1,$y1
image=holy_water image=holy_water
[/remove_item] [/remove_item]
[store_items] [store_items]
variable=holy_waters variable=holy_waters

View file

@ -137,14 +137,14 @@
# concatenation of a boolean, presumably because the strings are all either # concatenation of a boolean, presumably because the strings are all either
# "yes" or "no". If that changes, this code can be uncommented, and the code # "yes" or "no". If that changes, this code can be uncommented, and the code
# above removed. # above removed.
# [set_variable] # [set_variable]
# name=ardonna_zombies # name=ardonna_zombies
# [join] # [join]
# variable=zombies # variable=zombies
# key=allow_recruit # key=allow_recruit
# separator="," # separator=","
# [/join] # [/join]
# [/set_variable] # [/set_variable]
#enddef #enddef
#define LOAD_ZOMBIE_LIST VARIABLE #define LOAD_ZOMBIE_LIST VARIABLE
@ -166,8 +166,8 @@
# longer added to the recruit list directly, but to the zombie recruit dialog. # longer added to the recruit list directly, but to the zombie recruit dialog.
#define NEW_UNIT_TYPE_KILLED FILTER ZOMBIE_TYPE PROFILE_IMAGE #define NEW_UNIT_TYPE_KILLED FILTER ZOMBIE_TYPE PROFILE_IMAGE
[event] [event]
# Only humans are ever added with the custom event name, but we include it for # Only humans are ever added with the custom event name, but we include it for
# that case. # that case.
name=die, add_{ZOMBIE_TYPE} name=die, add_{ZOMBIE_TYPE}
[filter] [filter]
{FILTER} {FILTER}
@ -206,12 +206,12 @@
boolean_equals=yes boolean_equals=yes
[/variable] [/variable]
[then] [then]
[set_variable] [set_variable]
# This won't include the current one being added. # This won't include the current one being added.
name=num_zombie_types name=num_zombie_types
add=1 add=1
[/set_variable] [/set_variable]
[/then] [/then]
[/if] [/if]
[if] [if]
[variable] [variable]

View file

@ -198,8 +198,8 @@
#enddef #enddef
#define ENABLE_AI_COMMAND_CA_TRANSPORT_S6 #define ENABLE_AI_COMMAND_CA_TRANSPORT_S6
[lua] [lua]
code = << code = <<
local helper = wesnoth.require "helper" local helper = wesnoth.require "helper"
function wesnoth.custom_synced_commands.ship_unload(cfg) function wesnoth.custom_synced_commands.ship_unload(cfg)
@ -223,5 +223,5 @@ function wesnoth.custom_synced_commands.ship_unload(cfg)
end end
>> >>
[/lua] [/lua]
#enddef #enddef

View file

@ -196,7 +196,6 @@
{WILDTHING 27 14} {WILDTHING 27 14}
[/event] [/event]
#ifdef EASY #ifdef EASY
# Compensate that you get less experience points on easy. # Compensate that you get less experience points on easy.
[event] [event]
@ -296,7 +295,6 @@
[event] [event]
name=victory name=victory
[/event] [/event]
{HERODEATH_AIGLONDUR} {HERODEATH_AIGLONDUR}

View file

@ -380,7 +380,7 @@
[/objectives] [/objectives]
[/event] [/event]
# wmllint: unbalanced-on # wmllint: unbalanced-on
#define PLACE_ENEMY_UNITS #define PLACE_ENEMY_UNITS
[lua] [lua]
code = << code = <<
@ -414,7 +414,7 @@
name=orc dialogue name=orc dialogue
[/fire_event] [/fire_event]
#enddef #enddef
# wmllint: unbalanced-off # wmllint: unbalanced-off
[event] [event]
name=orc dialogue name=orc dialogue
@ -590,7 +590,6 @@
[/message] [/message]
[/event] [/event]
[event] [event]
name=last breath name=last breath
[filter] [filter]

View file

@ -312,7 +312,6 @@
message= _ "Aye. Karrag, calling his troops to battle. Only the Dark Gods know what hellspawn the lich will summon. AXES UP!" message= _ "Aye. Karrag, calling his troops to battle. Only the Dark Gods know what hellspawn the lich will summon. AXES UP!"
[/message] [/message]
{REPLACE_SCENARIO_MUSIC knalgan_theme.ogg} {REPLACE_SCENARIO_MUSIC knalgan_theme.ogg}
{APPEND_MUSIC siege_of_laurelmor.ogg} {APPEND_MUSIC siege_of_laurelmor.ogg}
{APPEND_MUSIC underground.ogg} {APPEND_MUSIC underground.ogg}

View file

@ -1,9 +1,9 @@
#textdomain wesnoth-thot #textdomain wesnoth-thot
#define NOTE_INSPIRE #define NOTE_INSPIRE
[special_note] [special_note]
note=_"The presence of this unit inspires own units next to it to deal more damage in combat, though this only applies to units of lower or equal level." note=_"The presence of this unit inspires own units next to it to deal more damage in combat, though this only applies to units of lower or equal level."
[/special_note] [/special_note]
#enddef #enddef
#define ABILITY_INSPIRE #define ABILITY_INSPIRE

View file

@ -203,7 +203,7 @@
[message] [message]
speaker=Tan-Rarbag speaker=Tan-Rarbag
# po: meat is a derogatory term for humans used by orcs and also is a subtle reference to orcs eating humans opportunistically # po: meat is a derogatory term for humans used by orcs and also is a subtle reference to orcs eating humans opportunistically
message= _ "Run, meat, run! Sooner or later, you will tire and our wolves will hunt you down!" message= _ "Run, meat, run! Sooner or later, you will tire and our wolves will hunt you down!"
[/message] [/message]

View file

@ -13,7 +13,7 @@
#enddef #enddef
#define NOTE_DISTRACT #define NOTE_DISTRACT
[special_note] [special_note]
note=_"This unit is capable of distracting opponents, allowing allied units to trespass their Zones of Control and move unhindered around them." note=_"This unit is capable of distracting opponents, allowing allied units to trespass their Zones of Control and move unhindered around them."
[/special_note] [/special_note]
#enddef #enddef

View file

@ -94,7 +94,6 @@
{campaigns/The_South_Guard/utils/sg_story.cfg} {campaigns/The_South_Guard/utils/sg_story.cfg}
{campaigns/The_South_Guard/utils/bigmap.cfg} {campaigns/The_South_Guard/utils/bigmap.cfg}
[units] [units]
{campaigns/The_South_Guard/units} {campaigns/The_South_Guard/units}
[/units] [/units]

View file

@ -701,8 +701,6 @@
[/message] [/message]
[/event] [/event]
# Victory - The bandits are defeated. # Victory - The bandits are defeated.
[event] [event]

View file

@ -422,7 +422,6 @@
[/have_unit] [/have_unit]
[/filter_condition] [/filter_condition]
{VARIABLE have_bodyguard yes} {VARIABLE have_bodyguard yes}
[message] [message]

View file

@ -95,8 +95,8 @@
recruit=Bone Shooter,Deathblade,Ghoul,Revenant,Blood Bat,Dark Adept recruit=Bone Shooter,Deathblade,Ghoul,Revenant,Blood Bat,Dark Adept
#endif #endif
# decrease Mebrin's moves so he doesn't run around too much # decrease Mebrin's moves so he doesn't run around too much
# also make him weaker # also make him weaker
[modifications] [modifications]
[object] [object]
[effect] [effect]
@ -290,7 +290,7 @@
{NAMED_LOYAL_UNIT 2 (Necromancer) 20 27 (Mal Maul) (_"Mal Maul")} {GUARDIAN} {NAMED_LOYAL_UNIT 2 (Necromancer) 20 27 (Mal Maul) (_"Mal Maul")} {GUARDIAN}
#endif #endif
# trolls # trolls
{NAMED_LOYAL_UNIT 5 (Troll Hero) 8 17 (Grek) (_"Grek")} {GUARDIAN} {NAMED_LOYAL_UNIT 5 (Troll Hero) 8 17 (Grek) (_"Grek")} {GUARDIAN}
#ifdef EASY #ifdef EASY
@ -603,7 +603,6 @@
[/message] [/message]
[/event] [/event]
# Confrontation with Mal Brin # Confrontation with Mal Brin
[event] [event]
name=sighted name=sighted
@ -768,7 +767,7 @@
[/role] [/role]
[/else] [/else]
[/role] [/role]
[/else] [/else]
[/role] [/role]
[message] [message]
@ -854,7 +853,6 @@
[/message] [/message]
[/event] [/event]
[event] [event]
name=last breath name=last breath
[filter] [filter]

View file

@ -127,8 +127,7 @@
{VARIABLE secret_path.x 18} {VARIABLE secret_path.x 18}
{VARIABLE secret_path.y 35} {VARIABLE secret_path.y 35}
# the first undead will spawn on this turn+1 (i.e. turn {6 5 4})
# the first undead will spawn on this turn+1 (i.e. turn {6 5 4})
#ifdef EASY #ifdef EASY
{VARIABLE first_undead_spawn_turn 5} {VARIABLE first_undead_spawn_turn 5}
#endif #endif

View file

@ -138,7 +138,6 @@
{NAMED_LOYAL_UNIT 1 (Heavy Infantryman) 11 11 (Rheban) (_"Rheban")} {NAMED_LOYAL_UNIT 1 (Heavy Infantryman) 11 11 (Rheban) (_"Rheban")}
{NAMED_LOYAL_UNIT 1 (Bowman) 10 10 (Jul) (_"Jul")} {NAMED_LOYAL_UNIT 1 (Bowman) 10 10 (Jul) (_"Jul")}
# Lt. Meris' Section # Lt. Meris' Section
{NAMED_LOYAL_UNIT 1 (Lieutenant) 21 10 (Meris) (_"Meris")} {NAMED_LOYAL_UNIT 1 (Lieutenant) 21 10 (Meris) (_"Meris")}
@ -190,7 +189,6 @@
{LOYAL_UNIT 2 (Blood Bat) 32 10} {LOYAL_UNIT 2 (Blood Bat) 32 10}
#endif #endif
{MODIFY_UNIT x,y=16-33,1-25 facing sw} {MODIFY_UNIT x,y=16-33,1-25 facing sw}
{CLEAR_VARIABLE stored_side_1} {CLEAR_VARIABLE stored_side_1}

View file

@ -79,7 +79,6 @@
{NAMED_GENERIC_UNIT 1 (Bowman) 19 12 () (_"Westin Guard")} {NAMED_GENERIC_UNIT 1 (Bowman) 19 12 () (_"Westin Guard")}
{NAMED_GENERIC_UNIT 1 (Lieutenant) 19 11 () (_"Westin Guard")} {NAMED_GENERIC_UNIT 1 (Lieutenant) 19 11 () (_"Westin Guard")}
#endif #endif
[/side] [/side]
{STARTING_VILLAGES 1 15} {STARTING_VILLAGES 1 15}
@ -300,7 +299,7 @@
y=8 ,8 ,8 ,8 ,8 ,8 ,8 ,8 ,8 ,8 ,7 ,7 ,6 ,6 y=8 ,8 ,8 ,8 ,8 ,8 ,8 ,8 ,8 ,8 ,7 ,7 ,6 ,6
[/move_unit_fake] [/move_unit_fake]
[music] [music]
name=the_city_falls.ogg name=the_city_falls.ogg
immediate=yes immediate=yes
append=no append=no

View file

@ -373,7 +373,6 @@
{STARTING_VILLAGES 2 5} {STARTING_VILLAGES 2 5}
{STARTING_VILLAGES 3 5} {STARTING_VILLAGES 3 5}
# Start # Start
[event] [event]
name=start name=start

View file

@ -7,24 +7,24 @@
# Text for storytelling (by narrator and [story]) is shown in a different color # Text for storytelling (by narrator and [story]) is shown in a different color
#define NARRATOR_COLOR #define NARRATOR_COLOR
<<#BAAC7D>> #enddef <<#BAAC7D>> #enddef
# Explanation of the game mechanics and strategic information uses this instead # Explanation of the game mechanics and strategic information uses this instead
#define TUTOR_COLOR #define TUTOR_COLOR
<<#D563D7>> #enddef <<#D563D7>> #enddef
# macro for usage in [message] tags # macro for usage in [message] tags
#define NARRATOR: MESSAGE #define NARRATOR: MESSAGE
message=<span color='{NARRATOR_COLOR}'> + {MESSAGE} + </span> # wmllint: ignore message=<span color='{NARRATOR_COLOR}'> + {MESSAGE} + </span> # wmllint: ignore
#enddef #enddef
# macro for usage in [part] tags # macro for usage in [part] tags
#define STORY: MESSAGE #define STORY: MESSAGE
story=<span color='{NARRATOR_COLOR}'> + {MESSAGE} + </span> # wmllint: ignore story=<span color='{NARRATOR_COLOR}'> + {MESSAGE} + </span> # wmllint: ignore
#enddef #enddef
# macro for usage in [message] tags # macro for usage in [message] tags
# often combined with an image of the explained object # often combined with an image of the explained object
#define TUTOR: MESSAGE #define TUTOR: MESSAGE
message=<span color='{TUTOR_COLOR}'> + {MESSAGE} + </span> # wmllint: ignore message=<span color='{TUTOR_COLOR}'> + {MESSAGE} + </span> # wmllint: ignore
#enddef #enddef

View file

@ -425,13 +425,13 @@ Besides... I want my brother back."
[/modify_side] [/modify_side]
{MODIFY_AI_ADD_CANDIDATE_ACTION 3 main_loop ( {MODIFY_AI_ADD_CANDIDATE_ACTION 3 main_loop (
[candidate_action] [candidate_action]
engine=lua engine=lua
name=ca_muff_toras_move name=ca_muff_toras_move
id=ca_muff_toras_move id=ca_muff_toras_move
max_score=15000 max_score=15000
location="campaigns/Two_Brothers/ai/ca_muff_toras_move.lua" location="campaigns/Two_Brothers/ai/ca_muff_toras_move.lua"
[/candidate_action] [/candidate_action]
)} )}
[remove_shroud] [remove_shroud]

View file

@ -212,7 +212,7 @@
condition=win condition=win
[show_if] [show_if]
[have_unit] [have_unit]
# wmllint: recognize Possessed Garak # wmllint: recognize Possessed Garak
id=Possessed Garak id=Possessed Garak
[/have_unit] [/have_unit]
[/show_if] [/show_if]
@ -478,7 +478,7 @@
{CLEAR_VARIABLE tents} {CLEAR_VARIABLE tents}
{CLEAR_VARIABLE rally_chance} {CLEAR_VARIABLE rally_chance}
# depending on what units rally, and where, player can lose a village to the north champion purely to RNG, this scout can block that without being too wonderful otherwise # depending on what units rally, and where, player can lose a village to the north champion purely to RNG, this scout can block that without being too wonderful otherwise
#ifndef HARD #ifndef HARD
[recall] [recall]
type=Quenoth Scout type=Quenoth Scout
@ -1223,7 +1223,7 @@
[/event] [/event]
#define BOOL_CHECK VARIABLE VALUE #define BOOL_CHECK VARIABLE VALUE
{VARIABLE_CONDITIONAL {VARIABLE} boolean_equals {VALUE}} {VARIABLE_CONDITIONAL {VARIABLE} boolean_equals {VALUE}}
#enddef #enddef
# Turn 12 # Turn 12

View file

@ -1,8 +1,8 @@
#textdomain wesnoth-utbs #textdomain wesnoth-utbs
#define UNDEAD_TROLL_DESCRIPTION #define UNDEAD_TROLL_DESCRIPTION
_ "These undead trolls fight again in death as they did in life, except this time they smell much worse." _ "These undead trolls fight again in death as they did in life, except this time they smell much worse."
{NOTE_PLAGUE} {NOTE_PLAGUE}
#enddef #enddef
[scenario] [scenario]

View file

@ -1539,7 +1539,7 @@
[/store_unit] [/store_unit]
[/then] [/then]
[else] [else]
# introduce new necromancer triad member # introduce new necromancer triad member
[remove_shroud] [remove_shroud]
x=13-17 x=13-17

View file

@ -62,21 +62,21 @@ A poisoned unit cannot be cured of its poison by a healer, and must seek the car
#textdomain wesnoth-utbs #textdomain wesnoth-utbs
#define NOTE_UTBS_HEALS #define NOTE_UTBS_HEALS
[special_note] [special_note]
note=_"This unit is capable of basic healing and slowing dehydration." note=_"This unit is capable of basic healing and slowing dehydration."
[/special_note] [/special_note]
#enddef #enddef
#define NOTE_UTBS_CURES #define NOTE_UTBS_CURES
[special_note] [special_note]
note=_"This unit is capable of healing those around it, slowing dehydration, and curing them of poison." note=_"This unit is capable of healing those around it, slowing dehydration, and curing them of poison."
[/special_note] [/special_note]
#enddef #enddef
#define NOTE_ETHEREAL #define NOTE_ETHEREAL
[special_note] [special_note]
note=_"SPECIAL_NOTE^This unit is able to move through solid stone walls." note=_"SPECIAL_NOTE^This unit is able to move through solid stone walls."
[/special_note] [/special_note]
#enddef #enddef
# This is the Teaching ability owned by Garak # This is the Teaching ability owned by Garak
@ -188,33 +188,33 @@ Marksman attacks are only affected if the chance to hit is greater than 60%."
#enddef #enddef
#define NOTE_SHOCK #define NOTE_SHOCK
[special_note] [special_note]
note=_"This units melee attack can overwhelm the defenses of enemies, preventing them from retaliating as effectively." note=_"This units melee attack can overwhelm the defenses of enemies, preventing them from retaliating as effectively."
[/special_note] [/special_note]
#enddef #enddef
#define NOTE_FORMATION #define NOTE_FORMATION
[special_note] [special_note]
note=_"Groups of units of this type are able to shield each other in combat." note=_"Groups of units of this type are able to shield each other in combat."
[/special_note] [/special_note]
#enddef #enddef
#define NOTE_DISENGAGE #define NOTE_DISENGAGE
[special_note] [special_note]
note=_"This unit can move either before or after attacking." note=_"This unit can move either before or after attacking."
[/special_note] [/special_note]
#enddef #enddef
#define NOTE_DAZE #define NOTE_DAZE
[special_note] [special_note]
note=_"This unit can daze its enemies, reducing their accuracy and defense until they end a turn." note=_"This unit can daze its enemies, reducing their accuracy and defense until they end a turn."
[/special_note] [/special_note]
#enddef #enddef
#define NOTE_DISTRACT #define NOTE_DISTRACT
[special_note] [special_note]
note=_"This unit is capable of distracting opponents, allowing allied units to trespass their Zones of Control and move unhindered around them." note=_"This unit is capable of distracting opponents, allowing allied units to trespass their Zones of Control and move unhindered around them."
[/special_note] [/special_note]
#enddef #enddef
#define ABILITY_DISENGAGE_EVENTS #define ABILITY_DISENGAGE_EVENTS

View file

@ -46,7 +46,6 @@ Hd, Dd*, Dd^E*, Rd #enddef
[for] [for]
array=dehydrating_units array=dehydrating_units
[do] [do]
[if] [if]
[have_unit] [have_unit]
x,y=$dehydrating_units[$i].x,$dehydrating_units[$i].y x,y=$dehydrating_units[$i].x,$dehydrating_units[$i].y

View file

@ -145,7 +145,7 @@
caption= _ "Welcome to Wesnoth!" caption= _ "Welcome to Wesnoth!"
image=wesnoth-icon.png image=wesnoth-icon.png
message= _ "This is a two-part tutorial intended for people who are new to the game. Part 1 will teach you the basics about movement, attacking, healing, and recruiting. Firstly, youll choose a hero (both heroes play the same)." + message= _ "This is a two-part tutorial intended for people who are new to the game. Part 1 will teach you the basics about movement, attacking, healing, and recruiting. Firstly, youll choose a hero (both heroes play the same)." +
{CONTINUE_MSG} {CONTINUE_MSG}
[/message] [/message]
[select_character][/select_character] [select_character][/select_character]
@ -628,7 +628,7 @@
[disallow_end_turn] [disallow_end_turn]
reason=_"You cannot end your turn until you have completed the lesson on healing!" reason=_"You cannot end your turn until you have completed the lesson on healing!"
[/disallow_end_turn] [/disallow_end_turn]
# works around the situation that the player can't do anything anymore # works around the situation that the player can't do anything anymore
# if he disobeys orders - inserts [allow_end_turn][/allow_end_turn] # if he disobeys orders - inserts [allow_end_turn][/allow_end_turn]
@ -695,7 +695,7 @@
[disallow_end_turn] [disallow_end_turn]
reason=_"You cannot end your turn until you have completed the lesson on recruiting!" reason=_"You cannot end your turn until you have completed the lesson on recruiting!"
[/disallow_end_turn] [/disallow_end_turn]
{ALLOW_END_TURN_AFTER_ATTACK} {ALLOW_END_TURN_AFTER_ATTACK}
@ -827,7 +827,7 @@
[disallow_end_turn] [disallow_end_turn]
reason=_"You cannot end your turn until you have completed the lesson on attacking!" reason=_"You cannot end your turn until you have completed the lesson on attacking!"
[/disallow_end_turn] [/disallow_end_turn]
{ALLOW_END_TURN_AFTER_ATTACK} {ALLOW_END_TURN_AFTER_ATTACK}

View file

@ -578,7 +578,6 @@ If either Shaman advances to become a Druid, then shell be able to heal adjac
[/if] [/if]
[/event] [/event]
[event] [event]
name=turn 2 name=turn 2