#textdomain wesnoth-ei [scenario] id=05_Northern_Outpost name= _ "Northern Outpost" map_data="{campaigns/Eastern_Invasion/maps/05_Northern_Outpost.map}" turns=20 next_scenario=06_Two_Paths victory_when_enemies_defeated=no {DEFAULT_SCHEDULE} {INTRO_AND_SCENARIO_MUSIC traveling_minstrels.ogg loyalists.ogg} {EXTRA_SCENARIO_MUSIC battle.ogg} {EXTRA_SCENARIO_MUSIC legends_of_the_north.ogg} {campaigns/Eastern_Invasion/utils/deaths.cfg} {BIGMAP_05} [side] type=Lieutenant id=Gweddry name= _ "Gweddry" side=1 canrecruit=yes recruit=Spearman,Cavalryman,Mage,Horseman,Heavy Infantryman controller=human team_name=good user_team_name=_"Wesnothians" {GOLD 200 150 150} {FLAG_VARIANT loyalist} [/side] {AI_CONTROLLER () 1 2 ()} [side] type=Mounted Fighter id=Owaec name= _ "Owaec" side=2 canrecruit=yes facing=sw recruit=Cavalryman,Mage,Heavy Infantryman team_name=good user_team_name=_"Wesnothians" profile=portraits/owaec.png {GOLD 90 70 50} [ai] passive_leader=yes recruitment_pattern=mixed fighter,fighter,scout,mixed fighter,fighter {NO_SCOUTS} [avoid] x=1-32 y=1-18 [/avoid] [/ai] [/side] [side] type=Revenant id=Lanar-Skal name= _ "Lanar-Skal" side=3 canrecruit=yes facing=sw recruit=Skeleton,Skeleton Archer team_name=undead user_team_name=_"Undead" {INCOME 5 10 15} {GOLD 30 40 50} {FLAG_VARIANT undead} [ai] aggression=-0.1 recruitment_pattern=archer,fighter [/ai] [/side] [side] side=4 no_leader=yes team_name=bad user_team_name=_"Evil" [ai] grouping=no [/ai] [/side] [event] name=prestart # {SCATTER_IMAGE (terrain=Gg) 20 scenery/pine1.png} # {SCATTER_IMAGE (terrain=Gs^Fp) 12 scenery/oak-leaning.png} {PLACE_IMAGE scenery/rock1.png 15 28} {PLACE_IMAGE scenery/rock2.png 8 5} [objectives] side=1 [objective] description= _ "Find the outlaw leader and defeat him" condition=win [/objective] [objective] description= _ "Defeat the undead leader" condition=win [/objective] [objective] description= _ "Death of Gweddry" condition=lose [/objective] [objective] description= _ "Death of Dacyn" condition=lose [/objective] [objective] description= _ "Death of Owaec" condition=lose [/objective] {TURNS_RUN_OUT} [gold_carryover] bonus=yes carryover_percentage=40 [/gold_carryover] {AI_CONTROLLER_NOTE} [/objectives] [/event] [event] name=start [recall] id=Dacyn [/recall] [recall] id=Terraent [/recall] [message] speaker=Owaec message= _ "Hail, Gweddry!" [/message] [message] speaker=Gweddry message= _ "Greetings, Owaec! We have been forced from our positions by undead invaders. They follow us even now." [/message] [message] speaker=Dacyn message= _ "Indeed, they do. And do not think you will be able to defeat them. They are too powerful. We are heading for the Northlands, where I hope to find a means to stop this invasion. Will you join us?" [/message] [message] speaker=Owaec message= _ "I cannot. My orders were to protect these villages. If I leave, the villagers will be at the mercy of a gang of bandits. I cannot find a way to defeat them; the outlaws hide in the villages whenever I send in my troops." [/message] [message] speaker=Dacyn message= _ "Hoping to protect these villages is foolish; all who stay here will die. However, if we can drive these bandits out, will you organize the villagers to flee to the west? There they may survive for a time. But soon nowhere in Wesnoth will be safe." [/message] [message] speaker=Owaec message= _ "If the situation is as dire as you’ve described, I must... but we have no way to remove these bandits." [/message] [message] speaker=Dacyn message= _ "I think I may be able to help. Gweddry, I believe I can cast a spell that will reveal the bandits when our troops enter a village. However, this magic will require my full attention; I won’t be able to help you in battle." [/message] [message] speaker=Gweddry message= _ "That sounds good; it is time to drive out some bandits. Dacyn, cast your spell!" [/message] [message] speaker=Owaec message= _ "I believe there is a leader behind these outlaws; kill him and we will face no further resistance. I will place my clansmen at your service." [/message] [message] speaker=narrator message= _ "You may now recruit horsemen!" image=wesnoth-icon.png [/message] [message] speaker=Lanar-Skal message= _ "Go, go far from here! But me and my kind will chase you, and kill you!" [/message] [message] speaker=Dacyn message= _ "It seems the undead have caught up with us! We will have to kill them too if we want the villagers to be safe. Well, I will begin casting the spell." [/message] {MOVE_UNIT id=Dacyn 13 14} {DACYN_CASTING_SPELL_ANIMATION_OBJECT} {MODIFY_UNIT id=Dacyn variables.casting_the_spell yes} # mark half of the villages as containing bandits [store_locations] terrain=*^V* y=1-25 variable=all_villages [/store_locations] {VARIABLE num_of_bandit_villages $all_villages.length} {VARIABLE_OP num_of_bandit_villages divide 2} {REPEAT $num_of_bandit_villages ( {VARIABLE_OP bandit_village_i rand "1..$all_villages.length"} {VARIABLE_OP bandit_village_i sub 1} [store_locations] x,y=$all_villages[$bandit_village_i].x,$all_villages[$bandit_village_i].y [or] find_in=bandit_villages [/or] variable=bandit_villages [/store_locations] [store_locations] find_in=all_villages [not] x,y=$all_villages[$bandit_village_i].x,$all_villages[$bandit_village_i].y [/not] variable=all_villages [/store_locations] )} # handy for debugging, puts labels on all bandit villages: # {FOREACH bandit_villages i} # [label] # x,y=$bandit_villages[$i].x,$bandit_villages[$i].y # text="bandits" # [/label] # {NEXT i} {CLEAR_VARIABLE all_villages,bandit_village_i} [/event] # Dacyn remains busy until the bandits are defeated [event] name=side 1 turn refresh first_time_only=no [if] [have_unit] id=Dacyn [filter_wml] [variables] casting_the_spell="yes" [/variables] [/filter_wml] [/have_unit] [then] {MODIFY_UNIT id=Dacyn moves 0} {MODIFY_UNIT id=Dacyn attacks_left 0} [/then] [/if] [/event] [event] name=capture first_time_only=no [filter] side=1 [filter_location] find_in=bandit_villages [/filter_location] [/filter] [store_locations] find_in=bandit_villages [not] x,y=$x1,$y1 [/not] variable=bandit_villages [/store_locations] [store_locations] x,y=$x1,$y1 [or] find_in=cleared_villages [/or] variable=cleared_villages [/store_locations] {VARIABLE_OP bandit_villages_visited add 1} [message] speaker=unit message= _ "They’re here!" [/message] # 50% chance that the number of bandits will be 1..4 instead of 1..3 {RANDOM 3..4} {RANDOM 1..$random} {VARIABLE i 0} [while] [variable] name=i less_than=$random [/variable] [do] #ifdef EASY {VARIABLE_OP new_bandit_type rand "Footpad,Footpad,Poacher,Poacher,Thug,Thug,Thug,Thug,Thief,Thief,Thief,Thief"} #else {VARIABLE_OP new_bandit_type rand "Footpad,Footpad,Poacher,Poacher,Thug,Thug,Thug,Thug,Thief,Thief,Thief,Thief,Rogue,Bandit,Outlaw"} #endif [store_locations] [not] [filter] [/filter] [/not] [and] x,y=$x1,$y1 radius=1 [/and] variable=new_bandit_locations [/store_locations] [if] [variable] name=new_bandit_locations.length less_than=1 [/variable] [then] [store_locations] [not] [filter] [/filter] [/not] [and] x,y=$x1,$y1 radius=2 [/and] variable=new_bandit_locations [/store_locations] [/then] [/if] {VARIABLE_OP loc_i rand "1..$new_bandit_locations.length"} {VARIABLE_OP loc_i sub 1} [move_unit_fake] x=$x1|,$new_bandit_locations[$loc_i].x y=$y1|,$new_bandit_locations[$loc_i].y type=$new_bandit_type side=4 [/move_unit_fake] [unit] x,y=$new_bandit_locations[$loc_i].x,$new_bandit_locations[$loc_i].y type=$new_bandit_type side=4 random_traits=yes generate_name=yes upkeep=loyal [/unit] {VARIABLE_OP i add 1} [/do] [/while] [if] [variable] name=shodrano_found not_equals=yes [/variable] [then] # the chance of shodrano appearing is 100% divided by the number of # uninvestigated bandit villages remaining, except that it can't happen # in the first two bandit villages found and is forced to happen not # later than in the second last bandit village visited {VARIABLE chance_of_shodrano 100} {VARIABLE_OP chance_of_shodrano divide $bandit_villages.length} {RANDOM "0..100"} [if] [and] [variable] name=random less_than=$chance_of_shodrano [/variable] [or] [variable] name=bandit_villages.length less_than=3 [/variable] [/or] [/and] [variable] name=bandit_villages_visited greater_than=2 [/variable] [then] [store_locations] [not] [filter] [/filter] [/not] [and] x,y=$x1,$y1 radius=2 [/and] variable=new_bandit_locations [/store_locations] {VARIABLE_OP loc_i rand "1..$new_bandit_locations.length"} {VARIABLE_OP loc_i sub 1} [move_unit_fake] x=$x1|,$new_bandit_locations[$loc_i].x y=$y1|,$new_bandit_locations[$loc_i].y type=Assassin side=4 [/move_unit_fake] [unit] x,y=$new_bandit_locations[$loc_i].x,$new_bandit_locations[$loc_i].y type=Assassin side=4 id=Shodrano name= _ "Shodrano" canrecruit=yes [/unit] [message] speaker=Shodrano message= _ "So, you have found my hiding place. Very well, I guess I will have to kill you!" [/message] [message] speaker=Owaec message= _ "That’s the bandit leader! Kill him!" [/message] {VARIABLE shodrano_found yes} [/then] [/if] [/then] [/if] {CLEAR_VARIABLE new_bandit_type,new_bandit_locations} [/event] [event] name=capture first_time_only=no [filter] side=1 [filter_location] [not] find_in=bandit_villages [/not] [not] find_in=cleared_villages [/not] [/filter_location] [/filter] [store_locations] x,y=$x1,$y1 [or] find_in=cleared_villages [/or] variable=cleared_villages [/store_locations] [message] speaker=unit message= _ "No outlaws in this village." [/message] [/event] [event] name=last breath [filter] id=Shodrano [/filter] [message] speaker=Shodrano message= _ "You have defeated me! I can terrorize the villagers no more..." [/message] [kill] x,y=$x1,$y1 animate=yes fire_event=no [/kill] # this prevents the "no outlaws in this village" messages from appearing # anymore [store_locations] terrain=*^V* variable=cleared_villages [/store_locations] # and this prevents any further bandits from appearing {CLEAR_VARIABLE bandit_villages} {MODIFY_UNIT id=Dacyn variables.casting_the_spell no} [if] [have_unit] id=Lanar-Skal [/have_unit] [then] [message] speaker=Owaec message= _ "We still need to defeat these undead for the villagers to be safe." [/message] [/then] [else] [endlevel] result=victory bonus=yes {NEW_GOLD_CARRYOVER 40} [/endlevel] [/else] [/if] [/event] [event] name=die [filter] id=Lanar-Skal [/filter] [if] [have_unit] id=Shodrano [/have_unit] [or] [variable] name=shodrano_found not_equals=yes [/variable] [/or] [then] [message] speaker=Owaec message= _ "There are still these outlaws to take care of — we must continue fighting here." [/message] [/then] [else] [endlevel] result=victory bonus=yes {NEW_GOLD_CARRYOVER 40} [/endlevel] [/else] [/if] [/event] [event] name=victory {MODIFY_UNIT id=Dacyn variables.casting_the_spell no} [message] speaker=Owaec message= _ "Well, both the outlaws and undead are defeated. We have some time to spare now before more undead arrive." [/message] [message] speaker=Dacyn message= _ "Good! Now, we must move onward, north. Tell the villagers to pack their belongings and head west." [/message] [store_unit] [filter] id=Owaec [/filter] kill=yes variable=stored_Owaec [/store_unit] [unit] side=1 id=Owaec name= _ "Owaec" unrenamable=yes x,y=$stored_Owaec.x,$stored_Owaec.y type=$stored_Owaec.type experience=$stored_Owaec.experience profile=portraits/owaec.png {IS_HERO} random_traits=no [modifications] {TRAIT_LOYAL} [/modifications] [/unit] {CLEAR_VARIABLE stored_Owaec} {CLEAR_VARIABLE bandit_villages,cleared_villages,bandit_villages_visited} [/event] {PICKUPPABLE_ITEM holy_amulet 2 25 side=1 items/ankh-necklace.png _"Wearing this amulet will cause every blow you deal to inflict arcane damage!" _"holy amulet^Take it" _"holy amulet^Leave it" _"I am not suited to using this item! Let another take it." ( [object] name= _ "Holy Amulet" image=items/ankh-necklace.png duration=forever [effect] apply_to=attack range=melee set_type=arcane [/effect] [effect] apply_to=attack range=ranged set_type=arcane [/effect] [/object] )} {WESNOTH_DEFEAT} [/scenario]