diff --git a/campaigns/Secrets_of_the_Ancients/08_Carcyn.cfg.diff b/campaigns/Secrets_of_the_Ancients/08_Carcyn.cfg.diff new file mode 100644 index 0000000..67671d1 --- /dev/null +++ b/campaigns/Secrets_of_the_Ancients/08_Carcyn.cfg.diff @@ -0,0 +1,111 @@ +--- /Applications/MacPorts/The Battle for Wesnoth.app/Contents/Resources/data/campaigns/Secrets_of_the_Ancients/scenarios/08_Carcyn.cfg 2021-09-05 22:32:23.000000000 -0400 ++++ 08_Carcyn.cfg 2021-03-15 01:54:57.000000000 -0400 +@@ -41,13 +41,14 @@ + + {DEFAULT_SCHEDULE} + {DEFAULT_MUSIC_PLAYLIST} +- {TURNS 28 28 28} ++ {TURNS 30 29 28} + + [side] + # wmllint: who SIDE_1_RAS-TABAHN is Ras-Tabahn + # wmllint: unwho RECALL_LOYAL_UNITS + {SIDE_1_RAS-TABAHN} +- {GOLD 200 200 200} ++ {GOLD 220 210 200} ++ {INCOME 3 2 1} + [/side] + + [side] +@@ -94,17 +95,17 @@ + [/unit] + [unit] + type=Ghost +- experience=6 ++ experience={ON_DIFFICULTY 8 7 6} + side=1 + [/unit] + [unit] + type=Skeleton +- experience=3 ++ experience={ON_DIFFICULTY 7 5 3} + side=1 + [/unit] + [unit] + type=Skeleton +- experience=16 ++ experience={ON_DIFFICULTY 20 18 16} # (out of 35) + side=1 + [/unit] + +@@ -140,7 +141,8 @@ + [/label] + [label] + x,y=6,4 +- text= _ "Tackle Shop" #po: or Fishing Supplies ++ #po: or Fishing Supplies ++ text= _ "Tackle Shop" + color=255, 255, 255 + [/label] + [label] +@@ -150,32 +152,38 @@ + [/label] + [label] + x,y=10,9 +- text= _ "Mercantile" #po: the old word for "general store" ++ #po: the old word for "general store" ++ text= _ "Mercantile" + color=255, 255, 255 + [/label] + [label] + x,y=18,8 +- text= _ "Carcyn" #po: The name of the city ++ #po: The name of the city ++ text= _ "Carcyn" + color=255, 255, 255 + [/label] + [label] + x,y=18,13 +- text= _ "Public House" #po: the old word for "pub". "Bar" is about the same. ++ #po: the old word for "pub". "Bar" is about the same. ++ text= _ "Public House" + color=255, 255, 255 + [/label] + [label] + x,y=4,12 +- text= _ "Jailhouse" #po: or just "Jail" ++ #po: or prison, or just "Jail" ++ text= _ "Jailhouse" + color=255, 255, 255 + [/label] + [label] + x,y=23,3 +- text= _ "Boatworks" #po: or Boatyard ++ #po: or Boatyard ++ text= _ "Boatworks" + color=255, 255, 255 + [/label] + [label] + x,y=25,8 +- text= _ "Grange Hall" #po: "Grange" in the American usage: farmers' association ++ #po: "Grange" in the American usage: farmers' association ++ text= _ "Grange Hall" + color=255, 255, 255 + [/label] + [item] +@@ -248,6 +256,7 @@ + x,y=5,12 + type=Delinquent + side=1 ++ # po: female name + name= _ "Shynal" + id=Shynal + gender=female +@@ -268,6 +277,7 @@ + x,y=5,13 + type=Ruffian SotA + side=1 ++ # po: male name + name= _ "Carcyn" + id=Carcyn + {IS_LOYAL} diff --git a/campaigns/Secrets_of_the_Ancients/11_Battleground.cfg.diff b/campaigns/Secrets_of_the_Ancients/11_Battleground.cfg.diff new file mode 100644 index 0000000..b7bc04f --- /dev/null +++ b/campaigns/Secrets_of_the_Ancients/11_Battleground.cfg.diff @@ -0,0 +1,32 @@ +--- /Applications/MacPorts/The Battle for Wesnoth.app/Contents/Resources/data/campaigns/Secrets_of_the_Ancients/scenarios/11_Battleground.cfg 2021-09-05 22:32:23.000000000 -0400 ++++ 11_Battleground.cfg 2021-05-06 00:23:36.000000000 -0400 +@@ -49,7 +49,7 @@ + + {DEFAULT_SCHEDULE} + {DEFAULT_MUSIC_PLAYLIST} +- {TURNS 30 31 32} ++ {TURNS 34 33 32} + + [side] + {SIDE_1_ARDONNA} +@@ -83,7 +83,7 @@ + id=Blianxkep + facing=sw + recruit=Naga Fighter,Naga Warrior +- {GOLD 180 230 300} ++ {GOLD 160 230 300} + [/side] + + # *************************** PRESTART *************************** +@@ -94,9 +94,9 @@ + name=prestart + + [gold] +- # This is actually the default starting gold. ++ # 100 is the default starting gold; add some variance for difficulty, though + side=1 +- amount=100 ++ amount={ON_DIFFICULTY 120 110 100} + [/gold] + + [objectives] diff --git a/campaigns/Secrets_of_the_Ancients/12_Walking_Trees.cfg.diff b/campaigns/Secrets_of_the_Ancients/12_Walking_Trees.cfg.diff new file mode 100644 index 0000000..764cfc3 --- /dev/null +++ b/campaigns/Secrets_of_the_Ancients/12_Walking_Trees.cfg.diff @@ -0,0 +1,82 @@ +--- /Applications/MacPorts/The Battle for Wesnoth.app/Contents/Resources/data/campaigns/Secrets_of_the_Ancients/scenarios/12_Walking_Trees.cfg 2021-09-05 22:32:23.000000000 -0400 ++++ 12_Walking_Trees.cfg 2021-05-09 00:44:47.000000000 -0400 +@@ -18,6 +18,7 @@ + image=story/elf-road.jpg + scale=no + [/background_layer] ++ # po: the "elf sorceress" is actually of the type Elvish Enchantress, not Elvish Sorceress + story= _ "17 IV, 23 YW + + My primary objective was met, and I had been able to press a number of ghosts into service. Also, I had a new companion with a talent for healing. I doubted that Ras-Tabahn was already waiting at the appointed place, but I still wanted to hurry, so we followed the elf road north as quickly as we could. Fortunately, it was not in bad repair, though in many places it was overgrown, leaving only a few smooth cobbles to mark the way. The second day, we were still deep in the woods when we encountered an elf sorceress." +@@ -27,12 +28,12 @@ + + {DEFAULT_SCHEDULE} + {DEFAULT_MUSIC_PLAYLIST} +- {TURNS 18 18 18} ++ {TURNS 20 19 18} + victory_when_enemies_defeated=no + + [side] + {SIDE_1_ARDONNA} +- {GOLD 200 190 180} ++ {GOLD 218 199 180} + [/side] + + [side] +@@ -60,19 +61,19 @@ + {FLAG_VARIANT wood-elvish} + [/side] + +- # For each difficulty level, the first 16 woses are level-1, the rest are level-2. ++ # For each difficulty level, the first {18 17 16} woses are level-1, the rest are level-2. + #ifdef EASY + #define MAX_NUMBER_OF_WOSES +- 18 ++ 17 # yes, this is less than the number L2 woses start spawning at; I think it's ok to disallow them completely on EASY + #enddef + #define WOSES_PER_TURN +- 4 ++ 3 + #enddef + #endif + + #ifdef NORMAL + #define MAX_NUMBER_OF_WOSES +- 22 ++ 21 + #enddef + #define WOSES_PER_TURN + 4 +@@ -161,7 +162,7 @@ + [and] + x=$wose_x + y=$wose_y +- radius=7 # Too close to the player’s keep. ++ radius={ON_DIFFICULTY 9 8 7} # No good. Too close to the player’s keep. + [/and] + [/or] + +@@ -172,9 +173,11 @@ + [and] + x=$wose_x + y=$wose_y +- radius=2 +- # The wose would be adjacent to one of the +- # player's units after it moved one hex. ++ radius={ON_DIFFICULTY 4 3 2} ++ # No good. The wose would be adjacent to ++ # one of the player's units after it moved ++ # {3 2 1} hex(es). ++ # FIXME: do I have this correct? + [/and] + [/or] + +@@ -221,7 +224,7 @@ + [if] + [variable] + name=number_of_woses +- greater_than=16 ++ greater_than={ON_DIFFICULTY 18 17 16} # prevents Elder Woses from being selected on EASY + [/variable] + [then] + [set_variable] diff --git a/campaigns/Secrets_of_the_Ancients/14_Entering_the_Northlands.cfg.diff b/campaigns/Secrets_of_the_Ancients/14_Entering_the_Northlands.cfg.diff new file mode 100644 index 0000000..03e6462 --- /dev/null +++ b/campaigns/Secrets_of_the_Ancients/14_Entering_the_Northlands.cfg.diff @@ -0,0 +1,46 @@ +--- /Applications/MacPorts/The Battle for Wesnoth.app/Contents/Resources/data/campaigns/Secrets_of_the_Ancients/scenarios/14_Entering_the_Northlands.cfg 2021-09-05 22:32:23.000000000 -0400 ++++ 14_Entering_the_Northlands.cfg 2021-06-22 01:08:06.000000000 -0400 +@@ -43,7 +43,8 @@ + # wmllint: who SIDE_1_BOTH is Ardonna,Ras-Tabahn + # wmllint: who RECALL_LOYAL_UNITS is Bone Captain, Vendraxis, Shynal, Carcyn + {SIDE_1_BOTH} +- {GOLD 170 170 170} ++ {GOLD 198 184 170} ++ {INCOME 9 6 3} + [/side] + + [side] +@@ -55,8 +56,8 @@ + id=Rod-Ishnak + team_name=bad + recruit=Orcish Crossbowman,Orcish Warrior +- {GOLD 100 140 200} +- {INCOME 17 22 28} ++ {GOLD 80 140 200} ++ {INCOME 16 22 28} + {FLAG_VARIANT6 ragged} + [/side] + +@@ -76,8 +77,8 @@ + id=Krongk + [/unit] + recruit=Orcish Crossbowman,Orcish Warrior +- {GOLD 100 140 200} +- {INCOME 15 20 26} ++ {GOLD 80 140 200} ++ {INCOME 14 20 26} + {FLAG_VARIANT6 ragged} + [/side] + +@@ -128,7 +129,11 @@ + name=starting_orc_units + mode=append + [split] ++#ifdef EASY ++ list="Orcish Archer,Orcish Archer,Wolf Rider,Wolf Rider,Goblin Spearman" ++#else + list="Orcish Archer,Orcish Archer,Wolf Rider,Wolf Rider,Goblin Pillager" ++#endif + key=type + separator="," + [/split] diff --git a/campaigns/Secrets_of_the_Ancients/16_The_Mage.cfg.diff b/campaigns/Secrets_of_the_Ancients/16_The_Mage.cfg.diff new file mode 100644 index 0000000..1408128 --- /dev/null +++ b/campaigns/Secrets_of_the_Ancients/16_The_Mage.cfg.diff @@ -0,0 +1,185 @@ +--- /Applications/MacPorts/The Battle for Wesnoth.app/Contents/Resources/data/campaigns/Secrets_of_the_Ancients/scenarios/16_The_Mage.cfg 2021-09-05 22:32:23.000000000 -0400 ++++ 16_The_Mage.cfg 2021-09-09 03:52:41.000000000 -0400 +@@ -32,11 +32,12 @@ + + {DEFAULT_SCHEDULE} + {DEFAULT_MUSIC_PLAYLIST} +- {TURNS 22 22 22} ++ {TURNS 29 26 23} + + [side] + {SIDE_1_BOTH} +- {GOLD 150 120 100} ++ {GOLD 190 145 100} ++ {INCOME 3 2 1} + # There is only a little bit shrouded in this scenario (in the cave), but + # we still need this: + shroud=yes +@@ -52,14 +53,14 @@ + name= _ "Crelanu" + team_name=bad + recruit=Red Mage,White Mage,Mage +- {GOLD 140 200 230} +- {INCOME 15 22 30} ++ {GOLD 130 180 230} ++ {INCOME 14 22 30} + color=green # To match his color in LoW + {FLAG_VARIANT loyalist} + [/side] + +- {STARTING_VILLAGES 1 6} +- {STARTING_VILLAGES 2 6} ++ {STARTING_VILLAGES 1 {ON_DIFFICULTY 8 7 6}} ++ {STARTING_VILLAGES 2 {ON_DIFFICULTY 4 5 6}} + + # *************************** PRESTART *************************** + [event] +@@ -128,6 +129,12 @@ + side=2 + x,y=20,7 # Otherwise, the first one goes for a village. + moves=0 # Pretending it was just recruited. ++#ifdef EASY ++ [modifications] ++ {TRAIT_WEAK} ++ {TRAIT_SLOW} ++ [/modifications] ++#endif + [/unit] + [/event] + +@@ -223,8 +230,13 @@ + id=Ginmera + side=2 + [modifications] ++#ifdef EASY ++ {TRAIT_WEAK} ++ {TRAIT_SLOW} ++#else + {TRAIT_RESILIENT} + {TRAIT_INTELLIGENT} ++#endif + [/modifications] + [/unit] + +@@ -259,8 +271,13 @@ + id=Rinconan + side=2 + [modifications] ++#ifdef EASY ++ {TRAIT_WEAK} ++ {TRAIT_SLOW} ++#else + {TRAIT_RESILIENT} + {TRAIT_STRONG} ++#endif + [/modifications] + [/unit] + {FREEZE_UNIT Rinconan} +@@ -279,6 +296,44 @@ + image=logo.png + message= _ "Moving a unit onto a bottle of holy water will remove the bottle. A living unit can do this safely, but any undead unit will be destroyed." + [/message] ++ ++#ifdef EASY ++ [message] ++ speaker=Ardonna ++ message=_"Hm, that holy water could be dangerous... Vendraxis, could you help here?" ++ [/message] ++ ++ [message] ++ speaker=Vendraxis ++ message=_"Hm, I think I might be able to russsstle up some of my fellow ssssauriansss from the area... let me sssssee..." # wmllint: no spellcheck ++ [/message] # ++ ++ [modify_unit] ++ [filter] ++ id=Vendraxis ++ [/filter] ++ canrecruit=yes ++ # clearing it makes it show up again for whatever reason: ++ ellipse= ++ {IS_EXPENDABLE_LEADER} ++ [/modify_unit] ++ ++ [disallow_extra_recruit] ++ id=Vendraxis ++ extra_recruit=Chocobone,Dark Adept,Ghost,Ghoul,Skeleton,Skeleton Archer,Walking Corpse ++ [/disallow_extra_recruit] ++ ++ [allow_extra_recruit] ++ id=Vendraxis ++ extra_recruit=Saurian Skirmisher,Saurian Augur ++ [/allow_extra_recruit] ++ ++ [message] ++ speaker=narrator ++ image=logo.png ++ message= _ "Vendraxis shall be able to recruit saurians for this scenario only. Move Vendraxis to the keep to see." ++ [/message] # ++#endif + [/event] + + [event] +@@ -519,6 +574,62 @@ + [clear_variable] + name=crelanu_stored + [/clear_variable] ++#ifdef EASY ++ [disallow_extra_recruit] ++ id=Vendraxis ++ extra_recruit=Saurian Skirmisher,Saurian Augur ++ [/disallow_extra_recruit] ++ [modify_unit] ++ [filter] ++ id=Vendraxis ++ [/filter] ++ canrecruit=no ++ {IS_LOYAL} ++ [/modify_unit] ++#endif ++ [/event] ++ ++ [event] ++ name=time over ++ [message] ++ speaker=Ras-Tabahn ++ message="(Cough, cough)" ++ [/message] ++ [harm_unit] ++ [filter] ++ id=Ras-Tabahn ++ [/filter] ++ amount=69 ++ kill=no ++ [/harm_unit] ++ [message] ++ speaker=Ras-Tabahn ++ message="It's too late... the disease has overtaken me..." ++ [/message] ++ [kill] ++ id=Ras-Tabahn ++ [/kill] ++ [redraw][/redraw] ++ ++ [clear_variable] ++ name=rastabahn_stored, rastabahn_harmed, location, holy_waters ++ [/clear_variable] ++#ifdef EASY ++ [disallow_extra_recruit] ++ id=Vendraxis ++ extra_recruit=Saurian Skirmisher,Saurian Augur ++ [/disallow_extra_recruit] ++ [modify_unit] ++ [filter] ++ id=Vendraxis ++ [/filter] ++ canrecruit=no ++ {IS_LOYAL} ++ [/modify_unit] ++#endif ++ [endlevel] ++ result=defeat ++ [/endlevel] + [/event] + + {HERO_DEATHS} diff --git a/campaigns/Secrets_of_the_Ancients/18_Abandoned_Outpost.cfg.diff b/campaigns/Secrets_of_the_Ancients/18_Abandoned_Outpost.cfg.diff new file mode 100644 index 0000000..65eae7f --- /dev/null +++ b/campaigns/Secrets_of_the_Ancients/18_Abandoned_Outpost.cfg.diff @@ -0,0 +1,11 @@ +--- /Applications/MacPorts/The Battle for Wesnoth.app/Contents/Resources/data/campaigns/Secrets_of_the_Ancients/scenarios/18_Abandoned_Outpost.cfg 2021-09-05 22:32:23.000000000 -0400 ++++ 18_Abandoned_Outpost.cfg 2021-09-09 04:26:25.000000000 -0400 +@@ -54,7 +54,7 @@ + + {UNDERGROUND} + {DEFAULT_MUSIC_PLAYLIST} +- {TURNS 32 29 25} ++ {TURNS 36 31 26} + + [side] + {SIDE_1_BOTH} diff --git a/campaigns/Secrets_of_the_Ancients/19_Lava_and_Stone.cfg.diff b/campaigns/Secrets_of_the_Ancients/19_Lava_and_Stone.cfg.diff new file mode 100644 index 0000000..b44d58d --- /dev/null +++ b/campaigns/Secrets_of_the_Ancients/19_Lava_and_Stone.cfg.diff @@ -0,0 +1,17 @@ +--- /Applications/MacPorts/The Battle for Wesnoth.app/Contents/Resources/data/campaigns/Secrets_of_the_Ancients/scenarios/19_Lava_and_Stone.cfg 2021-09-05 22:32:23.000000000 -0400 ++++ 19_Lava_and_Stone.cfg 2021-09-09 06:41:43.000000000 -0400 +@@ -36,11 +36,12 @@ + + {UNDERGROUND} + {DEFAULT_MUSIC_PLAYLIST} +- {TURNS 50 50 50} ++ {TURNS 70 60 50} + + [side] + {SIDE_1_BOTH} +- {GOLD 220 180 120} ++ {GOLD 240 190 120} ++ {INCOME 6 4 2} + shroud=yes + [/side] + diff --git a/campaigns/Secrets_of_the_Ancients/20_North_Knalga.cfg.diff b/campaigns/Secrets_of_the_Ancients/20_North_Knalga.cfg.diff new file mode 100644 index 0000000..878dc7f --- /dev/null +++ b/campaigns/Secrets_of_the_Ancients/20_North_Knalga.cfg.diff @@ -0,0 +1,49 @@ +--- /Applications/MacPorts/The Battle for Wesnoth.app/Contents/Resources/data/campaigns/Secrets_of_the_Ancients/scenarios/20_North_Knalga.cfg 2021-09-05 22:32:23.000000000 -0400 ++++ 20_North_Knalga.cfg 2021-09-15 06:09:03.000000000 -0400 +@@ -27,8 +27,9 @@ + + [side] + {SIDE_1_BOTH} +- # The player should have a lot of gold after the last scenario, so: +- {GOLD 100 40 20} ++ # The player should have a lot of gold after the last scenario, so only put this a bit above the default: ++ {GOLD 190 155 120} ++ {INCOME 6 4 2} + shroud=yes + [/side] + +@@ -40,7 +41,7 @@ + type=Dwarvish Lord + name= _ "Golbanduth" + id=Golbanduth +- {GOLD 600 800 1000} ++ {GOLD 500 750 1000} + recruit=Dwarvish Fighter, Dwarvish Steelclad, Dwarvish Lord, Dwarvish Thunderguard, Dwarvish Pathfinder, Dwarvish Runesmith + # The castle tiles are connected through two posts (stone walls), but that + # means the AI could recruit on the posts. These two units sit on those +@@ -173,7 +174,11 @@ + {FIND_CASTLE_HEX 2 location} + [set_variable] + name=dwarf_type ++#ifdef EASY ++ rand=Dwarvish Fighter, Dwarvish Thunderer, Dwarvish Scout ++#else + rand=Dwarvish Steelclad, Dwarvish Lord, Dwarvish Thunderguard, Dwarvish Pathfinder, Dwarvish Runesmith ++#endif + [/set_variable] + [unit] + type=$dwarf_type +@@ -787,6 +792,13 @@ + layer=overlay + [/terrain] + ++#ifdef EASY ++ [message] ++ speaker=Ardonna ++ message=_"But wait! Before squeezing through there, I think we had better make sure we have a sizeable enough army to bring with us." ++ [/message] ++#endif ++ + # 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