diff --git a/data/campaigns/The_South_Guard/scenarios/09a_Vengeance.cfg b/data/campaigns/The_South_Guard/scenarios/09a_Vengeance.cfg index f992f6375cf9..9fb7134e776c 100644 --- a/data/campaigns/The_South_Guard/scenarios/09a_Vengeance.cfg +++ b/data/campaigns/The_South_Guard/scenarios/09a_Vengeance.cfg @@ -6,7 +6,6 @@ next_scenario=10a_Elf_Epilogue {SCENARIO_MUSIC nunc_dimittis.ogg} - {EXTRA_SCENARIO_MUSIC suspense.ogg} map_data="{campaigns/The_South_Guard/maps/09a_Vengeance.map}" @@ -16,7 +15,7 @@ {DEFAULT_SCHEDULE_MORNING} - turns=unlimited + {TURNS 10 12 14} victory_when_enemies_defeated=no {TSG_BIGMAP {JOURNEY_09A_NEW} } @@ -36,7 +35,7 @@ controller=human {CUSTOM_SG_FLAG} - {GOLD 125 100 80} + {GOLD 175 150 125} {INCOME 4 2 0} fog=no @@ -44,13 +43,43 @@ canrecruit=yes recruit=Bowman, Spearman, Cavalryman +#ifdef EASY + {NAMED_GENERIC_UNIT 1 (Javelineer) 14 13 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 14 14 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 15 12 () (_"Westin Guard")} + + {NAMED_GENERIC_UNIT 1 (Spearman) 21 14 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Spearman) 19 10 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Longbowman) 19 12 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Shock Trooper) 19 11 () (_"Westin Guard")} + + {NAMED_GENERIC_UNIT 1 (Spearman) 21 9 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Lieutenant) 20 11 () (_"Westin Guard")} +#endif +#ifdef NORMAL + {NAMED_GENERIC_UNIT 1 (Javelineer) 14 13 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 14 14 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 15 12 () (_"Westin Guard")} + + {NAMED_GENERIC_UNIT 1 (Spearman) 21 14 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Spearman) 19 10 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Bowman) 19 12 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 19 11 () (_"Westin Guard")} + + {NAMED_GENERIC_UNIT 1 (Spearman) 21 9 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Lieutenant) 20 11 () (_"Westin Guard")} +#endif +#ifdef HARD + {NAMED_GENERIC_UNIT 1 (Javelineer) 14 13 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Spearman) 14 14 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 15 12 () (_"Westin Guard")} + + {NAMED_GENERIC_UNIT 1 (Spearman) 21 14 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Spearman) 19 10 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Bowman) 19 12 () (_"Westin Guard")} + {NAMED_GENERIC_UNIT 1 (Lieutenant) 19 11 () (_"Westin Guard")} +#endif - {NAMED_GENERIC_UNIT 1 (Javelineer) 22 12 () (_"Westin Guard")} {GUARDIAN} - {NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 19 14 () (_"Westin Guard")} {GUARDIAN} - {NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 17 15 () (_"Westin Guard")} {GUARDIAN} - {NAMED_GENERIC_UNIT 1 (Heavy Infantryman) 17 17 () (_"Westin Guard")} {GUARDIAN} - {NAMED_GENERIC_UNIT 1 (Spearman) 16 19 () (_"Westin Guard")} {GUARDIAN} - {NAMED_GENERIC_UNIT 1 (Spearman) 15 21 () (_"Westin Guard")} {GUARDIAN} [/side] {STARTING_VILLAGES 1 15} @@ -59,16 +88,20 @@ [side] side=2 - type=Elvish Marshal - id=Ithelden - name= _ "Ithelden" + type=Elvish Avenger + id=Eltenmir + name= _ "Eltenmir" team_name=The_Enraged Elves user_team_name=_"Enraged Elves" controller=ai - {GOLD 125 100 80} - {INCOME 4 2 0} + [status] + uncovered=yes + [/status] + + gold=0 + income=0 canrecruit=no [ai] @@ -115,13 +148,9 @@ id=Minister Hylas [/recall] - [message] - speaker=Sir Gerrick - message= _ "Deoran, you have returned! I took your message to the council, and we have begun to fortify the villages and borders against any attacks from the bandits or undead. How did you fare against the lich?" - [/message] [message] speaker=Deoran - message= _ "We have defeated him. Perhaps now there will be peace in Westin. You have our thanks, Lady Ethiliel. We could not have accomplished this feat without you." + message= _ "Finally, we have returned home! The undead and bandits are both defeated and it seems that the townsfolk have already begun to rebuild. Perhaps now there will be peace in Westin. You have our thanks, Lady Ethiliel. We could not have accomplished this feat without you." [/message] [message] speaker=Ethiliel @@ -134,7 +163,7 @@ [/message] [scroll_to_unit] - id=Ithelden + id=Eltenmir [/scroll_to_unit] [message] @@ -145,27 +174,31 @@ [move_unit_fake] type=Peasant side=1 - x= 1, 2, 2, 2, 3, 4 - y=11,11,12,13,14, 14 + x=11,12,13,14,15,16 + y=9,8,9,8,9,8 [/move_unit_fake] [unit] type=Peasant id=Poor Farmer name= _ "Poor Farmer" side=1 - x=4 - y=14 + x=16 + y=8 [/unit] + [move_unit] + id=Eltenmir + to_x,to_y=15,9 + [/move_unit] [message] - speaker=Ithelden - message= _ "You will pay for the death of Mebrin!" + speaker=Eltenmir + message= _ "You will pay for Mebrin's death!" [/message] [message] speaker=Poor Farmer message= _ "I am just a farmer! I never killed anyone!" [/message] [message] - speaker=Ithelden + speaker=Eltenmir message= _ "You lie! All humans are the same! Your people kidnapped and murdered our wisest sage! Now you will pay!" [/message] [color_adjust] @@ -173,87 +206,128 @@ green=0 blue=0 [/color_adjust] - [sound] - name=human-die-1.ogg - [/sound] + [delay] + time=250 + [/delay] + [kill] + id=Poor Farmer + fire_event=no + animate=yes + [/kill] [color_adjust] red=0 green=0 blue=0 [/color_adjust] - [kill] - id=Poor Farmer - fire_event=no - [/kill] [message] speaker=Sir Gerrick message= _ "He just killed that innocent farmer! We must stop him!" [/message] [message] speaker=Ethiliel - message= _ "Stop, Ithelden! These humans are not the ones who harmed Mebrin. They have helped me obtain vengeance on the ones responsible for the horrible deed and have thus absolved themselves of any wrongdoing. No more innocent blood needs to be shed." + message= _ "Stop, Eltenmir! These humans are not the ones who harmed Mebrin. They have helped me obtain vengeance on the ones responsible for the horrible deed and have thus absolved themselves of any wrongdoing. No more innocent blood needs to be shed." [/message] [message] - speaker=Ithelden + speaker=Eltenmir message= _ "I can hardly believe my ears. You have always been too soft, Ethiliel, but to side with the humans? All humans are scum and vermin! Just as they have felled our trees in the past, they have destroyed our homes, murdered our people, and killed Mebrin!" [/message] [message] speaker=Ethiliel - message= _ "Mebrin was my master, Ithelden! It is I who grieves the most! I have spent countless, sleepless nights thinking about his death and missing him so dearly that my heart never ceases to ache. You know how I must feel about losing one that I cherished so. Still... still, even I recognize that these humans are not the ones to blame." + message= _ "Mebrin was my master, Eltenmir! It is I who grieves the most! I have spent countless, sleepless nights thinking about his death and missing him so dearly that my heart never ceases to ache. You know how I must feel about losing one that I cherished so. Still... still, even I recognize that these humans are not the ones to blame." [/message] [message] - speaker=Ithelden + speaker=Eltenmir message= _ "It matters not. The humans have spilled the blood of our people, and so theirs will be spilled in turn. If you stand against us, Ethiliel, we will attack you too. You had best stay out of this." [/message] + [message] + speaker=Ethiliel + message= _ "And what do you think Ithelden will have to say about that?" + [/message] - [music] - name=the_dangerous_symphony.ogg - immediate=yes - append=no - [/music] - [music] - name=the_city_falls.ogg - append=yes - [/music] - [music] - name=vengeful.ogg - append=yes - [/music] - - {NAMED_LOYAL_UNIT 2 (Elvish Fighter) 3 17 () (_"Disciple of Mebrin")} - {NAMED_LOYAL_UNIT 2 (Elvish Fighter) 7 15 () (_"Disciple of Mebrin")} - {NAMED_LOYAL_UNIT 2 (Elvish Druid) 6 19 () (_"Disciple of Mebrin")} - {NAMED_LOYAL_UNIT 2 (Elvish Ranger) 8 15 () (_"Disciple of Mebrin")} - {NAMED_LOYAL_UNIT 2 (Elvish Druid) 4 22 () (_"Disciple of Mebrin")} - {NAMED_LOYAL_UNIT 2 (Elvish Hero) 6 23 () (_"Disciple of Mebrin")} - {NAMED_LOYAL_UNIT 2 (Elvish Rider) 11 13 () (_"Disciple of Mebrin")} + [delay] + time=1000 + [/delay] [kill] - id=Ithelden + id=Eltenmir animate=no fire_event=no [/kill] [message] speaker=Ethiliel - message= _ "Ever the stubborn one. Deoran, we will not be able to fight them for very long. I need to go reason with Ithelden, but you need to protect me until I can reach him. Do you think you can do that?" + message= _ "Eltenmir, answer me! You know you do not have the authority to be attacking the humans like this, much less me! Eltenmir!" + [/message] + [message] + speaker=Ethiliel + message= _ "..." + [/message] + [message] + speaker=Ethiliel + message= _ "Ever the stubborn one. Deoran, we will not be able to fight them for very long. I will send a messenger to Ithelden and hope he gets here in time before the city is overrun." [/message] [message] speaker=Deoran - message= _ "I will do my very best, but are you sure that he will greet you any more kindly than he has met us? He just threatened to kill you." + message= _ "Are you sure that they'll listen to Ithelden? Or that he'll even try to stop them?" [/message] [message] speaker=Ethiliel - message= _ "Perhaps not, but I am your only hope. Protect me until I reach Ithelden!" + message= _ "Perhaps not, but we have no other hope right now. We must survive until Ithelden arrives!" [/message] - {SET_LABEL 6 15 _"Ithelden’s base"} - {HIGHLIGHT_IMAGE 6 15 items/gohere.png ()} + [move_unit_fake] + type=Elvish Scout + side=1 + x=22,21,20,19,18,17,16,15,14,13,12,11,10,9 + y=8 ,8 ,8 ,8 ,8 ,8 ,8 ,8 ,8 ,8 ,7 ,7 ,6 ,6 + [/move_unit_fake] + + [music] + name=the_city_falls.ogg + immediate=yes + append=no + [/music] + [music] + name=weight_of_revenge.ogg + append=yes + [/music] + [music] + name=vengeful.ogg + append=yes + [/music] + +#ifdef EASY + {LOYAL_UNIT 2 (Elvish Fighter) 7 12} + {LOYAL_UNIT 2 (Elvish Archer) 8 9} + {LOYAL_UNIT 2 (Elvish Ranger) 6 8} + {LOYAL_UNIT 2 (Elvish Shaman) 4 7} + {LOYAL_UNIT 2 (Elvish Hero) 9 9} + {LOYAL_UNIT 2 (Elvish Scout) 2 8} +#endif +#ifdef MEDIUM + {LOYAL_UNIT 2 (Elvish Fighter) 9 8} + {LOYAL_UNIT 2 (Elvish Captain) 7 12} + {LOYAL_UNIT 2 (Elvish Archer) 8 9} + {LOYAL_UNIT 2 (Elvish Ranger) 6 8} + {LOYAL_UNIT 2 (Elvish Druid) 4 7} + {LOYAL_UNIT 2 (Elvish Hero) 9 9} + {LOYAL_UNIT 2 (Elvish Rider) 2 8} +#endif +#ifdef HARD + {LOYAL_UNIT 2 (Elvish Fighter) 11 11} + {LOYAL_UNIT 2 (Elvish Fighter) 9 8} + {LOYAL_UNIT 2 (Elvish Captain) 7 12} + {LOYAL_UNIT 2 (Elvish Druid) 3 11} + {LOYAL_UNIT 2 (Elvish Marksman) 8 9} + {LOYAL_UNIT 2 (Elvish Ranger) 6 8} + {LOYAL_UNIT 2 (Elvish Hero) 9 9} + {LOYAL_UNIT 2 (Elvish Rider) 2 8} +#endif [objectives] side=1 [objective] - description= _ "Send Ethiliel to the Great Tree and parley with Ithelden" + description= _ "Survive until end of turns" condition=win [/objective] [objective] @@ -266,7 +340,6 @@ [/objective] {IS_LAST_SCENARIO} - {HAS_NO_TURN_LIMIT} [/objectives] [/event] @@ -277,102 +350,147 @@ [/filter] first_time_only=no +#ifdef EASY + [set_variable] + name=how_many_elves + rand=1..18 + [/set_variable] +#endif +#ifdef NORMAL [set_variable] name=how_many_elves - rand=1..6 + rand=1..21 [/set_variable] +#endif +#ifdef HARD + [set_variable] + name=how_many_elves + rand=1..24 + [/set_variable] +#endif [repeat] - times=$how_many_elves + times=$(max((round($how_many_elves/10)),1)) [do] +#ifdef EASY + [set_variable] + name=unit_type + rand=Elvish Fighter,Elvish Archer,Elvish Ranger,Elvish Shaman,Elvish Druid,Elvish Hero,Elvish Marksman,Elvish Rider,Elvish Fighter,Elvish Archer,Elvish Shaman,Elvish Fighter,Elvish Archer,Elvish Shaman,Elvish Fighter,Elvish Archer,Elvish Shaman + [/set_variable] +#endif +#ifdef NORMAL + [set_variable] + name=unit_type + rand=Elvish Fighter,Elvish Archer,Elvish Ranger,Elvish Shaman,Elvish Druid,Elvish Hero,Elvish Marksman,Elvish Rider,Elvish Fighter,Elvish Archer,Elvish Shaman,Elvish Fighter,Elvish Archer,Elvish Shaman + [/set_variable] +#endif +#ifdef HARD [set_variable] name=unit_type rand=Elvish Fighter,Elvish Archer,Elvish Ranger,Elvish Shaman,Elvish Druid,Elvish Hero,Elvish Marksman,Elvish Rider,Elvish Fighter,Elvish Archer,Elvish Shaman [/set_variable] - [unit] - type=$unit_type - name= _ "Disciple of Mebrin" - side=2 - x,y=1,12 - to_variable=new_elf - [/unit] - [if] - [variable] - name=new_elf.gender - equals=female - [/variable] - [then] - {VARIABLE new_elf.name _"female^Disciple of Mebrin"} - [/then] - [/if] - [unstore_unit] - variable=new_elf - find_vacant=yes - [/unstore_unit] +#endif + {GENERIC_UNIT 2 $unit_type 2 9} [/do] [/repeat] + [fire_event] + name=elf_rise + [/fire_event] + + {CLEAR_VARIABLE how_many_elves,unit_type} + [/event] + + [event] + name=elf_rise + first_time_only=yes + [message] - speaker=$new_elf.id + side=2 + [not] + x,y=$x1,$y1 + [/not] message= _ "For every one of us you strike down, more will rise!" [/message] - - {CLEAR_VARIABLE new_elf,how_many_elves,unit_type} [/event] [event] - name=die + name=time over - [filter] - id=Ethiliel - [/filter] + [scroll_to] + x,y=2,7 + [/scroll_to] - [role] - role=realist + [unit] side=1 - type="Mage of Light,White Mage," + - "Infantry Commander,Infantry Lieutenant," + - "Cavalier,Halberdier,Royal Guard,Master Bowman,Iron Mauler," + - "Javelineer,Longbowman,Pikeman,Swordsman,Dragoon,Shock Trooper," + - "Bowman,Cavalryman,Heavy Infantryman,Spearman,Peasant," + - "Mounted General,Horseman Commander,Junior Commander" - search_recall_list=no - [/role] - [message] - role=realist - message= _ "They have killed Ethiliel! Now we have no chance to come to an agreement with them. A war with the elves is imminent." - [/message] + type=Elvish Scout + x,y=2,7 + animate=yes + [/unit] + [unit] + side=1 + type=Elvish Marshal + id=Ithelden + name= _ "Ithelden" + x,y=3,7 + canrecruit=yes + animate=yes + [/unit] + [message] - speaker=Deoran - message= _ "Alas, we are far away from Weldyn. We will surely all be killed long before any reinforcements arrive." + speaker=Ithelden + message= _ "Eltenmir! What in the world is going on here?" [/message] - [endlevel] - result=defeat - [/endlevel] - [/event] - - [event] - name=moveto - - [filter] - id=Ethiliel - x=6 - y=15 - [/filter] + [unit] + side=2 + type=Elvish Avenger + id=Eltenmir + name= _ "Eltenmir" + x,y=5,8 + canrecruit=yes + animate=yes + [status] + uncovered=yes + [/status] + [/unit] + [message] + speaker=Eltenmir + message= _ "We are merely giving these human pigs what they deserve. If they wish to shed the blood of our people, we will do the same to them." + [/message] + [message] + speaker=Ithelden + message= _ "I know you must be grieving over Mebrin's death as well, but surely you see that nothing good can come of doing this. Especially not from attacking Ethiliel!" + [/message] + [message] + speaker=Eltenmir + message= _ "Then suggest something, for we must have some form of retribution!" + [/message] [message] speaker=Ethiliel - message= _ "Ithelden! Ithelden, I know you are there. Answer me! Stop hiding from me!" + message= _ "The ones who effectively killed Mebrin are dead. I saw to that personally. We should have no more qualms with the remaining humans here." + [/message] + [message] + speaker=Eltenmir + message= _ "As if we would be satisfied by something like that! Even if what you say is true, the death of a few bugs in the woods is hardly an equal trade for one of our greatest leaders!" + [/message] + [message] + speaker=Ethiliel + message= _ "But the answer cannot be more death and destruction..." + [/message] + [message] + speaker=Ithelden + message= _ "No, it might not be, but Eltenmir is right. We cannot sit idly by and forget this atrocity either. If you wish to prevent a slaughter here, we will have to come up with some other form of resolution. Regardless, you should come and discuss the issue with us, Ethiliel. You no longer belong with the humans." [/message] - [delay] - time=2000 - [/delay] [message] speaker=Ethiliel - message= _ "I hoped that it would not come to this, but you leave me no choice." + message= _ "I... I suppose you are right. I will come." [/message] - + {MOVE_UNIT id=Ethiliel 6 8} + [delay] + time=1500 + [/delay] [sound] name=magic-faeriefire.ogg [/sound] @@ -380,7 +498,7 @@ time=1500 [/delay] [kill] - id=Ethiliel + id=Ethiliel,Ithelden,Eltenmir animate=no fire_event=no [/kill]