LoW::19,21,22,23:

Redid the recruit list management of the last chapter.

Fix for bug #19236
This commit is contained in:
Fabian Müller 2012-01-15 23:02:18 +00:00
parent 3bc6ea611d
commit ffad005a95
4 changed files with 58 additions and 131 deletions

View file

@ -29,8 +29,6 @@
{DEFAULT_SCHEDULE_DUSK} {DEFAULT_SCHEDULE_DUSK}
# {LOW_PRESTART}
next_scenario=20_Council_Ruling next_scenario=20_Council_Ruling
[story] [story]
#ifdef MULTIPLAYER #ifdef MULTIPLAYER
@ -107,9 +105,11 @@ Chapter Five"
[event] [event]
name=prestart name=prestart
#ifndef MULTIPLAYER
[kill] [kill]
race=dwarf race=dwarf
[/kill] [/kill]
#endif
#TODO see if this recalls units wich are not recallable #TODO see if this recalls units wich are not recallable
{RECALL_LOYALS} {RECALL_LOYALS}
@ -180,18 +180,6 @@ Chapter Five"
[/side] [/side]
{STARTING_VILLAGES 3 20} {STARTING_VILLAGES 3 20}
[side]
side=4
persistent=yes
save_id=Landar
no_leader=yes
#ifndef MULTIPLAYER
hidden=yes
#else
{PLAYABLE}
#endif
[/side]
[event] [event]
name=victory name=victory
@ -204,49 +192,6 @@ Chapter Five"
id=Landar id=Landar
message={WHISPER _"A shame we missed the opportunity to rid the forests of dwarves, as well."} message={WHISPER _"A shame we missed the opportunity to rid the forests of dwarves, as well."}
[/message] [/message]
# modify 2/3 of the non-loyal, non-shaman-line units to join Landar
{MODIFY_UNIT (id=Landar) side 4}
[store_unit]
#TODO spellcheck
variable=steal_wearer
kill=yes
[filter]
side=1
[not]
id=Kalenz
[/not]
[not]
id=Landar
[/not]
[not]
{FILTER_LOYALS}
[/not]
[/filter]
[/store_unit]
{FOREACH steal_wearer u}
{RANDOM (2,1,2)}
[if]
[variable]
name=random
numerical_equals=1
[/variable]
[then]
{VARIABLE steal_wearer[$u].role kalenz_loyal}
[unstore_unit]
variable=steal_wearer[$u]
[/unstore_unit]
[/then]
[else]
{VARIABLE steal_wearer[$u].side 4}
{VARIABLE steal_wearer[$u].role landar_loyal}
[unstore_unit]
variable=steal_wearer[$u]
[/unstore_unit]
[/else]
[/if]
{NEXT u}
{CLEAR_VARIABLE steal_wearer}
[/event] [/event]
##### Scenario objectives ##### ##### Scenario objectives #####

View file

@ -30,7 +30,7 @@
{DEFAULT_SCHEDULE} {DEFAULT_SCHEDULE}
# {LOW_PRESTART} disallow_recall=yes
next_scenario=22_Northern_Battle next_scenario=22_Northern_Battle
[story] [story]
@ -61,8 +61,7 @@
team_name=player team_name=player
user_team_name= _ "Player" user_team_name= _ "Player"
extra_recruit=Elvish Fighter, Elvish Archer, Elvish Scout extra_recruit=Elvish Fighter, Elvish Archer, Elvish Scout
#TODO differentiate the gold {GOLD 160 130 100}
{GOLD 100 100 100}
[unit] [unit]
{CLEODIL} {CLEODIL}
extra_recruit=Elvish Shaman, Elvish Scout, Wose extra_recruit=Elvish Shaman, Elvish Scout, Wose
@ -75,23 +74,6 @@
[event] [event]
name=prestart name=prestart
[store_unit]
kill=yes
variable=kalenz_loyals
[filter]
side=1
[not]
#wmllint: recognize Anduilas
id=Anduilas
[/not]
[not]
id=Kalenz
[/not]
[not]
id=Cleodil
[/not]
[/filter]
[/store_unit]
[recall] [recall]
id=Anduilas id=Anduilas
x=16 x=16
@ -110,19 +92,6 @@
[/message] [/message]
[/event] [/event]
[event]
name=victory
{FOREACH kalenz_loyals loyal_one}
[unstore_unit]
variable=kalenz_loyals[$loyal_one]
x,y=recall,recall
[/unstore_unit]
{NEXT loyal_one}
{CLEAR_VARIABLE loyal_one}
{CLEAR_VARIABLE kalenz_loyals}
[/event]
#### Betrayer's code #### #### Betrayer's code ####
[event] [event]

