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]
[/event]
# This event makes the storm trident even more obvious
# This event makes the storm trident even more obvious
[event]
name=turn 3

View file

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

View file

@ -1,9 +1,9 @@
#textdomain wesnoth-dm
#define OBJECT_LOYAL
# 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
# the unit has no upkeep and to avoid taking up another trait slot
# 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
# the unit has no upkeep and to avoid taking up another trait slot
[object]
[effect]
apply_to=loyal

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -16,6 +16,6 @@
{AMLA_OPTION_CANNIBALIZE2}
{AMLA_OPTION_DEATH_CLOUD}
{AMLA_DEFAULT}
{DID_DEATH_CLOUD}
[/unit_type]

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -641,7 +641,7 @@
# A denizen of caves answers Konrad's question.
[message]
race=dwarf
# po: "sowl" is a rare word synonymous with "sully", meaning "contaminate".
# po: "sowl" is a rare word synonymous with "sully", meaning "contaminate".
# po: "toiled" means "difficult, requires effort".
message=_ "Lord Konrad, yon rumble was made by nae living creature. Tis the echoes o the very bedrock witherin and crumbling beneath us that we eard. Are ye nae feeling the heat redoubling? Is yer breath nae toiled for the ashes sowling the air? I beseech that we not tarry ere any more than we ha to, lest the forming abysses claim us."
[/message]

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]
[/else]
)}
)}
{VARIABLE sergeant_sighted yes}
[show_objectives][/show_objectives]
[/event]

View file

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

View file

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

View file

