DM S07 Fix for player having to pass turn in order to meet alternative win condition (#6189)

Closes #6173

(cherry picked from commit a351c78579)
This commit is contained in:
Descacharrado 2021-11-10 02:50:08 +01:00 committed by Wedge009
parent da9065aac7
commit 0cb5c5bf45
2 changed files with 172 additions and 114 deletions

View file

@ -59,24 +59,190 @@
[/side]
# wmllint: validate-on
#define MEMOIRS_GENERATOR_SKELETON X Y
# set the generator's terrain
[event]
name=prestart
[item]
x,y={X},{Y}
image=scenery/monolith2.png
[/item]
[/event]
# generate a unit each turn
[event]
id=generator_{X}_{Y}
name=new turn
first_time_only=no
[scroll_to]
x,y={X},{Y}
[/scroll_to]
[sound]
name=magic-dark.ogg
[/sound]
{RANDOM (Skeleton,Skeleton Archer)}
[unit]
type=$random
side=2
x,y={X},{Y}
animate=yes
[/unit]
{CLEAR_VARIABLE random}
[/event]
# if someone capable of destroying the generator moves there
[event]
name=moveto
[filter]
side=1
x,y={X},{Y}
type_adv_tree=Mage,Journeyman Mage,Paladin
[/filter]
[message]
speaker=unit
message=_"I call upon all that is holy to break the power of this evil stone!"
[/message]
[sound]
name=lightning.ogg
[/sound]
[color_adjust]
red=100
green=100
blue=100
[/color_adjust]
[delay]
time=10
[/delay]
[color_adjust]
red=0
green=0
blue=0
[/color_adjust]
[remove_event]
id=generator_{X}_{Y}
[/remove_event]
[set_variable]
name=generators_destroyed
add=1
[/set_variable]
[if]
[variable]
name=generators_destroyed
equals={ON_DIFFICULTY 2 2 3}
[/variable]
[then]
[if]
[not]
[have_unit]
side=2
[/have_unit]
[/not]
[then]
[message]
speaker=Delfador
message=_"I think thats all of them! Lets move on — the less time we spend in this swamp the better."
[/message]
{CLEAR_VARIABLE generators_destroyed}
[endlevel]
result=victory
bonus=yes
[/endlevel]
[/then]
[else]
[objectives]
side=1
[objective]
description=_ "Survive until daybreak"
condition=win
show_turn_counter=yes
[/objective]
[objective]
{ALTERNATIVE_OBJECTIVE_CAPTION}
description=_ "Defeat remaining enemy units"
condition=win
[/objective]
[objective]
description=_ "Death of Delfador"
condition=lose
[/objective]
[objective]
description=_ "Death of Lionel"
condition=lose
[/objective]
[gold_carryover]
bonus=yes
carryover_percentage=80
[/gold_carryover]
[/objectives]
# if the player manages to destroy all generators he then has to kill remaining enemy units. an unlikely outcome unless we are on EASY. the following child event is spawned from this condition.
[event]
name=die
first_time_only=no
[filter]
side=2
[/filter]
[if]
[not]
[have_unit]
side=2
[/have_unit]
[/not]
[then]
[message]
speaker=Delfador
message=_"I think thats all of them! Lets move on — the less time we spend in this swamp the better."
[/message]
{CLEAR_VARIABLE generators_destroyed}
[endlevel]
result=victory
bonus=yes
[/endlevel]
[/then]
[/if]
[/event]
[/else]
[/if]
[/then]
[/if]
[/event]
# if someone who can't destroy the generator moves there
[event]
name=moveto
[filter]
x,y={X},{Y}
side=1
[not]
type_adv_tree=Mage,Journeyman Mage,Paladin
[/not]
[/filter]
[message]
speaker=unit
message=_"Evil emanates from this stone, but I have not the power to destroy it."
[/message]
[/event]
#enddef
#ifdef EASY
{MEMOIRS_GENERATOR_SKELETON 18 3}
{MEMOIRS_GENERATOR_SKELETON 10 16}
#endif
#ifdef NORMAL
#else
{MEMOIRS_GENERATOR_SKELETON 7 5}
{MEMOIRS_GENERATOR_SKELETON 11 19}
#endif
#ifdef HARD
{MEMOIRS_GENERATOR_SKELETON 18 3}
{MEMOIRS_GENERATOR_SKELETON 7 5}
{MEMOIRS_GENERATOR_SKELETON 11 19}
#endif HARD
#endif
[event]
name=prestart
{MODIFY_UNIT (id=Delfador) facing nw}
{MODIFY_UNIT (id=Lionel) facing se}
{VARIABLE generators_destroyed 0}
[objectives]
side=1
[objective]
@ -180,35 +346,12 @@
speaker=Lionel
message=_"I hope I never see another night like that! Lets leave this evil place as quickly as possible — I want to get us out of Illuven before dusk."
[/message]
{CLEAR_VARIABLE generators_destroyed}
[endlevel]
result=victory
bonus=no
[/endlevel]
[/event]
# if the player manages to destroy all generators...
# an unlikely outcome unless we are on EASY
[event]
name=new turn
first_time_only=no
[if]
[not]
[have_unit]
side=2
[/have_unit]
[/not]
[then]
[message]
speaker=Delfador
message=_"I think thats all of them! Lets move on — the less time we spend in this swamp the better."
[/message]
[endlevel]
result=victory
bonus=yes
[/endlevel]
[/then]
[/if]
[/event]
{MEMOIRS_DEATHS}
[/scenario]

View file

@ -1,85 +0,0 @@
#textdomain wesnoth-dm
#define MEMOIRS_GENERATOR_SKELETON X Y
# set the generator's terrain
[event]
name=prestart
[item]
x,y={X},{Y}
image=scenery/monolith2.png
[/item]
[/event]
# generate a unit each turn
[event]
id=generator_{X}_{Y}
name=new turn
first_time_only=no
[scroll_to]
x,y={X},{Y}
[/scroll_to]
[sound]
name=magic-dark.ogg
[/sound]
{RANDOM (Skeleton,Skeleton Archer)}
[unit]
type=$random
side=2
x,y={X},{Y}
animate=yes
[/unit]
{CLEAR_VARIABLE random}
[/event]
# if someone capable of destroying the generator moves there
[event]
name=moveto
[filter]
side=1
x,y={X},{Y}
type_adv_tree=Mage,Journeyman Mage,Paladin
[/filter]
[message]
speaker=unit
message=_"I call upon all that is holy to break the power of this evil stone!"
[/message]
[sound]
name=lightning.ogg
[/sound]
[color_adjust]
red=100
green=100
blue=100
[/color_adjust]
[delay]
time=10
[/delay]
[color_adjust]
red=0
green=0
blue=0
[/color_adjust]
[remove_event]
id=generator_{X}_{Y}
[/remove_event]
[/event]
# if someone who can't destroy the generator moves there
[event]
name=moveto
[filter]
x,y={X},{Y}
side=1
[not]
type_adv_tree=Mage,Journeyman Mage,Paladin
[/not]
[/filter]
[message]
speaker=unit
message=_"Evil emanates from this stone, but I have not the power to destroy it."
[/message]
[/event]
#enddef