Merge pull request #729 from GregoryLundberg/GL_HttT_errors
HttT Errors
This commit is contained in:
commit
12f7107047
33 changed files with 766 additions and 501 deletions
|
@ -584,3 +584,7 @@
|
|||
[/message]
|
||||
[/event]
|
||||
[/scenario]
|
||||
|
||||
#undef AVOID_CHANTAL
|
||||
#undef HIGH_PRIORITY_TARGETS
|
||||
#undef EBESIEGED_RECRUITMENT
|
||||
|
|
|
@ -25,9 +25,11 @@
|
|||
#ifdef HARD
|
||||
[objective]
|
||||
{ALTERNATIVE_OBJECTIVE_CAPTION}
|
||||
description= _ "Defeat the enemy leader"+{OBJECTIVE_FOOTNOTE _"(special bonus)"}
|
||||
description= _ "Defeat the enemy leader"+{EARLY_FINISH_BONUS_FOOTNOTE}+{OBJECTIVE_FOOTNOTE _"(special bonus)"}
|
||||
condition=win
|
||||
[/objective]
|
||||
#else
|
||||
{ALTERNATIVE_OBJECTIVE_BONUS ( _ "Defeat the enemy leader")}
|
||||
#endif
|
||||
[objective]
|
||||
description= _ "Death of Konrad"
|
||||
|
@ -43,7 +45,6 @@
|
|||
[/objective]
|
||||
|
||||
[gold_carryover]
|
||||
bonus=no
|
||||
carryover_percentage=40
|
||||
[/gold_carryover]
|
||||
[/objectives]
|
||||
|
@ -192,7 +193,7 @@
|
|||
[/message]
|
||||
[message]
|
||||
speaker=Delfador
|
||||
message= _ "Yes, we will sail to the Isle of Alduin, my home Konrad, and the home of many magi."
|
||||
message= _ "Yes, we will sail to the Isle of Alduin, my home, Konrad, and the home of many magi."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kaylan
|
||||
|
@ -338,6 +339,7 @@
|
|||
facing=sw
|
||||
[modifications]
|
||||
{TRAIT_LOYAL}
|
||||
{TRAIT_INTELLIGENT}
|
||||
[/modifications]
|
||||
{IS_LOYAL}
|
||||
[/unit]
|
||||
|
|
|
@ -352,6 +352,7 @@
|
|||
[/allow_recruit]
|
||||
[/then]
|
||||
[/if]
|
||||
{CLEAR_VARIABLE received_mages}
|
||||
|
||||
[kill]
|
||||
id=Seimus
|
||||
|
|
|
@ -120,7 +120,7 @@
|
|||
#ifdef HARD
|
||||
[terrain]
|
||||
x=4-6
|
||||
y=40
|
||||
y=40-41
|
||||
terrain=Ww
|
||||
[/terrain]
|
||||
#endif
|
||||
|
@ -309,16 +309,16 @@
|
|||
[event]
|
||||
name=moveto
|
||||
|
||||
[remove_item]
|
||||
x,y=$x1,$y1
|
||||
[/remove_item]
|
||||
|
||||
[filter]
|
||||
side=1
|
||||
x=19
|
||||
y=23
|
||||
[/filter]
|
||||
|
||||
[remove_item]
|
||||
x,y=$x1,$y1
|
||||
[/remove_item]
|
||||
|
||||
[unit]
|
||||
side=1
|
||||
x=19
|
||||
|
@ -382,16 +382,16 @@
|
|||
|
||||
[event]
|
||||
name=moveto
|
||||
[remove_item]
|
||||
x,y=$x1,$y1
|
||||
[/remove_item]
|
||||
|
||||
[filter]
|
||||
side=1
|
||||
x=11
|
||||
y=33
|
||||
[/filter]
|
||||
|
||||
[remove_item]
|
||||
x,y=$x1,$y1
|
||||
[/remove_item]
|
||||
|
||||
[unit]
|
||||
side=1
|
||||
x=11
|
||||
|
@ -456,16 +456,16 @@
|
|||
|
||||
[event]
|
||||
name=moveto
|
||||
[remove_item]
|
||||
x,y=$x1,$y1
|
||||
[/remove_item]
|
||||
|
||||
[filter]
|
||||
side=1
|
||||
x=7
|
||||
y=35
|
||||
[/filter]
|
||||
|
||||
[remove_item]
|
||||
x,y=$x1,$y1
|
||||
[/remove_item]
|
||||
|
||||
[unit]
|
||||
side=1
|
||||
x=7
|
||||
|
@ -504,16 +504,16 @@
|
|||
|
||||
[event]
|
||||
name=moveto
|
||||
[remove_item]
|
||||
x,y=$x1,$y1
|
||||
[/remove_item]
|
||||
|
||||
[filter]
|
||||
x=5
|
||||
y=38
|
||||
side=1
|
||||
[/filter]
|
||||
|
||||
[remove_item]
|
||||
x,y=$x1,$y1
|
||||
[/remove_item]
|
||||
|
||||
[unit]
|
||||
side=1
|
||||
x=5
|
||||
|
@ -564,16 +564,16 @@
|
|||
|
||||
[event]
|
||||
name=moveto
|
||||
[remove_item]
|
||||
x,y=$x1,$y1
|
||||
[/remove_item]
|
||||
|
||||
[filter]
|
||||
side=1
|
||||
x=3
|
||||
y=10
|
||||
[/filter]
|
||||
|
||||
[remove_item]
|
||||
x,y=$x1,$y1
|
||||
[/remove_item]
|
||||
|
||||
[unit]
|
||||
side=1
|
||||
x=3
|
||||
|
|
|
@ -22,11 +22,7 @@
|
|||
condition=win
|
||||
show_turn_counter=yes
|
||||
[/objective]
|
||||
[objective]
|
||||
{ALTERNATIVE_OBJECTIVE_CAPTION}
|
||||
description= _ "Defeat all enemy leaders"+{OBJECTIVE_FOOTNOTE _"(special bonus)"}
|
||||
condition=win
|
||||
[/objective]
|
||||
{ALTERNATIVE_OBJECTIVE ( _ "Defeat all enemy leaders")}
|
||||
[objective]
|
||||
description= _ "Death of Konrad"
|
||||
condition=lose
|
||||
|
@ -390,6 +386,7 @@
|
|||
[/else]
|
||||
#endif
|
||||
[/if]
|
||||
{CLEAR_VARIABLE random}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -474,6 +471,7 @@
|
|||
message= _ "You regain your lost troops and $isle_damned_starting_gold gold!"
|
||||
image=wesnoth-icon.png
|
||||
[/message]
|
||||
{CLEAR_VARIABLE isle_damned_starting_gold}
|
||||
|
||||
[allow_recruit]
|
||||
side=1
|
||||
|
@ -535,6 +533,7 @@
|
|||
message= _ "You regain your lost troops and $isle_damned_starting_gold gold!"
|
||||
image=wesnoth-icon.png
|
||||
[/message]
|
||||
{CLEAR_VARIABLE isle_damned_starting_gold}
|
||||
|
||||
[allow_recruit]
|
||||
side=1
|
||||
|
@ -556,3 +555,9 @@
|
|||
|
||||
{campaigns/Heir_To_The_Throne/utils/deaths.cfg}
|
||||
[/scenario]
|
||||
|
||||
#undef EMPTY_TEMPLE_TRAP
|
||||
#undef MOREMIRMU_TRAP
|
||||
#undef XAKAE_TRAP
|
||||
#undef ISLE_GALLEON_ARRIVE
|
||||
#undef RESTORE_RECALL_LIST
|
||||
|
|
|
@ -144,8 +144,8 @@
|
|||
#endif
|
||||
|
||||
[time_area]
|
||||
x=13-22,23 ,24 ,25-26
|
||||
y=0-5 ,0-3,0-1,0-2
|
||||
x= 11, 12, 13, 14, 15, 16-22, 23, 24, 25-26
|
||||
y= 0-1, 0-2, 0-6, 0-5, 0-6, 0-5, 0-3, 0-1, 0-2
|
||||
{UNDERGROUND}
|
||||
[/time_area]
|
||||
|
||||
|
@ -155,13 +155,41 @@
|
|||
{PLACE_IMAGE scenery/rock1.png 13 12}
|
||||
{PLACE_IMAGE scenery/rock2.png 25 28}
|
||||
|
||||
#define ADVISOR
|
||||
[role]
|
||||
type=Elvish Champion,Elvish Marshal,Elvish Captain,Elvish Hero,Knight,Elvish Outrider,Elvish Rider,Paladin,Mage,White Mage,Red Mage
|
||||
role=Advisor
|
||||
[auto_recall][/auto_recall]
|
||||
|
||||
type="Elvish Sylph,Great Mage," +
|
||||
|
||||
"Elvish Marshal,Elvish Champion,Elvish Avenger,Elvish Sharpshooter,Elvish Shyde,Elvish Enchantress,Elvish Outrider," +
|
||||
"Paladin,Grand Knight," +
|
||||
"Mage of Light,Arch Mage,Silver Mage," +
|
||||
"Merman Triton,Merman Hoplite,Merman Javelineer,Merman Entangler,Mermaid Diviner,Mermaid Siren," +
|
||||
"Highwayman,Fugitive,Huntsman,Ranger," +
|
||||
|
||||
"Elvish Captain,Elvish Hero,Elvish Ranger,Elvish Marksman,Elvish Druid,Elvish Sorceress,Elvish Rider," +
|
||||
"Knight,Lancer," +
|
||||
"White Mage,Red Mage," +
|
||||
"Merman Warrior,Merman Spearman,Merman Netcaster,Mermaid Priestess,Mermaid Enchantress," +
|
||||
"Bandit,Outlaw,Trapper," +
|
||||
|
||||
"Elvish Fighter,Elvish Archer,Elvish Shaman,Elvish Scout," +
|
||||
"Horseman," +
|
||||
"Mage," +
|
||||
"Merman Fighter,Merman Hunter,Mermaid Initiate," +
|
||||
"Thug,Footpad,Poacher"
|
||||
[else]
|
||||
[unit]
|
||||
side=1
|
||||
type=Elvish Fighter
|
||||
role=Advisor
|
||||
placement=leader
|
||||
[/unit]
|
||||
[/else]
|
||||
[/role]
|
||||
[recall]
|
||||
role=Advisor
|
||||
[/recall]
|
||||
#enddef
|
||||
{ADVISOR}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -265,6 +293,7 @@
|
|||
speaker=Reglok
|
||||
message= _ "Greetings, friend. We are from the Elensefar Thieves’ Guild. We would like to help you against the orcs!"
|
||||
[/message]
|
||||
{ADVISOR}
|
||||
[message]
|
||||
role=Advisor
|
||||
message= _ "Thieves, hmmm? Who says we can trust such as you?"
|
||||
|
@ -492,8 +521,8 @@
|
|||
#create terrain
|
||||
[terrain]
|
||||
terrain=Wwf # wmllint: ignore
|
||||
x=7-8
|
||||
y=30-32
|
||||
x=8,7-8
|
||||
y=30,31-32
|
||||
[/terrain]
|
||||
#dialog
|
||||
[message]
|
||||
|
@ -618,7 +647,7 @@
|
|||
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "Oh, and you want me to get this scepter?"
|
||||
message= _ "Oh, and you want me to get this Sceptre?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
|
@ -646,6 +675,7 @@
|
|||
message= _ "We cannot go to Wesmere, for Asheviere’s orcs have the approaches ringed about with steel; Kalenz and I barely escaped, and Chantal cannot get out. Until we are stronger, we must go where the orcs are not."
|
||||
[/message]
|
||||
|
||||
{CLEAR_VARIABLE thieves_ford}
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=yes
|
||||
|
@ -719,3 +749,5 @@
|
|||
|
||||
{campaigns/Heir_To_The_Throne/utils/deaths.cfg}
|
||||
[/scenario]
|
||||
|
||||
#undef ADVISOR
|
||||
|
|
|
@ -321,48 +321,58 @@
|
|||
# variables, thus always having the same ratio of different
|
||||
# types.
|
||||
|
||||
[unit]
|
||||
x,y=$ambush_location.x,$ambush_location.y
|
||||
type=$random_ambusher_type_table[$random_ambusher_type_i].type
|
||||
side={SIDE}
|
||||
facing=sw
|
||||
role=ambusher
|
||||
random_traits=yes
|
||||
[if]
|
||||
[not]
|
||||
[have_unit]
|
||||
x,y=$ambush_location.x,$ambush_location.y
|
||||
[/have_unit]
|
||||
[/not]
|
||||
[then]
|
||||
[unit]
|
||||
x,y=$ambush_location.x,$ambush_location.y
|
||||
type=$random_ambusher_type_table[$random_ambusher_type_i].type
|
||||
side={SIDE}
|
||||
facing=sw
|
||||
role=ambusher
|
||||
random_traits=yes
|
||||
|
||||
[modifications]
|
||||
{TRAIT_LOYAL}
|
||||
[/modifications]
|
||||
{IS_LOYAL}
|
||||
[/unit]
|
||||
[modifications]
|
||||
{TRAIT_LOYAL}
|
||||
[/modifications]
|
||||
{IS_LOYAL}
|
||||
[/unit]
|
||||
|
||||
[object]
|
||||
silent=yes
|
||||
[object]
|
||||
silent=yes
|
||||
|
||||
[filter]
|
||||
x,y=$ambush_location.x,$ambush_location.y
|
||||
[/filter]
|
||||
[filter]
|
||||
x,y=$ambush_location.x,$ambush_location.y
|
||||
[/filter]
|
||||
|
||||
[effect]
|
||||
apply_to=new_ability
|
||||
[effect]
|
||||
apply_to=new_ability
|
||||
|
||||
[abilities]
|
||||
[hides]
|
||||
id=orc_ambush
|
||||
affect_self=yes
|
||||
[abilities]
|
||||
[hides]
|
||||
id=orc_ambush
|
||||
affect_self=yes
|
||||
|
||||
[filter_self]
|
||||
role=ambusher
|
||||
[filter_self]
|
||||
role=ambusher
|
||||
|
||||
[filter_location]
|
||||
terrain=Hh,Mm
|
||||
[/filter_location]
|
||||
[/filter_self]
|
||||
[/hides]
|
||||
[/abilities]
|
||||
[/effect]
|
||||
[/object]
|
||||
[filter_location]
|
||||
terrain=Hh,Mm
|
||||
[/filter_location]
|
||||
[/filter_self]
|
||||
[/hides]
|
||||
[/abilities]
|
||||
[/effect]
|
||||
[/object]
|
||||
[/then]
|
||||
[/if]
|
||||
[/command]
|
||||
[/random_placement]
|
||||
{CLEAR_VARIABLE ambush_location}
|
||||
|
||||
#enddef
|
||||
|
||||
|
@ -372,28 +382,26 @@
|
|||
{ORC_AMBUSH_AREA 2 5-35 1-7 5}
|
||||
{ORC_AMBUSH_AREA 2 9-24 8-15 5}
|
||||
{ORC_AMBUSH_AREA 3 1-17 17-24 9}
|
||||
{ORC_AMBUSH_AREA 3 18-26 16-23 5}
|
||||
{ORC_AMBUSH_AREA 3 18-25 16-23 5}
|
||||
{ORC_AMBUSH_AREA 3 26-40 16-23 5}
|
||||
#endif
|
||||
#ifdef NORMAL
|
||||
{ORC_AMBUSH_AREA 2 5-35 1-7 6}
|
||||
{ORC_AMBUSH_AREA 2 9-24 8-15 6}
|
||||
{ORC_AMBUSH_AREA 3 1-17 17-24 10}
|
||||
{ORC_AMBUSH_AREA 3 18-26 16-23 6}
|
||||
{ORC_AMBUSH_AREA 3 18-25 16-23 6}
|
||||
{ORC_AMBUSH_AREA 3 26-40 16-23 6}
|
||||
#endif
|
||||
#ifdef HARD
|
||||
{ORC_AMBUSH_AREA 2 5-35 1-7 7}
|
||||
{ORC_AMBUSH_AREA 2 9-24 8-15 7}
|
||||
{ORC_AMBUSH_AREA 3 1-17 17-24 11}
|
||||
{ORC_AMBUSH_AREA 3 18-26 16-23 7}
|
||||
{ORC_AMBUSH_AREA 3 18-25 16-23 7}
|
||||
{ORC_AMBUSH_AREA 3 26-40 16-23 7}
|
||||
#endif
|
||||
|
||||
{CLEAR_VARIABLE possible_ambush_locations}
|
||||
{CLEAR_VARIABLE random_ambusher_type_table}
|
||||
{CLEAR_VARIABLE random_ambusher_type_i}
|
||||
{CLEAR_VARIABLE ambusher}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -537,3 +545,6 @@ SE — Fort Tahn"
|
|||
|
||||
{campaigns/Heir_To_The_Throne/utils/deaths.cfg}
|
||||
[/scenario]
|
||||
|
||||
#undef CROSSROADS_AI_PARAMS
|
||||
#undef ORC_AMBUSH_AREA
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
[objectives]
|
||||
side=1
|
||||
[objective]
|
||||
description= _ "Force Li’sar’s surrender (reduce her hitpoints to 0 or lower)"
|
||||
description= _ "Force Li’sar’s surrender"+{OBJECTIVE_FOOTNOTE ( _ "(reduce her hitpoints to 0 or lower)")}
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
|
@ -150,12 +150,40 @@
|
|||
id=Kalenz
|
||||
[/recall]
|
||||
[role]
|
||||
type=Elvish Champion,Elvish Marshal,Elvish Captain,Elvish Hero,Knight,Elvish Outrider,Elvish Rider,Paladin,Mage,White Mage,Red Mage
|
||||
role=Advisor
|
||||
[auto_recall][/auto_recall]
|
||||
|
||||
type="Elvish Sylph,Great Mage," +
|
||||
|
||||
"Elvish Marshal,Elvish Champion,Elvish Avenger,Elvish Sharpshooter,Elvish Shyde,Elvish Enchantress,Elvish Outrider," +
|
||||
"Paladin,Grand Knight," +
|
||||
"Mage of Light,Arch Mage,Silver Mage," +
|
||||
"Merman Triton,Merman Hoplite,Merman Javelineer,Merman Entangler,Mermaid Diviner,Mermaid Siren," +
|
||||
"Highwayman,Fugitive,Huntsman,Ranger," +
|
||||
"Assassin," +
|
||||
|
||||
"Elvish Captain,Elvish Hero,Elvish Ranger,Elvish Marksman,Elvish Druid,Elvish Sorceress,Elvish Rider," +
|
||||
"Knight,Lancer," +
|
||||
"White Mage,Red Mage," +
|
||||
"Merman Warrior,Merman Spearman,Merman Netcaster,Mermaid Priestess,Mermaid Enchantress," +
|
||||
"Bandit,Outlaw,Trapper," +
|
||||
"Rogue," +
|
||||
|
||||
"Elvish Fighter,Elvish Archer,Elvish Shaman,Elvish Scout," +
|
||||
"Horseman," +
|
||||
"Mage," +
|
||||
"Merman Fighter,Merman Hunter,Mermaid Initiate," +
|
||||
"Thug,Footpad,Poacher," +
|
||||
"Thief"
|
||||
[else]
|
||||
[unit]
|
||||
side=1
|
||||
type=Elvish Fighter
|
||||
role=Advisor
|
||||
placement=leader
|
||||
[/unit]
|
||||
[/else]
|
||||
[/role]
|
||||
[recall]
|
||||
role=Advisor
|
||||
[/recall]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -414,3 +442,5 @@
|
|||
|
||||
{campaigns/Heir_To_The_Throne/utils/deaths.cfg}
|
||||
[/scenario]
|
||||
|
||||
#undef SECOND_WAVE
|
||||
|
|
|
@ -458,7 +458,10 @@
|
|||
[/kill]
|
||||
[/then]
|
||||
[/if]
|
||||
{CLEAR_VARIABLE moremirmu}
|
||||
[/event]
|
||||
|
||||
{campaigns/Heir_To_The_Throne/utils/deaths.cfg}
|
||||
[/scenario]
|
||||
|
||||
#undef VOD_AI_PARMS
|
||||
|
|
|
@ -246,7 +246,10 @@
|
|||
[/event]
|
||||
|
||||
[event]
|
||||
name=enemies defeated
|
||||
name=die
|
||||
[filter]
|
||||
id=Robryn
|
||||
[/filter]
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "We have defeated them! Now what do we do?"
|
||||
|
@ -266,147 +269,145 @@
|
|||
message= _ "With these gryphon eggs we should be able to breed gryphons that will serve us. When they are large enough to carry mounts, we can hire gryphon riders!"
|
||||
[/message]
|
||||
[/then]
|
||||
[else]
|
||||
[if]
|
||||
[and]
|
||||
[variable]
|
||||
name=gryphon_disposition
|
||||
greater_than_equal_to=2
|
||||
[/variable]
|
||||
[have_unit]
|
||||
[elseif]
|
||||
[and]
|
||||
[variable]
|
||||
name=gryphon_disposition
|
||||
greater_than_equal_to=2
|
||||
[/variable]
|
||||
[have_unit]
|
||||
side=3
|
||||
[/have_unit]
|
||||
[/and]
|
||||
[then]
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "It is a shame we could not get those gryphon eggs. I am glad we did not slaughter any gryphons. They are magnificent animals (looks back at the mountain). Still..."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "Whoa!!"
|
||||
[/message]
|
||||
#
|
||||
# Wake up all the sleeping gryphons
|
||||
#
|
||||
[store_unit]
|
||||
variable=gryphon_store
|
||||
[filter]
|
||||
side=3
|
||||
[/have_unit]
|
||||
[/and]
|
||||
[then]
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "It is a shame we could not get those gryphon eggs. I am glad we did not slaughter any gryphons. They are magnificent animals (looks back at the mountain). Still..."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "Whoa!!"
|
||||
[/message]
|
||||
#
|
||||
# Wake up all the sleeping gryphons
|
||||
#
|
||||
[store_unit]
|
||||
variable=gryphon_store
|
||||
[filter]
|
||||
side=3
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[foreach]
|
||||
array=gryphon_store
|
||||
[do]
|
||||
{VARIABLE this_item.type Gryphon}
|
||||
[unstore_unit]
|
||||
variable=this_item
|
||||
[/unstore_unit]
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[foreach]
|
||||
array=gryphon_store
|
||||
[do]
|
||||
{VARIABLE this_item.type Gryphon}
|
||||
[unstore_unit]
|
||||
variable=this_item
|
||||
[/unstore_unit]
|
||||
[/do]
|
||||
[/foreach]
|
||||
{CLEAR_VARIABLE gryphon_store}
|
||||
#
|
||||
# Figure out where Konrad is standing
|
||||
#
|
||||
[store_unit]
|
||||
variable=konrad_store
|
||||
[filter]
|
||||
id=Konrad
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=konrad_store.x
|
||||
greater_than=13
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE destination_x 24}
|
||||
[/then]
|
||||
[else]
|
||||
{VARIABLE destination_x 1}
|
||||
[/else]
|
||||
[/if]
|
||||
[if]
|
||||
[variable]
|
||||
name=konrad_store.y
|
||||
greater_than=16
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE destination_y 39}
|
||||
[/then]
|
||||
[else]
|
||||
{VARIABLE destination_y 1}
|
||||
[/else]
|
||||
[/if]
|
||||
#
|
||||
# Put some more gryphons up there and view the mountain
|
||||
#
|
||||
{NAMED_LOYAL_UNIT 3 (Gryphon) 13 14 (Graik) ( _ "Graik")}
|
||||
{NAMED_LOYAL_UNIT 3 (Gryphon) 13 18 (Griak) ( _ "Griak")}
|
||||
[scroll_to]
|
||||
x,y=13,16
|
||||
[/scroll_to]
|
||||
[message]
|
||||
speaker=narrator
|
||||
image="wesnoth-icon.png"
|
||||
message= _ "Indeed, the majestic beasts were now circling the mountain’s peak. Several glared in Konrad’s direction, their eagle eyes fixed on him at an incredible distance."
|
||||
[/message]
|
||||
[sound]
|
||||
name=gryphon-shriek-1.ogg
|
||||
[/sound]
|
||||
[store_unit]
|
||||
variable=gryphon_store
|
||||
[filter]
|
||||
{CLEAR_VARIABLE gryphon_store}
|
||||
#
|
||||
# Figure out where Konrad is standing
|
||||
#
|
||||
[store_unit]
|
||||
variable=konrad_store
|
||||
[filter]
|
||||
id=Konrad
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[if]
|
||||
[variable]
|
||||
name=konrad_store.x
|
||||
greater_than=13
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE destination_x 24}
|
||||
[/then]
|
||||
[else]
|
||||
{VARIABLE destination_x 1}
|
||||
[/else]
|
||||
[/if]
|
||||
[if]
|
||||
[variable]
|
||||
name=konrad_store.y
|
||||
greater_than=16
|
||||
[/variable]
|
||||
[then]
|
||||
{VARIABLE destination_y 39}
|
||||
[/then]
|
||||
[else]
|
||||
{VARIABLE destination_y 1}
|
||||
[/else]
|
||||
[/if]
|
||||
#
|
||||
# Put some more gryphons up there and view the mountain
|
||||
#
|
||||
{NAMED_LOYAL_UNIT 3 (Gryphon) 13 14 (Graik) ( _ "Graik")}
|
||||
{NAMED_LOYAL_UNIT 3 (Gryphon) 13 18 (Griak) ( _ "Griak")}
|
||||
[scroll_to]
|
||||
x,y=13,16
|
||||
[/scroll_to]
|
||||
[message]
|
||||
speaker=narrator
|
||||
image="wesnoth-icon.png"
|
||||
message= _ "Indeed, the majestic beasts were now circling the mountain’s peak. Several glared in Konrad’s direction, their eagle eyes fixed on him at an incredible distance."
|
||||
[/message]
|
||||
[sound]
|
||||
name=gryphon-shriek-1.ogg
|
||||
[/sound]
|
||||
[store_unit]
|
||||
variable=gryphon_store
|
||||
[filter]
|
||||
side=3
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[foreach]
|
||||
array=gryphon_store
|
||||
[do]
|
||||
{VARIABLE temp_x $this_item.x}
|
||||
{VARIABLE temp_y $this_item.y}
|
||||
{VARIABLE range_x ("$temp_x|, $destination_x")}
|
||||
{VARIABLE range_y ("$temp_y|, $destination_y")}
|
||||
[kill]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
[/kill]
|
||||
[move_unit_fake]
|
||||
type=Gryphon
|
||||
side=3
|
||||
[/filter]
|
||||
[/store_unit]
|
||||
[foreach]
|
||||
array=gryphon_store
|
||||
[do]
|
||||
{VARIABLE temp_x $this_item.x}
|
||||
{VARIABLE temp_y $this_item.y}
|
||||
{VARIABLE range_x ("$temp_x|, $destination_x")}
|
||||
{VARIABLE range_y ("$temp_y|, $destination_y")}
|
||||
[kill]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
[/kill]
|
||||
[move_unit_fake]
|
||||
type=Gryphon
|
||||
side=3
|
||||
x=$range_x
|
||||
y=$range_y
|
||||
[/move_unit_fake]
|
||||
[/do]
|
||||
[/foreach]
|
||||
{CLEAR_VARIABLE konrad_store}
|
||||
{CLEAR_VARIABLE gryphon_store}
|
||||
{CLEAR_VARIABLE temp_x}
|
||||
{CLEAR_VARIABLE temp_y}
|
||||
{CLEAR_VARIABLE range_x}
|
||||
{CLEAR_VARIABLE range_y}
|
||||
{CLEAR_VARIABLE destination_x}
|
||||
{CLEAR_VARIABLE destination_y}
|
||||
[message]
|
||||
speaker=Delfador
|
||||
message= _ "Amazing! I have never before heard of such behavior in gryphons."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "What does it mean?"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Delfador
|
||||
message= _ "I do not know. Come now, the show is over."
|
||||
[/message]
|
||||
[/then]
|
||||
[else]
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "It is a shame we could not get those gryphon eggs — they would surely have given us an advantage sometime. Still, we must continue."
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
x=$range_x
|
||||
y=$range_y
|
||||
[/move_unit_fake]
|
||||
[/do]
|
||||
[/foreach]
|
||||
{CLEAR_VARIABLE konrad_store}
|
||||
{CLEAR_VARIABLE gryphon_store}
|
||||
{CLEAR_VARIABLE temp_x}
|
||||
{CLEAR_VARIABLE temp_y}
|
||||
{CLEAR_VARIABLE range_x}
|
||||
{CLEAR_VARIABLE range_y}
|
||||
{CLEAR_VARIABLE destination_x}
|
||||
{CLEAR_VARIABLE destination_y}
|
||||
[message]
|
||||
speaker=Delfador
|
||||
message= _ "Amazing! I have never before heard of such behavior in gryphons."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "What does it mean?"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Delfador
|
||||
message= _ "I do not know. Come now, the show is over."
|
||||
[/message]
|
||||
[/then]
|
||||
[/elseif]
|
||||
[else]
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "It is a shame we could not get those gryphon eggs — they would surely have given us an advantage sometime. Still, we must continue."
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
[message]
|
||||
|
@ -414,6 +415,7 @@
|
|||
message= _ "Let us continue onward!"
|
||||
[/message]
|
||||
|
||||
{CLEAR_VARIABLE gryphon_disposition}
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=yes
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
{DEFAULT_SCHEDULE}
|
||||
|
||||
victory_when_enemies_defeated=no
|
||||
next_scenario=12_Northern_Winter
|
||||
|
||||
{SCENARIO_MUSIC "loyalists.ogg"}
|
||||
|
@ -302,11 +303,11 @@
|
|||
#if the players marches over to Li'sar's keep, reinforcements appear
|
||||
[event]
|
||||
name=moveto
|
||||
[filter_second]
|
||||
[filter]
|
||||
side=1
|
||||
x=0-16
|
||||
y=23,34
|
||||
[/filter_second]
|
||||
y=23-34
|
||||
[/filter]
|
||||
{FORD_GUARD 1 29}
|
||||
{FORD_GUARD 1 29}
|
||||
{FORD_GUARD 1 29}
|
||||
|
@ -322,13 +323,16 @@
|
|||
#getting closer --> more reinforcements
|
||||
[event]
|
||||
name=moveto
|
||||
[filter_second]
|
||||
[filter]
|
||||
side=1
|
||||
x=2-9
|
||||
y=24,30
|
||||
[/filter_second]
|
||||
y=24-30
|
||||
[/filter]
|
||||
[message]
|
||||
speaker=second_unit
|
||||
side=2
|
||||
[not]
|
||||
id="Li'sar"
|
||||
[/not]
|
||||
message= _ "Stop! You shall not pass! Quick, reinforcements, protect the Princess!"
|
||||
[/message]
|
||||
{FORD_GUARD 1 27}
|
||||
|
@ -455,6 +459,7 @@
|
|||
[/then]
|
||||
[/if]
|
||||
|
||||
{CLEAR_VARIABLE lisar_still_here}
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=yes
|
||||
|
@ -464,3 +469,6 @@
|
|||
|
||||
{campaigns/Heir_To_The_Throne/utils/deaths.cfg}
|
||||
[/scenario]
|
||||
|
||||
#undef FORD_GUARD
|
||||
#undef SEA_CREATURE
|
||||
|
|
|
@ -5,12 +5,14 @@
|
|||
map_data="{campaigns/Heir_To_The_Throne/maps/12_Northern_Winter.map}"
|
||||
|
||||
{TURNS 50 40 40}
|
||||
# when changing the turn limits, also change this event accordingly
|
||||
[event]
|
||||
name=prestart
|
||||
[store_turns]
|
||||
variable=turn_limit
|
||||
[/store_turns]
|
||||
[set_variable]
|
||||
name=turn_limit
|
||||
{QUANTITY value 50 40 40}
|
||||
add=1
|
||||
[/set_variable]
|
||||
[/event]
|
||||
|
||||
|
@ -142,11 +144,30 @@
|
|||
|
||||
[role]
|
||||
role=human-advisor
|
||||
type=Knight,Paladin,White Mage,Mage of Light,Red Mage,Arch Mage,Great Mage,Horseman
|
||||
[auto_recall][/auto_recall]
|
||||
|
||||
type="Thief," +
|
||||
"Poacher,Footpad,Thug," +
|
||||
"Mage," +
|
||||
"Horseman," +
|
||||
"Rogue," +
|
||||
"Trapper,Outlaw,Bandit," +
|
||||
"Red Mage,White Mage," +
|
||||
"Lancer,Knight," +
|
||||
"Assassin," +
|
||||
"Ranger,Huntsman,Fugitive,Highwayman," +
|
||||
"Silver Mage,Arch Mage,Mage of Light," +
|
||||
"Grand Knight,Paladin," +
|
||||
"Great Mage"
|
||||
[else]
|
||||
[unit]
|
||||
side=1
|
||||
type=Thief
|
||||
role=human-advisor
|
||||
placement=leader
|
||||
[/unit]
|
||||
[/else]
|
||||
[/role]
|
||||
[recall]
|
||||
role=human-advisor
|
||||
[/recall]
|
||||
[recall]
|
||||
id=Delfador
|
||||
[/recall]
|
||||
|
@ -335,7 +356,7 @@
|
|||
[/do]
|
||||
[/while]
|
||||
|
||||
{CLEAR_VARIABLE non_snowy_locs}
|
||||
{CLEAR_VARIABLE non_snowy_locs,i,num_of_falling_snow,random,terrain,turns_left}
|
||||
[/event]
|
||||
[/event]
|
||||
|
||||
|
@ -379,7 +400,7 @@
|
|||
[message]
|
||||
speaker=narrator
|
||||
image="wesnoth-icon.png"
|
||||
message= _ "Konrad finally decided he could not wait until the gryphons grew to maturity — Delfador’s insistence that the scepter must be recovered was too compelling. And so after many days of rest, the party set out once again for the dwarven kingdom..."
|
||||
message= _ "Konrad finally decided he could not wait until the gryphons grew to maturity — Delfador’s insistence that the Sceptre must be recovered was too compelling. And so after many days of rest, the party set out once again for the dwarven kingdom..."
|
||||
[/message]
|
||||
[/then]
|
||||
[else]
|
||||
|
@ -391,11 +412,12 @@
|
|||
[message]
|
||||
speaker=narrator
|
||||
image="wesnoth-icon.png"
|
||||
message= _ "Eventually Delfador’s insistence that the scepter must be recovered proved too compelling, even when it meant dismantling the camp without the spring having yet fully arrived. And so after many days of rest, the party set out once again for the dwarven kingdom..."
|
||||
message= _ "Eventually Delfador’s insistence that the Sceptre must be recovered proved too compelling, even when it meant dismantling the camp without the spring having yet fully arrived. And so after many days of rest, the party set out once again for the dwarven kingdom..."
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
|
||||
{CLEAR_VARIABLE turn_limit}
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=yes
|
||||
|
|
|
@ -173,13 +173,25 @@
|
|||
[recall]
|
||||
id=Haldiel
|
||||
[/recall]
|
||||
[role]
|
||||
type=Elvish Outrider,Elvish Rider,Elvish Scout,Lancer,Paladin,Grand Knight,Knight,Horseman
|
||||
[role] #If Haldiel was just recalled, this will select him.
|
||||
role=Rider
|
||||
[auto_recall][/auto_recall]
|
||||
|
||||
type="Elvish Outrider," +
|
||||
"Paladin,Grand Knight," +
|
||||
"Elvish Rider," +
|
||||
"Knight,Lancer," +
|
||||
"Elvish Scout," +
|
||||
"Horseman"
|
||||
[else]
|
||||
[unit]
|
||||
side=1
|
||||
type=Horseman
|
||||
role=Rider
|
||||
placement=leader
|
||||
[/unit]
|
||||
[/else]
|
||||
[/role]
|
||||
[recall]
|
||||
role=Rider
|
||||
[/recall]
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
@ -552,10 +564,6 @@
|
|||
speaker=Konrad
|
||||
message= _ "Pray that we live to see sunlight again."
|
||||
[/message]
|
||||
[set_variable]
|
||||
name=killed_enemies
|
||||
value=false
|
||||
[/set_variable]
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=yes
|
||||
|
@ -582,10 +590,6 @@
|
|||
speaker=Konrad
|
||||
message= _ "Pray that we live to see sunlight again."
|
||||
[/message]
|
||||
[set_variable]
|
||||
name=killed_enemies
|
||||
value=false
|
||||
[/set_variable]
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=yes
|
||||
|
@ -679,3 +683,5 @@
|
|||
|
||||
{campaigns/Heir_To_The_Throne/utils/deaths.cfg}
|
||||
[/scenario]
|
||||
|
||||
#undef LISAR_GUARD_DOORS
|
||||
|
|
|
@ -670,6 +670,7 @@
|
|||
[/then]
|
||||
[/if]
|
||||
|
||||
{CLEAR_VARIABLE get_gryphons}
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=no
|
||||
|
|
|
@ -636,3 +636,5 @@
|
|||
|
||||
{campaigns/Heir_To_The_Throne/utils/deaths.cfg}
|
||||
[/scenario]
|
||||
|
||||
#undef MORE_UNITS
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
{DEEP_UNDERGROUND}
|
||||
|
||||
next_scenario=17_Scepter_of_Fire
|
||||
next_scenario=17_Sceptre_of_Fire
|
||||
|
||||
{SCENARIO_MUSIC "underground.ogg"} # More in start event
|
||||
|
||||
|
@ -442,3 +442,6 @@
|
|||
|
||||
{campaigns/Heir_To_The_Throne/utils/deaths.cfg}
|
||||
[/scenario]
|
||||
|
||||
#undef HASTY_TROLL
|
||||
#undef HASTY_GOBLIN_KNIGHT
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#textdomain wesnoth-httt
|
||||
[scenario]
|
||||
id=17_Scepter_of_Fire
|
||||
id=17_Sceptre_of_Fire
|
||||
name= _ "The Sceptre of Fire"
|
||||
next_scenario=18_A_Choice_Must_Be_Made
|
||||
scenario_generation=cave
|
||||
|
@ -94,9 +94,9 @@
|
|||
|
||||
{SOF_TERRAIN_MASK}
|
||||
#
|
||||
# Except on hard, you only have to face 3 enemies
|
||||
# instead of 4. This part randomly kills one of the
|
||||
# 4 leaders.
|
||||
# Except on hard, you only have to face 4 enemies
|
||||
# instead of 5. This part randomly kills 1 or 2 of the
|
||||
# 6 leaders.
|
||||
#
|
||||
#ifdef HARD
|
||||
#else
|
||||
|
@ -105,12 +105,20 @@
|
|||
[kill]
|
||||
side=$side_kill
|
||||
[/kill]
|
||||
[modify_side]
|
||||
side=$side_kill
|
||||
hidden=yes
|
||||
[/modify_side]
|
||||
#endif
|
||||
{VARIABLE_OP side_kill rand "2..3"}
|
||||
{ERASE_CASTLE $side_kill Uu}
|
||||
[kill]
|
||||
side=$side_kill
|
||||
[/kill]
|
||||
[modify_side]
|
||||
side=$side_kill
|
||||
hidden=yes
|
||||
[/modify_side]
|
||||
{CLEAR_VARIABLE side_kill}
|
||||
|
||||
# just making sure that the starting castle is big enough that
|
||||
|
@ -223,19 +231,19 @@
|
|||
[store_locations]
|
||||
terrain=Xu,Qxu,Ql
|
||||
[and]
|
||||
x=$scepter_x
|
||||
y=$scepter_y
|
||||
x=$sceptre_x
|
||||
y=$sceptre_y
|
||||
radius=3
|
||||
[/and]
|
||||
[or]
|
||||
x=$scepter_x
|
||||
y=$scepter_y
|
||||
x=$sceptre_x
|
||||
y=$sceptre_y
|
||||
radius=1
|
||||
[/or]
|
||||
variable=scepter_vicinity
|
||||
variable=sceptre_vicinity
|
||||
[/store_locations]
|
||||
[foreach]
|
||||
array=scepter_vicinity
|
||||
array=sceptre_vicinity
|
||||
[do]
|
||||
[terrain]
|
||||
x=$this_item.x
|
||||
|
@ -244,9 +252,10 @@
|
|||
[/terrain]
|
||||
[/do]
|
||||
[/foreach]
|
||||
{CLEAR_VARIABLE sceptre_vicinity}
|
||||
[terrain]
|
||||
x=$scepter_x
|
||||
y=$scepter_y
|
||||
x=$sceptre_x
|
||||
y=$sceptre_y
|
||||
terrain=Uu^Ii
|
||||
[/terrain]
|
||||
|
||||
|
@ -297,7 +306,7 @@
|
|||
name=moveto
|
||||
[filter]
|
||||
[filter_location]
|
||||
x,y=$scepter_x,$scepter_y
|
||||
x,y=$sceptre_x,$sceptre_y
|
||||
radius=6
|
||||
[/filter_location]
|
||||
side=1
|
||||
|
@ -345,7 +354,7 @@
|
|||
[event]
|
||||
name=victory
|
||||
|
||||
{CLEAR_VARIABLE concentrating,moved_too_close}
|
||||
{CLEAR_VARIABLE concentrating,moved_too_close,lava_body,lava_count,sceptre_x,sceptre_y}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -364,18 +373,18 @@
|
|||
local H = wesnoth.require "lua/helper.lua"
|
||||
local W = H.set_wml_action_metatable {}
|
||||
local delf = wesnoth.get_units { id = 'Delfador' }[1]
|
||||
local sceptre_x, sceptre_y = wesnoth.get_variable('scepter_x'), wesnoth.get_variable('scepter_y')
|
||||
local sceptre_x, sceptre_y = wesnoth.get_variable('sceptre_x'), wesnoth.get_variable('sceptre_y')
|
||||
local path = wesnoth.find_path(delf, sceptre_x, sceptre_y, {ignore_units = true, viewing_side = 0}) -- # wmllint: noconvert
|
||||
_ = wesnoth.textdomain 'wesnoth-httt'
|
||||
|
||||
local dirs = { _"I sense the path to the sceptre is to the east of me.",
|
||||
_"I sense the path to the sceptre is to the south-east of me.",
|
||||
_"I sense the path to the sceptre is to the south of me.",
|
||||
_"I sense the path to the sceptre is to the south-west of me.",
|
||||
_"I sense the path to the sceptre is to the west of me.",
|
||||
_"I sense the path to the sceptre is to the north-west of me.",
|
||||
_"I sense the path to the sceptre is to the north of me.",
|
||||
_"I sense the path to the sceptre is to the north-east of me." }
|
||||
local dirs = { _"I sense the path to the Sceptre is to the east of me.",
|
||||
_"I sense the path to the Sceptre is to the south-east of me.",
|
||||
_"I sense the path to the Sceptre is to the south of me.",
|
||||
_"I sense the path to the Sceptre is to the south-west of me.",
|
||||
_"I sense the path to the Sceptre is to the west of me.",
|
||||
_"I sense the path to the Sceptre is to the north-west of me.",
|
||||
_"I sense the path to the Sceptre is to the north of me.",
|
||||
_"I sense the path to the Sceptre is to the north-east of me." }
|
||||
|
||||
local goal = { x = path[6][1], y = path[6][2] }
|
||||
|
||||
|
@ -436,7 +445,7 @@
|
|||
[chamber]
|
||||
id=player
|
||||
x=15-35
|
||||
y=68
|
||||
y=65
|
||||
size=8
|
||||
jagged=50
|
||||
[items]
|
||||
|
@ -561,11 +570,11 @@
|
|||
{PASSAGE_NORMAL mini_2 2 5 2}
|
||||
[items]
|
||||
#
|
||||
# These macros handle the placement and attainment of the scepter,
|
||||
# These macros handle the placement and attainment of the sceptre,
|
||||
# including ending the level in victory.
|
||||
# I moved them to the utils file to make the chamber WML more readable
|
||||
#
|
||||
# The scepter will always be in mini chamber 3, but the location of this
|
||||
# The sceptre will always be in mini chamber 3, but the location of this
|
||||
# particular chamber is highly variable
|
||||
#
|
||||
{PLACE_SCEPTRE}
|
||||
|
|
|
@ -167,11 +167,11 @@
|
|||
|
||||
[if]
|
||||
[variable]
|
||||
name=scepter
|
||||
name=sceptre
|
||||
equals="Konrad"
|
||||
[/variable]
|
||||
|
||||
#if Konrad got the Sceptre
|
||||
#if Konrad got the sceptre
|
||||
[then]
|
||||
[message]
|
||||
speaker="Li'sar"
|
||||
|
@ -203,7 +203,7 @@
|
|||
[/message]
|
||||
[/then]
|
||||
|
||||
#if Li'sar got the Sceptre
|
||||
#if Li'sar got the sceptre
|
||||
[else]
|
||||
[message]
|
||||
speaker="Li'sar"
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
[/objective]
|
||||
[objective]
|
||||
{BONUS_OBJECTIVE_CAPTION}
|
||||
description= _ "Defeat all Death Knights first"+{EARLY_FINISH_BONUS_FOOTNOTE}
|
||||
description= _ "Defeat all Death Knights first"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
|
@ -306,28 +306,6 @@
|
|||
name=dk_kill_count
|
||||
numerical_equals=4
|
||||
[/variable]
|
||||
[else]
|
||||
[if]
|
||||
[variable]
|
||||
name=dk_kill_count
|
||||
numerical_equals=3
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
speaker=narrator
|
||||
image="wesnoth-icon.png"
|
||||
message= _ "A final blow destroys the lich, releasing a small shock wave of energy outwards. The last of his minions silently falls like a puppet with its strings cut. A cloud of dust billows outwards as the remnants of the lich’s once-mortal body disintegrate for the last time."
|
||||
[/message]
|
||||
[/then]
|
||||
[else]
|
||||
[message]
|
||||
speaker=narrator
|
||||
image="wesnoth-icon.png"
|
||||
message= _ "A final blow destroys the lich, releasing a small shock wave of energy outwards. His minions fall like puppets with their strings cut. A cloud of dust billows out as the remnants of the lich’s once-mortal body disintegrate for the last time."
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
[/else]
|
||||
[then]
|
||||
[message]
|
||||
speaker=narrator
|
||||
|
@ -335,6 +313,26 @@
|
|||
message= _ "A final blow destroys the lich, releasing a small shock wave of energy outwards. A giant cloud of dust billows out as the remnants of the lich’s once-mortal body disintegrate for the last time."
|
||||
[/message]
|
||||
[/then]
|
||||
[elseif]
|
||||
[variable]
|
||||
name=dk_kill_count
|
||||
numerical_equals=3
|
||||
[/variable]
|
||||
[then]
|
||||
[message]
|
||||
speaker=narrator
|
||||
image="wesnoth-icon.png"
|
||||
message= _ "A final blow destroys the lich, releasing a small shock wave of energy outwards. The last of his minions silently falls like a puppet with its strings cut. A cloud of dust billows outwards as the remnants of the lich’s once-mortal body disintegrate for the last time."
|
||||
[/message]
|
||||
[/then]
|
||||
[/elseif]
|
||||
[else]
|
||||
[message]
|
||||
speaker=narrator
|
||||
image="wesnoth-icon.png"
|
||||
message= _ "A final blow destroys the lich, releasing a small shock wave of energy outwards. His minions fall like puppets with their strings cut. A cloud of dust billows out as the remnants of the lich’s once-mortal body disintegrate for the last time."
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
[message]
|
||||
speaker=Delfador
|
||||
|
@ -389,6 +387,7 @@
|
|||
{CLEAR_VARIABLE temp_armor_x}
|
||||
{CLEAR_VARIABLE temp_armor_y}
|
||||
{CLEAR_VARIABLE armor_taken}
|
||||
{CLEAR_VARIABLE armored_knight,dk_kill_count}
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=yes
|
||||
|
@ -396,3 +395,6 @@
|
|||
[/endlevel]
|
||||
[/event]
|
||||
[/scenario]
|
||||
|
||||
#undef SWAMP_DREAD_AI_PARAMS
|
||||
#undef ENDOWED_KNIGHT
|
||||
|
|
|
@ -65,12 +65,33 @@
|
|||
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
[objective]
|
||||
[show_if]
|
||||
[not]
|
||||
{CHECK_VARIABLE waterfall_sighted yes}
|
||||
[/not]
|
||||
[/show_if]
|
||||
description= _ "Make it to the end of the river"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
[show_if]
|
||||
{CHECK_VARIABLE waterfall_sighted yes}
|
||||
[/show_if]
|
||||
description= _ "Reach the cave"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
[show_if]
|
||||
{CHECK_VARIABLE sergeant_sighted yes}
|
||||
[/show_if]
|
||||
{BONUS_OBJECTIVE_CAPTION}
|
||||
description= _ "Rescue the sergeant"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Konrad"
|
||||
condition=lose
|
||||
|
@ -189,6 +210,7 @@
|
|||
id="Li'sar"
|
||||
[/recall]
|
||||
|
||||
{VARIABLE sergeant_sighted no}
|
||||
{VARIABLE waterfall_sighted no}
|
||||
{OBJ_TRIDENT_STORM 17 11 cot_stormtrident}
|
||||
{PLACE_IMAGE items/gohere.png 55 3}
|
||||
|
@ -503,6 +525,7 @@ Soooo... It is you who sent your subordinates to attack us. Now when we’ve des
|
|||
message= _ "We’ve found $random gold in the drake nest."
|
||||
image=items/gold-coins-medium.png
|
||||
[/message]
|
||||
{CLEAR_VARIABLE random}
|
||||
|
||||
# Remove the current location from the array
|
||||
[for]
|
||||
|
@ -527,6 +550,7 @@ Soooo... It is you who sent your subordinates to attack us. Now when we’ve des
|
|||
[/if]
|
||||
[/do]
|
||||
[/for]
|
||||
{CLEAR_VARIABLE i}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -607,46 +631,44 @@ Soooo... It is you who sent your subordinates to attack us. Now when we’ve des
|
|||
[/then]
|
||||
|
||||
[else]
|
||||
[if]
|
||||
[then]
|
||||
#ifdef EASY
|
||||
{VARIABLE_OP spawn_level rand "1,2"}
|
||||
{VARIABLE_OP spawn_level rand "1,2"}
|
||||
#else
|
||||
{VARIABLE_OP spawn_level rand "1,2,2,3"}
|
||||
{VARIABLE_OP spawn_level rand "1,2,2,3"}
|
||||
#endif
|
||||
|
||||
[switch]
|
||||
variable=spawn_level
|
||||
[switch]
|
||||
variable=spawn_level
|
||||
|
||||
[case]
|
||||
value=1
|
||||
[case]
|
||||
value=1
|
||||
|
||||
{VARIABLE_OP spawn_type rand "Drake Fighter,Drake Burner,Drake Glider"}
|
||||
{VARIABLE_OP spawn_type rand "Drake Fighter,Drake Burner,Drake Glider"}
|
||||
|
||||
{GENERIC_UNIT 2 $spawn_type $this_item.x $this_item.y}
|
||||
[+unit]
|
||||
ai_special=guardian
|
||||
[/unit]
|
||||
[/case]
|
||||
{GENERIC_UNIT 2 $spawn_type $this_item.x $this_item.y}
|
||||
[+unit]
|
||||
ai_special=guardian
|
||||
[/unit]
|
||||
{CLEAR_VARIABLE spawn_type}
|
||||
[/case]
|
||||
|
||||
[case]
|
||||
value=2
|
||||
[case]
|
||||
value=2
|
||||
|
||||
{VARIABLE_OP this_item.spawn_type rand "Drake Warrior,Drake Flare,Fire Drake,Sky Drake"}
|
||||
{VARIABLE_OP this_item.spawn_type rand "Drake Warrior,Drake Flare,Fire Drake,Sky Drake"}
|
||||
|
||||
{VARIABLE this_item.delayed_spawning_on_turn "$($turn_number + 1)"}
|
||||
[/case]
|
||||
{VARIABLE this_item.delayed_spawning_on_turn "$($turn_number + 1)"}
|
||||
[/case]
|
||||
|
||||
[case]
|
||||
value=3
|
||||
[case]
|
||||
value=3
|
||||
|
||||
{VARIABLE_OP this_item.spawn_type rand "Drake Blademaster,Drake Flameheart,Inferno Drake,Drake Enforcer,Drake Warden,Hurricane Drake"}
|
||||
{VARIABLE_OP this_item.spawn_type rand "Drake Blademaster,Drake Flameheart,Inferno Drake,Drake Enforcer,Drake Warden,Hurricane Drake"}
|
||||
|
||||
{VARIABLE this_item.delayed_spawning_on_turn "$($turn_number + 2)"}
|
||||
[/case]
|
||||
[/switch]
|
||||
[/then]
|
||||
[/if]
|
||||
{VARIABLE this_item.delayed_spawning_on_turn "$($turn_number + 2)"}
|
||||
[/case]
|
||||
[/switch]
|
||||
{CLEAR_VARIABLE spawn_level}
|
||||
[/else]
|
||||
[/if]
|
||||
[/then]
|
||||
|
@ -659,9 +681,16 @@ Soooo... It is you who sent your subordinates to attack us. Now when we’ve des
|
|||
name=moveto
|
||||
[filter]
|
||||
side=1
|
||||
x=40-50
|
||||
y=11-20
|
||||
[/filter]
|
||||
[filter_condition]
|
||||
[have_location]
|
||||
x,y=$x1,$y1
|
||||
[and]
|
||||
x,y=45,16
|
||||
radius=7
|
||||
[/and]
|
||||
[/have_location]
|
||||
[/filter_condition]
|
||||
[modify_side]
|
||||
side=4
|
||||
share_view=yes
|
||||
|
@ -670,21 +699,25 @@ Soooo... It is you who sent your subordinates to attack us. Now when we’ve des
|
|||
speaker=unit
|
||||
message= _ "I see someone at the top of the furthermost cliff!"
|
||||
[/message]
|
||||
[remove_shroud]
|
||||
side=1
|
||||
x=43-47
|
||||
y=14-17
|
||||
[/remove_shroud]
|
||||
[lift_fog]
|
||||
[filter_side]
|
||||
side=1
|
||||
[/filter_side]
|
||||
x,y=45,16
|
||||
radius=2
|
||||
[/lift_fog]
|
||||
[scroll_to]
|
||||
x=45
|
||||
y=16
|
||||
[/scroll_to]
|
||||
[message]
|
||||
speaker=unit
|
||||
scroll=no
|
||||
message= _ "It is a young human sergeant, barely more than a boy. He appears badly hurt but still alive."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=unit
|
||||
scroll=no
|
||||
message= _ "I wonder why the drakes haven’t finished him by now? It is strange that there are not any drakes in that area."
|
||||
[/message]
|
||||
#define SERPENT X Y
|
||||
|
@ -706,6 +739,7 @@ Soooo... It is you who sent your subordinates to attack us. Now when we’ve des
|
|||
#undef SERPENT
|
||||
[message]
|
||||
type=Water Serpent
|
||||
scroll=no
|
||||
message= _ "Grrroar" # wmllint: no spellcheck
|
||||
[/message]
|
||||
[scroll_to_unit]
|
||||
|
@ -713,6 +747,7 @@ Soooo... It is you who sent your subordinates to attack us. Now when we’ve des
|
|||
[/scroll_to_unit]
|
||||
[message]
|
||||
speaker=unit
|
||||
scroll=no
|
||||
message= _ "Well... that answers the question."
|
||||
[/message]
|
||||
[message]
|
||||
|
@ -751,41 +786,8 @@ Soooo... It is you who sent your subordinates to attack us. Now when we’ve des
|
|||
speaker=Delfador
|
||||
message= _ "Fair enough..."
|
||||
[/message]
|
||||
[objectives]
|
||||
side=1
|
||||
[objective]
|
||||
description= _ "Make it to the end of the river"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
{BONUS_OBJECTIVE_CAPTION}
|
||||
description= _ "Rescue the sergeant"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Konrad"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Delfador"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Li’sar"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Kalenz"
|
||||
condition=lose
|
||||
[/objective]
|
||||
|
||||
{TURNS_RUN_OUT}
|
||||
|
||||
[gold_carryover]
|
||||
bonus=yes
|
||||
carryover_percentage=40
|
||||
[/gold_carryover]
|
||||
[/objectives]
|
||||
{VARIABLE sergeant_sighted yes}
|
||||
[show_objectives][/show_objectives]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -838,6 +840,7 @@ Soooo... It is you who sent your subordinates to attack us. Now when we’ve des
|
|||
speaker=Konrad
|
||||
message= _ "Follow us when you think you are capable and beware of monsters. We have fought many already, and there are sure to be more ahead."
|
||||
[/message]
|
||||
{VARIABLE sergeant_sighted no}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -859,6 +862,14 @@ Soooo... It is you who sent your subordinates to attack us. Now when we’ve des
|
|||
|
||||
{WATERFALL_MASK 55 3}
|
||||
|
||||
[role]
|
||||
role=merman-advisor
|
||||
reassign=no
|
||||
search_recall_list=no
|
||||
type="Merman Triton,Merman Hoplite,Merman Javelineer,Merman Entangler,Mermaid Diviner,Mermaid Siren," +
|
||||
"Merman Warrior,Merman Spearman,Merman Netcaster,Mermaid Priestess,Mermaid Enchantress," +
|
||||
"Merman Fighter,Merman Hunter,Mermaid Initiate"
|
||||
[/role]
|
||||
[message]
|
||||
role=merman-advisor
|
||||
message= _ "Even we merfolk cannot swim that. The road east is blocked."
|
||||
|
@ -877,36 +888,7 @@ Soooo... It is you who sent your subordinates to attack us. Now when we’ve des
|
|||
message= _ "Unfortunately, we have no other options. Onward into the cave!"
|
||||
[/message]
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
[objective]
|
||||
description= _ "Reach the cave"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Konrad"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Delfador"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Li’sar"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Kalenz"
|
||||
condition=lose
|
||||
[/objective]
|
||||
|
||||
{TURNS_RUN_OUT}
|
||||
|
||||
[gold_carryover]
|
||||
bonus=yes
|
||||
carryover_percentage=40
|
||||
[/gold_carryover]
|
||||
[/objectives]
|
||||
[show_objectives][/show_objectives]
|
||||
|
||||
{PLACE_IMAGE items/gohere.png 37 1}
|
||||
[/event]
|
||||
|
@ -951,6 +933,7 @@ Soooo... It is you who sent your subordinates to attack us. Now when we’ve des
|
|||
speaker=Konrad
|
||||
message= _ "Everybody inside..."
|
||||
[/message]
|
||||
{CLEAR_VARIABLE sergeant_sighted,waterfall_sighted,drake_bases}
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=yes
|
||||
|
|
|
@ -261,11 +261,6 @@
|
|||
[event]
|
||||
name=prestart
|
||||
|
||||
#
|
||||
# Variable cleanup from last scenario
|
||||
#
|
||||
{CLEAR_VARIABLE armored_knight}
|
||||
|
||||
#
|
||||
# Add a bunch of strong guardians to discourage you from
|
||||
# attacking the leaders These are full-fledged war camps,
|
||||
|
@ -707,15 +702,43 @@
|
|||
x=75-79
|
||||
y=17-19
|
||||
[/filter]
|
||||
[message]
|
||||
speaker="El'rien"
|
||||
# wmllint: local spelling Emetria
|
||||
message= _ "Greetings, Elf-friend! Welcome to Emetria, my hold in Lintanir. You must take shelter here until the battle passes. If you stay with me here for a little while, we will all be safe."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "Thank you, Lord El’rien. The hospitality of the North Elves is as generous as that of your kin in the south! My men will help you hold out against our enemies."
|
||||
[/message]
|
||||
[if]
|
||||
[have_unit]
|
||||
id="El'rien"
|
||||
[/have_unit]
|
||||
[then]
|
||||
[message]
|
||||
speaker="El'rien"
|
||||
# wmllint: local spelling Emetria
|
||||
message= _ "Greetings, Elf-friend! Welcome to Emetria, my hold in Lintanir. You must take shelter here until the battle passes. If you stay with me here for a little while, we will all be safe."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "Thank you, Lord El’rien. The hospitality of the North Elves is as generous as that of your kin in the south! My men will help you hold out against our enemies."
|
||||
[/message]
|
||||
[/then]
|
||||
[elseif]
|
||||
[have_unit]
|
||||
side=4
|
||||
[/have_unit]
|
||||
[then]
|
||||
[message]
|
||||
side=4
|
||||
message= _ "Welcome to Emetria. You must take shelter here until the battle passes. If you stay for a while, we will all be safe."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "Thank you. The hospitality of the North Elves is as generous as that of your kin in the south! My men will help you hold out against our enemies."
|
||||
[/message]
|
||||
[/then]
|
||||
[/elseif]
|
||||
[else]
|
||||
[message]
|
||||
speaker=Konrad
|
||||
message= _ "There is nobody here! We can take shelter here, but must hold out against our enemies alone."
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
# Once you make it far enough, TELL THE PLAYER!
|
||||
|
@ -793,18 +816,50 @@
|
|||
|
||||
[event]
|
||||
name=victory
|
||||
[message]
|
||||
speaker="El'rien"
|
||||
message= _ "Elf-friends, you have made it to safety!"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kalenz
|
||||
message= _ "El’rien, we have the Sceptre of Fire with us! We must escort them to Elensiria!"
|
||||
[/message]
|
||||
[message]
|
||||
speaker="El'rien"
|
||||
message= _ "Indeed. We will escort you to our capital, where we will make Council."
|
||||
[/message]
|
||||
[if]
|
||||
[have_unit]
|
||||
id="El'rien"
|
||||
[/have_unit]
|
||||
[then]
|
||||
[message]
|
||||
speaker="El'rien"
|
||||
message= _ "Elf-friends, you have made it to safety!"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kalenz
|
||||
message= _ "El’rien, we have the Sceptre of Fire with us! We must escort them to Elensiria!"
|
||||
[/message]
|
||||
[message]
|
||||
speaker="El'rien"
|
||||
message= _ "Indeed. We will escort you to our capital, where we will make Council."
|
||||
[/message]
|
||||
[/then]
|
||||
[elseif]
|
||||
[have_unit]
|
||||
side=4
|
||||
[/have_unit]
|
||||
[then]
|
||||
[message]
|
||||
speaker=Kalenz
|
||||
message= _ "Where is your leader? Where is El’rien?"
|
||||
[/message]
|
||||
[message]
|
||||
side=4
|
||||
message= _ "Alas, he has fallen just this day! We were told of your coming, Lord Kalenz. Council has already been called. You must hurry, but we cannot afford the men to escort you."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Kalenz
|
||||
message= _ "This is grave news. We will carry word to Elensiria. Hold fast! We will send reinforcements."
|
||||
[/message]
|
||||
[/then]
|
||||
[/elseif]
|
||||
[else]
|
||||
[message]
|
||||
speaker=Kalenz
|
||||
message= _ "Where is El’rien? Where are his men? Things are moving quicker than we feared. Hurry, we must reach Elensiria."
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
{campaigns/Heir_To_The_Throne/utils/deaths.cfg}
|
||||
|
|
|
@ -153,22 +153,15 @@
|
|||
[ai]
|
||||
{ATTACK_DEPTH 6 5 4}
|
||||
[avoid]
|
||||
x=1-41,42-50
|
||||
y=1-35,7-35
|
||||
[not]
|
||||
x=41,42,43-44,45-46,47-48,49-50
|
||||
y=3,2,1-3,1-4,1-5,1-6
|
||||
[/not]
|
||||
[/avoid]
|
||||
[/ai]
|
||||
{FLAG_VARIANT wood-elvish}
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
side=6
|
||||
no_leader=yes
|
||||
controller=ai
|
||||
canrecruit=no
|
||||
team_name=elves
|
||||
user_team_name=_"Rebels"
|
||||
[/side]
|
||||
|
||||
[event]
|
||||
name=start
|
||||
[recall]
|
||||
|
@ -190,15 +183,84 @@
|
|||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x=43-50
|
||||
y=1-5
|
||||
x=41,42,43-44,45-46,47-48,49-50
|
||||
y=3,2,1-3,1-4,1-5,1-6
|
||||
id=Konrad
|
||||
[/filter]
|
||||
|
||||
[message]
|
||||
speaker=Bona-Melodia
|
||||
message= _ "Get that vile creature!"
|
||||
[/message]
|
||||
[if]
|
||||
[have_unit]
|
||||
id=Bona-Melodia
|
||||
[/have_unit]
|
||||
[then]
|
||||
[message]
|
||||
speaker=Bona-Melodia
|
||||
message= _ "Get that vile creature!"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Kalenz
|
||||
message= _ "Hold!"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Bona-Melodia
|
||||
message= _ "Milord Kalenz! My apologies. I mistook him for one of those foul lizardmen. How came you to be traveling such paths?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Kalenz
|
||||
message= _ "Change is coming to the human lands. We rush to Elensiria seeking assistance, and the perils of the Longlier presented the quickest route."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Bona-Melodia
|
||||
message= _ "Uradredia has already called a meeting of the Council of Lintanir. You must hurry, for they gather even now."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Kalenz
|
||||
message= _ "Then there is little time! Fare well."
|
||||
[/message]
|
||||
[/then]
|
||||
[elseif]
|
||||
[have_unit]
|
||||
side=5
|
||||
[/have_unit]
|
||||
[then]
|
||||
[message]
|
||||
speaker=Kalenz
|
||||
message= _ "What is this? Where is your leader?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
side=5
|
||||
message= _ "We were beset by many foul lizardmen. Alas, Bona-Melodia has fallen."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Kalenz
|
||||
message= _ "This bodes ill for Lintanir. We rush to Elensiria on other matters but will carry word of what has transpired here."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
side=5
|
||||
message= _ "Lord Uradredia has called a meeting of the Council of Lintanir. Rumor is there are greater needs than ours."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Kalenz
|
||||
message= _ "Then we must hurry. Stand fast, we will send reinforcements."
|
||||
[/message]
|
||||
[/then]
|
||||
[/elseif]
|
||||
[else]
|
||||
[message]
|
||||
speaker=Kalenz
|
||||
message= _ "What is this? Where are the guardians? I see signs of battle everywhere: Saurian footprints, Elvish blood. This bodes ill for Lintanir. We must hurry onward to Elensiria. Quickly, before we, too, are beset."
|
||||
[/message]
|
||||
[/else]
|
||||
[/if]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
|
|
|
@ -172,7 +172,7 @@
|
|||
[/message]
|
||||
[if]
|
||||
[variable]
|
||||
name=scepter
|
||||
name=sceptre
|
||||
equals="Konrad"
|
||||
[/variable]
|
||||
[then]
|
||||
|
@ -305,6 +305,7 @@
|
|||
speaker=Parandra
|
||||
message= _ "Yes, rest. Your soldiers will be tended to and refreshed. We have made sure you will leave our protection with the resources to finish your journey."
|
||||
[/message]
|
||||
{CLEAR_VARIABLE sceptre}
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=no
|
||||
|
|
|
@ -197,6 +197,11 @@
|
|||
[filter]
|
||||
id=Josephus
|
||||
[/filter]
|
||||
[filter_condition]
|
||||
[have_unit]
|
||||
id=Malatus
|
||||
[/have_unit]
|
||||
[/filter_condition]
|
||||
[message]
|
||||
speaker=Malatus
|
||||
message= _ "These intruders are stronger than we expected. Call in the reinforcements!"
|
||||
|
@ -217,6 +222,36 @@
|
|||
[/message]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=die
|
||||
[filter]
|
||||
id=Malatus
|
||||
[/filter]
|
||||
[filter_condition]
|
||||
[have_unit]
|
||||
id=Josephus
|
||||
[/have_unit]
|
||||
[/filter_condition]
|
||||
[message]
|
||||
speaker=Josephus
|
||||
message= _ "These intruders are stronger than we expected. Call in the reinforcements!"
|
||||
[/message]
|
||||
|
||||
{NAMED_LOYAL_UNIT 4 (Halberdier) 33 37 (Dacayan) ( _ "Dacayan")}
|
||||
{LOYAL_UNIT 4 (Halberdier) 32 37}
|
||||
{LOYAL_UNIT 4 (Halberdier) 34 37}
|
||||
|
||||
#a little attempt at comic relief
|
||||
[message]
|
||||
speaker=Dacayan
|
||||
message= _ "The Queen has sent us to aid you in capturing these rebels."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Josephus
|
||||
message= _ "We have changed the plan. Now we are killing them."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=turn 18
|
||||
[message]
|
||||
|
|
|
@ -524,3 +524,5 @@
|
|||
|
||||
{campaigns/Heir_To_The_Throne/utils/deaths.cfg}
|
||||
[/scenario]
|
||||
|
||||
#undef BONUS_VICTORY
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
{EXTRA_SCENARIO_MUSIC "suspense.ogg"}
|
||||
{EXTRA_SCENARIO_MUSIC "the_city_falls.ogg"}
|
||||
|
||||
{HTTT_TRACK {JOURNEY_24_NEW} }
|
||||
|
||||
[event]
|
||||
name=prestart
|
||||
[objectives]
|
||||
|
@ -212,6 +214,7 @@
|
|||
{NAMED_LOYAL_UNIT 1 (Grand Knight) 39 8 (Sir Alric) (_ "Sir Alric")}
|
||||
[/then]
|
||||
[/if]
|
||||
{CLEAR_VARIABLE clan_alric,clan_bayar,clan_daryn,clan_ruga}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
@ -248,7 +251,7 @@
|
|||
[/message]
|
||||
[message]
|
||||
speaker=Delfador
|
||||
message= _ "How long must the people endure your rule? Give the throne to your daughter. She is the rightful heir. We even hold the scepter to prove it!"
|
||||
message= _ "How long must the people endure your rule? Give the throne to your daughter. She is the rightful heir. We even hold the Sceptre to prove it!"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=Asheviere
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
# - if you examine a certain area of wall in Plunging Into the Darkness, you open a cave that releases a Giant Spider -- and a chest full of gold
|
||||
# - if you bring a merman to a section of deep water in The Lost General, you can rescue a trapped dwarf
|
||||
# - if you keep your ally leader alive in The Lost General, he allows you to recruit Dwarvish Guardsmen
|
||||
# - if you develop a merman up to L3 and then bring a mer to the start of the River Longlier, you will unlock a bonus scenario > not finished yet
|
||||
# - if you bring a merman to the start of the River Longlier, you will unlock a series of two bonus scenarios
|
||||
# - if you visit the Elvish great tree living on the Plains of Snow, you are given a magical flaming sword
|
||||
# - if you kill one of the Death Knights in the Swamp of Dread, it will drop a strong piece of armor
|
||||
# - if you kill all 4 of the Death Knights in the Swamp of Dread, it severely weakens the Lich, dropping its HP by half
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
[/attack_anim]
|
||||
{WEAPON_SPECIAL_INITIATIVE_EVENTS}
|
||||
[variation]
|
||||
variation_id=scepter
|
||||
variation_id=sceptre
|
||||
hide_help=yes
|
||||
id=Battle Princess
|
||||
name= _ "female^Battle Princess"
|
||||
|
@ -90,7 +90,7 @@
|
|||
number=4
|
||||
[/attack]
|
||||
[attack]
|
||||
name=scepter of fire
|
||||
name=sceptre of fire
|
||||
#the sceptre of fire always has the 're' writing, this is intentional!
|
||||
description= _"sceptre of fire"
|
||||
type=fire
|
||||
|
@ -104,7 +104,7 @@
|
|||
[/attack]
|
||||
[attack_anim]
|
||||
[filter_attack]
|
||||
name=scepter of fire
|
||||
name=sceptre of fire
|
||||
[/filter_attack]
|
||||
{MISSILE_FRAME_FIREBALL_XY 22 -22}
|
||||
|
||||
|
|
|
@ -94,13 +94,13 @@
|
|||
|
||||
[variation]
|
||||
{HTTT_COMMANDER -scepter}
|
||||
variation_id=scepter
|
||||
variation_id=sceptre
|
||||
hide_help=yes
|
||||
cost=60
|
||||
{LEADING_ANIM "units/konrad-commander-scepter-leading.png" "units/konrad-commander-scepter.png" 17,-22}
|
||||
description= _ "The rank of Commander is held by those who lead battle groups into combat. Possessing leadership skills, they give lower-level units in adjacent hexes improved performance in combat. Commanders are best skilled with the sword, although they also carry a bow to use when necessary. If the Commander is lost, so is the battle."+{SPECIAL_NOTES}+{SPECIAL_NOTES_LEADERSHIP}+{SPECIAL_NOTES_MAGICAL}
|
||||
[attack]
|
||||
name=scepter of fire
|
||||
name=sceptre of fire
|
||||
#the sceptre of fire always has the 're' writing, this is intentional!
|
||||
description= _"sceptre of fire"
|
||||
type=fire
|
||||
|
@ -114,7 +114,7 @@
|
|||
[/attack]
|
||||
{DEFENSE_ANIM_FILTERED "units/konrad-commander-scepter-defend.png" "units/konrad-commander-scepter.png" {SOUND_LIST:HUMAN_HIT} (
|
||||
[filter_second_attack]
|
||||
name=scepter of fire
|
||||
name=sceptre of fire
|
||||
[/filter_second_attack]
|
||||
)}
|
||||
{DEFENSE_ANIM_FILTERED "units/konrad-commander-bow-defend.png" "units/konrad-commander-bow.png" {SOUND_LIST:HUMAN_HIT} (
|
||||
|
@ -124,7 +124,7 @@
|
|||
)}
|
||||
[attack_anim]
|
||||
[filter_attack]
|
||||
name=scepter of fire
|
||||
name=sceptre of fire
|
||||
[/filter_attack]
|
||||
{MISSILE_FRAME_FIREBALL_XY 16 -24}
|
||||
start_time=-300
|
||||
|
|
|
@ -51,12 +51,12 @@
|
|||
description= _ "Young and brash, Fighters attack with a sword, and are vulnerable to more seasoned enemies. However they have the potential to become great warriors one day."
|
||||
[variation]
|
||||
{HTTT_FIGHTER}
|
||||
variation_id=scepter
|
||||
variation_id=sceptre
|
||||
hide_help=yes
|
||||
cost=38
|
||||
description= _ "Young and brash, Fighters attack with a sword, and are vulnerable to more seasoned enemies. However they have the potential to become great warriors one day."+{SPECIAL_NOTES}+{SPECIAL_NOTES_MAGICAL}
|
||||
[attack]
|
||||
name=scepter of fire
|
||||
name=sceptre of fire
|
||||
#the sceptre of fire always has the 're' writing, this is intentional!
|
||||
description= _"sceptre of fire"
|
||||
type=fire
|
||||
|
@ -70,7 +70,7 @@
|
|||
[/attack]
|
||||
[attack_anim]
|
||||
[filter_attack]
|
||||
name=scepter of fire
|
||||
name=sceptre of fire
|
||||
[/filter_attack]
|
||||
{MISSILE_FRAME_FIREBALL_XY 0 0}
|
||||
sound_start_time=-300
|
||||
|
|
|
@ -107,14 +107,14 @@
|
|||
{DEFENSE_ANIM_RANGE "units/konrad-lord-bow-defend.png" "units/konrad-lord-bow.png" {SOUND_LIST:HUMAN_HIT} ranged}
|
||||
[variation]
|
||||
{HTTT_LORD -scepter}
|
||||
variation_id=scepter
|
||||
variation_id=sceptre
|
||||
hide_help=yes
|
||||
cost=85
|
||||
{LEADING_ANIM "units/konrad-lord-scepter-leading.png" "units/konrad-lord-scepter.png" -16,-21}
|
||||
description= _ "The noble leaders of many troops, Lords are especially strong in melee combat, and also possess skill with the bow. Like Commanders, Lords possess leadership skills, and improve the fighting ability of all adjacent lower-level units."+{SPECIAL_NOTES}+{SPECIAL_NOTES_LEADERSHIP}+{SPECIAL_NOTES_MAGICAL}
|
||||
{DEFENSE_ANIM_FILTERED "units/konrad-lord-scepter-defend.png" "units/konrad-lord-scepter.png" {SOUND_LIST:HUMAN_HIT} (
|
||||
[filter_second_attack]
|
||||
name=scepter of fire
|
||||
name=sceptre of fire
|
||||
[/filter_second_attack]
|
||||
)}
|
||||
{DEFENSE_ANIM_FILTERED "units/konrad-lord-bow-defend.png" "units/konrad-lord-bow.png" {SOUND_LIST:HUMAN_HIT} (
|
||||
|
@ -123,7 +123,7 @@
|
|||
[/filter_second_attack]
|
||||
)}
|
||||
[attack]
|
||||
name=scepter of fire
|
||||
name=sceptre of fire
|
||||
#the sceptre of fire always has the 're' writing, this is intentional!
|
||||
description= _"sceptre of fire"
|
||||
type=fire
|
||||
|
@ -137,7 +137,7 @@
|
|||
[/attack]
|
||||
[attack_anim]
|
||||
[filter_attack]
|
||||
name=scepter of fire
|
||||
name=sceptre of fire
|
||||
[/filter_attack]
|
||||
{MISSILE_FRAME_FIREBALL_XY -16 -21}
|
||||
start_time=-300
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
[/attack_anim]
|
||||
{WEAPON_SPECIAL_INITIATIVE_EVENTS}
|
||||
[variation]
|
||||
variation_id=scepter
|
||||
variation_id=sceptre
|
||||
hide_help=yes
|
||||
id=Princess
|
||||
name= _ "female^Princess"
|
||||
|
@ -88,7 +88,7 @@
|
|||
number=4
|
||||
[/attack]
|
||||
[attack]
|
||||
name=scepter of fire
|
||||
name=sceptre of fire
|
||||
#the sceptre of fire always has the 're' writing, this is intentional!
|
||||
description= _"sceptre of fire"
|
||||
type=fire
|
||||
|
@ -102,7 +102,7 @@
|
|||
[/attack]
|
||||
[attack_anim]
|
||||
[filter_attack]
|
||||
name=scepter of fire
|
||||
name=sceptre of fire
|
||||
[/filter_attack]
|
||||
{MISSILE_FRAME_FIREBALL_XY -15 -20}
|
||||
|
||||
|
|
|
@ -58,6 +58,10 @@
|
|||
|
||||
{PLACE_IMAGE items/flame-sword.png ({X}) ({Y})}
|
||||
{VARIABLE sword_taken 0}
|
||||
[event]
|
||||
name=victory
|
||||
{CLEAR_VARIABLE sword_taken}
|
||||
[/event]
|
||||
[/event]
|
||||
[event]
|
||||
name=moveto
|
||||
|
@ -300,7 +304,7 @@ fire: +10%"
|
|||
|
||||
[event]
|
||||
same_location_as_previous=yes
|
||||
store_location_as=scepter
|
||||
store_location_as=sceptre
|
||||
name=moveto
|
||||
first_time_only=no
|
||||
[filter]
|
||||
|
@ -309,7 +313,7 @@ fire: +10%"
|
|||
y=32
|
||||
[/filter]
|
||||
[object]
|
||||
id=object_scepter
|
||||
id=object_sceptre
|
||||
name= _ "Sceptre of Fire"
|
||||
image=items/sceptre-of-fire.png
|
||||
duration=forever
|
||||
|
@ -320,7 +324,7 @@ fire: +10%"
|
|||
[/filter]
|
||||
[effect]
|
||||
apply_to=variation
|
||||
name=scepter
|
||||
name=sceptre
|
||||
[/effect]
|
||||
[/object]
|
||||
[/event]
|
||||
|
@ -334,7 +338,7 @@ fire: +10%"
|
|||
id=Konrad
|
||||
[/filter]
|
||||
[set_variable]
|
||||
name=scepter
|
||||
name=sceptre
|
||||
value="Konrad"
|
||||
[/set_variable]
|
||||
|
||||
|
@ -368,7 +372,7 @@ fire: +10%"
|
|||
id="Li'sar"
|
||||
[/filter]
|
||||
[set_variable]
|
||||
name=scepter
|
||||
name=sceptre
|
||||
value="Li'sar"
|
||||
[/set_variable]
|
||||
|
||||
|
@ -439,13 +443,14 @@ fire: +10%"
|
|||
{VARIABLE_OP max_x add 1}
|
||||
{VARIABLE max_y $side_store.y}
|
||||
{VARIABLE_OP max_y add 1}
|
||||
{VARIABLE x_range ("$min_x|-|$max_x")}
|
||||
{VARIABLE y_range ("$min_y|-|$max_y")}
|
||||
{VARIABLE x_range ("$min_x|-$max_x")}
|
||||
{VARIABLE y_range ("$min_y|-$max_y")}
|
||||
[terrain]
|
||||
x=$x_range
|
||||
y=$y_range
|
||||
terrain={TERRAIN}
|
||||
[/terrain]
|
||||
{CLEAR_VARIABLE side_store,min_x,min_y,max_x,max_y,x_range,y_range}
|
||||
#enddef
|
||||
|
||||
#textdomain wesnoth-help
|
||||
|
@ -478,9 +483,9 @@ fire: +10%"
|
|||
[/filter_adjacent_location]
|
||||
[/filter_adjacent_location]
|
||||
[not]
|
||||
# don't start near the cave floor around the scepter
|
||||
x=$scepter_x
|
||||
y=$scepter_y
|
||||
# don't start near the cave floor around the sceptre
|
||||
x=$sceptre_x
|
||||
y=$sceptre_y
|
||||
radius=5
|
||||
[/not]
|
||||
[not]
|
||||
|
@ -503,15 +508,16 @@ fire: +10%"
|
|||
{CLEAR_VARIABLE lava_body}
|
||||
{VARIABLE lava_body.x $potential_locs[$random].x}
|
||||
{VARIABLE lava_body.y $potential_locs[$random].y}
|
||||
{CLEAR_VARIABLE random}
|
||||
[terrain]
|
||||
x=$lava_body.x
|
||||
y=$lava_body.y
|
||||
terrain=Ql
|
||||
[/terrain]
|
||||
{CLEAR_VARIABLE potential_locs}
|
||||
{CLEAR_VARIABLE randrange}
|
||||
[/then]
|
||||
[/if]
|
||||
{CLEAR_VARIABLE potential_locs}
|
||||
#enddef
|
||||
|
||||
#define EXPAND_LAVA
|
||||
|
@ -555,8 +561,8 @@ fire: +10%"
|
|||
radius=1
|
||||
[/not]
|
||||
[not]
|
||||
# don't go anywhere near the cave floor around the scepter
|
||||
x,y=$scepter_x,$scepter_y
|
||||
# don't go anywhere near the cave floor around the sceptre
|
||||
x,y=$sceptre_x,$sceptre_y
|
||||
radius=4
|
||||
[filter_radius]
|
||||
terrain=U*,Re
|
||||
|
@ -644,28 +650,3 @@ fire: +10%"
|
|||
equals={VALUE}
|
||||
[/variable]
|
||||
#enddef
|
||||
|
||||
#define UNDEAD_GUARDIAN TYPE X Y
|
||||
[unit]
|
||||
side=3
|
||||
type={TYPE}
|
||||
x={X}
|
||||
y={Y}
|
||||
[object]
|
||||
silent=yes
|
||||
[filter]
|
||||
side=3
|
||||
[/filter]
|
||||
[effect]
|
||||
apply_to=movement_costs
|
||||
replace=true
|
||||
[movement_costs]
|
||||
swamp_water={UNREACHABLE}
|
||||
deep_water={UNREACHABLE}
|
||||
shallow_water={UNREACHABLE}
|
||||
forest={UNREACHABLE}
|
||||
[/movement_costs]
|
||||
[/effect]
|
||||
[/object]
|
||||
[/unit]
|
||||
#enddef
|
||||
|
|
Loading…
Add table
Reference in a new issue