@ -1,56 +1,56 @@
#textdomain wesnoth-httt
#define HTTT_INTRO
[story]
[part]
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."
{HTTT_BIGMAP}
[/part]
[part]
# 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."
background=story/httt_story1.jpg
[/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."
background=story/httt_story2.jpg
[/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."
background=story/httt_story3.jpg
[/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."
{HTTT_BIGMAP}
[/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."
background=story/httt_story4.jpg
[/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>"
background=story/httt_story4.jpg
[/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."
background=story/httt_story5.jpg
[/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."
background=story/httt_story6.jpg
[/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."
{HTTT_BIGMAP}
[/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."
background=story/httt_story7.jpg
[/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..."
background=story/httt_story8.jpg
[/part]
[/story]
[story]
[part]
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."
{HTTT_BIGMAP}
[/part]
[part]
# 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."
background=story/httt_story1.jpg
[/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."
background=story/httt_story2.jpg
[/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."
background=story/httt_story3.jpg
[/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."
{HTTT_BIGMAP}
[/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."
background=story/httt_story4.jpg
[/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>"
background=story/httt_story4.jpg
[/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."
background=story/httt_story5.jpg
[/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."
background=story/httt_story6.jpg
[/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."
{HTTT_BIGMAP}
[/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."
background=story/httt_story7.jpg
[/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..."
background=story/httt_story8.jpg
[/part]
[/story]
#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]
[sound]
name=ambient/wardrums.ogg
name=ambient/wardrums.ogg
[/sound]
[message]
speaker=Baldras

View file

@ -357,7 +357,7 @@
green=0
blue=0
[/color_adjust]
[terrain_mask]
x,y=16,33
mask="{campaigns/Liberty/masks/04_Unlawful_Orders_1.mask}"
@ -487,13 +487,13 @@
green=0
blue=0
[/color_adjust]
[terrain_mask]
x,y=16,33
mask="{campaigns/Liberty/masks/04_Unlawful_Orders_2.mask}"
alignment=even
[/terrain_mask]
[redraw]
[/redraw]

View file

@ -734,7 +734,6 @@
[/and]
[/filter_condition]
[fire_event]
name=win event
[/fire_event]
@ -762,7 +761,7 @@
[message]
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]

View file

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

View file

@ -69,7 +69,7 @@
name= _ "Galim"
x,y=12,11
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]
[/side]

View file

@ -90,15 +90,7 @@
name= _ "Glildur"
side=3
canrecruit=yes
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)
)"
{SOF_GLILDUR_PORTRAIT}
facing=sw
[modifications]
{TRAIT_RESILIENT}
@ -213,7 +205,6 @@
[event]
name=prestart
[set_variable]
name=incominggold
value=5000
@ -239,7 +230,7 @@
{VARIABLE_CONDITIONAL havestone boolean_not_equals yes}
[/show_if]
[/objective]
# {ALTERNATIVE_OBJECTIVE_BONUS ( _ "Defeat Glildur")}
# {ALTERNATIVE_OBJECTIVE_BONUS ( _ "Defeat Glildur")}
[objective]
description= _ "Death of Rugnur"
condition=lose
@ -582,8 +573,8 @@
[/event]
#define SOF1_HOME_AREA
x=26,27-28,29-32
y=1-2,1-3,1-4 #enddef
x=26,27-28,29-32
y=1-2,1-3,1-4 #enddef
# Alanin reaches the dwarvish citadel
@ -853,8 +844,8 @@
[filter]
id=Glildur
[/filter]
variable=glildur
kill=no
variable=glildur
kill=no
[/store_unit]
[/event]

View file

@ -51,7 +51,7 @@
id=recruitment_instructions
[facet]
turns=
[value]
[value]
[limit]
type=scout
max=2
@ -432,7 +432,7 @@
x,y=$this_item.toggles_x,$this_item.toggles_y
animate=yes
fire_event=yes
[/kill]
[/kill]
[/then]
[/if]
[/then]

View file

@ -37,10 +37,10 @@
team_name=orcs
user_team_name= _ "Orcs"
{FLAG_VARIANT ragged}
# [ai]
# aggression=1.0
# caution=0.0
# [/ai]
# [ai]
# aggression=1.0
# caution=0.0
# [/ai]
[/side]
[side]
@ -55,10 +55,10 @@
team_name=orcs
user_team_name= _ "Goblins"
{FLAG_VARIANT ragged}
# [ai]
# aggression=1.0
# caution=0.0
# [/ai]
# [ai]
# aggression=1.0
# caution=0.0
# [/ai]
[/side]
[story]
@ -70,7 +70,7 @@
[/part]
[/story]
# {SOF_TRACK {JOURNEY_02_NEW} }
# {SOF_TRACK {JOURNEY_02_NEW} }
{SOF_DEATHS}
@ -209,7 +209,7 @@
image=wesnoth-icon.png
message= _ "A dwarf can ride the carts along the tracks. Use the context menu (usually right-click menu) to board or exit the cart. If a cart rider is involved in combat, the rider exits the cart."
[/message]
[/event]
[/event]
[event]
name=moveto
@ -239,7 +239,7 @@
[/and]
[/terrain]
[terrain]
terrain=Wwg
terrain=Wwg
[and]
x=1-26
y=9-16
@ -270,7 +270,7 @@
[/filter_location]
[/and]
animate=no
[/kill]
[/kill]
[message]
speaker=Bragdash
message= _ "You've flooded your own tunnel, you stupid little gophers!"
@ -298,7 +298,7 @@
fire_event=yes
[/kill]
[/event]
[event]
name=die
[filter]
@ -352,6 +352,4 @@
{NEW_GOLD_CARRYOVER 40}
[/endlevel]
[/event]
[/scenario]

View file

@ -109,7 +109,7 @@
#dialogue starts
[scroll_to]
x,y=11,15
[/scroll_to]
[/scroll_to]
[message]
speaker=Durstorn
message= _ "Another day older, another foot stuck in the sludge! Let's start with some soft clay... Rugnur, how goes it at the western gate?"

View file

@ -363,7 +363,7 @@
[/message]
[message]
speaker=Krawg
message= _ "Screech!
message= _ "Screech!
<i>(Makes eye contact, bobs and cocks head.)</i>"
[/message]
[message]
@ -372,7 +372,7 @@
[/message]
[message]
speaker=Krawg
message= _ "Krawg!
message= _ "Krawg!
<i>(Looks out over the icy taiga, turns gaze back toward the dwarves.)</i>"
[/message]
[message]
@ -385,12 +385,12 @@
[/message]
[message]
speaker=Krawg
message= _ "Yes...
message= _ "Yes...
<i>(Quickly shifts gaze to nearby woods, adopts a hostile stance, then glances back to the dwarves.)</i>"
[/message]
[message]
speaker=Baglur
message= _ "Aye, trolls and wolves are closing in... Sure, Krawg, well help you fight them."
message= _ "Aye, trolls and wolves are closing in... Sure, Krawg, well help you fight them."
[/message]
[show_objectives]
[/show_objectives]
@ -431,7 +431,7 @@
[then]
[message]
speaker=Krawg
message= _ "Screech!
message= _ "Screech!
<i>(Nods at the middle distance.)</i>"
[/message]
[/then]

View file

@ -188,7 +188,7 @@
[remove_item]
image=items/ruby.png
x,y=11,4
[/remove_item]
[/remove_item]
[message]
speaker=Thursagan
message= _ "Hm... a most interesting jewel. I can feel its magical power. I will start drawing up plans for the sceptre immediately."

View file

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

View file

@ -72,15 +72,7 @@
side=3
persistent=yes
save_id=Glildur
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)
)"
{SOF_GLILDUR_PORTRAIT}
facing=sw
[modifications]
{TRAIT_RESILIENT}
@ -235,7 +227,7 @@
name= _ "Durstorn"
unrenamable=yes
side=1
# profile=portraits/durstorn-insane.png
# profile=portraits/durstorn-insane.png
profile=portraits/durstorn.png
random_traits=no
[modifications]
@ -377,13 +369,13 @@
speaker=Thursagan
message= {WHISPER _"Are you mad?!"}
[/message]
# this is causing errors, so doing it the hard way for now but this could be fixed
# [modify_unit]
# [filter]
# id=Durstorn
# [/filter]
# profile=portraits/durstorn-insane.png
# [/modify_unit]
# this is causing errors, so doing it the hard way for now but this could be fixed
# [modify_unit]
# [filter]
# id=Durstorn
# [/filter]
# profile=portraits/durstorn-insane.png
# [/modify_unit]
[message]
speaker=Durstorn
message= _ "Of course not!"
@ -419,7 +411,6 @@
[/message]
[/event]
[event]
name=moveto
[filter]
@ -880,7 +871,7 @@
amount=full
restore_attacks=yes
moves=full
[/heal_unit]
[/heal_unit]
[store_unit]
[filter]
id=Glildur

View file

@ -32,15 +32,7 @@
id=Glildur
name= _ "Glildur"
side=2
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)
)"
{SOF_GLILDUR_PORTRAIT}
facing=sw
[modifications]
{TRAIT_RESILIENT}

View file

@ -57,7 +57,7 @@
[/side]
# work-around until better AI control is found
# Moving this guy to side 4 and adding [micro_ai] type simple_attack works,
# Moving this guy to side 4 and adding [micro_ai] type simple_attack works,
# but there were some difficult to reproduce instances where AI didn't behave as expected
# and Gathor retreated and got out of reach. It might be worth revisiting in the future.
# further comment at prestart event
@ -141,7 +141,7 @@
[aspect]
id=recruitment_instructions
[facet]
[value]
[value]
[limit]
type=Orcish Grunt
max=2
@ -287,7 +287,6 @@
[/unit]
[/event]
[story]
[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."
@ -308,7 +307,7 @@
# micro AI to make sure the orc stays on the front lines
# need high CA score to keep him from retreating when injured
# this does not work reliably (1.15.2+dev),
# this does not work reliably (1.15.2+dev),
# so moving Gathor to his own side=3 for now
# [micro_ai]
# side=4
@ -332,7 +331,7 @@
x,y=27,20
image=scenery/rock-cairn.png
[/item]
# set 1
# set 1
[item]
x,y=24,18
halo=scenery/rune[1,1,1,1,1,1-glow].png:[200*6]
@ -403,16 +402,16 @@
[objectives]
side=1
[objective]
description= _ "Find and destroy the remaining runic tablets"
condition=win
description= _ "Find and destroy the remaining runic tablets"
condition=win
[/objective]
[objective]
description= _ "Death of Rugnur"
condition=lose
description= _ "Death of Rugnur"
condition=lose
[/objective]
[objective]
description= _ "Death of Krawg"
condition=lose
description= _ "Death of Krawg"
condition=lose
[/objective]
[objective]
description= _ "Death of Thursagan"
@ -422,7 +421,7 @@
{IS_LAST_SCENARIO}
[/objectives]
[/event]
# set 2
# set 2
[item]
x,y=24,21
halo=scenery/rune[2,2,2,2,2-glow,2].png:[200*6]
@ -480,16 +479,16 @@
[objectives]
side=1
[objective]
description= _ "Find and destroy the remaining runic tablets"
condition=win
description= _ "Find and destroy the remaining runic tablets"
condition=win
[/objective]
[objective]
description= _ "Death of Rugnur"
condition=lose
description= _ "Death of Rugnur"
condition=lose
[/objective]
[objective]
description= _ "Death of Krawg"
condition=lose
description= _ "Death of Krawg"
condition=lose
[/objective]
[objective]
description= _ "Death of Thursagan"
@ -499,7 +498,7 @@
{IS_LAST_SCENARIO}
[/objectives]
[/event]
# set 3
# set 3
# this contains the end-level event
[item]
x,y=27,17
@ -524,10 +523,10 @@
id=Gathor
[/have_unit]
[or]
[have_unit]
id=Toomak
[/have_unit]
[/or]
[have_unit]
id=Toomak
[/have_unit]
[/or]
[/filter_condition]
[message]
speaker=Krawg
@ -538,7 +537,7 @@
message= _ "Krawg puzzled over a stone tile sitting loose on the small mesa. Beneath a spattering of bat guano, there was a glowing rune. Krawg didn't know what to make of it, so the gryphon left it for now."
image=wesnoth-icon.png
[/message]
[/event]
[/event]
[event]
name=moveto
[filter]
@ -547,15 +546,15 @@
[/filter]
[filter_condition]
[not]
[have_unit]
id=Gathor
[/have_unit]
[or]
[have_unit]
id=Toomak
[/have_unit]
[/or]
[/not]
[have_unit]
id=Gathor
[/have_unit]
[or]
[have_unit]
id=Toomak
[/have_unit]
[/or]
[/not]
[/filter_condition]
[message]
speaker=Krawg
@ -711,7 +710,7 @@
x=1-44
animate=no
fire_event=no
[/kill]
[/kill]
{FADE_TO_BLACK}
[message]
speaker=narrator
@ -743,8 +742,8 @@
[recall]
side=1
[/recall]
# 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.
# 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.
#ifdef __UNUSED__
[store_unit]
[filter]
@ -944,142 +943,141 @@
),
if((blue < 100) and (red < green), blue*1.5, blue)
)"
facing=sw
[modifications]
{TRAIT_RESILIENT}
{TRAIT_INTELLIGENT}
[object]
silent=yes
[effect]
apply_to=image_mod
add=CS(-10,-25,+5)
[/effect]
[/object]
[/modifications]
extra_recruit=Elvish Hero, Elvish Ranger
[/unit]
[message]
speaker=Glildur
message= _ "End of the road, little dwarves! That ruby is as good as ours..."
[/message]
{RANDOM_MERCENARY_2 "Dwarvish Lord"}
{RANDOM_MERCENARY_2 "Dwarvish Lord"}
{RANDOM_MERCENARY_2 "Dwarvish Lord"}
{RANDOM_MERCENARY_2 "Dwarvish Lord"}
facing=sw
[modifications]
{TRAIT_RESILIENT}
{TRAIT_INTELLIGENT}
[object]
silent=yes
[effect]
apply_to=image_mod
add=CS(-10,-25,+5)
[/effect]
[/object]
[/modifications]
extra_recruit=Elvish Hero, Elvish Ranger
[/unit]
[message]
speaker=Glildur
message= _ "End of the road, little dwarves! That ruby is as good as ours..."
[/message]
{RANDOM_MERCENARY_2 "Dwarvish Lord"}
{RANDOM_MERCENARY_2 "Dwarvish Lord"}
{RANDOM_MERCENARY_2 "Dwarvish Lord"}
{RANDOM_MERCENARY_2 "Dwarvish Lord"}
#ifdef HARD
{RANDOM_MERCENARY_2 "Dwarvish Lord"}
{RANDOM_MERCENARY_2 "Dwarvish Lord"}
#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
{RANDOM_MERCENARY_2 "Dwarvish Dragonguard"}
{RANDOM_MERCENARY_2 "Dwarvish Dragonguard"}
#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
{RANDOM_MERCENARY_2 "Elvish Champion"}
{RANDOM_MERCENARY_2 "Elvish Champion"}
#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
{RANDOM_MERCENARY_2 "Elvish Avenger"}
{RANDOM_MERCENARY_2 "Elvish Avenger"}
#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
{RANDOM_MERCENARY_2 "Elvish Outrider"}
{RANDOM_MERCENARY_2 "Elvish Outrider"}
#endif
[message]
speaker=Rugnur
message= _ "Thursagan! The elves are right on our tail! What should we do?"
[/message]
[message]
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]
[terrain]
terrain=Qxu^Bp/
x=34,34,35
y=4,5,6
[/terrain]
[unstore_unit]
variable=harohk
find_vacant=no
[/unstore_unit]
{CLEAR_VARIABLE harohk}
[/event]
[message]
speaker=Rugnur
message= _ "Thursagan! The elves are right on our tail! What should we do?"
[/message]
[message]
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]
[terrain]
terrain=Qxu^Bp/
x=34,34,35
y=4,5,6
[/terrain]
[unstore_unit]
variable=harohk
find_vacant=no
[/unstore_unit]
{CLEAR_VARIABLE harohk}
[/event]
[event]
name=last_breath
[filter]
id=Glildur
[/filter]
[message]
speaker=Glildur
message= _ "Damnation! I almost had it... but now I join Landar..."
[/message]
[/event]
[event]
name=last_breath
[filter]
id=Glildur
[/filter]
[message]
speaker=Glildur
message= _ "Damnation! I almost had it... but now I join Landar..."
[/message]
[/event]
#when the elves lose troops, the orcs gain them
[event]
name=die
first_time_only=no
[filter]
side=2
[/filter]
[gold]
side=4
amount=50
[/gold]
[gold]
side=5
amount=50
[/gold]
[/event]
#when the elves lose troops, the orcs gain them
[event]
name=die
first_time_only=no
[filter]
side=2
[/filter]
[gold]
side=4
amount=50
[/gold]
[gold]
side=5
amount=50
[/gold]
[/event]
# the orcs are held back
[event]
name=enter_hex
[filter]
side=1
x,y=30,3-8
[/filter]
[filter_condition]
[variable]
name=turn_number
less_than=6
[/variable]
[/filter_condition]
{MOVE_UNIT (id=Gathor) 36 5}
[remove_shroud]
side=1
x,y=32-43,3-9
[/remove_shroud]
[redraw]
side=1
[/redraw]
[message]
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]
[message]
speaker=Rugnur
message= _ "Huh. Well, let's not stay here too long."
[/message]
[message]
speaker=Thursagan
message= _ "Right, if we can get both the orcs and the elves behind us, maybe they'll fight each other."
[/message]
[/event]
[/scenario]
# the orcs are held back
[event]
name=enter_hex
[filter]
side=1
x,y=30,3-8
[/filter]
[filter_condition]
[variable]
name=turn_number
less_than=6
[/variable]
[/filter_condition]
{MOVE_UNIT (id=Gathor) 36 5}
[remove_shroud]
side=1
x,y=32-43,3-9
[/remove_shroud]
[redraw]
side=1
[/redraw]
[message]
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]
[message]
speaker=Rugnur
message= _ "Huh. Well, let's not stay here too long."
[/message]
[message]
speaker=Thursagan
message= _ "Right, if we can get both the orcs and the elves behind us, maybe they'll fight each other."
[/message]
[/event]
[/scenario]
#undef RANDOM_MERCENARY_2

View file

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

View file

@ -8,301 +8,353 @@
#define SOF_MINECART_PLACE_IMAGE X Y
[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]
[if]
[have_location]
terrain=*^Br\
terrain=*^Br/
x,y={X},{Y}
[/have_location]
[then]
[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}
[/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]
[elseif]
[have_location]
terrain=*^Br\
x,y={X},{Y}
[/have_location]
[then]
[item]
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
#define SOF_OBJ_MINECART VAR
[object]
silent=yes
id=sof_mine_cart_{VAR}
take_only_once=no
[filter]
id=${VAR}.id
race=dwarf
[/filter]
[effect]
apply_to=new_animation
[standing_anim]
start_time=0
base_score=2
terrain_type=*^Br*
[if]
terrain_type=*^Br|
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/if]
[else]
terrain_type=*^Br\
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/else]
[else]
terrain_type=*^Br/
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/else]
[/standing_anim]
[/effect]
[effect]
apply_to=new_animation
[idle_anim]
start_time=0
base_score=2
terrain_type=*^Br*
[if]
terrain_type=*^Br|
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/if]
[else]
terrain_type=*^Br\
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/else]
[else]
terrain_type=*^Br/
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/else]
[/idle_anim]
[/effect]
[effect]
apply_to=new_animation
[movement_anim]
start_time=0
base_score=2
terrain_type=*^Br*
[if]
terrain_type=*^Br|
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/if]
[else]
terrain_type=*^Br\
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/else]
[else]
terrain_type=*^Br/
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/else]
[/movement_anim]
[/effect]
[effect]
apply_to=movement
increase=5
[/effect]
[effect]
apply_to=movement_costs
replace=yes
[movement_costs]
shallow_water=99
reef=99
swamp_water=99
flat=99
sand=99
forest=99
hills=99
mountains=99
village=99
castle=99
cave=99
frozen=99
fungus=99
unwalkable=99
impassable=99
rails=1
[/movement_costs]
[/effect]
[then]
# it's one of these
[remove_item]
image=misc/blank-hex.png~BLIT(misc/mine-cart-n.png~CROP(0,20,72,52),0,1)
x,y=${VAR}.x|,${VAR}.y|
[/remove_item]
[remove_item]
image=misc/blank-hex.png~BLIT(misc/mine-cart-ne.png~CROP(0,24,72,48),0,2)
x,y=${VAR}.x|,${VAR}.y|
[/remove_item]
[remove_item]
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|
[/remove_item]
[/then]
[/object]
[object]
silent=yes
id=sof_mine_cart_{VAR}
take_only_once=no
[filter]
id=${VAR}.id
race=dwarf
[/filter]
[effect]
apply_to=new_animation
[standing_anim]
start_time=0
base_score=2
terrain_type=*^Br*
[if]
terrain_type=*^Br|
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/if]
[else]
terrain_type=*^Br\
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/else]
[else]
terrain_type=*^Br/
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/else]
[/standing_anim]
[/effect]
[effect]
apply_to=new_animation
[idle_anim]
start_time=0
base_score=2
terrain_type=*^Br*
[if]
terrain_type=*^Br|
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/if]
[else]
terrain_type=*^Br\
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/else]
[else]
terrain_type=*^Br/
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/else]
[/idle_anim]
[/effect]
[effect]
apply_to=new_animation
[movement_anim]
start_time=0
base_score=2
terrain_type=*^Br*
[if]
terrain_type=*^Br|
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/if]
[else]
terrain_type=*^Br\
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/else]
[else]
terrain_type=*^Br/
[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
auto_hflip=no
auto_vflip=no
[/frame]
[/else]
[/movement_anim]
[/effect]
[effect]
apply_to=movement
increase=5
[/effect]
[effect]
apply_to=movement_costs
replace=yes
[movement_costs]
shallow_water=99
reef=99
swamp_water=99
flat=99
sand=99
forest=99
hills=99
mountains=99
village=99
castle=99
cave=99
frozen=99
fungus=99
unwalkable=99
impassable=99
rails=1
[/movement_costs]
[/effect]
[then]
# it's one of these
[remove_item]
image=misc/blank-hex.png~BLIT(misc/mine-cart-n.png~CROP(0,20,72,52),0,1)
x,y=${VAR}.x|,${VAR}.y|
[/remove_item]
[remove_item]
image=misc/blank-hex.png~BLIT(misc/mine-cart-ne.png~CROP(0,24,72,48),0,2)
x,y=${VAR}.x|,${VAR}.y|
[/remove_item]
[remove_item]
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|
[/remove_item]
[/then]
[/object]
#enddef
#define SOF_REMOVE_OBJ_MINECART VAR
[remove_object]
id=${VAR}.id
object_id=sof_mine_cart_{VAR}
[/remove_object]
[remove_object]
id=${VAR}.id
object_id=sof_mine_cart_{VAR}
[/remove_object]
#enddef
#define SOF_MINECART_MENU VAR X Y
{SOF_MINECART_PLACE_IMAGE {X} {Y}}
[set_variables]
name={VAR}
mode=replace
[value]
load="empty"
x={X}
y={Y}
[/value]
[/set_variables]
{SOF_MINECART_PLACE_IMAGE {X} {Y}}
[set_variables]
name={VAR}
mode=replace
[value]
load="empty"
x={X}
y={Y}
[/value]
[/set_variables]
[set_menu_item]
id=sof_minecart_boarding_{VAR}
description= _ "Board Cart"
image=buttons/WML-custom.png
[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
[set_menu_item]
id=sof_minecart_boarding_{VAR}
description= _ "Board Cart"
image=buttons/WML-custom.png
[show_if]
[variable]
name=passenger_moves
equals=yes
name={VAR}.load
equals=empty
[/variable]
[else]
[set_variable]
name=passenger_redraw.moves
add=5
[/set_variable]
[set_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]
name=passenger_moves
value=yes
[/set_variable]
[/else]
[/if]
[unstore_unit]
variable=passenger_redraw
find_vacant=no
[/unstore_unit]
{CLEAR_VARIABLE passenger_redraw}
[redraw]
side=1
[/redraw]
[/command]
[/set_menu_item]
[set_menu_item]
id=sof_minecart_unboarding_{VAR}
description= _ "Leave Cart"
image=buttons/WML-custom.png
[show_if]
[have_unit]
x,y=$x1|,$y1|
id=${VAR}.load
[/have_unit]
[/show_if]
[filter_location]
terrain=*^Br*
[/filter_location]
[command]
equals=yes
[/variable]
[else]
[set_variable]
name=passenger_redraw.moves
add=5
[/set_variable]
[set_variable]
name=passenger_moves
value=yes
[/set_variable]
[/else]
[/if]
[unstore_unit]
variable=passenger_redraw
find_vacant=no
[/unstore_unit]
{CLEAR_VARIABLE passenger_redraw}
[redraw]
side=1
[/redraw]
[/command]
[/set_menu_item]
[set_menu_item]
id=sof_minecart_unboarding_{VAR}
description= _ "Leave Cart"
image=buttons/WML-custom.png
[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]
name={VAR}.load
value="empty"
@ -316,101 +368,49 @@
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]
[/event]
# if a cart-rider attacks, they exit the cart
[event]
name=attack
first_time_only=no
[filter_condition]
[variable]
# if a cart-rider is attacked, they exit the cart
[event]
name=attack
first_time_only=no
[filter_condition]
[variable]
name={VAR}.load
equals=$second_unit.id
[/variable]
[/filter_condition]
[set_variable]
name={VAR}.load
equals=$unit.id
[/variable]
[/filter_condition]
[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}}
{SOF_MINECART_PLACE_IMAGE $x1 $y1}
{CLEAR_VARIABLE passenger_{VAR}}
[/event]
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]
# if a cart-rider is attacked, they exit the cart
[event]
name=attack
first_time_only=no
[filter_condition]
[variable]
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
[event]
name=side 1 turn
first_time_only=no
{CLEAR_VARIABLE passenger_moves}
[/event]
# part of mechanism that prevents infinite movement by reboarding the cart
[event]
name=side 1 turn
first_time_only=no
{CLEAR_VARIABLE passenger_moves}
[/event]
# variables cleanup
[event]
name=scenario_end
{SOF_REMOVE_OBJ_MINECART passenger_{VAR}}
{CLEAR_VARIABLE passenger_{VAR}}
[/event]
# variables cleanup
[event]
name=scenario_end
{SOF_REMOVE_OBJ_MINECART passenger_{VAR}}
{CLEAR_VARIABLE passenger_{VAR}}
[/event]
#enddef