View file

@ -32,8 +32,6 @@
{EXTRA_SCENARIO_MUSIC weight_of_revenge.ogg} {EXTRA_SCENARIO_MUSIC weight_of_revenge.ogg}
{EXTRA_SCENARIO_MUSIC casualties_of_war.ogg} {EXTRA_SCENARIO_MUSIC casualties_of_war.ogg}
# {LOW_PRESTART}
[story] [story]
[part] [part]
story= _ "It was clear to Kalenz and Cleodil that there would be no sanctuary for them while Landar lived. But during their years in seclusion the fame of their deeds had only grown. Many healers and sorceresses responded to Cleodils call, and Kalenz found that recruits came to him as readily as if he were still High Lord in name." story= _ "It was clear to Kalenz and Cleodil that there would be no sanctuary for them while Landar lived. But during their years in seclusion the fame of their deeds had only grown. Many healers and sorceresses responded to Cleodils call, and Kalenz found that recruits came to him as readily as if he were still High Lord in name."
@ -54,8 +52,8 @@
controller=human controller=human
extra_recruit=Elvish Fighter, Elvish Archer, Elvish Scout extra_recruit=Elvish Fighter, Elvish Archer, Elvish Scout
{GOLD 100 100 100} {GOLD 100 100 100}
x=42 x=46
y=29 y=39
#ifndef MULTIPLAYER #ifndef MULTIPLAYER
[unit] [unit]
{CLEODIL} {CLEODIL}
@ -70,47 +68,64 @@
[event] [event]
name=prestart name=prestart
# transfer our veterans except Anduilas to side 2 # modify 2/3 of the non-loyal, non-shaman-line units to join Landar
# wmllint: recognize Anduilas {MODIFY_UNIT (id=Landar) side 3}
[store_unit] [store_unit]
#TODO spellcheck #TODO spellcheck
variable=steal_wearer variable=steal_wearer
kill=yes kill=yes
[filter] [filter]
side=1 side=1
# role=kalenz_loyal x,y=recall,recall
[not] [not]
id=Kalenz id=Kalenz
[/not] [/not]
# wmllint: recognize Anduilas
[not] [not]
id=Anduilas id=Anduilas
[/not] [/not]
# wmllint: recognize Landar
[not] [not]
id=Landar {FILTER_LOYALS}
[/not]
[not]
type={ELVES_NON_STEEL}
[/not] [/not]
#TODO find a solution for the filltering
#[not]
# type={SHAMANS}
#[/not]
[/filter] [/filter]
[/store_unit] [/store_unit]
{FOREACH steal_wearer u}
{FOREACH steal_wearer i} {RANDOM (2,1,2)}
{VARIABLE steal_wearer[$i].side 2} [if]
[variable]
name=random
numerical_equals=1
[/variable]
[then]
{VARIABLE steal_wearer[$u].side 2}
{VARIABLE steal_wearer[$u].role kalenz_loyal}
[unstore_unit] [unstore_unit]
variable=steal_wearer[$i] variable=steal_wearer[$u]
x,y=recall,recall x,y=recall,recall
[/unstore_unit] [/unstore_unit]
{NEXT i} [/then]
{CLEAR_VARIABLE i} [else]
{VARIABLE steal_wearer[$u].side 3}
{VARIABLE steal_wearer[$u].role landar_loyal}
[unstore_unit]
variable=steal_wearer[$u]
x,y=recall,recall
[/unstore_unit]
[/else]
[/if]
{NEXT u}
{CLEAR_VARIABLE steal_wearer} {CLEAR_VARIABLE steal_wearer}
{LOW_STEAL_UNIT_TO "Landar" 3}
# recall our loyals # recall our loyals
{RECALL_LOYALS} {RECALL_LOYALS}
[recall]
id=Landar
x=15
y=38
[/recall]
[/event] [/event]
# wmllint: recognize Uradredia # wmllint: recognize Uradredia
@ -160,17 +175,12 @@
[/event] [/event]
[side] [side]
{PLAYABLE}
[unit]
{LANDAR}
#wmllint: recognize Landar
x=15
y=38
[/unit]
side=3 side=3
#ifndef MULTIPLAYER #ifndef MULTIPLAYER
controller=ai controller=ai
allow_player=no allow_player=no
#else
{PLAYABLE}
#endif #endif
no_leader=yes no_leader=yes
team_name=landar team_name=landar
@ -215,8 +225,8 @@
id=Crintil id=Crintil
name=_ "Crintil" name=_ "Crintil"
canrecruit=yes canrecruit=yes
x=46 x=41
y=39 y=29
#ifdef EASY #ifdef EASY
recruit=Elvish Archer, Elvish Fighter recruit=Elvish Archer, Elvish Fighter
#endif #endif
@ -227,7 +237,7 @@
recruit=Elvish Archer, Elvish Fighter, Elvish Hero, Elvish Ranger recruit=Elvish Archer, Elvish Fighter, Elvish Hero, Elvish Ranger
#endif #endif
{GOLD 200 200 200} {GOLD 180 220 260}
[ai] [ai]
{NO_SCOUTS} {NO_SCOUTS}
recruitment_ignore_bad_movement=yes recruitment_ignore_bad_movement=yes

