diff --git a/data/campaigns/Secrets_of_the_Ancients/maps/20_North_Knalga.map b/data/campaigns/Secrets_of_the_Ancients/maps/20_North_Knalga.map index c50331364d71..f040d169c705 100644 --- a/data/campaigns/Secrets_of_the_Ancients/maps/20_North_Knalga.map +++ b/data/campaigns/Secrets_of_the_Ancients/maps/20_North_Knalga.map @@ -1,6 +1,3 @@ -border_size=1 -usage=map - Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Uh^Vud, Xu, Xu, Xu, Xu, Xu, Uh^Crys, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu Xu, Xu, Xu, Xu, Uh^Crys, Xu, Uh^Crys, Uh^Crys, Uh^Crys, Xu, Uh^Crys, Uh^Crys, Ur, Uh, Ur^Br/, Uu^Br\, Uh^Br\, Uh^Dr, Uh^Crys, Uu, Uh^Vud, Uh^Crys, Uh^Crys, Xu, Xu, Xu, Uu, Xu, Xu, Xu, Ur^Xo, Xu, Xu, Ur^Kov, Xu, Xu, Ur^Xo, Xu, Xu, Xu, Xu, Xu @@ -35,7 +32,7 @@ Xu, Xu, Xu, Xu, Xu, Uu^Br\, Uu^Br\, Xu, Urb, Urb, Urb, Urb, Urb, Urb, Xol, Urb, Xu, Xu, Xu, Xu, Xu, Xu, Urb^Br|, Urb^Br\, Urb^Br\, Xu, Xu, Urb^Vud, Urb, Urb, Urb, Urb, Urb, Urb, Urb, Urb, Xol, Urb, Urb, Urb, Urb, Urb, Urb, Urb, Urb, Urb^Vud, Xu, Xu, Sm^Uf, Sm^Emf, Sm^Uf, Xu, Xu, Uh, Uu, Xu, Xu, Xu Xu, Xu, Xu, Xu, Xu, Xu, Urb^Br\, Urb, Urb, Urb^Br\, Urb^Br|, Xu, Xu, Urb, Urb, Urb, Urb, Urb, Xol, Urb, Urb, Urb, Xol, Urb, Urb, Urb, Urb, Urb, Xu, Xu, Xu, Xu, Sm^Emf, Sm^Em, Rb^Uf, Sm^Emf, Xu, Xu, Uu, Uh, Xu, Xu Xu, Xu, Xu, Xu, Urb, Urb, Urb, Urb^Br\, Urb^Br\, Urb, Urb^Br|, Urb, Xu, Xu, Xu, Urb, Urb, Urb, Urb, Urb, Xol, Urb, Urb, Urb, Urb, Urb, Rr, Xu, Xu, Xu, Xu, Sm^Uf, Sm^Uf, Sm^Uf, Rb^Uf, Sm^Uf, Xu, Xu, Uu, Xu, Xu, Xu -Xu, Xu, Xu, Xu, Xu, Urb, Urb, Urb, Urb, Urb^Br/, Xu, Xu, Urb, Urb, Urb, Xu, Urb, Urb, Urb^Vud, Urb, Urb, Urb, Urb^Vud, Urb, Xu, Rr, Rr, Rr, Rr, Xu, Xu, Sm^Uf, Rb^Uf, Sm^Em, Sm^Emf, Rb^Uf, Uh, Xu, Uu, Uh, Xu, Xu +Xu, Xu, Xu, Xu, Xu, Urb, Urb, Urb, Urb, Urb^Br/, Xu, Xu, Urb, Urb, Urb, Xu, Urb^Prg, Urb, Urb^Vud, Urb, Urb, Urb, Urb^Vud, Urb, Xu, Rr, Rr, Rr, Rr, Xu, Xu, Sm^Uf, Rb^Uf, Sm^Em, Sm^Emf, Rb^Uf, Uh, Xu, Uu, Uh, Xu, Xu Xu, Xu, Xu, Xu, Xu, Xu, Xu, Urb, Xu, Xu, Xu, Xu, Xu, Urb, Urb, Urb, Urb, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Rr, Rr, Xu, Xu, Xu, Rb^Uf, Rb^Uf, Rb^Uf, Xu, Uh, Uu, Uh, Xu, Xu, Xu Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Urb, Urb, Urb, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Rr, Rr, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Rr, Rr, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/01_Slipping_Away.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/01_Slipping_Away.cfg index ff190bcd093b..7711dc60f0a6 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/01_Slipping_Away.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/01_Slipping_Away.cfg @@ -168,7 +168,7 @@ With further observation, I have determined that this is probably not be the way [objectives] side=1 [objective] - description= _ "Move Ardonna to the signpost." + description= _ "Move Ardonna to the signpost" condition=win [/objective] @@ -180,8 +180,7 @@ With further observation, I have determined that this is probably not be the way [/gold_carryover] [note] - red,blue,green=0,255,255 - description= _ "This entire scenario takes place at night." + description= _ "This scenario takes place entirely at night." [/note] [/objectives] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/02_Dark_Business.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/02_Dark_Business.cfg index ebb91462b23c..a723377d2e97 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/02_Dark_Business.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/02_Dark_Business.cfg @@ -215,7 +215,7 @@ I decided to hide in the cemetery. That way I could try my experiment to animate [objectives] side=1 [objective] - description= _ "Kill all the guards, and capture the guardhouse." + description= _ "Kill all the guards, and capture the guardhouse" condition=win [/objective] @@ -227,12 +227,13 @@ I decided to hide in the cemetery. That way I could try my experiment to animate [/gold_carryover] [note] - red,blue,green=0,255,255 - description= _ "This entire scenario takes place at night." + description= _ "Right-click on a grave adjacent to your leader to raise a unit." [/note] [note] - red,blue,green=0,255,255 - description= _ "Right-click on nearby gravestones to get more units." + description= _ "Each grave can be used only once." + [/note] + [note] + description= _ "This scenario takes place entirely at night." [/note] [/objectives] @@ -332,7 +333,7 @@ of Healing" speaker=narrator # This puts images of the two units next to each other, # scaled to the same size: - image=story/black-background.png~BLIT(portraits/undead/archer.png~SCALE(180,180),6,25 )~BLIT(portraits/undead/skeleton.png,187,0)~CROP(0,0,376,205)~SCALE(171,93) + image=story/black-background.png~BLIT(portraits/undead/archer.png~SCALE(180,180),6,25 )~BLIT(portraits/undead/skeleton.png~SCALE(220,220),187,0)~CROP(0,0,376,205)~SCALE(171,93) message= _ "You can now recruit skeletons and skeleton archers!" [/message] [set_variable] @@ -680,7 +681,7 @@ Well, I might as well do my experiment and worry about leaving later." [message] speaker=narrator image=logo.png - message= _ "You can recruit or recall from your starting position on the first turn only. To get more units, right-click on gravestones adjacent to your leader. Each grave can only be used once." + message= _ "You can recruit or recall from your starting position on the first turn only. To get more units, raise them from their graves." [/message] [/event] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/03_Bandits.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/03_Bandits.cfg index 93a1b6b3946c..eadb8ad07e6d 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/03_Bandits.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/03_Bandits.cfg @@ -63,7 +63,7 @@ Even with the delay at the graveyard, I reached the outskirts of Llorcyn at firs [objectives] side=1 [objective] - description= _ "Defeat the enemy leader." + description= _ "Defeat the enemy leader" condition=win [/objective] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/04_Becalmed.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/04_Becalmed.cfg index b2315bba7973..997e4507c1e0 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/04_Becalmed.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/04_Becalmed.cfg @@ -194,7 +194,7 @@ The journey started well enough, but on the dawn following our departure, the wi [objectives] side=1 [objective] - description= _ "Defeat the enemy leader." + description= _ "Defeat the enemy leader" condition=win [/objective] @@ -204,6 +204,16 @@ The journey started well enough, but on the dawn following our departure, the wi bonus=yes carryover_percentage=40 [/gold_carryover] + + [note] + description= _ "You can recruit from anywhere on the two highest decks." + [/note] + [note] + description= _ "Barrels act as villages." + [/note] + [note] + description= _ "Right-click to simplify the ship graphics." + [/note] [/objectives] [set_variable] @@ -571,15 +581,6 @@ The journey started well enough, but on the dawn following our departure, the wi speaker=Ardonna message= _ "Oh dear. We must do this again. Come to me my friends!" [/message] - - [message] - speaker=narrator - image=logo.png - message= _ "• You can recruit from anywhere on the two upper decks. -• Barrels act as villages. -• Right-click to simplify the ship graphics. -• You can access the lower deck through the trapdoors." - [/message] [/event] [event] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/05_Blackwater.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/05_Blackwater.cfg index 3b7c5231e083..3c70d8919dd3 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/05_Blackwater.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/05_Blackwater.cfg @@ -5,8 +5,9 @@ # enemy to recruit level-2 units occasionally for the whole scenario, but not every turn. # For that reason, side 2 gets a "level 2 credit". Credit is used to recruit each unit, # and then recharges a bit every turn. When it is high enough, another level-2 unit is -# available. (Assuming side 2 has enough gold.) The ship graphic macros are still in -# effect, and on Easy, there is a barrel on the deck of the ship to provide healing. +# available. (Assuming side 2 has enough gold.) The ship graphic macros are still in +# effect, and on Easy, there is an extra merman village near the deck of the ship to +# provide healing. [scenario] name= _ "Blackwater" @@ -105,7 +106,7 @@ When the captain retained his memories, I reasoned that it may have been because [objectives] side=1 [objective] - description= _ "Kill all enemy units." + description= _ "Kill every enemy unit" condition=win [/objective] @@ -115,6 +116,12 @@ When the captain retained his memories, I reasoned that it may have been because bonus=yes carryover_percentage=40 [/gold_carryover] + [note] + description= _ "You can recruit from anywhere on the two highest decks." + [/note] + [note] + description= _ "Right-click to simplify the ship graphics." + [/note] [/objectives] [item] @@ -166,10 +173,33 @@ When the captain retained his memories, I reasoned that it may have been because [/effect] [/object] - [set_variable] - name=sails_hidden - value=false - [/set_variable] + # Remove sails and rigging if they were hidden at the end of the previous + # scenario. + [if] + [variable] + name=sails_hidden + boolean_equals=true + [/variable] + + [then] + [terrain] + x,y=5,12 + terrain='' + layer=overlay + [/terrain] + [terrain] + x,y=14,10 + terrain='' + layer=overlay + [/terrain] + [terrain] + x,y=7,10 + terrain=^Zrlp + layer=overlay + [/terrain] + [/then] + [/if] + {SHOW_SAILS_MENU_ITEM 1} {HIDE_SAILS_MENU_ITEM 1} diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/06_Following_the_Shadow.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/06_Following_the_Shadow.cfg index 2ea2c3d76257..d21c2ae2e103 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/06_Following_the_Shadow.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/06_Following_the_Shadow.cfg @@ -149,7 +149,7 @@ I was so sure I had the answer! I was wrong. I wanted to believe that I was imag [objectives] side=1 [objective] - description= _ "Find where the ghost went and follow it." + description= _ "Find out where the ghost went and follow it" condition=win [/objective] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/08_Carcyn.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/08_Carcyn.cfg index 2bba17fce7a2..838968c93e8f 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/08_Carcyn.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/08_Carcyn.cfg @@ -72,13 +72,10 @@ After several days of travel, he approached the frontier town of Carcyn." [objectives] side=1 [objective] - description= _ "Own every building on the map, or" - condition=win - [/objective] - [objective] - description= _ "Kill every enemy unit." + description= _ "Own every building on the map" condition=win [/objective] + {ALTERNATIVE_OBJECTIVE ( _ "Kill every enemy unit")} {HOW_TO_LOSE_WITH_RAS-TABAHN} diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/09_Training_Session.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/09_Training_Session.cfg index b218454da6d3..12c965adc074 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/09_Training_Session.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/09_Training_Session.cfg @@ -133,11 +133,11 @@ [objectives] side=1 [objective] - description= _ "Destroy all the undead units. (There will be three waves.)" + description= _ "Destroy all the undead units" + {OBJECTIVE_FOOTNOTE _"(there will be three waves)"} condition=win [/objective] [objective] - description= _ "Death of all five dark adepts." + description= _ "Death of all five dark adepts" condition=lose [/objective] [objective] @@ -149,8 +149,8 @@ bonus=no [/gold_carryover] + {HAS_NO_TURN_LIMIT} [note] - red,blue,green=0,255,255 description= _ "You will not earn gold this scenario, but your gold from the previous scenario will be available in the next." [/note] [/objectives] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/10_Merfolk_Revenge.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/10_Merfolk_Revenge.cfg index bdbe892853f0..c4842b902b3f 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/10_Merfolk_Revenge.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/10_Merfolk_Revenge.cfg @@ -64,7 +64,7 @@ [objectives] side=1 [objective] - description= _ "Defeat the enemy leader." + description= _ "Defeat the enemy leader" condition=win [/objective] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/11_Battleground.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/11_Battleground.cfg index 5fadb8ec870f..68896048a9b9 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/11_Battleground.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/11_Battleground.cfg @@ -100,7 +100,7 @@ Rastaban seems like an acceptable ally. He is quite different from the stodgy te [objectives] side=1 [objective] - description= _ "Defeat both enemy leaders." + description= _ "Defeat all enemy leaders" condition=win [/objective] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/12_Walking_Trees.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/12_Walking_Trees.cfg index be089848c37a..838792a9f0e7 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/12_Walking_Trees.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/12_Walking_Trees.cfg @@ -91,7 +91,7 @@ My primary objective was met, and I had been able to press a number of ghosts in [objectives] side=1 [objective] - description= _ "Move Ardonna to the north-east corner of the map." + description= _ "Move Ardonna to the northeast corner of the map" condition=win [/objective] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/14_Entering_the_Northlands.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/14_Entering_the_Northlands.cfg index 14241297f937..8dd6d3571855 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/14_Entering_the_Northlands.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/14_Entering_the_Northlands.cfg @@ -109,7 +109,7 @@ We reached the Ford of Abez as the dawn light spread behind the mountain peaks t [objectives] side=1 [objective] - description= _ "Defeat both enemy leaders." + description= _ "Defeat all enemy leaders" condition=win [/objective] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/15_Mountain_Pass.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/15_Mountain_Pass.cfg index 58e59de465d4..e7567eda92a0 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/15_Mountain_Pass.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/15_Mountain_Pass.cfg @@ -68,7 +68,7 @@ We have reached a pass through the mountains that Ras-Tabahn knew of. The air is [objectives] side=1 [objective] - description= _ "Move Ardryn-Na and Ras-Tabahn to level ground in the North-East corner." + description= _ "Move Ardryn-Na and Ras-Tabahn to level ground in the northeast corner" condition=win [/objective] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/16_The_Mage.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/16_The_Mage.cfg index 7bb05e654268..96d789b6e14b 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/16_The_Mage.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/16_The_Mage.cfg @@ -5,6 +5,10 @@ # Crelanu. The water destroys undead, but can be removed by living units. It is there # to prevent easy assassination of Crelanu with a few specters. +# This is slightly hackish since the closer contains VAR_NAME... +# wmlindent: opener "{NEAREST_HEX " +# wmlindent: closer "location}" + [scenario] name= _ "The Mage" map_data="{campaigns/Secrets_of_the_Ancients/maps/16_The_Mage.map}" @@ -64,7 +68,7 @@ We crossed the high plateaus, and forded the Arkan-thoria. Then we headed up int [objectives] side=1 [objective] - description= _ "Defeat Crelanu." + description= _ "Defeat Crelanu" condition=win [/objective] @@ -451,65 +455,66 @@ We crossed the high plateaus, and forded the Arkan-thoria. Then we headed up int [not] [filter] [/filter] - [/not]) location} - [if] - [variable] - name=location.length - greater_than=0 - [/variable] - [then] - [unit] - type=Gryphon - side=2 - x=$location.x - y=$location.y - animate=yes - id=messenger - [/unit] - [/then] - [else] - [unit] - type=Gryphon - side=2 - placement=leader - animate=yes - id=messenger - [/unit] - [/else] - [/if] - [move_unit] - id=messenger - to_x=16 - to_y=24 - [/move_unit] - [kill] - id=messenger - [/kill] - [redraw][/redraw] - - [clear_variable] - name=rastabahn_stored, rastabahn_harmed, location - [/clear_variable] - [endlevel] - result=victory - bonus=yes - {NEW_GOLD_CARRYOVER 40} - [/endlevel] - [/event] - - [event] - # Crelanu should still be there as the scenario ends. The last breath event - # is going to remove him, but we stored him so we can put him back. - name=victory - [unstore_unit] - variable=crelanu_stored - [/unstore_unit] - [clear_variable] - name=crelanu_stored - [/clear_variable] - [/event] - - {HERO_DEATHS} - {MANAGE_PROFILE} - {KIDS_ADVANCE} - [/scenario] + [/not]) + location} + [if] + [variable] + name=location.length + greater_than=0 + [/variable] + [then] + [unit] + type=Gryphon + side=2 + x=$location.x + y=$location.y + animate=yes + id=messenger + [/unit] + [/then] + [else] + [unit] + type=Gryphon + side=2 + placement=leader + animate=yes + id=messenger + [/unit] + [/else] + [/if] + [move_unit] + id=messenger + to_x=16 + to_y=24 + [/move_unit] + [kill] + id=messenger + [/kill] + [redraw][/redraw] + + [clear_variable] + name=rastabahn_stored, rastabahn_harmed, location + [/clear_variable] + [endlevel] + result=victory + bonus=yes + {NEW_GOLD_CARRYOVER 40} + [/endlevel] + [/event] + + [event] + # Crelanu should still be there as the scenario ends. The last breath event + # is going to remove him, but we stored him so we can put him back. + name=victory + [unstore_unit] + variable=crelanu_stored + [/unstore_unit] + [clear_variable] + name=crelanu_stored + [/clear_variable] + [/event] + + {HERO_DEATHS} + {MANAGE_PROFILE} + {KIDS_ADVANCE} +[/scenario] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/18_Abandoned_Outpost.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/18_Abandoned_Outpost.cfg index 39138c7dd6fe..118e0a261d08 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/18_Abandoned_Outpost.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/18_Abandoned_Outpost.cfg @@ -79,13 +79,10 @@ Now the process is complete for both of us. I posted a guard so nothing could ha [objectives] side=1 [objective] - description= _ "Move Ardryn-Na and Ras-Tabahn to the west end of the cave, or" - condition=win - [/objective] - [objective] - description= _ "Kill every enemy unit." + description= _ "Move Ardryn-Na and Ras-Tabahn to the west end of the cave" condition=win [/objective] + {ALTERNATIVE_OBJECTIVE ( _ "Kill every enemy unit")} {HOW_TO_LOSE_WITH_BOTH} diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/19_Lava_and_Stone.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/19_Lava_and_Stone.cfg index ec245faef026..e159f5db6380 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/19_Lava_and_Stone.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/19_Lava_and_Stone.cfg @@ -95,7 +95,7 @@ We continued down the tunnel in utter darkness for a time. The darkness presente [objectives] side=1 [objective] - description= _ "Defeat all enemy leaders." + description= _ "Defeat all enemy leaders" condition=win [/objective] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/20_North_Knalga.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/20_North_Knalga.cfg index 9e2b1e4dd31d..894d6e8f4b9a 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/20_North_Knalga.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/20_North_Knalga.cfg @@ -55,6 +55,7 @@ We left the fires of the mountain behind and plunged once more into darkness. Af type=Dummy [/unit] {FLAG_VARIANT knalgan} + shroud=yes # This is necessary for some sighted events. [/side] {STARTING_VILLAGES 2 10} @@ -69,7 +70,7 @@ We left the fires of the mountain behind and plunged once more into darkness. Af [objectives] side=1 [objective] - description= _ "Defeat the enemy leader." + description= _ "Defeat the enemy leader" condition=win [/objective] @@ -79,6 +80,10 @@ We left the fires of the mountain behind and plunged once more into darkness. Af bonus=yes carryover_percentage=40 [/gold_carryover] + + [note] + description= _ "You can recruit from anywhere in the Hall of Heroes." + [/note] [/objectives] [hide_unit] @@ -127,6 +132,7 @@ We left the fires of the mountain behind and plunged once more into darkness. Af x,y=25,12 side=2 id=spotter + max_moves=4 [/unit] # All miners run away from side 1 because they are not soldiers. @@ -148,7 +154,10 @@ We left the fires of the mountain behind and plunged once more into darkness. Af id=porter side=2 [/unit] + + # These two guys shouldn't move until the player has seen them. {FREEZE_UNIT porter} + {FREEZE_UNIT Golbanduth} # We want the dwarves to reach the caves ahead of the player's units, but # player 1 gets a head start. To compensate for that, we will give side 2 an @@ -246,34 +255,42 @@ We left the fires of the mountain behind and plunged once more into darkness. Af # The statues are not passable, but we want the player to be able to *see* # behind them, so we'll remove the shroud in those hexes. [remove_shroud] + side=1 radius=1 x,y=36,2 [/remove_shroud] [remove_shroud] + side=1 radius=1 x,y=30,2 [/remove_shroud] [remove_shroud] + side=1 radius=1 x,y=36,4 [/remove_shroud] [remove_shroud] + side=1 radius=1 x,y=30,4 [/remove_shroud] [remove_shroud] + side=1 radius=1 x,y=36,6 [/remove_shroud] [remove_shroud] + side=1 radius=1 x,y=30,6 [/remove_shroud] [remove_shroud] + side=1 radius=1 x,y=30,8 [/remove_shroud] [remove_shroud] + side=1 radius=1 x,y=36,8 [/remove_shroud] @@ -305,10 +322,7 @@ We left the fires of the mountain behind and plunged once more into darkness. Af image=items/anvil.png x,y=7,35 [/item] - # [item] - # image=items/armor-golden.png - # x,y=5,33 - # [/item] + [item] image=items/axe.png x,y=6,34 @@ -329,30 +343,151 @@ We left the fires of the mountain behind and plunged once more into darkness. Af image=items/coal.png x,y=7,32 [/item] - # [item] - # image=items/hammer-runic.png - # x,y=11,33 - # [/item] + + # ----- Treasury ----- + [item] + image=items/chest-open.png + x,y=13,34 + [/item] + [item] + image=items/chest-open.png + x,y=14,34 + [/item] + [item] + image=items/chest-open.png + x,y=14,35 + [/item] + [item] + image=items/chest-open.png + x,y=16,35 + [/item] + [item] + image=items/chest.png + x,y=17,36 + [/item] [/event] # *************************** PLAY *************************** [event] - name=sighted + # This event fires when the king sees a unit approaching the castle, and he + # is alerted that he needs more units. We want the player to be able to see + # the king while he talks about this, so that's what we're actually going to + # check: That a player's unit can see the side-2 leader. We can't use + # "sighted" for this because that only works when a unit is revealed for the + # first time, and the king may have aleady been revealed by a shadow or other + # hidden unit. (But, of course, the king wouldn't have been alerted in that + # case.) We fire a custom event to have the king open another chest of gold. + name=moveto + first_time_only=no + id=king_alerted_1 + [filter] - id=spotter + side=1 [/filter] - [message] - speaker=spotter - message= _ "Th’ invaders have made it inna the Crystal Caves!" - [/message] + [store_reachable_locations] + [filter] + id=$unit.id + # These three units are hidden, so they don't count: + [not] + type=Shadow, Nightgaunt + [/not] + [and] + [not] + type=Fugitive + [filter_location] + terrain=*^V* # Hidden only in villages + [/filter_location] + [/not] + [/and] + [/filter] + range=vision + [filter_location] + x,y=20,26 + [/filter_location] + variable=can_see_the_king + [/store_reachable_locations] + + [if] + [variable] + name=can_see_the_king.length + greater_than=0 + [/variable] + [then] + [store_unit] + [filter] + id=$unit.id + [/filter] + variable=alerting_unit + [/store_unit] + [fire_event] + name=get_more_gold + [/fire_event] + [/then] + [else] + # If a unit can see the king, this else won't be reached, so undo + # won't work for that unit. To solve that, this whole event will + # be removed by the get_more_gold event, and undo will only be + # blocked on the one move that causes get_more_gold to fire. + [allow_undo][/allow_undo] + [/else] + [/if] [/event] [event] + # If a previously hidden unit becomes visible near the leader of side 2, we + # want that to have the same effect as moving a unit close to him. This event + # fires the same custom event as the event above. name=sighted + id=king_alerted_2 + [filter] - id=Golbanduth + type=Shadow, Nightgaunt, Fugitive + # If the fugitive is not keeping to villages, the event above will + # fire first with the same effect. + [filter_location] + x,y=20,26 + # This is the sight distance of all the units involved: + radius=8 + [/filter_location] [/filter] + [store_unit] + [filter] + id=$unit.id + [/filter] + variable=alerting_unit + [/store_unit] + + [fire_event] + name=get_more_gold + [/fire_event] + [/event] + + [event] + name=get_more_gold + [remove_event] + # We have to remove the first event to preserve the undo ability. It + # shouldn't actually be necessary to remove the second event, but + # we might as well. + id=king_alerted_1, king_alerted_2 + [/remove_event] + + # Removing the shroud is necessary here because otherwise, it won't be + # cleared until after the event is over, and the king may not be visible + # while he talks. + [store_reachable_locations] + [filter] + id=$alerting_unit.id + [/filter] + range=vision + variable=clear_shroud + [/store_reachable_locations] + [remove_shroud] + side=1 + find_in=clear_shroud + [/remove_shroud] + [redraw][/redraw] + [message] speaker=Golbanduth message= _ "The invaders approach! Fetch the last chest o’ gold. We’re equippin’ more soldiers." @@ -362,20 +497,62 @@ We left the fires of the mountain behind and plunged once more into darkness. Af speaker=porter message= _ "Yes, sire." [/message] + {THAW_UNIT porter} + {THAW_UNIT Golbanduth} + [move_unit] id=porter - to_x=15, 18 - to_y=35, 27 + to_x=16 + to_y=33 [/move_unit] + [terrain] + terrain=^Prgo + x,y=16,34 + layer=overlay + [/terrain] + + # Now that the gate to the dwarves' treasury is open, the player might be + # able to see into it. We will remove the shroud for all visible locations + # in case that's true. + [store_reachable_locations] + [filter] + side=1 + [/filter] + range=vision + variable=clear_shroud + [/store_reachable_locations] + [remove_shroud] + side=1 + find_in=clear_shroud + [/remove_shroud] + [redraw][/redraw] + + [move_unit] + id=porter + to_x=17 + to_y=36 + [/move_unit] + [remove_item] + x,y=17,36 + [/remove_item] + [move_unit] + id=porter + to_x=18 + to_y=27 + [/move_unit] + [item] + image=items/chest-open.png + x,y=19,27 + [/item] [gold] side=2 #ifdef EASY - amount=400 + amount=300 #endif #ifdef NORMAL - amount=500 + amount=450 #endif #ifdef HARD amount=600 @@ -396,11 +573,11 @@ We left the fires of the mountain behind and plunged once more into darkness. Af #define BREAK_STATUE [animate_unit] [filter] - id=demolition + id=Ras-Tabahn [/filter] flag=attack [primary_attack] - range=melee + range=ranged [/primary_attack] hits=yes [facing] @@ -449,13 +626,21 @@ We left the fires of the mountain behind and plunged once more into darkness. Af to_x=33 to_y=9 [/move_unit] - [unit] - side=1 - type=Skeleton - x,y=32,9 - id=demolition - [/unit] + + [recall] + id=Ras-Tabahn + x,y=32,8 # We want him on a specific hex... + show=no + [/recall] + [modify_unit] + [filter] + id=Ras-Tabahn + [/filter] + # ...facing a specific way. + facing=nw + [/modify_unit] {RECALL_LOYAL_UNITS} + [terrain] x,y=31,9 terrain=^Kov @@ -467,7 +652,7 @@ We left the fires of the mountain behind and plunged once more into darkness. Af [/message] [message] speaker=Ras-Tabahn - message= _ "We are in a Dwarvish burial chamber. That is good. We could always use some more soldiers." + message= _ "We are in a Dwarvish burial chamber it seems. That is good. We could always use some more soldiers." [/message] [move_unit_fake] type=Dwarvish Sentinel @@ -521,6 +706,7 @@ We left the fires of the mountain behind and plunged once more into darkness. Af [delay] time=500 [/delay] + [message] speaker=Ardonna message= _ "Well, we are not going that way." @@ -559,21 +745,16 @@ We left the fires of the mountain behind and plunged once more into darkness. Af image=items/debris3.png x,y=31,9 [/item] - [message] - speaker=Ras-Tabahn - message= _ "...and push the coffin out of the way." - [/message] [move_unit] - id=demolition + id=Ras-Tabahn to_x=30 to_y=8 [/move_unit] - [modify_unit] - [filter] - id=demolition - [/filter] - facing=n - [/modify_unit] + [message] + speaker=Ras-Tabahn + message= _ "...and push the coffin out of the way." + [/message] + [remove_item] x,y=30,8 [/remove_item] @@ -581,23 +762,27 @@ We left the fires of the mountain behind and plunged once more into darkness. Af image=items/coffin-dwarf-back.png x,y=30,8 [/item] - [message] - speaker=Ras-Tabahn - message= _ "Good. Now, away with you." - [/message] [terrain] x,y=29,9 terrain='' layer=overlay [/terrain] - [kill] - id=demolition - [/kill] - [message] - speaker=narrator - image=logo.png - message= _ "You can recruit from anywhere in the Hall of Heroes." - [/message] + + # We want a "sighted" event for the first dwarf other than the guard who sees + # a unit from side 1. Now that the guard can't see them anymore, we can add + # this event. The next dwarf who sees a unit from side 1 will almost + # certainly be the closest miner, so he has the dialog. + [event] + name=sighted + [filter] + side=1 + [/filter] + # The other side will always be 2, so we don't need to filter for it. + [message] + speaker=spotter + message= _ "Ach! Th’ invaders have made it inna the Crystal Caves!" + [/message] + [/event] [/event] [event] diff --git a/data/campaigns/Secrets_of_the_Ancients/scenarios/21_Against_the_World.cfg b/data/campaigns/Secrets_of_the_Ancients/scenarios/21_Against_the_World.cfg index 6d653c62fa50..949548a40ae3 100644 --- a/data/campaigns/Secrets_of_the_Ancients/scenarios/21_Against_the_World.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/scenarios/21_Against_the_World.cfg @@ -468,7 +468,7 @@ We finally made it out of the mountains. We crossed the Ford of Abez late this m [objectives] side=1 [objective] - description= _ "Defeat all enemy leaders." + description= _ "Defeat all enemy leaders" condition=win [/objective] [objective] @@ -479,6 +479,8 @@ We finally made it out of the mountains. We crossed the Ford of Abez late this m description= _ "Death of Ras-Tabahn" condition=lose [/objective] + + {HAS_NO_TURN_LIMIT} {IS_LAST_SCENARIO} [/objectives] diff --git a/data/campaigns/Secrets_of_the_Ancients/utils/sota-utils.cfg b/data/campaigns/Secrets_of_the_Ancients/utils/sota-utils.cfg index 8fd8e4a939db..10b9cdf97812 100644 --- a/data/campaigns/Secrets_of_the_Ancients/utils/sota-utils.cfg +++ b/data/campaigns/Secrets_of_the_Ancients/utils/sota-utils.cfg @@ -527,8 +527,17 @@ #define JOURNEY_PART STAGE [part] + [background_layer] + image=maps/background.jpg + scale_vertically=yes + scale_horizontally=no + keep_aspect_ratio=yes + [/background_layer] [background_layer] image=maps/titlescreen.png + scale_vertically=yes + scale_horizontally=no + keep_aspect_ratio=yes base_layer=yes [/background_layer] show_title=yes @@ -959,7 +968,7 @@ [show_if] [variable] name=sails_hidden - equals=false + boolean_equals=false [/variable] [/show_if] @@ -998,7 +1007,7 @@ [show_if] [variable] name=sails_hidden - equals=true + boolean_equals=true [/variable] [/show_if]