View file

@ -88,3 +88,17 @@
[/endlevel]
[/event]
#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]
[/unit]
#enddef
# wmllint: whofield PLACE_GUARD 6
# wmllint: whofield PLACE_GUARD 6
# *************************** PRESTART ***************************
[event]
@ -620,7 +620,7 @@ of Healing"
name=location
[/clear_variable]
#enddef
# wmllint: whofield MOVE_AND_PLACE_GUARD 3
# wmllint: whofield MOVE_AND_PLACE_GUARD 3
[event]
name=guards_emerge
@ -936,7 +936,7 @@ Well, I might as well do my experiment and worry about leaving later."
{MAKE_BATS_NORMAL}
{ZOMBIES}
# wmllint: whofield clear PLACE_GUARD MOVE_AND_PLACE_GUARD
# wmllint: whofield clear PLACE_GUARD MOVE_AND_PLACE_GUARD
#undef PLACE_GUARD
#undef MOVE_AND_PLACE_GUARD
#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]
[remove_item]
x,y=$x1,$y1
image=holy_water
image=holy_water
[/remove_item]
[store_items]
variable=holy_waters

View file

@ -137,14 +137,14 @@
# 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
# above removed.
# [set_variable]
# name=ardonna_zombies
# [join]
# variable=zombies
# key=allow_recruit
# separator=","
# [/join]
# [/set_variable]
# [set_variable]
# name=ardonna_zombies
# [join]
# variable=zombies
# key=allow_recruit
# separator=","
# [/join]
# [/set_variable]
#enddef
#define LOAD_ZOMBIE_LIST VARIABLE
@ -166,8 +166,8 @@
# longer added to the recruit list directly, but to the zombie recruit dialog.
#define NEW_UNIT_TYPE_KILLED FILTER ZOMBIE_TYPE PROFILE_IMAGE
[event]
# Only humans are ever added with the custom event name, but we include it for
# that case.
# Only humans are ever added with the custom event name, but we include it for
# that case.
name=die, add_{ZOMBIE_TYPE}
[filter]
{FILTER}
@ -206,12 +206,12 @@
boolean_equals=yes
[/variable]
[then]
[set_variable]
# This won't include the current one being added.
[set_variable]
# This won't include the current one being added.
name=num_zombie_types
add=1
[/set_variable]
[/then]
[/then]
[/if]
[if]
[variable]
@ -490,7 +490,7 @@
[event]
name=preload
first_time_only=no
[lua]
[lua]
code = <<
H = wesnoth.require "helper"
T = wml.tag