View file

@ -25,8 +25,6 @@
{EXTRA_SCENARIO_MUSIC breaking_the_chains.ogg} {EXTRA_SCENARIO_MUSIC breaking_the_chains.ogg}
{EXTRA_SCENARIO_MUSIC casualties_of_war.ogg} {EXTRA_SCENARIO_MUSIC casualties_of_war.ogg}
# {LOW_PRESTART}
next_scenario=24_Epilogue next_scenario=24_Epilogue
[story] [story]
#TODO that story needs to be changed for multiplayer #TODO that story needs to be changed for multiplayer
@ -43,7 +41,7 @@
{PLAYABLE} {PLAYABLE}
# wmllint: recognize Kalenz # wmllint: recognize Kalenz
extra_recruit=Elvish Fighter, Elvish Archer, Elvish Scout extra_recruit=Elvish Fighter, Elvish Archer, Elvish Scout
{GOLD 200 160 160} #TODO too similar {GOLD 200 180 160}
#ifndef MULTIPLAYER #ifndef MULTIPLAYER
#TODO Let's keep cleodil out of multiplayer, shall we? #TODO Let's keep cleodil out of multiplayer, shall we?
[unit] [unit]
@ -57,16 +55,18 @@
[event] [event]
name=prestart name=prestart
{LOW_STEAL_UNIT_TO "Landar" 2}
{RECALL_LOYALS} {RECALL_LOYALS}
[/event] [/event]
[side] [side]
side=2 side=2
{LANDAR}
controller=ai
persistent=yes persistent=yes
save_id=Landar save_id=Landar
{LANDAR} #ifdef MULTIPLAYER
{PLAYABLE} {PLAYABLE}
#endif
# wmllint: recognize Landar # wmllint: recognize Landar
canrecruit=yes canrecruit=yes
#ifdef EASY #ifdef EASY
@ -132,16 +132,17 @@
[/message] [/message]
[/event] [/event]
#TODO add speech for Landar and Kalenz
[event] [event]
name=last breath name=last breath
# Second_unit (on kalenz's side) kills unit (on landar's side); # Second_unit (on kalenz's side) kills unit (on landar's side);
# both came from the player's recall list and so have fought # both came from the player's recall list and so have fought
# side by side. # side by side.
[filter] [filter]
side=2
role=landar_loyal role=landar_loyal
[/filter] [/filter]
[filter_second] [filter_second]
side=1
role=kalenz_loyal role=kalenz_loyal
[/filter_second] [/filter_second]
[message] [message]
@ -159,9 +160,11 @@
# Same as above but with roles exchanged. One of Landar's men # Same as above but with roles exchanged. One of Landar's men
# kills his former comrade. # kills his former comrade.
[filter] [filter]
side=1
role=kalenz_loyal role=kalenz_loyal
[/filter] [/filter]
[filter_second] [filter_second]
side=2
role=landar_loyal role=landar_loyal
[/filter_second] [/filter_second]
[message] [message]