View file

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

View file

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

View file

@ -380,7 +380,7 @@
[/objectives]
[/event]
# wmllint: unbalanced-on
# wmllint: unbalanced-on
#define PLACE_ENEMY_UNITS
[lua]
code = <<
@ -414,7 +414,7 @@
name=orc dialogue
[/fire_event]
#enddef
# wmllint: unbalanced-off
# wmllint: unbalanced-off
[event]
name=orc dialogue
@ -590,7 +590,6 @@
[/message]
[/event]
[event]
name=last breath
[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]
{REPLACE_SCENARIO_MUSIC knalgan_theme.ogg}
{APPEND_MUSIC siege_of_laurelmor.ogg}
{APPEND_MUSIC underground.ogg}

View file

@ -1,9 +1,9 @@
#textdomain wesnoth-thot
#define NOTE_INSPIRE
[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."
[/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."
[/special_note]
#enddef
#define ABILITY_INSPIRE

View file

@ -203,7 +203,7 @@
[message]
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]

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -127,8 +127,7 @@
{VARIABLE secret_path.x 18}
{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
{VARIABLE first_undead_spawn_turn 5}
#endif

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -212,7 +212,7 @@
condition=win
[show_if]
[have_unit]
# wmllint: recognize Possessed Garak
# wmllint: recognize Possessed Garak
id=Possessed Garak
[/have_unit]
[/show_if]
@ -478,7 +478,7 @@
{CLEAR_VARIABLE tents}
{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
[recall]
type=Quenoth Scout
@ -1223,7 +1223,7 @@
[/event]
#define BOOL_CHECK VARIABLE VALUE
{VARIABLE_CONDITIONAL {VARIABLE} boolean_equals {VALUE}}
{VARIABLE_CONDITIONAL {VARIABLE} boolean_equals {VALUE}}
#enddef
# Turn 12

View file

@ -1375,7 +1375,7 @@
x,y=28,24
side=4
[/capture_village]
[capture_village]
x,y=35,27
side=4

View file

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

View file

@ -1539,7 +1539,7 @@
[/store_unit]
[/then]
[else]
# introduce new necromancer triad member
# introduce new necromancer triad member
[remove_shroud]
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
#define NOTE_UTBS_HEALS
[special_note]
note=_"This unit is capable of basic healing and slowing dehydration."
[/special_note]
[special_note]
note=_"This unit is capable of basic healing and slowing dehydration."
[/special_note]
#enddef
#define NOTE_UTBS_CURES
[special_note]
note=_"This unit is capable of healing those around it, slowing dehydration, and curing them of poison."
[/special_note]
[special_note]
note=_"This unit is capable of healing those around it, slowing dehydration, and curing them of poison."
[/special_note]
#enddef
#define NOTE_ETHEREAL
[special_note]
note=_"SPECIAL_NOTE^This unit is able to move through solid stone walls."
[/special_note]
[special_note]
note=_"SPECIAL_NOTE^This unit is able to move through solid stone walls."
[/special_note]
#enddef
# 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
#define NOTE_SHOCK
[special_note]
note=_"This units melee attack can overwhelm the defenses of enemies, preventing them from retaliating as effectively."
[/special_note]
[special_note]
note=_"This units melee attack can overwhelm the defenses of enemies, preventing them from retaliating as effectively."
[/special_note]
#enddef
#define NOTE_FORMATION
[special_note]
note=_"Groups of units of this type are able to shield each other in combat."
[/special_note]
[special_note]
note=_"Groups of units of this type are able to shield each other in combat."
[/special_note]
#enddef
#define NOTE_DISENGAGE
[special_note]
note=_"This unit can move either before or after attacking."
[/special_note]
[special_note]
note=_"This unit can move either before or after attacking."
[/special_note]
#enddef
#define NOTE_DAZE
[special_note]
note=_"This unit can daze its enemies, reducing their accuracy and defense until they end a turn."
[/special_note]
[special_note]
note=_"This unit can daze its enemies, reducing their accuracy and defense until they end a turn."
[/special_note]
#enddef
#define NOTE_DISTRACT
[special_note]
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]
note=_"This unit is capable of distracting opponents, allowing allied units to trespass their Zones of Control and move unhindered around them."
[/special_note]
#enddef
#define ABILITY_DISENGAGE_EVENTS

View file

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

View file

@ -145,7 +145,7 @@
caption= _ "Welcome to Wesnoth!"
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)." +
{CONTINUE_MSG}
{CONTINUE_MSG}
[/message]
[select_character][/select_character]
@ -628,7 +628,7 @@
[disallow_end_turn]
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
# if he disobeys orders - inserts [allow_end_turn][/allow_end_turn]
@ -695,7 +695,7 @@
[disallow_end_turn]
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}
@ -827,7 +827,7 @@
[disallow_end_turn]
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}

View file

@ -520,7 +520,7 @@ If either Shaman advances to become a Druid, then shell be able to heal adjac
{PRINT ( _ "Recruit or recall your troops")}
[/on_undo]
[/event]
[event]
name=moveto
first_time_only=no
@ -578,7 +578,6 @@ If either Shaman advances to become a Druid, then shell be able to heal adjac
[/if]
[/event]
[event]
name=turn 2
@ -960,7 +959,7 @@ Please report the bug."
[fire_event]
name=check_income
[/fire_event]
# Just in case the player still hasn't captured 16,9.
[if]
[have_location]