From 5d644f8c80720f34c602cc588fbad658c23b5443 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Mon, 30 Mar 2015 10:24:21 +1100 Subject: [PATCH 01/25] NR S5a_01: updated Malifor's escape locs to match new map --- .../scenarios/05a_01_The_Pursuit.cfg | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg b/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg index ee7dcbb3d11f..89580afad638 100644 --- a/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg +++ b/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg @@ -2505,9 +2505,9 @@ {MALIFORS_LAST_BREATH pierce 5 2} {MALIFORS_LAST_BREATH blade 14 4} - {MALIFORS_LAST_BREATH fire 30 11} - {MALIFORS_LAST_BREATH cold 30 11} - {MALIFORS_LAST_BREATH arcane 30 11} + {MALIFORS_LAST_BREATH fire 38 11} + {MALIFORS_LAST_BREATH cold 38 11} + {MALIFORS_LAST_BREATH arcane 38 11} # Need a manual event here because of the if check # TODO: necessary? @@ -2528,7 +2528,7 @@ [/variable] [then] {VARIABLE malifor_died_by axe} - {VARIABLE malifor_respawn_point.x 23} + {VARIABLE malifor_respawn_point.x 14} {VARIABLE malifor_respawn_point.y 4} [/then] [else] @@ -2659,7 +2659,7 @@ less_than=1 [/variable] [then] - {VARIABLE malifor_respawn_point.x 23} + {VARIABLE malifor_respawn_point.x 14} {VARIABLE malifor_respawn_point.y 4} [/then] [/if] @@ -2667,12 +2667,6 @@ # If Malifor wasn't killed by white mages, respawn him at the # location set previously and give him some extra gold. - [terrain] - x=13,14 - y=14,14 - terrain=Uu - [/terrain] - [switch] variable=malifor_died_by [case] From b03a4cdd57a91ba6f1f360029dd478577dceb220 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Mon, 30 Mar 2015 10:41:33 +1100 Subject: [PATCH 02/25] NR S05a_01: split Malifor's death event in two to reduce levels of indent --- .../scenarios/05a_01_The_Pursuit.cfg | 414 +++++++++--------- 1 file changed, 204 insertions(+), 210 deletions(-) diff --git a/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg b/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg index 89580afad638..f8316c315e2a 100644 --- a/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg +++ b/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg @@ -2577,281 +2577,275 @@ [redraw][/redraw] [/event] - # Malifor can be successfully killed only by White Mages, all other - # units only cause him to respawn somewhere on the map. This event - # handles that assumption + # Malifor can be successfully killed only by White Mages. + # All other units only cause him to respawn somewhere on the map. + # This event handles that assumption. + [event] + name=last breath + [filter] + id=Malifor + [/filter] + [filter_second] + id=Father Morvin,Sister Thera + [/filter_second] + + [message] + speaker=Malifor + message= _ "AHHHH! YOU BLASTED MAGE!" + [/message] + + [message] + speaker=Tallin + message= _ "Good. We finally got him. He is dissolving." + [/message] + + [message] + speaker=Malifor + message= _ "Curses on you you blasted mages, curses on you you blasted dwarves, curses on you you blasted humans, and CURSES ON YOU YOU BLASTED TALLIN! MAY YOUR MISERABLE LIVES BE FULL OF TORTURE! MAY YOUR PEOPLE NEVER BE FREE! MAY ALL YOUR NEAR AND DEAR DESERT YOU! MAY A THUNDERBOLT HIT YOUR HEAD! MAY—" + [/message] + + [message] + speaker=Tallin + message= _ "May you shut your ugly mouth and hurry up and die." + [/message] + + [message] + speaker=Malifor + message= _ "MAY THE EARTH OPEN UP AND SWALLOW YOU! MAY ALL YOUR TEETH FALL OUT! MAY YOU BECOME A WEAK SKINNY OLD MAN! MAY—" + [/message] + + [message] + speaker=second_unit + message= _ "Finally! He has been reduced to dust." + [/message] + + [message] + speaker=Tallin + message= _ "At last! Victory is ours! Good work, men!" + [/message] + + [message] + speaker=Father Morvin + message= _ "So, where to now, Tallin?" + [/message] + + [message] + speaker=Tallin + message= _ "Now, let’s get back to the dwarves and see what progress they have made in forging us weapons." + [/message] + + [endlevel] + result=victory + bonus=yes + [/endlevel] + [/event] + + # If Malifor wasn't killed by white mages, respawn him at the + # location set previously and give him some extra gold. [event] name=last breath first_time_only=no [filter] id=Malifor [/filter] + [filter_second] + [not] + id=Father Morvin,Sister Thera + [/not] + [/filter_second] - # And finally, overriding the white mages and calling scenario end - # White Mage, Mage of Light. + # Default spawn location [if] [variable] - name=second_unit.id - equals=Father Morvin + name=malifor_respawn_point.x + less_than=1 [/variable] - [or] - [variable] - name=second_unit.id - equals=Sister Thera - [/variable] - [/or] [then] + {VARIABLE malifor_respawn_point.x 14} + {VARIABLE malifor_respawn_point.y 4} + [/then] + [/if] + + [switch] + variable=malifor_died_by + [case] + value=axe + + [message] + speaker=Malifor + message= _ "HAHAHA, FOOLS, YOU THINK YOU CAN KILL ME?" + [/message] + + {MALIFOR_RESPAWN} + [message] speaker=Malifor - message= _ "AHHHH! YOU BLASTED MAGE!" + message= _ "HAHAHAHA!" [/message] [message] speaker=Tallin - message= _ "Good. We finally got him. He is dissolving." + message= _ "What the...!" [/message] [message] - speaker=Malifor - message= _ "Curses on you you blasted mages, curses on you you blasted dwarves, curses on you you blasted humans, and CURSES ON YOU YOU BLASTED TALLIN! MAY YOUR MISERABLE LIVES BE FULL OF TORTURE! MAY YOUR PEOPLE NEVER BE FREE! MAY ALL YOUR NEAR AND DEAR DESERT YOU! MAY A THUNDERBOLT HIT YOUR HEAD! MAY—" + speaker=second_unit + message= _ "How can it be?! Our axes and hammers are failing." [/message] [message] speaker=Tallin - message= _ "May you shut your ugly mouth and hurry up and die." + message= _ "Blast it! Now where did he go? Let’s find him and try something else!" [/message] + [/case] + [case] + value=blade [message] speaker=Malifor - message= _ "MAY THE EARTH OPEN UP AND SWALLOW YOU! MAY ALL YOUR TEETH FALL OUT! MAY YOU BECOME A WEAK SKINNY OLD MAN! MAY—" + message= _ "HAHAHAHA, DEATH HAS NO EFFECT ON ME YOU FOOLS!" [/message] + {MALIFOR_RESPAWN} + [message] - speaker=second_unit - message= _ "Finally! He has been reduced to dust." + speaker=Malifor + message= _ "HAHAHA, I CAN NEVER BE DESTROYED!" [/message] [message] speaker=Tallin - message= _ "At last! Victory is ours! Good work, men!" + message= _ "Oh yes you will! But... how?" [/message] [message] - speaker=Father Morvin - message= _ "So, where to now, Tallin?" + speaker=second_unit + message= _ "Well, it sure isn’t gonna be done with a blade." [/message] [message] speaker=Tallin - message= _ "Now, let’s get back to the dwarves and see what progress they have made in forging us weapons." + message= _ "And look, he’s gone. Now we gotta find him all over again!" [/message] + [/case] + [case] + value=pierce - [endlevel] - result=victory - bonus=yes - [/endlevel] - [/then] - [else] - # Default spawn location - [if] - [variable] - name=malifor_respawn_point.x - less_than=1 - [/variable] - [then] - {VARIABLE malifor_respawn_point.x 14} - {VARIABLE malifor_respawn_point.y 4} - [/then] - [/if] - - # If Malifor wasn't killed by white mages, respawn him at the - # location set previously and give him some extra gold. - - [switch] - variable=malifor_died_by - [case] - value=axe - - [message] - speaker=Malifor - message= _ "HAHAHA, FOOLS, YOU THINK YOU CAN KILL ME?" - [/message] - - {MALIFOR_RESPAWN} - - [message] - speaker=Malifor - message= _ "HAHAHAHA!" - [/message] - - [message] - speaker=Tallin - message= _ "What the...!" - [/message] - - [message] - speaker=second_unit - message= _ "How can it be?! Our axes and hammers are failing." - [/message] - - [message] - speaker=Tallin - message= _ "Blast it! Now where did he go? Let’s find him and try something else!" - [/message] - [/case] - [case] - value=blade - - [message] - speaker=Malifor - message= _ "HAHAHAHA, DEATH HAS NO EFFECT ON ME YOU FOOLS!" - [/message] - - {MALIFOR_RESPAWN} - - [message] - speaker=Malifor - message= _ "HAHAHA, I CAN NEVER BE DESTROYED!" - [/message] - - [message] - speaker=Tallin - message= _ "Oh yes you will! But... how?" - [/message] - - [message] - speaker=second_unit - message= _ "Well, it sure isn’t gonna be done with a blade." - [/message] - - [message] - speaker=Tallin - message= _ "And look, he’s gone. Now we gotta find him all over again!" - [/message] - [/case] - [case] - value=pierce - - [message] - speaker=Malifor - message= _ "HAHAHAHA, YOUR IDIOCY AMUSES ME GREATLY!" - [/message] - - {MALIFOR_RESPAWN} + [message] + speaker=Malifor + message= _ "HAHAHAHA, YOUR IDIOCY AMUSES ME GREATLY!" + [/message] - [message] - speaker=Malifor - message= _ "COME AND GET ME!" - [/message] + {MALIFOR_RESPAWN} - [message] - speaker=Tallin - message= _ "Geez, how are we going to kill him?" - [/message] + [message] + speaker=Malifor + message= _ "COME AND GET ME!" + [/message] - [message] - speaker=second_unit - message= _ "Well, obviously clubs and arrows won’t work." - [/message] + [message] + speaker=Tallin + message= _ "Geez, how are we going to kill him?" + [/message] - [message] - speaker=Tallin - message= _ "Oh darn, he disappeared. Let’s find him and try a different weapon." - [/message] - [/case] - [case] - value=fire + [message] + speaker=second_unit + message= _ "Well, obviously clubs and arrows won’t work." + [/message] - [message] - speaker=Malifor - message= _ "HAHAHAHA, I AM IMMORTAL!" - [/message] + [message] + speaker=Tallin + message= _ "Oh darn, he disappeared. Let’s find him and try a different weapon." + [/message] + [/case] + [case] + value=fire - {MALIFOR_RESPAWN} + [message] + speaker=Malifor + message= _ "HAHAHAHA, I AM IMMORTAL!" + [/message] - [message] - speaker=Malifor - message= _ "YOU PUNY MORTALS SHALL SOON BE SERVING ME!" - [/message] + {MALIFOR_RESPAWN} - [message] - speaker=Camerin - message= _ "That blasted skeleton! Even fire has no affect on him!" - [/message] + [message] + speaker=Malifor + message= _ "YOU PUNY MORTALS SHALL SOON BE SERVING ME!" + [/message] - [message] - speaker=Tallin - message= _ "Look, he disappeared again. Let’s find him and try using a different weapon on him." - [/message] - [/case] - [else] - [message] - speaker=Malifor - message= _ "HAHAHA, FOOLS, YOU THINK YOU CAN KILL ME?" - [/message] + [message] + speaker=Camerin + message= _ "That blasted skeleton! Even fire has no affect on him!" + [/message] - {MALIFOR_RESPAWN} + [message] + speaker=Tallin + message= _ "Look, he disappeared again. Let’s find him and try using a different weapon on him." + [/message] + [/case] + [else] + [message] + speaker=Malifor + message= _ "HAHAHA, FOOLS, YOU THINK YOU CAN KILL ME?" + [/message] - [message] - speaker=Malifor - message= _ "HAHAHAHA!" - [/message] + {MALIFOR_RESPAWN} - [message] - speaker=Tallin - message= _ "What the—" - [/message] + [message] + speaker=Malifor + message= _ "HAHAHAHA!" + [/message] - [message] - speaker=Tallin - message= _ "Blast it! Now where did he go? Let’s find him and try something else!" - [/message] - [/else] - [/switch] + [message] + speaker=Tallin + message= _ "What the—" + [/message] - [if] - [have_unit] - id=Father Morvin - [/have_unit] - [have_unit] - id=Sister Thera - [/have_unit] - [then] - [message] - speaker=Father Morvin - message= _ "I see now. It is impossible to destroy him by ordinary means." - [/message] + [message] + speaker=Tallin + message= _ "Blast it! Now where did he go? Let’s find him and try something else!" + [/message] + [/else] + [/switch] - [message] - speaker=Tallin - message= _ "Then how are we going to destroy him? Surely there must be a way." - [/message] + [if] + [have_unit] + id=Sister Thera,Father Morvin + [/have_unit] + [then] + [message] + speaker=Father Morvin + message= _ "I see now. It is impossible to destroy him by ordinary means." + [/message] - [message] - speaker=Father Morvin - message= _ "Yes, I think there is, but only myself or Thera have the means to do it. Come on Thera, let’s destroy that old skeleton." - [/message] + [message] + speaker=Tallin + message= _ "Then how are we going to destroy him? Surely there must be a way." + [/message] - [message] - speaker=Sister Thera - message= _ "Yeah, I can’t wait to get my hands on that bastard!" - [/message] + [message] + speaker=Father Morvin + message= _ "Yes, I think there is, but only myself or Thera have the means to do it. Come on Thera, let’s destroy that old skeleton." + [/message] - [message] - speaker=Father Morvin - message= _ "That was very unladylike of you." - [/message] + [message] + speaker=Sister Thera + message= _ "Yeah, I can’t wait to get my hands on that bastard!" + [/message] - [message] - speaker=Sister Thera - message= _ "(Giggle) Sorry." - [/message] - [/then] - [/if] + [message] + speaker=Father Morvin + message= _ "That was very unladylike of you." + [/message] - {CLEAR_VARIABLE malifor_respawn_point,malifor_died_by} - [/else] + [message] + speaker=Sister Thera + message= _ "(Giggle) Sorry." + [/message] + [/then] [/if] + + {CLEAR_VARIABLE malifor_respawn_point,malifor_died_by} [/event] [event] From 54701bafab5fa875b930754f5430411c58bdbc15 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Mon, 30 Mar 2015 11:15:45 +1100 Subject: [PATCH 03/25] NR: moved initialization/clearing of death dialog index macros into the macro that uses them --- .../scenarios/05a_01_The_Pursuit.cfg | 6 ------ .../Northern_Rebirth/utils/herodeaths.cfg | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg b/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg index f8316c315e2a..6351e7b52ebd 100644 --- a/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg +++ b/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg @@ -275,12 +275,6 @@ [event] name=prestart - # Morvin and Thera appear first in this scenario. - # These will allow their death/dialogs to play in a row, and then never again, - # to prevent annoyance. - {VARIABLE death_dialog_index_thera 1} - {VARIABLE death_dialog_index_morvin 1} - # Set up some variables that need an initial value {VARIABLE back_door_opened no} {VARIABLE main_door_opened no} diff --git a/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg b/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg index 4c4063eb1cd8..3d32876477ef 100644 --- a/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg +++ b/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg @@ -200,6 +200,15 @@ # Death event for Thera and Morvin # This version includes death dialog #define HERODEATH_THERA_AND_MORVIN_WITH_DIALOG + [event] + name=prestart + # Morvin and Thera appear first in this scenario. + # These will allow their death/dialogs to play in a row, and then never again, + # to prevent annoyance. + {VARIABLE death_dialog_index_thera 1} + {VARIABLE death_dialog_index_morvin 1} + [/event] + [event] name=last breath first_time_only=no @@ -682,6 +691,12 @@ [/then] [/if] [/event] + + [event] + name=victory + + {CLEAR_VARIABLE death_dialog_index_thera,death_dialog_index_morvin} + [/event] #enddef # Death event for Thera and Morvin From 01e1c4c17f1807c0cd2f1fd09709013e4cd7165d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A4r=20Halberkamp?= Date: Fri, 27 Mar 2015 16:57:37 +0100 Subject: [PATCH 04/25] EI: more improvements to S5 --- .../scenarios/05_Northern_Outpost.cfg | 63 ++++++++++++++----- 1 file changed, 49 insertions(+), 14 deletions(-) diff --git a/data/campaigns/Eastern_Invasion/scenarios/05_Northern_Outpost.cfg b/data/campaigns/Eastern_Invasion/scenarios/05_Northern_Outpost.cfg index fe7f40500760..dcd752d0c460 100644 --- a/data/campaigns/Eastern_Invasion/scenarios/05_Northern_Outpost.cfg +++ b/data/campaigns/Eastern_Invasion/scenarios/05_Northern_Outpost.cfg @@ -8,9 +8,9 @@ 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} + {INTRO_AND_SCENARIO_MUSIC transience.ogg wanderer.ogg} + {EXTRA_SCENARIO_MUSIC traveling_minstrels.ogg} + {EXTRA_SCENARIO_MUSIC loyalists.ogg} {campaigns/Eastern_Invasion/utils/deaths.cfg} @@ -20,7 +20,7 @@ [side] side=1 controller=human - {GOLD 200 150 150} + {GOLD 150 130 100} team_name=good user_team_name=_"Wesnothians" {FLAG_VARIANT loyalist} @@ -59,7 +59,7 @@ side=3 canrecruit=yes facing=sw - recruit=Skeleton,Skeleton Archer + recruit=Skeleton,Skeleton Archer,Skeleton Rider team_name=undead user_team_name=_"Undead" {INCOME 5 10 15} @@ -67,7 +67,10 @@ {FLAG_VARIANT undead} [ai] aggression=-0.1 - recruitment_pattern=archer,fighter + caution=0.25 + grouping=defensive + recruitment_pattern=archer,archer,fighter,fighter,scout + passive_leader=yes [/ai] [/side] @@ -75,9 +78,12 @@ side=4 no_leader=yes team_name=bad - user_team_name=_"Evil" + hidden=yes [ai] grouping=no + aggression=0.7 + leader_aggression=0.7 + grouping=offensive [/ai] [/side] @@ -90,12 +96,31 @@ [objectives] side=1 [objective] - description= _ "Find the outlaw leader and defeat him" + description= _ "Find the outlaw leader" condition=win + [show_if] + {VARIABLE_CONDITIONAL shodrano_found not_equals yes} + [/show_if] + [/objective] + [objective] + description= _ "Kill Shodrano" + condition=win + [show_if] + [have_unit] + side=4 + id=Shodrano + [/have_unit] + [/show_if] [/objective] [objective] description= _ "Defeat the undead leader" condition=win + [show_if] + [have_unit] + side=3 + canrecruit=yes + [/have_unit] + [/show_if] [/objective] [objective] description= _ "Death of Gweddry" @@ -113,8 +138,8 @@ {TURNS_RUN_OUT} [gold_carryover] - bonus=yes - carryover_percentage=40 + bonus=no + carryover_percentage=70 [/gold_carryover] {AI_CONTROLLER_NOTE} @@ -424,6 +449,9 @@ name= _ "Shodrano" canrecruit=yes [/unit] + + {INCIDENTAL_MUSIC battle-epic.ogg} + [message] speaker=Shodrano message= _ "So, you have found my hiding place. Very well, I guess I will have to kill you!" @@ -434,6 +462,8 @@ [/message] {VARIABLE shodrano_found yes} + + [show_objectives][/show_objectives] [/then] [/if] [/then] @@ -511,12 +541,14 @@ speaker=Owaec message= _ "We still need to defeat these undead for the villagers to be safe." [/message] + + [show_objectives][/show_objectives] [/then] [else] [endlevel] result=victory - bonus=yes - {NEW_GOLD_CARRYOVER 40} + bonus=no + {NEW_GOLD_CARRYOVER 70} [/endlevel] [/else] [/if] @@ -529,6 +561,7 @@ [/filter] [if] [have_unit] + side=4 id=Shodrano [/have_unit] [or] @@ -539,12 +572,14 @@ speaker=Owaec message= _ "There are still these outlaws to take care of — we must continue fighting here." [/message] + + [show_objectives][/show_objectives] [/then] [else] [endlevel] result=victory - bonus=yes - {NEW_GOLD_CARRYOVER 40} + bonus=no + {NEW_GOLD_CARRYOVER 70} [/endlevel] [/else] [/if] From 4f828b08409ecaec6f1511f58713f78868306106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A4r=20Halberkamp?= Date: Mon, 30 Mar 2015 02:12:26 +0200 Subject: [PATCH 05/25] EI: Rewrote the bandit events in S5 in lua --- data/campaigns/Eastern_Invasion/_main.cfg | 5 + .../Eastern_Invasion/lua/bandits.lua | 90 +++++ .../scenarios/05_Northern_Outpost.cfg | 344 ++++-------------- 3 files changed, 165 insertions(+), 274 deletions(-) create mode 100644 data/campaigns/Eastern_Invasion/lua/bandits.lua diff --git a/data/campaigns/Eastern_Invasion/_main.cfg b/data/campaigns/Eastern_Invasion/_main.cfg index 371e5a8aa3ff..316dad8773de 100644 --- a/data/campaigns/Eastern_Invasion/_main.cfg +++ b/data/campaigns/Eastern_Invasion/_main.cfg @@ -76,6 +76,11 @@ [binary_path] path=data/campaigns/Eastern_Invasion [/binary_path] + +[lua] + code="wesnoth.require 'campaigns/Eastern_Invasion/lua/bandits.lua'" +[/lua] + {campaigns/Eastern_Invasion/utils} [+units] {campaigns/Eastern_Invasion/units} diff --git a/data/campaigns/Eastern_Invasion/lua/bandits.lua b/data/campaigns/Eastern_Invasion/lua/bandits.lua new file mode 100644 index 000000000000..a262f87bb497 --- /dev/null +++ b/data/campaigns/Eastern_Invasion/lua/bandits.lua @@ -0,0 +1,90 @@ +-- Used for the bandit villages in S5. + +local helper = wesnoth.require "lua/helper.lua" +local wml_actions = wesnoth.wml_actions +local _ = wesnoth.textdomain "wesnoth-ei" +local T = helper.set_wml_tag_metatable {} + +function wml_actions.spread_bandit_villages(cfg) + local x = cfg.x or helper.wml_error("[spread_bandit_villages] missing required x= attribute.") + local y = cfg.y or helper.wml_error("[spread_bandit_villages] missing required y= attribute.") + local count = cfg.count or helper.wml_error("[spread_bandit_villages] missing required count= attribute.") + local types = cfg.types or helper.wml_error("[spread_bandit_villages] missing required types= attribute.") + + wesnoth.set_variable("villages_visited", 0) + wesnoth.set_variable("boss_found", false) + + local i = 0 + for a in string.gmatch(types, "([^,]+)") do + wesnoth.set_variable("bandit_types["..i.."].value", a) + i = i + 1 + end + + local villages = wesnoth.get_villages(cfg) + + -- Shouldn't happen in the scenario, but a failsafe is always nice. + if count > #villages then count = #villages end + + local village_i + + for i = 0, (count - 1) do + village_i = helper.rand(1,#villages) + + wesnoth.set_variable("bandit_villages["..i.."].x", villages[village_i][1]) + wesnoth.set_variable("bandit_villages["..i.."].y", villages[village_i][2]) + table.remove(villages, village_i) + end +end + +local function bandits_found(x,y) + local bandit_types = helper.get_variable_array("bandit_types") + local bandit_villages = helper.get_variable_array("bandit_villages") + local boss_found = wesnoth.get_variable("boss_found") + local visited = wesnoth.get_variable("villages_visited") + local rand1 = helper.rand(3,4) + local rand2 = helper.rand(2,rand1) + + for i=1,rand2 do + local locs = wesnoth.get_locations({T["not"] { T.filter {} } , T["and"] { x = x, y = y, radius = 1 } }) + if #locs == 0 then locs = wesnoth.get_locations({T["not"] { T.filter {} } , T["and"] { x = x, y = y, radius = 2 } }) end + + local bandit = helper.rand(1,#bandit_types) + local loc_i = helper.rand(1, #locs) + + wml_actions.move_unit_fake({x = string.format("%d,%d", x, locs[loc_i][1]) , y = string.format("%d,%d", y, locs[loc_i][2]) , type = bandit_types[bandit].value , side = "4"}) + wesnoth.put_unit(locs[loc_i][1], locs[loc_i][2], { type = bandit_types[bandit].value , side = "4", random_traits = "yes", generate_name = "yes" , upkeep = "loyal" }) + end + + if not boss_found and visited > 2 then + local boss_chance = (100 / #bandit_villages) + local rand3 = helper.rand(1,100) + + if rand3 <= boss_chance or #bandit_villages < 3 then + wesnoth.set_variable("boss_found", true) + local loc = wesnoth.get_locations({T["not"] { T.filter {} } , T["and"] { x = x, y = y, radius = 2 } })[1] + wesnoth.fire_event("boss_found", x, y, loc[1], loc[2]) + end + end +end + +function wml_actions.bandit_village_capture(cfg) + local bandit_villages = helper.get_variable_proxy_array("bandit_villages") + local x = cfg.x or helper.wml_error("[bandit_village_capture] missing required x= attribute.") + local y = cfg.y or helper.wml_error("[bandit_village_capture] missing required y= attribute.") + + for i=1,#bandit_villages do + if bandit_villages[i].x == x and bandit_villages[i].y == y then + wesnoth.set_variable("bandit_villages["..(i - 1).."]") + + local visited = wesnoth.get_variable("villages_visited") + wesnoth.set_variable("villages_visited", visited + 1) + + wesnoth.fire("message" , { x = x , y = y , message = _"They're here!"}) + + bandits_found(x,y) + return + end + end + + wesnoth.fire("message" , { x = x , y = y , message = _"No outlaws in this village."}) +end diff --git a/data/campaigns/Eastern_Invasion/scenarios/05_Northern_Outpost.cfg b/data/campaigns/Eastern_Invasion/scenarios/05_Northern_Outpost.cfg index dcd752d0c460..bff57215a7ac 100644 --- a/data/campaigns/Eastern_Invasion/scenarios/05_Northern_Outpost.cfg +++ b/data/campaigns/Eastern_Invasion/scenarios/05_Northern_Outpost.cfg @@ -99,7 +99,7 @@ description= _ "Find the outlaw leader" condition=win [show_if] - {VARIABLE_CONDITIONAL shodrano_found not_equals yes} + {VARIABLE_CONDITIONAL boss_found not_equals yes} [/show_if] [/objective] [objective] @@ -144,6 +144,25 @@ {AI_CONTROLLER_NOTE} [/objectives] + + {VARIABLE shodrano_killed no} + + [store_villages] + y=1-22 + [/store_villages] + + [spread_bandit_villages] + x=1-32 + y=1-22 + count=$($location.length / 2) +#ifdef EASY + types="Footpad,Footpad,Poacher,Poacher,Thug,Thug,Thug,Thug,Thief,Thief,Thief,Thief" +#else + types="Footpad,Footpad,Poacher,Poacher,Thug,Thug,Thug,Thug,Thief,Thief,Thief,Thief,Rogue,Bandit,Outlaw" +#endif + [/spread_bandit_villages] + + {CLEAR_VARIABLE location} [/event] [event] @@ -216,42 +235,6 @@ {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] - )} - - {CLEAR_VARIABLE all_villages,bandit_village_i} [/event] # Dacyn remains busy until the bandits are defeated @@ -259,7 +242,7 @@ name=side 1 turn refresh first_time_only=no - [if] + [filter_condition] [have_unit] id=Dacyn [filter_wml] @@ -268,18 +251,16 @@ [/variables] [/filter_wml] [/have_unit] + [/filter_condition] - [then] - [modify_unit] - [filter] - id=Dacyn - [/filter] - - moves=0 - attacks_left=0 - [/modify_unit] - [/then] - [/if] + [modify_unit] + [filter] + id=Dacyn + [/filter] + + moves=0 + attacks_left=0 + [/modify_unit] [/event] [event] @@ -288,220 +269,48 @@ [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] + [filter_condition] + {VARIABLE_CONDITIONAL shodrano_killed not_equals yes} + [/filter_condition] - [store_locations] + [bandit_village_capture] 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_CONDITIONAL i less_than $random} - - [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_CONDITIONAL new_bandit_locations.length less_than 1} - - [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_CONDITIONAL shodrano_found not_equals yes} - - [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_CONDITIONAL random less_than $chance_of_shodrano} - - [or] - {VARIABLE_CONDITIONAL bandit_villages.length less_than 3} - [/or] - [/and] - - {VARIABLE_CONDITIONAL bandit_villages_visited greater_than 2} - - [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] - - {INCIDENTAL_MUSIC battle-epic.ogg} - - [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} - - [show_objectives][/show_objectives] - [/then] - [/if] - [/then] - [/if] - - {CLEAR_VARIABLE new_bandit_type,new_bandit_locations} + [/bandit_village_capture] [/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] + name=boss_found + + [move_unit_fake] + x=$x1,$x2 + y=$y1,$y2 + type=Assassin + side=4 + [/move_unit_fake] + + [unit] + x,y=$x2,$y2 + type=Assassin + side=4 + id=Shodrano + name= _ "Shodrano" + canrecruit=yes + [/unit] - variable=cleared_villages - [/store_locations] + {INCIDENTAL_MUSIC battle-epic.ogg} [message] - speaker=unit - message= _ "No outlaws in this village." + 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] + + [show_objectives][/show_objectives] [/event] [event] @@ -513,22 +322,15 @@ 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* + [/event] - variable=cleared_villages - [/store_locations] + [event] + name=die + [filter] + id=Shodrano + [/filter] - # and this prevents any further bandits from appearing - {CLEAR_VARIABLE bandit_villages} + {VARIABLE shodrano_killed yes} {MODIFY_UNIT id=Dacyn variables.casting_the_spell no} @@ -560,13 +362,7 @@ id=Lanar-Skal [/filter] [if] - [have_unit] - side=4 - id=Shodrano - [/have_unit] - [or] - {VARIABLE_CONDITIONAL shodrano_found not_equals yes} - [/or] + {VARIABLE_CONDITIONAL shodrano_killed not_equals yes} [then] [message] speaker=Owaec @@ -610,7 +406,7 @@ {IS_HERO} [/modify_unit] - {CLEAR_VARIABLE bandit_villages,cleared_villages,bandit_villages_visited} + {CLEAR_VARIABLE bandit_villages,bandit_types,villages_visited,boss_found,shodrano_killed} [/event] {PICKUPPABLE_ITEM holy_amulet 2 25 side=1 items/ankh-necklace.png From 3d3b6ddbc0c86e06c1cbf5d40203339dc41f411e Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Mon, 30 Mar 2015 11:25:16 +1100 Subject: [PATCH 06/25] NR: fixup Morvin's 7th death dialog case, and index bumping for both Previously I was using numerical_less_than, which isn't even a valid comparison, and would have made the 7th dialog option repeat ad infinitum. Also, Morvin's dialog still had an [else] tag, meaning that tag would have repeated as well once the rest were exhausted, previous issue notwithstanding. --- .../Northern_Rebirth/utils/herodeaths.cfg | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg b/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg index 3d32876477ef..0f980d7f99c9 100644 --- a/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg +++ b/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg @@ -469,7 +469,7 @@ [if] [variable] name=death_dialog_index_thera - numerical_less_than=7 + less_than_equal_to=7 [/variable] [then] {VARIABLE_OP death_dialog_index_thera add 1} @@ -559,7 +559,8 @@ message= _ "Which might be sooner than you think." [/message] [/case] - [else] + [case] + value=7 [message] speaker=Father Morvin message= _ "Ack! I have been brained!" @@ -570,7 +571,7 @@ # wmllint: local spelling Eew message= _ "Eew! Gross! Ahh never mind, I’ll get you cleaned up good." [/message] - [/else] + [/case] [/switch] {NR_WHITE_MAGE_RESPAWN_AT (Sister Thera)} @@ -650,7 +651,8 @@ message= _ "Now where did he go?!" [/message] [/case] - [else] + [case] + value=7 [if] [have_unit] id=Sister Thera @@ -678,13 +680,13 @@ [/message] [/then] [/if] - [/else] + [/case] [/switch] [if] [variable] name=death_dialog_index_morvin - numerical_less_than=7 + less_than_equal_to=7 [/variable] [then] {VARIABLE_OP death_dialog_index_morvin add 1} From 9fb7a063fcd911faeaa03e458d0f711ee02681ca Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Mon, 30 Mar 2015 12:18:12 +1100 Subject: [PATCH 07/25] Fixed a typo --- data/core/editor/help.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/core/editor/help.cfg b/data/core/editor/help.cfg index 2e5c67833590..f3fb86582fd1 100644 --- a/data/core/editor/help.cfg +++ b/data/core/editor/help.cfg @@ -257,7 +257,7 @@ These following tools are provided: [topic] id=editor_palette title= _ "Editor Palette" - text= _ "The editor palette contains the applicable items you may use with the currently selected tool. For example, the Paint tool will display a full list of all available terrains, and the unit tool will provide a list of abailable units." + text= _ "The editor palette contains the applicable items you may use with the currently selected tool. For example, the Paint tool will display a full list of all available terrains, and the unit tool will provide a list of available units." [/topic] # wmllint: markcheck on From 467cbcdb5cd50c53d4631be4dbf891b1e7ccc82e Mon Sep 17 00:00:00 2001 From: aquileia Date: Mon, 30 Mar 2015 08:03:07 +0200 Subject: [PATCH 08/25] Update winter-orcish castle by doofus-01 [skip ci] --- .../castle/winter-orcish/fort-concave-bl.png | Bin 3381 -> 3575 bytes .../castle/winter-orcish/fort-concave-br.png | Bin 2757 -> 2854 bytes .../castle/winter-orcish/fort-convex-bl.png | Bin 4164 -> 4275 bytes .../castle/winter-orcish/fort-convex-br.png | Bin 3367 -> 3460 bytes .../castle/winter-orcish/keep-convex-bl.png | Bin 5151 -> 5368 bytes .../castle/winter-orcish/keep-convex-br.png | Bin 6661 -> 7155 bytes .../castle/winter-orcish/keep-convex-l.png | Bin 6789 -> 7736 bytes .../castle/winter-orcish/keep-convex-r.png | Bin 7070 -> 7178 bytes .../castle/winter-orcish/keep-convex-tl.png | Bin 5394 -> 5653 bytes .../castle/winter-orcish/keep-convex-tr.png | Bin 4182 -> 4540 bytes .../winter-orcish/keep-fort-convex-bl.png | Bin 5151 -> 5372 bytes .../winter-orcish/keep-fort-convex-br.png | Bin 6828 -> 7025 bytes .../terrain/castle/winter-orcish/keep.png | Bin 8912 -> 8801 bytes 13 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/core/images/terrain/castle/winter-orcish/fort-concave-bl.png b/data/core/images/terrain/castle/winter-orcish/fort-concave-bl.png index 801ff12da110abcf69d3e1b480a3939cea4279f5..7651f5ad40176d00dbf97b1c3766ae9de594c84b 100644 GIT binary patch delta 3574 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 literal 3381 zcmcInS2!CCptZN!d(YpfRg@YUEz{^=Z}ARBkzHgYGqg z;m$*l0HBII787>Aww!R{njLgLPdI-=XytmY)XVMp|0+M*`h;Smc-uwU6*u>~Vii^z z3y05i&Uz=ZYeB@h-l)MD2fTbxP4YiHs8@)lhG1keyJx@_?@YPr{r+k@u7_UdpmbHyS6)=N5o-Pr&$x{ z|D}Y7zaMM~+iq4Ky_(I9D?S5}HnfJ0oW>E$*3ZxCfkJ2FJF)vk#b*&d_!&u3X}eHz zCY`G?-R!0kX5or3i74or$ybxt!JzNrQJEm{1#2n^vklFQ0=}i0q*7Y8xKLl@`3e*S z+bh~Y1!ydi>2W9cv|4dYz1I|YviGydc#=XKfn5DzYyO4Z~4lCuWV23h!Em~!bx8<>BcE220`Tgxa*3^E;z3|8CX2yXQQz?9rTMJZe8NaLm zGX{{qv+6b9nb#1!UfPcv`BzqY8E8Z<9XKbbG)(jOkh}hnaz=n_b(LzwJ&L-aEs_@? zbvF5%d`A7-gXk^Gwk=sSr>Yqn)NF59=W@9H5@)J#pXgWjF$m@v>8p5D?kazsJwIQs z^vq9Oa&PXk!AAun1wgE)jj3{M8ZaOwg(VOo8N5hv3pawV1A1$ z-h;IPV%^wjP$`PAe)~mcNUiCxSb|1xSI+gZ&aGLcCDGatJcp99V^?te z>B~%jHS#zb_jkUdY8K>#hRRY{lxn=OvNsH=0f|NKe+#e0@Jz1cj|XR!O?(Iq3ZVkxUk%jw1*gZ zvD{iu2t-U~73q5Erww#u#+`?;=oGfdm{jC&6FzbfA)5@GrV>4Wq+71W_w_^H=A<4B~=F43>)`<(o+L)Np!V6U9)|5l}e|FCA!=z|nh|LUJ-$~Qg z^YQ$J5GwNK`|omTRa}C0h@V?uw>VJv$di*PnzLnXqh4(csAPJ71HK;$xKgP4t^;f? zu~S{JQZ-LDu(qF_s-?^P(^1wNOg=YE#b1^55X5@2B^ub5f~t8D3+E-5dfNN8Oa}OXl%f<(X7 z?;9}SeA0&sm)B~SkV*d@ zBnf;~KYZ|O1t|5HJ&s-a8G~T~Ybzq>-*gNMaaSmC<2k8Ucyw}}e~af}U^Ir@(B6Ty ze7tT1AVn&HPxUZ(Y;LFS(8c?U(P-UvN zLzo0-2E9~*32kN%YxNZ0MiXgjT9~oK`}Cv&RkN_q^M_W58S6QE#JMSYemW1BUFwd9EJCJoT}jnrPPxBGpv3*MsxYJ#C0)w!m@4C!AOxD?HeUb!tG9(h`N4Q33;E$g zh5nzkAwd=Ntb6JnKl94M`;NThohc#=b`k^5csX2W4_?D>KS;L-` zV^bnfpG_|_cM`cly{ctV&IiJUf}Opc!lEqXT}e((9H~?nN{TAUyPA<6UR~Vm!|&*< zn2IvLS+S4rQm>&FHN%g*Gg>ZO0uEqxP0AB zL(azBr1FJmeDT#(2qBzlVfubNG4^io`ja42E-R_p9HF|sW5-S>4oSoA@{zq2St5LC z<~m!;)~Wba?A76+T)z)4fw}BxEaFkk90hYHYUS42gdH~AcM|<)mrn-o5q~$mz&owk z%w*F4MASYl03)>G+IR5*T_}Cg8ni{rJB#R~N28tR=dYK#frXp3U!mH4BPLB2eNOH& zTvb#+x=WyukpXv1CzJ485IwT8etu)KAc`8ZUT(gOv-ynwtm)8q`F5YWCuSn%%|*gZ z&mUa;7?`Uz^K_bv(=`6x9W9&VtAn1f`sADtSfT5z zbP)4@H_I1a2{3%ssbB*yrQyLrdG>XvIIG+sc5FE-4v5R!X+YEy`o6a2KZ>}5wm<^O zNfR2ozs=JAx2(Z_e;E)_7%AKI`@A3Q}baYa48$@f2t9uatH+f)aVSoWVO8g&| Ce0>xE diff --git a/data/core/images/terrain/castle/winter-orcish/fort-concave-br.png b/data/core/images/terrain/castle/winter-orcish/fort-concave-br.png index cb66227236781efbb7aaf0659825d6723c46fd2b..df6ce1c0c4bb44af5fe6db4203c2e7f6ce3ecd92 100644 GIT binary patch delta 2847 zcmV+)3*hv{6{Z%DB!BHmL_t(|UhK!Q4S*mNK*1jycc3yMaT$AK!4Pa<+h{829^7I`mx1Ce)jD(IIi-(Ja)O=}<@uq$wrSq<$F@K6*q=Wb;s2nfCizv?CQn@^tpVKi(c9(k z|L(8LPyOay$A9{EZp!h$=-J%){2zbj0m<6rb-drN3V_+UIgX$FfgBpTl+|^^$0|Z7 zf~!O$kzdp_l{Lx>zKqLb<4DIr*L8#tl2x+VI)1KixBurqc(Z8ECI!IE%uM9XQv*Es z>3a|2@+hor5+PY_Y-~)XqE;*!*0n@UTmTq`!PL|Y1AhbOcH#19tRYG{WFbI;08s#G zaFyr(_4qWvb*+sGWfE7Mwa4ptDFs*2k-}t^fq~Nxm1-}*;zFLQ*sMif@YncA;_BMi zRdx4$4_x=%Bd>fhS(EzH{{B~|_I>NXL%0NG7A}v%8Ycv@Wqn(0VJ!uPvfvH0ji3o`rK|$C6nZub8OwxO*B$P zFzDxdFZVMuH$*N|O--_fU^sja@CC2qD~P7~L_VLlq?9Z!E(*=3HU|PhnwnegJ$|fT z{?%ij=POS>p$TvoZ?aTKkVqWqAc5J*SwN7>W~i^raL1loXl-rg{LmP~BUdnOwSSGu z;sqZHYTWm+U+I7L8~fzBbLW_voDxzx=*6O{>xRIEJ33M#9Y+EfMiIZ}2MH~0?Gy^j z2t}b-D3VSk$z{?wsLZceBx+Mri+>g#v^A9a z`@sXky$92>K?vgUG$&5JiQngEYQ+?uRVibQ;FBM;2>2zC{&Pu->(6J zYmlqEe$@kD+YYvr2n09x?WVW4m)*N}k;~<%ibk+>gH&x3rfDDmRVY*tFZd5^zrpwR znZdlGh{XT&s+Ufwa3KIqQ-1-8-|s^=bOa8)J9_wqTW;o)5Bvr#E$c8%3(K~#EEC(d z1RgXhghUElLSwa6t9Zk-upI{hAV3HOp@3oNEUzrnvvn&QyE<`6$@s)Hb=fQvlhZ_E zS%h5#9DxUgiX-{&NXIE3)W~x32nmD&VcOd}S=ZD^u~>9h`u>2Qx_?ZH?(4hU2ckBe zr8d(*!0(rM(5N^i4z_JOcu=SiK2(6afN3zOaH}6ia1r`-k?F zLSG;p3Q;H;=z0;KD%|h|7E6mW0^qLuel6eyUr8i>uHuvvr#v7e(g7g^icrv0m4)Sb z`~i)3-#gF56s}r7oQ!S=*=ps6zF5!GBkX_VtZ^uE9N}lhQ4a zxF`qj&ha{lSc>gix3QyVE4FPiG(5~pM_*@Zc7e0!2g#(T@I#qSZ;Fv1$Zv*VDc626roG>P6Bu3FhZ!i9|Fm4qYl;&-3!D$7#%_ z+1n6Hd3;hdtWRp6AXlrfN7by-LI(BX0jyW3AS{1 zAuW@og=q}4h{Qpnq8E!|W_CJv+pV|#&uW)^;rW%fO)1CL; z8S;W(12mtXWNnVtjxG2DAtK=@!BB)yX?*3ieiT*3vK>s*WPX00U?_}&p#8cQ_m38d z>JWL;V1HtMj?-_y^*awgy!ZD`Ub?)|3;w511VUkdNB2#{k{OyebW_*VPFvSDx;B5H zbiawZhBg|SJBTMzXubfkSQ6W@iB-k;`u=b7^#ji`x3I*8i|=vf>^tbDPG@@u^UHZI z3|^o%m7=j}9g9m#N>B*d81&y$3P0o>+5Qv>DSznN)SI#_!>Ud-s6r?xiY8=u20rvK2;S@C1Z*7^~;NM^O34}t7+=e zv470DP$cnM>AnF~X(;5EGL~s(g5j_*?L3KCm|Sx!)$t_F4Gl=g#^>{~GB-y}Z7riy z6HX`?xKfZjSKrifG*VSHeq&Saq!)Yz=-$$yDy98Ff>vMeUi1q^9PSSktmPX5072h`{e_N9{H0;_I~H7XZ8>O#TWlt zfA#xs$o^BOF@Xb>Y?xa+kvBRym{hX*CZ_-Z002ovPDHLkV1gr(eV+gT literal 2757 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 S-2+?xucM=3pkAtqMEwu%svdO! literal 4164 zcmcgvRag^%8XZ!jq(dYJ(oA|f1Vu)}KuS6sAs_=35F9Bjjf8Yc3KG&W2_*zZNHYdV zWkNEirfU@97$L(SLbU9YlbH1AK+NL$RF$Ey8Il4f z*fp_=7^UV1AZOxQFYf(rn?j|7U!v99Zc~P&5~&^aGB3w=wrJ)YjEyqA|Gfsrhu% z_{;k0r^t0~VNfvg<=Vj3Y;+;tDyySo@o8Oepn3x37j3yKb-7Gg6m};u@%7fk>I4$F z%*P%4z~dG}rq5=WHS6{^z9@O@dYK!|P~GdMq;EV1B=CraK4~8%oc%Sdzx5<2Pi=Nj z!tmAd{CT+V#qZ_yS=aW#{D9~&{Bh5$nT~?j1!q<+`cpOM6bX-#Iz^y8DUqCnq_H8q zEnv$@olv&!6W?(};HF>+pkfFQ2JoQTx&C(W`So^-BU#rX#x}Exg)pmc9_9;geFcB5 zjIG%-r^BR~0&Ybnekc~jT+iMYZBi((azVN^m`xbB#x`QIvUAYx!u|bN7Q~CDQlSKS zw}(nVlinP^HPL?0fy=SnN2l?{wpW+jgoRx(y%h2d^Ii}1}*%Cx_$ex1UawFpS7_8rEv*ev#1r($-4CW9T0T2-zq_#;V%9AFr0Jg zhoJkspGlI+sEb9U`_{GCz_f)HTuSzSOpX|9!}rlkC8vMqZ@#gM^s<6;nCF}4mYc9~ zp8hx*UOkb7#X{y}P14`y3P9e3U(D{f`G7&VuB}jJzpkO1TC6oLQ?vWM^LKYV=M{E#Yv{0Ebn5zm_J;5^PXKz1$aa+U;Sv z;qa7t_29wvih*)BA0pQjF4&zulfAkda4^n#ee7~m>t};R+BrF$Q+m9V7Wvu-O!S&jV|zgUpe-MY_5fN+4jFcFv55h_iEW{@ z0iUbbk9!t^!$8cSwE>MZsZpch)`~wbb;!HVP)i}^=+2ejG511)lJiZP8r+Mpub7Fd z_qb(R5}P6(UDP;xk`SsDMuJcXJ zB#-yp&$Dk`Ty@A8rfi?J2J3sDnNs9UAbHZYJ0-+9rUUPPIOjF|8NPq`_)6m72gO-K zl#r*3W@N?lHG1Cu_uth91$3=Cd^x{O_PS~G(`2=Nh~Sn_m8ChX3*J=%l19O9%~)_{ zU$AEk3A~I>&AGRquB#Y3I>0oXYyG5d0@nN}=2LKQ;A5eJ>bu$-Kv#vBn6QiR&dPy-+}Y5KRp{fah* ze!%mM{gMC;qY3nZKQ7N*C!?Yo4;B**o|w>L6M=Vn_^*tyY_vD!oHA449f}nYEwpR9F|$d$B@dbQxFcYGOcX9n>BxRM#{Rfl$)gAK>|!6 zVU$YVIBD5vac%Nu%qX_aVUXtK0`1ET8V*z+(Lq?iJSqK)BlA}C7FJ5GR{|}dCl%v& zzpP5JzfiZEC*!@>ly%9&Gg=Z#cfT|P?wb`ha%zv(J!l5=fR+Xy^jJ4}-bMH zL|^2Zn3?|g8+YZiH$wC><9)Wg!y*(6_g@bLi1id0T-{cA26535ko+!q=o5QGe>hU8 z8>zE!O>waIE2CJ@po}SOjp@~#Ks+t)CSsF}ht6#TI1vPr$@0CV8MJ;7fuiMzf;fjq zI}IAE2_={8EiNgu=xTY!6%FF5n6ft5rn+NsU2DQ)G0} z=x6Tx3idewfj7$O6fD8qc&`vihjD?&Q(Ao%1hp2WdBMz?40pxOPs$))HqNg@A_A*S#LASL--AeCiRA^ zx2DVSCy4zF8TzC$-XoMHTX?X83u$+u5lKF|kwJBnJE<_k>>@l(e(lDxB&UWB)_3#Juk1CzHNJF>M_v(l|>G>Bw~E~`ZYeaJb|W!|2bM} z_J4=`86k7gP^Y0E6)XJ&xHEyq(Z$p7A>Z5=6exK+d$rJ|2ZjjVvtuIz9jrOj#aT6S z)|)F6<(EFa$19#3jTm91_?xX5+8;&VgbXq(RJwC*TAINUabQ+S-}vUMk0L`9lL&%O zC?1|?YL4A2`BV7(G3AOtw+$gjuf+#HFteG?iIH*knv-EPE?kJq1Xm%t-&$&P5to10 zYXKhkX&Y7urG@XGDU)w-xhp(guyc~RTMC&R+4Nq9Rl(7Yeve`s7ZgHx^mbrQ|9bzD z@iB+VlQlQC_Ltg@wPnbXiRw$NLwf_4-mU_CYqnB#19jVz8DuTgJELH9tX_1`=MW*m zl-nb@T%FZ#S96+!T0((K$wJpX%Y5s?t zgkdjE$IZ24h|`qow)fSjOI zQG#Z}L{ffy{>7@4NE`&Kz(&*Bva3=~;pBC9?ee$Ti;8y5#MxT7+%7y({s1W??xF*y zZ?w9aa%`L(hCT$|LrN1>Z<&PW`6OwgD0G)jt~$`^Td$7|mCGwab4xPxkU+VBvtu8jGEmEQfy2%~3MeQ`&=0ka&;7mt`)P<{z<+3?Izw?7z> zB~7&-^(RkYSbO3la>v@r%B6O1w=o_?>e=7XP+dMf> zgI7{g@-C{(^|X+fk>@LaysU)&KyQhw&aWp)j~-aFb#9Ie*1VbH*X%af|EaB*R(wgx zVXaaoqs@gY0wzTL*p&wZh_;wimCc#YE?3Kz6YE9X&X)K*g`ix0S>vQ^^- zI{F8I?T$9Dis;nBMiXsgVqy`Pg{xAyYlOzf@;T?cnNmKdJNz9^<4Z$mOVdAkHvx2w z{adR7R3(l0X_fwLxs43dgnT92=OX1~IK0|2B~5#48mzWiv ze!ggVRICFzRdjUZ0y#frvo^;azsGr_FoBOxGulwz#hQY?CrcwseABJFHb>fHr$i}< zH||~@UZih{UPQlZo375O$egVwOIKvmsXf|JxIBq@ULL4A)0W@0TU;BKRGi6PxeprH zD2&S6gi?lqa(oE%EzkA9Yc}lcB>o@^jPlp@#h(5~ME>}U*gJngI7#cMNngR-CQpil z9a2bi!?BR?G+YT#F0eEm7q~N6=C+gBdUHRHOW{NZyuOo1wqP>sDzs!F74b!F^4@lW zY`<}_L&I*Oen2}8pT*PJKVu&7b-Y@*j0zhdNO>;d$vD?I)a8LSG3oU{9Bx1t+7d&u zQ==r`t*MyT@^V&tf~{KERPC3?4m52x+5PP!j%S^5UY6ECpN!(mXUxxpR_ZUg{Z<4^ zVT2zBCGa?pQnYjrUZAUZcA?ci4V)!!*++vfpu@@}%}`|^Q%LMuaAgruo^UGv=S2n- zrs<_)9D4ae`=d?_7C&2G+qU6$k{-T1e)MIbO~ihY^qFfe+$^8Y`KX*9bLuLuC$+Ml z&s6JniNtun6Rp?=r@VF+Nd(I1%#khrxF2}#2Ibh=rQQ#z_d<-z5RIqpDVdZDDG+*k zb4mgT{y~F@dm0}|DDjKJtta!M;kC+7qqhzuLg_Ru3dw`HRRDK5E6uFUskSO0lSna( zD`O8kg6NN$O%y}1x5cRTSDX`Gt2ikSw+;-pkg^phi_mkKOvTB2AC1=V8x(_L+rvzNALyv) zU11FGb#0vT^CHy;k;v9RLen!Qk)RuE2(^L#V3u@NZXwzXrK!tzm8XiCGXiMcc|$%$+uQwnm&mmvW zRDUOl3VIx_+RCmvA_;?w{X@qZKbm6yjK5pXxlm#C3tJ3~T6gpUZ+z-+PB})3a_k&K z5j%HTA~%wBmL0&>Y!aYNAwPeljCno(X1(hRVn~DQR$A*2lJD5Z(~G6Tt)Sut@j;om zteSCV=KLThl6AUCp(;5pS;Hu$-tp(BuFmV7xYsNtYeo7Bx=h#cStToc^Q#9h6}L}G jyGV)teg6M*g1Gm{AjQL#2iiR3{}pJcz+qKSZQlO}B=HRr diff --git a/data/core/images/terrain/castle/winter-orcish/fort-convex-br.png b/data/core/images/terrain/castle/winter-orcish/fort-convex-br.png index 93913777eef4870ea122e16fa04a323bbeebbe20..15f08a8609ef691efd77e20d3bcf26a8060380dc 100644 GIT binary patch delta 3458 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 literal 3367 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 G0`(tNfq)|b diff --git a/data/core/images/terrain/castle/winter-orcish/keep-convex-bl.png b/data/core/images/terrain/castle/winter-orcish/keep-convex-bl.png index bea937878b539af63de3470bf575cc0f73f52198..ca5154769a71c53f858535a906ed73f1747600ab 100644 GIT binary patch literal 5368 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 WchLK*=U9CJ0000-j?{Y`ni}y~trAkIdwU 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 AJpcdz diff --git a/data/core/images/terrain/castle/winter-orcish/keep-convex-br.png b/data/core/images/terrain/castle/winter-orcish/keep-convex-br.png index 770257f3176c38fbfd060acf2751c699db82bb4c..41c9c3c7b964f7a170085d2644cfc32f28ee6557 100644 GIT binary patch literal 7155 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 P00000NkvXXu0mjfBPJD8 diff --git a/data/core/images/terrain/castle/winter-orcish/keep-convex-l.png b/data/core/images/terrain/castle/winter-orcish/keep-convex-l.png index ef7d0f13c0f947097d826754f7c88295904f17ce..93d32335f2e3552174f6ccd8b6e257102fc91f1a 100644 GIT binary patch literal 7736 zcmV-89>?K{P)nK7Lg!UbG8mC-vXL!$ktMaH-mAN7c~$kcd%u+K>F#464uJ!!p!blB`j7+@Su^o(zj6p+Se0&@S4?ZsHjRwxY;Mv%|V`t^YZ{P8L{1c(?_^c~O zhDJX-GP2PtmaCYVTg1{*1CHy`?95TbNrIpg!t;FT`~KC_)6?hmg+KK{sP%BAGWgPF zV*x4&vG?bDuy5~A@b-W4di-?veV95lh53aVs)IvRES9RRR`aXxyZU|QzVN3oJ9nLB z7Yl_yaUIw7{VXioh1QHtyMc%HJ&Ibrg?oSYARd0~Fz&qjesnq!b-Ue-Z@%J9uj~td z3X{$HnW5^?AI4D!uH%EX00D@j5J9VjdTkDI*ule(90KV!R_aSoO4;2od}&|!QvM>Cp3c1f) zUa9FM3X#MiqBug(YNH!=0V0H9ghrdO(rBU4Y$1*l%*@UnKhl-u72R*(oT3En))FCw z=SUEMFixOU0+>fYW2J`X@+?Sq5fmM06{6W}LTUD#ykh~-ec?|*2v|(=vyI}x93@HHCDWz%ZmXk8~L;WcT116!TDn+Ulq_6-YFdIG1Dulo}XYT@m(GJ=G zU@nd*iUvP@?Wei#_)`#-CPij8P6soHV1N-GCcoF07xCPSF2*~rdM93d>7~eKv*vY5 ztAVTDeU<17f0FRd_rH;@xZ-ucmLRNk767qUCY)={V6$py*2w3Jc=fAZgXcW!*(l@- zIP;9N@H>~i6a(cl9y>U7L}(%V!k;93?vr2PfkKu(_};g=_*D=zGb2rv5!{4!OPKHu zW^CHF1KP^q$n*@PE#Wv0DwQ%0ADxEd*aMDq{J!uf0WW#k`S$f+y7uLtyyi>Syy43C z?E3ZU6gF;8({wGT8^<$%+39IK_~1S~`q*JK8%_AWkFl{ay#BSXLA}w8nKcS3Cg*F>93?g_)tD*Yo^wG&7Pk#qPUqMXRxZ#l>axX7QMtn?o3e zxbliOy`RB$U-*-NAZXiT+)_NnD!7xB+Wkgka{dNvlxUzaSU&K!|!9y-Usy~`yTeKwv~MPx=(Xo_)~zfYH>i=_QxRQ zRYGgBErC+GjL{9-;pd8I1%cUml_n9G8SO?5E45jSZQOwipK}q;J9ihx$42lEx8IV{ z18Ma6kA6Y-L;WehOs%n$+Rh&kT}#=UyCocn@q#pi(Zwaa>60AX^v! zgV9`>$KfN#aQ~kBP%4$wOE0}_BIAtrtNK$4B8M5CW``YWMvB%o>|d zKM%}=wR$g&Lv(@`G)ywzhaoHrTBj!DPfbnX*z`QwL2L4}*L>p4zT;0J21-Nkh~f}Y5`u9YUZ2AY zDWRDmU|bFcgJ3`s2IjMMKe~4}&OCFcvt`@P+X0OC9sdmSf(y?g{2H8d{)N8_utNYc zULLEg3%|NR2*45mR!6m9LJ%}@k3cfM3PVtrJ44 z+vcAfvp z@u9rc7ycQ7h-~~n*s*!EKr*{Klg(|gENOvY=I_4eLu&#jdi(+m?A!Ar zK-hR>|APoxjr{9=@6{Leg@1;ygk^0zZCL!0@P4VxRBm)Lg$qbnSVIT_-_OHyvmhaX z;|CbRSe^huAkezo!E5yZVfxrnJn+zC_|`XWNET~L&*~RMs1g$!3 zTM7c%UN%cDtn?lKTZk@Dty*m>R%Su0 z5k_4U@>w{pgRs+qRtk=rM-;CZoguL5a$2+hYR8AbW?72_I1byk>=#tI!)ntS=ep{zE)^9mLZ6Y`s?#~b8bTa`Y&M48JdVyzS-oy@V^;Usf424 zwj3!bqoGTrF#v%)01qGw%mRid)mm%H7&Xe(%4=Q69`qb*CsT@geF=&+#zr@yQJ*vS z?XeDxTZIr{tzq15dr+xDyWN2h5>lF_LB@n>ODoEqL<9}1qG!?eZQbBrP%7M55 zMv=fC7}hVpxdui?M}{f`<;#UY!Lh}N<9Z~d17W+U6bhI=x*tj00oXQSUfL2`>s3|R zh;3OGN|hnBn#*v#4BE{a)*#~bvJ=MWPq@`1plw@y;eSJjIS=Mo2xtp{1ju2)1;_

%4|XDOvlQ=KY>NDy}bw85~+cpRDl zn~n1!m{|-C4ZKXNXw>sOIZz#SrEMdZFPo4ab^|QT9YUuaAWae^8fF_++-*T?hDu`y z+d`TufCYrGSG#!@Y}Ys*Y(ysWUfT5VVIUBmI?elz=am)bxbO)xcK~WIV;Mxt46FcX zF{1+@2B5|#MlZ9aH83=?!5JPs%`29wRIUsWf#J9rXswKsL4;JL&}obyST;g4Gt#&N z7B<2-h2!|9Z%?ctq=ial5QWkpvbh43N&x2d_rlr=fWiG8I8P1p+I35D7;;Aoi@;D| zD+G`?2O&@3EI|IIE!#KRj$KHSu9eRhbT(JCqNsyZC19=0lr4#4XvId@rR6!ZPae!D zmx|`ou=QpW%rJ$VW`<=EeAh;tCa|Q9DC|H8%bYVSBl;8J^@TWAn(>>_cRT=Hua{ES zMHeZz1j{8Rz3{ug_r}u!%#V+ctu38?Pqcf=%gnM1tRyK@)M< zh9xaXxhgmHi@T>365^Jz$;mV0Sd}bkZ*yI5V-&?g2&+LP%EGcl5AKP|o}U%2m%&PH z_PF2>f{qt(eB{tRR%uL+J^lb(KL^01a|p`@tHijvT*#r*X(8;!010%v9S}*FJWqhk z7tw78NTN0vrt$|f3~Muc2KO5{PZeLe{`2)X#-Vnr^|ysW?iM1%wk=~n>t%^3V8%lP zq#)9owHCrcu2^Q*_0g=?l4hf(9LG(eV~mV%gzLEgBs2rkc2F4{M`d6brRq4eW`F>b z$CWZUA7CS}B?P4HB4vi-dT^W!da33~!JR;T$3K;P>JuNn7688a-5)INzWe@3W{{Mm}1ZMGuXW4 z4C7RtbkV9WKq&^ZfT`e#OiBO&jw8Tq9z#GtD@LNa&^m<_0GmG~nT6GN{L{c|FMH7s z(i9&Y9vyzixfh)AAEmVJnw_rw*m2xVLRbr0;hs2(?;@?cuIojv>o$QjXm^63_q@tw zs~8=bK(R1@O`A`L?f7tP36MY(D`*DdI5sJQEDHpNX9JG3%+wB8y`2*R!(*qJIsQ7} z0Zp9kJN{|n&;QeVf3WKQ@w3m{{+Zszpx*NK4-XZJ`8P@1c|%SXMwqqi1W_GAO5gWv z))a%Fise$N(P)t4`cx>CDUL(1W=u~#2G^5NT7#fKmJQ32kQPH26Ps2q0D(ef#58$4 z*M%h*_1X*w00?tC0ztt)^i*+>8SXtC7OSAcWp|UGY(>RG^ z*Ku8oNT6IDLmYRBwZhbay>J|fW)PbxoDjks`9cBUczuA=3SzSw(H#py2=n^d>=Z01 z0fE2NLVbMSL(|KB$DbJZ>$m^o3l2X%^U9#rdfxQmM-MM9&N6H492(tRmeLlj=8`u! zx=9>&tso-X^-P#&W`KZZD}quf0F%d2tPG)2siMAgbk*rFvwFZp1Qg3d=(g*y9nZL* zh)vgNq1#%)(?wr+6XuHmE&(tIp!?YV{r8M-*f6!cs9)eZTc1~|4pzGD*jH(kkdPcF zQMb7=BL_#edP>De;t;}eurPZFw(TQmH&84Mq8oN#TLJ^sAv2cE6$ecy?{xKgXc?#u zniJdgO>3Ae0>EIUihehB0fhbH?&;&z0A2}T2Y?rs%9W3U`Mu?8wdA;No?yiQM~;^j z*?c}NRfaReh9zZDD5f)F$7{R`Imb7k(DNqX6yzaKy{_mj*%5+4sPMf4)=;$Z@lF zWpI%EOh)>dyeBOwm^CF~fK(~8nhoSjLs+WKBkZ<0YzL^#9Y)4;;dmLOX>3G|q7K4D zgF!}I*L6W4w1X9}RuDu;k_Z5U1ZAWx-F~QldT;B#1K>NokiTR4=z`VLyk!Y--uTAN z@9=!bYt~zK9H(NSYU}z+9Z|Q%B!tf7N>r;YLg^HKwnUcY!Sh^RoSV{v!(&#yI0Pa_ zV|ms%I%stO7Dia#6~^I0O5_RyrrM9X0oEWvF%ib% z80@s$DQmXFZZ}@8El{O8Af)Y3qrS)tn>;@cOS)WNnoEqtABubAF@6t+#* zuG8(9i5`PN#PIwaNZ9MUZW+Q9ck3_$A`$jO{fXnN=RN!M$Z_q1N~O~C9B#LR=KSpR z!P@MR`jN*U4Ho8)EtBw4DJ4`I>DglkwCCDPq@6;sYL9K$Nm?aPX=uutzCfcN{y4!|uLghabIE2yY{k zz0hihncBj9vs6wt2ok(ho8igH4PK`cSh-w@9M?xCUp5tbYh~W--f1@KNK<9%fL;nf zV`&yEwWA;+Ft1N#ObxIG0So)~O`Rae_e1?uPyCMqxY)A9J+FV+rC$eNz3b`^Yzdkx ziFEx*Nw(W-uUbTu%pTn@{7la2cG}2hOH{0km?~YX)C_DiYc%Q&bi)`U6I&5ST@wMu zCXb(Y&{#2FI0ynk>BNk7g|N&@K-}MKd1A$H0O(>Ju(W88pUn?CZqC&z4Z?2I&gOEJ z&D+n-W^*Os`B{B@DraWx(m|t9!_xc_v|3HHI{}0xO#~Y7LRjZ8&{RsbRT@bUwWaM%SB54t+fU!_Rfophk%>t`1dfx)?9~f9Z6oB+$VRjC zHeV-&aWr&3ybAJALPPt}pyEWPSiIiMl}roI28W zJwKBh+_HV^#;x18x}6{(#}P~fj>5JI>WgttJQMb#u#0@Lj4A5ORvmjEQ=VUD@ZA${p`eInG z2X?pJP)QPsVrA4$QjOZeEHi5W+H~jg`2uBgCAeM=-A;gZs|Kw!k|abL1vn0aS0e!d zL;#aT0-`VcGc&7iyzQ!YXSbZOYr^fR)(+a7%llS+xfV_zS?)yLFq1(B_iBuZ+F zbHeqqAR&ZSsi;(kkk4ny@iGY4io7sDlEhF704o@?!~BKVqt$RA!DfQl+enC3C792KynxNyqgnuID>KIITY0?b$=NxIPb3I7!e@eEkk`@)}C@f!m}gRHf_Vq|=xXxnlu ziee3-w(aJ!O6z%P(a1{em<19pz)2V^Y1;yoN@e3@$IY2JJy{-vWqR^x)fbHG3EI3y zYlY)5YjZb11PBr!2nOh9mP)4k!k>7qXa~VkeWhhDE-XE8Y-;w$&1NShVRc)Lg$JaQ zsh27vf$O@I&*$u7X@G_&HkrYTbbNGLiy)F_JQW@7;)q{;7qS~q(Vcd;~o7-?@c z)tqrWRsc-h|Hz!`=lBzbY1|Zlx_jSLp_u#pwjCR`-+kx(=SSV{MPV2P?M5xgWQ*qy zREvJTSaRlP7cHe=*|vp=4Wl@6@TiXBm@LbNn=KOwiQ4>Olf&EX09qwjhc$Xp!-#D} z7XknStnbj^2m7776VJI(7%wh{%dZHU?d8fq_Jxac9j8<&)hvWUN-HW93nk4Y3dIuU zW~LXn?l|4qcmF<%EK6vWdRik@X=+)PExb%Ybb=O7ZaSO0ow{0@J1mt-sNGsx&HV&Z z4}ig}7c}GMl~7IfJ9p2_mg^h*j5kvqDxZ_d_~M)k&aRJ7j_;Y=v{Cul%#onky2Ewt zjwRy8#!X|LD2y^A6JsQVZAsf>$1kibElxjVJ6@+UxFH!F+1Tu~8&d>vXkzoOnV_-! z?N(#yi(q_!8E*w}CBXlZfwwZ_J2MAoRsYL~o*};UjhlaJ+j6lTbXR&8z!w+iYoAM! zbY%Yn5Bx)Upg1@*GJ0;Rv|!D%y`4K7TCLW9*?#)g_qAFbuTc+Fnj|gTcB@*eSnD*5 z!p@XR@gwsqF-{ix!khX0?*O7%nZ6Omw*+}vme zy9S4vdk!tjSp1-Zp=(C%mU~<`rtjE*s}9k z7Xf(S@2>l^o0b+j2~IltE!!ij$M<>@yN7#4-%lqt47W?=a!ES=%V^UwKx3zT<`H+ zAN$L{-G9yh{M!D%`kSv@aogRyKl8aS-}u4nZ@l%Bz4IM7HR*pDQNED9rsw=Sdjenk zt}B24Z2&&jJO8W6jU!uzhYR;V_l4(u!?G;LaqSL(3V`o!+A?tlfF^*)aVpUletlQY zSFsN6_{25W|LNdRB}alTnLaXi$M(}VZEiK&F9J{k?E3)R2A~e01K=zG!vLmnYSI6S z(VnwE3gG(Q#BS<~fA_7MGCBW8)xolzBPaEC78nuoAIDggUHvqstd+vpg z{NHx#*akot1_B@(Fj6*P0;;S-&jd)RBc)`x*b*a9MR(H6cJ0DmU_V^<)7yB@xZ5@7 ysC%S*{gK($Lq2MMJZk^|0000000000000xTuq*)UgFO9)iVoal$iDa3wm+boz zMnm>&A-fukU3mRIzTf^I&Uvou`EZ`)+}C}cbKS8wEv}zEef~5P6VurnCWh80HuPjA z1KCdY@2II4Oibs^ZWvy>1%~`-LVwB|b{JWwGcp*L8~zlPCv|+EZ}qKZy{MLR-xMGv zhu{#ugw@k`Ov^PdFp1^A88vYGr9_VP7rla8eNR)F#F;M{$ukcm^LkB9v|2n$^3vK? zeD3*o!*OaZgYopQnrGhHb*H~n`eE?mQ;kfEy#A&C!Hnnp4Q%Sa~&QEJ=#FbhvuX>xAx}C;TL&+^Q%=$E!<(T8}KCE?cP0vU05s^>Fu{mUnhU+zSta!85&l#)DD>DHL{9M z*t#Obb$ugp?Cv)M^05=g-E0=p+t!J@hd;*mCUqg3?0K~c`5#X?I=&uv?M-qZRMq^g zf9+^7vA+=``l2#$b^LZuij5CI34IjrWZNMrBotGxOY|H)-N7S|Hqzmdt}<-MN2)mMq!mU=OA}B1(;c{wPl>~)i22Qo)z3NVZbZ@l zH3bleeo-~Eq?)q9w6q=k@NYE6LF)6R_%=LEdlza+YG@pqi#N-&(Z>O?>2+&0Q~QL+ z_hRK#E1TX8>-sHz+p#z0N8iAS0nDAPY_9~>1UXfIHfkOj9nJDN?}i)Arnt~}ZG4^t z2>q4YC{qGRaKYdEJlK{&8tOTHf9g_RQy$}=*cNPI%3&MQQxmp3L6V-U>btQ{S$9`L z6^UBIy$!mbDkH5f=|xj0qe7NdB>@mJ`nIv;b~{oZch4*6Vrh<+YUR=+KU*Lk-5y+V zeeiSZ2%x#XE>i)w(~gz(cm;cF4oT{0b@$Nex{z$IPZG*#d?o~le-Och5;8egf^QW2 ze5HRBCj;*9#1nZP2p}7+>Us^0ZH(xPmQ?yd><$EBT-6j?GEs5u&9g+%%>*nM)xU=O z)9p3-Q=|KlPVP4WdKP6K==XbMmsk>w7jiPi{dv=tosGI2iAI+x7DB5qWx!P7(?@$$@<-&^k1Gg7L}?D=9_rnT_9(=l)f(GV9} z+##7q)5*G_jWAIUKbo*SibNH0{+`fX`+DX`QC}IZkF_@?LYDb$Pr*sY*_v`}D@18) z+$Wszr@|t?{Z;i1tuboIB$7jpojTkwUB7BuT)C1McKG-hq4jh{Tj<}Y78oY24XbwQtzkK6>+f9EcS&TKCAiynSCUVqrI z)t3~q`FNcj>_%{7VuAC<5_#ny2PqH~FnB|zDn>hfnDY^1;9*l*z>*)vLx+NAvW`gSnl$)!q)B z_4V21!(ob4219KD`p#Lg1Z)D6XdLZmXkBi%BJE^2ss}8eqf}4Nd?=)?t~wpkMEBON z7=h;miRZR1@5`XV@#ncj)tdvgT(l3rA$9kA4Y(nQcHgMV$}gyz+0nd25tn0C z&u#lL%fqmQ#zQnK2!f9I~MCY9BP+PmSDFVLsUg%{3Pdzawzm&29zqkEswoR#ir zWmZ>H!v3Wxp*{8&y>z;ieaBskR&g!gCpY1T5(nxw&i9R6DnjNcTE6=TrwNTDn(6J^ zsu0{z=LWM!SflF}&v*6h3Z?0?$P@lICM;+z4B2e7b%^e*KPgKf2OeKcke;c$WI1O*2Hj1eTFqWdF zzLwO4v}LM2TMet+&NxWI$kbDl^WuOM&^IMYEWHG-~r)6FzKb1br;hkAXx># z9>DZ{)Rhl+sOVpkqVHw9|LuL9TGt`q{2FWbk7}ZIV}j^4$HftIfX!|Y4GP~*_sx`7 zJ7q2LfmOyV4@nB#yyj*WyeKL9RZ;0`*mmCW+|Eff7Eg`L4X>)%Q(wK~{?IlLTIiD_ zYRyk7Bm0FxA1DugR!Fx;1A*`4#ZEGzQBRO^0_M3Uc2Ru%>x#IVzg6^$mLd>!LbP8a z)};NoC7$#=*y!Icw~OSgUt40=gV*o&9^ca# z6{_1Co7%mi$U$SC9jF>3``;2(_m^A0J{~l6SbVl;Roh`QEIohrgx!i&0qZLFPJ4!D zNr(aDfdH^4Tl*DE`r1J10#8JY$Uk?@blhDotw!E8t%K-1jt0wJo8W&<*WW7ochTWR zRXga7>$K{v!Bv5@_~3C~L~j-{-;Dm_sDB zXzys?_TwLl-Gc^w-6nm+9+}UE8=ow_^Xwf{9nQF^I3e{+T`|~jS>u@=j5$2%b* zp->p&6h)ivtn2oY$l%Gu#-#(pqJixJY~EP=gIYnYoy;s!XezDDvE0RCln%dp%fy=p zace6wtuMUxTfw})HEwhNp~_%%MS|2RLl`SmOdO1LWs^9mr-W8UE$7st#qr&-HJ52_ zR4kIYXJp34;RjlGjbp-;SVD_nMK{1=hoO%veFJBOO4t18hlTZP?sXvZeu;Cwr_cFk z$a@sWU{mzPl-Mh4uX`Hz4`3tGncH=)MX-8?i#s9NjCo7d&L<^E|Jv(HO-L~Hg1-(@ zIyAhK+A7lpl)WbG+0`E%(yoIfy8=In{tUEvs%Hb&?cDxr;y&M#ouZ*0hF z+h#4%Wo-WE+E&ie6uix*N8L^(n11(oOd$zlgp$HWBCZs3r@}`QrDS$slrh&Om zkjp2m8M^wdeSTl{V_AyV3q>VUD{{HFd~H0KtEmxBAqV zpi^Do8!s#vC>9<0bOK^ehBQ7db83Z)}q(`s}P&e0J^{D39iz;>h5HwP<6L@hbjwYpA zw|YU$ZIGSbQ6POpIWai}WDw<<$Rk0_ezT6ND9{tIiUGi+snK4*NT%kE_29YD?-ryN zbrq-5D0HM54uW zptzf7v}dBy)%-W==t+Z234-2B7YF5H`C55Y92Ptr8xFyi(4d5b1qWX_fwns~wpT5e zStZ?y0LG2Ldr~7zIjWWI3wzM+;2}{?Ylm%>^a7y0X)DqDErvfqi|!k6AR*2QMWO;; zmdO%_&wAd(honHhbJR(^=eXp_wj3Vq53vWpkHls*SW0DNkQ}mi(QG*r6JKufD*~@t zG3?BLoO=SQ%o#b?yj?J6F;QJndel7qq;-CNy0W_Z&466<6*ic3Ni>7YDhuVfER*c! z=8w!w8x)8O;v&d}{vf;oF$6Q%8|>`4=DN(TO`Gp6nc=wK5;#2GpPxgcSQ= z2xKn*w*OPUE>tui5iBWg_yR)Ya3EO`AmWB5uPEsTrup*Oq`@zek1l;rrefu$ZTFNx zi)dRK?@f|6n^YxlZhu(;MNRNkEaeYzX^!ur<@jtyko*pb8pPKJlnKwzXFg|;UG&fm z>)IX+^Mo$iY`?HKjjnFecMqtHB~A}S03~?z^>4wV6qVL4gZT0pk3{Mc46Z-^Ap9wO zjUD2u$V@BmW{QHd<&3TpK38kRzH6fD#E%QlD^0kM}l&+j7VpCm?vSX^MkYGeq#dK1S3m<+m=w)FR0Hh>K*rg*mF zSeFg?apk8zxV?i(fwnmvY58s{#eL@*K={^y&k zp9kV0`Vr|oW9P|poCoTiI0~1Tsk2?UWVbR^f@11urzT(~_E~_yY1>p_V5q~i9#N>! zPk5U#tJFGf=!M&PCK9$WKF1xrG#xV;wBW3Sevid5Az;!A&L(nKXY1-@oKmfEFxx$E zRFq2?wps)xlfl4hDAPM@c~f6eu`rN<7!6_ANL{nI!6t5`oX1}$E|$~#E8`@VSPuJT z=k(9xzlFn?Es6?PzJD&GPz=U=TFabTUBYIg#M>^$jTcKJ%x%7w-WU3_^}?r=*sl`r z!s{Eq$C;La=S7bia1O{F{t%~pMm3w=KPkS+>y(5(fdk8nbR$bcqrgJe-Z%5G-&j0@ zy;qhi=Vcal&p-?0Sva9!M`zK6<+PY*-!pU=YiZqMq9UA_u_&u!cbj2uQ60ZsZ_}(d zW*sw5gtWG}IG{X<|4uCpjORL;I#@d2-M@27FQY~Cdit43^*1ufDa;suQnqZm<=0Yv zt32%5OQ|J;*TrVJ(aKgA98DviMf z)@7`CmRakrvR(~A!FZ#sms;IS>8QJPwKe6MA|4K;jZeY=N@O8!zoM!%F`rjIXSkdA z{f^t1#0(ES&aBg)8-R&W+b#gV6l?{cN$(}Fz+oq|W)Xy*I+)XB)>o<3yC=)wEe&G1 z?UUK#`CRC)I;vl4p{&O}R!g#|Fwv=a%8rF%bP6zg!<_Sy7*^gROpo9ZNM7f(P4eez zvUk>v+#yZ6o?2i9v8+;u+{#*b*MwzXr|i7{RV(D;|Dad2X#0di?>}sOcH7Pl)8FZ$ zq_hu&I#O>6lznp77?YHi>^`GRU)(yqq4>VY(-nGGYMY}3y$A)m8znu^xt76%X{-F{ z7!Am;?381VVcssYtEG^wtNVEcUmUu;d4R(sf-nki^EH;+@LpI`N&WxMI~VlV zKj|zKoyI6qCDTN=bjDZ}ZbdIW>KYm%3I{zlv(;2dJ(6YJTfJ%#cj~(xX~UlHH($ulfAI1sy+??s(>@g|yn z$OpqXM_2JVhdWVgi`fpdouT!uWaFw)cNM5^ZAQx|^P5>`M~aGe`tD~qix=eNC%)f z|2^$)cKEx?altq7M!M1nl+As!*xsvD8JqT0?OX81waHX32-;yL7y}##K+OBQ!P!A> zW65rMJbL?z9CNP9(UxCOm5T#t-#v8Szvta9mYAq(4T?b_@Gli8q%sorRyh-wPL;u` z8RD|Pbuw^G-lrCntxfY8;rGA+SK6q+Eb)p6cVlJE^%+eIE(ZXK<&*5jm>bS-cWr(m z3l)TNF3$I_2UYs3eJ^ ze7+F7BLZ(R1EP%LVk-)PTlf&nD{KACa3E353NQUj?VZj>7Pn65!G-4&e{Uh^!pp%Z z&l`hVZ*ya3>oWI(uNHXrqape@BL`EGpbrvhFf=qQt>j0oG>(P!stCZ&6YjVH!E9`d z(aYj0vVdkm(B72e>z!x+Tf&xp3WMUeJLsXY{IOYwL=e$&ZRl zGx*%I1M%u|MkR)0SAiS|5WEPEP@Ly8)H8xXTXg2!82pGv|Hj&tm`TQ+U+Rr5PVl>m zMW0b>xs=OFFYGcI+%L#=?x=vdDv5lJ50vwz_!N!7+=BaKm|TZ<%l3+%DgiHfV6)W~ z4kcehn9HO2jEt}&TwLN$)MMmL%~NR?|BXz}sSMmv9% z%LQNh61Oi*HQ#<_W$Wgh-jka%0%#8)R0dDOZm|j&*)mJs*>4N4TVRmGHdGLezKzL`&7*X{5E9l&9sN5U#LK%>c7gUzS!+{Y9dZSX)r)xkJB9M#<%rvS zqx;n=)3ICm@{}%}^3Q2F@@UZv`$bI~BuAhR(_~H6&fm-=t&Ndd#e=(&@=9=ITTlbV zVkh#0q(pUjNWjW8en#v=$t0aSX?XBahDRvn%^>Xa#_uI|T3p$}fVNw^tyn~ClLuVK z_h|Fww-g>9Er6`>pk2fK-!Fq-44&^&8wRX3?h$Sqwtm3-AxfDXbMO_VDkSr59Y*UC z&B@qZ_@PM9%nyqeUOpeQ=6-$)*_AUFUXl(FVRLD;3!LmbfKhk)^4ysPnojlBZ=3R3 ztiriJ)^FdSZwVIr^f(eSo*+-Y#%q8GF{kJ4#*%cT^$^4CGaaFvN!BdyKT%mK(ZDcb l-~S@d{67V!s_O9W8}Cu2zMzSc6M2d0hLMF~k-lr>{{bSmFS7su diff --git a/data/core/images/terrain/castle/winter-orcish/keep-convex-r.png b/data/core/images/terrain/castle/winter-orcish/keep-convex-r.png index fc3220cb753573c27f3ee91c975333a8f8bf6109..9987ac56bd5e1621e1f9db06bb8c001965a0d10e 100644 GIT binary patch literal 7178 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 M07*qoM6N<$f@#5;d;kCd literal 7070 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 diff --git a/data/core/images/terrain/castle/winter-orcish/keep-convex-tl.png b/data/core/images/terrain/castle/winter-orcish/keep-convex-tl.png index 099cc6226e1b6cf01940451497405a04a0250fab..09197e7dc9d1ff24a79f2b9f988413a9e0874832 100644 GIT binary patch literal 5653 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 literal 5394 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 GA^!sauY9xs diff --git a/data/core/images/terrain/castle/winter-orcish/keep-convex-tr.png b/data/core/images/terrain/castle/winter-orcish/keep-convex-tr.png index d53153419d8166d7d89187f4206a520771e0b116..38030b412130c8edc69fad365d151e7586f9252c 100644 GIT binary patch literal 4540 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 AJpcdz diff --git a/data/core/images/terrain/castle/winter-orcish/keep-fort-convex-br.png b/data/core/images/terrain/castle/winter-orcish/keep-fort-convex-br.png index 9cd222da00a227123472efba9fe6a93b8cec4067..32439ae467d54831b89d5ae30d9e6e5aa723f920 100644 GIT binary patch literal 7025 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 diff --git a/data/core/images/terrain/castle/winter-orcish/keep.png b/data/core/images/terrain/castle/winter-orcish/keep.png index c525ba6aa8c29f63df034e16707548c11fd4b57d..fe2d0dcc32a138f2be2b764757b539c7526aee77 100644 GIT binary patch literal 8801 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 XhDbA_3F^Q{00000NkvXXu0mjfWVJL2 literal 8912 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 Date: Mon, 30 Mar 2015 20:03:24 +1100 Subject: [PATCH 09/25] NR S6a: reduce gobo knight spawns from 42 to 36 and bonus gold from 2k to 1.5k --- .../Northern_Rebirth/scenarios/06a_Old_Friend.cfg | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/data/campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg b/data/campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg index b6960cf4336b..c8345f777dcf 100644 --- a/data/campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg +++ b/data/campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg @@ -312,11 +312,7 @@ message= _ "So! Your forces are managing to advance upon me, are they? Very impressive, but it shall do you no good. KNIGHTS!!" [/message] - # Place 42 Goblin Knights. Yes. Forty-two. - {NOTRAIT_UNIT 2 "Goblin Knight" 15 17} - {NOTRAIT_UNIT 2 "Goblin Knight" 15 17} - {NOTRAIT_UNIT 2 "Goblin Knight" 15 17} - {NOTRAIT_UNIT 2 "Goblin Knight" 15 17} + # Place 36 Goblin Knights. Yes. Thirty-six. {NOTRAIT_UNIT 2 "Goblin Knight" 15 17} {NOTRAIT_UNIT 2 "Goblin Knight" 15 17} {NOTRAIT_UNIT 2 "Goblin Knight" 15 17} @@ -348,8 +344,6 @@ {NOTRAIT_UNIT 2 "Goblin Knight" 26 22} {NOTRAIT_UNIT 2 "Goblin Knight" 26 22} {NOTRAIT_UNIT 2 "Goblin Knight" 26 22} - {NOTRAIT_UNIT 2 "Goblin Knight" 26 22} - {NOTRAIT_UNIT 2 "Goblin Knight" 25 26} {NOTRAIT_UNIT 2 "Goblin Knight" 25 26} {NOTRAIT_UNIT 2 "Goblin Knight" 25 26} {NOTRAIT_UNIT 2 "Goblin Knight" 25 26} @@ -396,11 +390,11 @@ message= _ "Oooooooh! Time to start the fun!" [/message] - # And give bad guys 2000 gold each for a good measure. Yes, + # And give bad guys 1500 gold each for a good measure. Yes, # Taurus is a sadist. [gold] side=2,3,4 - amount=2000 + amount=1500 [/gold] [message] From 0f2c969efc19d90543cc36785b6f771ad43a952f Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Mon, 30 Mar 2015 20:00:39 +1100 Subject: [PATCH 10/25] NR S5a_01: use stores loc for tallin's initial MUF --- .../Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg b/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg index 6351e7b52ebd..9e1e98620b74 100644 --- a/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg +++ b/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg @@ -313,8 +313,8 @@ [move_unit_fake] type=$tallin_store.type side=1 - x=20,20 - y=40,39 + x=20,$tallin_store.x + y=40,$tallin_store.y [/move_unit_fake] [unhide_unit] From 4118ddaa9c5d80c7cdcf635e4094b510cf4da794 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Mon, 30 Mar 2015 20:38:05 +1100 Subject: [PATCH 11/25] NR S4: re-added a 4 necrophage/ghoul spawns --- .../scenarios/04_Clearing_the_Mines.cfg | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/data/campaigns/Northern_Rebirth/scenarios/04_Clearing_the_Mines.cfg b/data/campaigns/Northern_Rebirth/scenarios/04_Clearing_the_Mines.cfg index a0b6aa8f72c1..225c2376c099 100644 --- a/data/campaigns/Northern_Rebirth/scenarios/04_Clearing_the_Mines.cfg +++ b/data/campaigns/Northern_Rebirth/scenarios/04_Clearing_the_Mines.cfg @@ -518,18 +518,22 @@ [event] name=turn 21 - {NOTRAIT_UNIT 2 Ghoul 16 10} + {NOTRAIT_UNIT 2 Ghoul 15 11} {NOTRAIT_UNIT 2 Ghoul 20 9} + {NOTRAIT_UNIT 2 Ghoul 28 10} + {NOTRAIT_UNIT 2 Ghoul 25 9} {NOTRAIT_UNIT 2 Ghoul 25 11} {NOTRAIT_UNIT 2 Ghoul 27 12} {NOTRAIT_UNIT 2 Ghoul 26 15} {NOTRAIT_UNIT 2 Ghoul 29 16} {NOTRAIT_UNIT 2 Ghoul 28 18} {NOTRAIT_UNIT 2 Ghoul 27 7} - {NOTRAIT_UNIT 2 Necrophage 18 10} - {NOTRAIT_UNIT 2 Necrophage 22 10} + {NOTRAIT_UNIT 2 Necrophage 16 9} + {NOTRAIT_UNIT 2 Necrophage 23 10} {NOTRAIT_UNIT 2 Necrophage 26 8} {NOTRAIT_UNIT 2 Necrophage 28 14} + {NOTRAIT_UNIT 2 Necrophage 26 13} + {NOTRAIT_UNIT 2 Necrophage 26 17} {NOTRAIT_UNIT 2 Necrophage 26 21} {NOTRAIT_UNIT 2 Necrophage 25 8} From 9904bb1f58ec338257fc2deb7c5c154eba342bd4 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Mon, 30 Mar 2015 21:03:53 +1100 Subject: [PATCH 12/25] NR S1: reduced number of villages and did some minor map tweaks --- .../maps/01_Breaking_the_Chains.map | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/data/campaigns/Northern_Rebirth/maps/01_Breaking_the_Chains.map b/data/campaigns/Northern_Rebirth/maps/01_Breaking_the_Chains.map index 43deb575fa4b..efc373d0e065 100644 --- a/data/campaigns/Northern_Rebirth/maps/01_Breaking_the_Chains.map +++ b/data/campaigns/Northern_Rebirth/maps/01_Breaking_the_Chains.map @@ -1,37 +1,37 @@ Mm, Mm, Mm, Mm^Xm, Mm^Xm, Mm^Xm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Gs^Fp, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Hh, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm^Xm, Mm^Xm, Mm^Xm, Mm^Xm Mm, Mm, Mm, Mm^Xm, Mm^Xm, Mm^Xm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Gs^Fp, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Hh, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm^Xm, Mm^Xm, Mm^Xm, Mm^Xm -Mm, Mm, Mm, Mm^Xm, Mm^Xm, Mm^Xm, Mm, Mm, Mm, Hh^Vhh, Mm, Mm, Hh, Gs^Fp, Gs^Fp, Mm, Hh^Emf, Mm, Hh, Mm, Gs^Fp, Gs^Fp, Mm, Mm, Mm, Mm, Hh, Mm, Hh, Mm, Hh^Vhh, Mm, Mm, Mm, Mm^Xm, Mm^Xm, Mm^Xm -Mm, Mm, Mm^Xm, Mm, Mm, Mm, Hh^Vhh, Mm, Mm, Hh^Emf, Hh, Mm, Hh^Vhh, Gs^Fp, Mm, Gs^Fp, Hh^Vhh, Hh, Hh, Mm, Gs^Fp, Gs^Fp, Hh, Hh, Hh, Mm, Hh^Emf, Hh, Hh, Hh^Emf, Mm, Mm, Mm, Mm, Mm, Mm, Mm -Mm, Mm, Mm^Xm, Mm^Xm, Mm^Xm, Mm, Mm, Hh^Emf, Hh, Gs^Fp, Hh, Hh^Emf, Hh, Mm, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp, Hh^Emf, Hh^Emf, Re, Hh, Gg^Es, Mm, Gg, Hh, Hh^Emf, Hh^Vhh, Hh, Hh, Gg, Mm, Mm, Mm, Mm, Mm, Mm -Mm, Mm, Mm, Mm, Mm, Mm, Mm, Hh, Gs^Fms, Gs^Fms, Gs^Fp, Gs^Fp, Ch, Re, Gs^Fms, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp, Hh^Vhh, Gs^Fp, Gg, Gg, Gg, Re^Gvs, Hh, Gg, Hh^Emf, Hh, Rd, Re, Re, Mm, Mm, Mm, Mm, Mm -Mm, Mm, Mm, Mm, Gs^Fp, Mm, Mm, Hh, Hh, Gs^Fp, Ch, Ch, Ch, Re, Gs^Fp, Gs^Fp, Gs^Fms, Gs^Fms, Gs^Fp, Gs^Fp, Gs^Fms, Gg, Gg, Gg^Vh, Re^Gvs, Re^Gvs, Gg, Chr, Chr, Re, Kh, Hh, Hh, Mm, Mm, Mm, Mm -Mm, Mm, Mm, Hh, Gs^Fp, Mm, Gs^Fp, Gg^Vh, Gs^Fp, Re, Ch, 2 Kh, Ch, Gs^Fp, Gs^Fms, Re, Gs^Fp, Gs^Fms, Gll^Fp, Gs^Fms, Gg^Es, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Rd, Rd, Chr, Hh, Mm, Hh, Mm, Mm, Mm -Mm, Mm, Mm, Mm, Hh, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp, Ch, Gs^Fp, Ch, Ch, Gs^Fp, Re, Re, Gs^Fp, Gs^Fms, Gg, Gg, Gg, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re, Gg, Gg, Gg, Hh, Hh, Mm, Mm, Mm, Mm -Mm, Mm, Mm, Hh^Vhh, Hh^Emf, Hh, Hh, Gs^Fms, Gs^Fp, Gs^Fp, Gs^Fms, Gs^Fp, Gs^Fms, Gs^Fp, Rd, Gs^Fp, Re^Gvs, Rd, Rd, Re^Gvs, Re^Gvs, Gg, Gg^Es, Gg, Rd, Re, Rd, Rd, Gg, Gg^Vh, Hh, Gg, Hh, Hh, Mm, Mm, Mm -Mm, Mm, Hh, Hh^Emf, Gg, Hh, Gs^Fp, Gg^Vh, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fms, Gg^Vh, Gs^Fp, Rd, Re^Gvs, Re^Gvs, Re^Gvs, Gg^Vh, Re^Gvs, Gg, Gg^Es, Rd, Rd, Gg^Vh, Rd, Gs^Fp, Re, Gg, Gg, Hh, Hh, Mm, Hh, Mm, Mm, Mm -Hh, Hh, Hh, Hh, Mm, Gg, Gg, Gs^Fp, Gg, Gs^Fms, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp, Re, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Rd, Re, Re, Re^Gvs, Gg, Re^Gvs, Gs^Fp, Gs^Fms, Gg, Gg, Hh, Hh, Hh, Mm, Hh, Mm, Mm, Mm -Hh, Hh, Hh, Mm, Gs^Fp, Gg, Gg, Gg^Es, Gg, Gg, Rd, Gg, Rd, Gs^Fp, Re, Re^Gvs, Re^Gvs, Gg, Chr, Rd, Gg^Vh, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Gs^Fp, Gg, Gg, Re^Gvs, Hh, Hh, Hh, Mm, Mm, Mm, Mm, Mm -Hh, Hh, Gs^Fp, Gs^Fp, Gs^Fp, Gg, Gg^Vh, Gg, Re, Rd, Gg^Vh, Re, Gg, Re, Gg^Vh, Re^Gvs, Re^Gvs, Re, Re, Chr, Rd, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Gs^Fp, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Gg, Hh, Mm, Mm, Mm -Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp, Hh, Gg, Re, Re, Gg, Gg, Gs^Fp, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Gg^Wm, Re^Gvs, Re, Chr, Re, Kh, Rd, Re, Re^Gvs, Re, Gg, Gg, Gg, Gg, Gg, Gg^Vh, Gg, Hh, Hh^Emf, Hh^Vhh, Mm, Mm -Gg, Gg, Gs^Fp, Mm, Hh, Gg^Es, Re, Re^Gvs, Re^Gvs, Gg^Es, Gs^Fp, Gs^Fp, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Re, Re, Chr, Gg, Gg, Gg, Rd, Re, Gg, Gg, Gg^Es, Gg, Gg, Gg, Hh, Hh, Hh^Emf, Hh, Mm, Mm -Gg, Gg, Gg^Es, Gg, Gg^Vh, Rd, Re^Gvs, Re^Gvs, Gg, Gs^Fp, Gs^Fp, Gs^Fms, Gs^Fp, Gg, Gg, Gg^Es, Rd, Rd, Gg, Gg, Gg, Gg, Gg, Gg^Vh, Re, Gg, Re^Gvs, Gg^Vh, Re^Gvs, Re^Gvs, Hh, Hh, Gg, Hh, Hh, Hh, Hh -Re, Re, Re^Gvs, Re^Gvs, Gs, Rd, Re, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Gs^Fp, Rd, Gg, Gg, Gg, Re^Gvs, Gg, Gg, Gg, Gs^Fp, Gs^Fms, Gs^Fp, Rd, Gg, Gg^Es, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Hh, Ce, Hh, Gg, Hh, Hh -Rd, Rd, Rd, Re^Gvs, Chr, Rd, Rd, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Re^Gvs, Rd, Gg, Gs^Fp, Re^Gvs, Re^Gvs, Gg, Re^Gvs, Gg^Vh, Gll^Fp, Gs^Fp, Gs^Fp, Rd, Gg, Re^Gvs, Gg, Re^Gvs, Rd, Re, Rd, Ce, 3 Ke, Ce, Rd, Rd, Rd -Hh, Hh^Emf, Hh^Vhh, Chr, Kh, Chr, Gg, Re, Gg, Gg^Vh, Rd, Rd, Gs^Fms, Gs^Fp, Gll^Fp, Gs^Fp, Re^Gvs, Re^Gvs, Gg, Gs^Fms, Gll^Fp, Gs^Fms, Gs^Fp, Rd, Rd, Gg, Gg, Gg, Rd, Gg^Vh, Gg, Ce, Ce, Ce, Gg, Gg, Gg -Mm, Mm, Hh, Hh, Mm, Chr, Hh, Gg, Gg^Es, Gg, Rd, Gll^Fp, Gll^Fp, Gs^Fp, Gs^Fms, Gg, Rd, Re^Gvs, Gg, Gg, Rd, Gs^Fms, Re^Gvs, Re^Gvs, Gg, Rd, Re, Rd, Re, Gg, Gs^Fp, Gs^Fp, Gs^Fp, Gg, Hh^Emf, Hh^Vhh, Gg -Mm, Mm, Hh, Mm, Mm, Hh, Hh^Vhh, Hh^Emf, Gg, Gg, Rd, Gs^Fp, Gg^Vh, Gll^Fp, Gg^Es, Gg, Rd, Gg^Es, Gs, Rd, Gg, Rd, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Rd, Re, Gg, Gs^Fp, Gs^Fp, Gs^Fp, Hh, Hh, Mm, Hh, Hh -Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Gg, Rd, Re^Gvs, Gg, Re^Gvs, Gg^Wm, Gg, Gg, Rd, Gg, Rd, Rd, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Re, Rd, Gg, Gg, Gs^Fp, Gg^Vh, Gs^Fp, Hh, Hh^Vhh, Hh^Emf, Mm, Mm, Mm -Mm^Xm, Mm^Xm, Mm^Xm, Mm^Xm, Mm, Mm, Mm, Hh, Hh, Rd, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Re^Gvs, Gg^Vh, Gg, Rd, Gg, Gg, Gg, Gg, Gll^Fp, Gg, Re, Gg^Vh, Gg, Gg^Es, Gs^Fp, Gs^Fp, Hh, Hh, Mm, Mm, Mm, Mm, Mm -Mm^Xm, Mm^Xm, Mm, Mm, Mm, Mm, Chr, Ch, Gll^Fp, Rd, Rd, Re^Gvs, Gg^Vh, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Rd, Re, Gg, Gll^Fp, Gs^Fp, Gs^Fp, Gg, Re, Re^Gvs, Re^Gvs, Gg, Gs^Fp, Chr, Chr, Hh, Mm, Mm, Mm, Mm, Mm -Mm, Mm, Mm, Mm, Gll^Fp, Ch, 1 Kh, Hh^Fp, Gll^Fp, Gll^Fp, Re, Gg, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Rd, Re^Gvs, Re, Gg, Gg^Vh, Gs^Fp, Gll^Fp, Gg, Re, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Hh, Chr, Kh, Mm, Mm, Mm, Mm^Xm, Mm^Xm -Mm, Mm, Mm, Hh^Vhh, Gs^Fms, Ch, Chr, Gs^Fms, Gs^Fms, Gg, Re, Gg, Gs^Fp, Gs^Fp, Gs^Fp, Re^Gvs, Re^Gvs, Rd, Rd, Gg, Gg^Es, Gs^Fp, Gs^Fp, Gg^Vh, Re, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Hh^Vhh, Chr, Mm, Mm, Mm, Mm, Mm^Xm, Mm^Xm -Mm, Mm, Mm, Mm, Hh, Gll^Fp, Gs^Fms, Gs^Fms, Gg^Vh, Rd, Re^Gvs, Gg, Gs^Fp, Gll^Fp, Gs^Fp, Gs^Fp, Re^Gvs, Re^Gvs, Rd, Gg, Gg, Gg, Gs^Fp, Gg, Rd, Gg, Gg, Gg, Gg^Es, Hh^Emf, Hh, Hh, Mm, Mm, Mm, Mm^Xm, Mm^Xm +Mm, Mm, Mm, Mm^Xm, Mm^Xm, Mm^Xm, Mm, Mm, Mm, Hh^Vhh, Mm, Mm, Hh, Hh^Fp, Hh^Fp, Mm, Hh^Emf, Mm, Hh, Mm, Gs^Fp, Gs^Fp, Mm, Mm, Mm, Mm, Hh, Mm, Hh, Mm, Hh^Vhh, Mm, Mm, Mm, Mm^Xm, Mm^Xm, Mm^Xm +Mm, Mm, Mm^Xm, Mm, Mm, Mm, Hh, Mm, Mm, Hh^Emf, Hh, Mm, Hh^Vhh, Hh^Fp, Mm, Gs^Fp, Hh, Hh, Hh, Mm, Gs^Fp, Gs^Fp, Hh, Hh, Hh, Mm, Hh^Emf, Hh, Hh, Hh^Emf, Mm, Mm, Mm, Mm, Mm, Mm, Mm +Mm, Mm, Mm^Xm, Mm^Xm, Mm^Xm, Mm, Mm, Hh^Emf, Hh, Hh^Fp, Hh, Hh^Emf, Hh, Mm, Gs^Fp, Gs^Fp, Gll^Fp, Gs^Fp, Hh^Emf, Hh^Emf, Re, Hh, Gg^Es, Mm, Gg, Hh, Hh^Emf, Hh^Vhh, Hh, Hh, Gg, Mm, Mm, Mm, Mm, Mm, Mm +Mm, Mm, Mm, Mm, Mm, Mm, Mm, Hh, Hh^Fms, Hh^Fms, Gs^Fp, Gs^Fp, Ch, Re, Gs^Fms, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Hh^Vhh, Gs^Fp, Gg, Gg, Gg, Re^Gvs, Hh, Gg, Hh^Emf, Hh, Rd, Re, Re, Mm, Mm, Mm, Mm, Mm +Mm, Mm, Mm, Mm, Hh^Fp, Mm, Mm, Hh, Hh, Gs^Fp, Ch, Ch, Ch, Re, Gll^Fp, Gll^Fp, Gll^Fms, Gll^Fms, Gll^Fp, Gs^Fp, Gs^Fms, Gg, Gg, Gg^Vh, Re^Gvs, Re^Gvs, Gg, Chr, Chr, Re, Kh, Hh, Hh, Mm, Mm, Mm, Mm +Mm, Mm, Mm, Hh, Hh^Fp, Mm, Gs^Fp, Gg^Vh, Gs^Fp, Re, Ch, 2 Kh, Ch, Gs^Fp, Gs^Fms, Re, Gs^Fp, Gll^Fms, Gll^Fp, Gs^Fms, Gg^Es, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Rd, Rd, Chr, Hh, Mm, Hh, Mm, Mm, Mm +Mm, Mm, Mm, Mm, Hh, Gs^Fp, Gll^Fp, Gll^Fp, Gs^Fp, Ch, Gll^Fp, Ch, Ch, Gs^Fp, Re, Re, Gs^Fp, Gs^Fms, Gg, Gg, Gg, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re, Gg, Gg, Gg, Hh, Hh, Mm, Mm, Mm, Mm +Mm, Mm, Mm, Hh^Vhh, Hh^Emf, Hh, Hh, Gs^Fms, Gs^Fp, Gll^Fp, Gll^Fms, Gll^Fp, Gs^Fms, Gs^Fp, Rd, Gs^Fp, Re^Gvs, Rd, Rd, Re^Gvs, Re^Gvs, Gg, Gg^Es, Gg, Rd, Re, Rd, Rd, Gg, Gg^Vh, Hh, Gg, Hh, Hh, Mm, Mm, Mm +Mm, Mm, Hh, Hh^Emf, Gg, Hh, Gs^Fp, Gg^Vh, Gs^Fp, Gs^Fp, Gll^Fp, Gll^Fms, Gll^Fp, Gll^Fp, Rd, Re^Gvs, Re^Gvs, Re^Gvs, Gg^Vh, Re^Gvs, Gg, Gg^Es, Rd, Rd, Gg^Vh, Rd, Gs^Fp, Re, Gg, Gg, Hh, Hh, Mm, Hh, Mm, Mm, Mm +Hh, Hh, Hh, Hh, Mm, Gg, Gg, Gs^Fp, Gg, Gs^Fms, Gll^Fp, Gll^Fp, Gll^Fp, Gll^Fp, Re, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Rd, Re, Re, Re^Gvs, Gg, Re^Gvs, Gs^Fp, Gs^Fms, Gg, Gg, Hh, Hh, Hh, Mm, Hh, Mm, Mm, Mm +Hh, Hh, Hh^Fp, Mm, Gs^Fp, Gg, Gg, Gg^Es, Gg, Gg, Rd, Gg, Rd, Gs^Fp, Re, Re^Gvs, Re^Gvs, Gg, Chr, Rd, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Gs^Fp, Gg, Gg, Re^Gvs, Hh, Hh, Hh, Mm, Mm, Mm, Mm, Mm +Hh, Hh^Fp, Hh^Fp, Hh^Fp, Gs^Fp, Gg, Gg^Vh, Gg, Re, Rd, Gg, Re, Gg, Re, Gg^Vh, Re^Gvs, Re^Gvs, Re, Re, Chr, Rd, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Gs^Fp, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Gg, Hh, Mm, Mm, Mm +Gs^Fp, Gs^Fp, Gll^Fp, Gll^Fp, Hh, Gg, Re, Re, Gg, Gg, Gll^Fp, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Gg^Wm, Re^Gvs, Re, Chr, Re, Kh, Rd, Re, Re^Gvs, Re, Gg, Gg, Gg, Gg, Gg, Gg^Vh, Gg, Hh, Hh^Emf, Hh^Vhh, Mm, Mm +Gg, Gg, Gs^Fp, Mm, Hh, Gg^Es, Re, Re^Gvs, Re^Gvs, Gg^Es, Gll^Fp, Gs^Fp, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Re, Re, Chr, Gg, Gg, Gg, Rd, Re, Gg, Gg, Gg^Es, Gg, Gg, Gg, Hh, Hh, Hh^Emf, Hh, Mm, Mm +Gg, Gg, Gg^Es, Gg, Gg^Vh, Rd, Re^Gvs, Re^Gvs, Gg, Gs^Fp, Gs^Fp, Gs^Fms, Gs^Fp, Gg, Gg, Gg^Es, Rd, Rd, Gg, Gg, Gg, Gg, Gg, Gg^Vh, Re, Gg, Re^Gvs, Gg, Re^Gvs, Re^Gvs, Hh, Hh, Gg, Hh, Hh, Hh, Hh +Re, Re, Re^Gvs, Re^Gvs, Gs, Rd, Re, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Gs^Fp, Rd, Gg, Gg, Gg, Re^Gvs, Gg, Gg, Gg, Gs^Fp, Gs^Fms, Gll^Fp, Rd, Gg, Gg^Es, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Hh, Ce, Hh, Gg, Hh, Hh +Rd, Rd, Rd, Re^Gvs, Chr, Rd, Rd, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Re^Gvs, Rd, Gg, Gs^Fp, Re^Gvs, Re^Gvs, Gg, Re^Gvs, Gg^Vh, Gll^Fp, Gs^Fp, Gll^Fp, Rd, Gg, Re^Gvs, Gg, Re^Gvs, Rd, Re, Rd, Ce, 3 Ke, Ce, Rd, Rd, Rd +Hh, Hh^Emf, Hh^Vhh, Chr, Kh, Chr, Gg, Re, Gg, Gg^Vh, Rd, Rd, Gs^Fms, Gll^Fp, Gll^Fp, Gs^Fp, Re^Gvs, Re^Gvs, Gg, Gs^Fms, Gll^Fp, Gll^Fms, Gs^Fp, Rd, Rd, Gg, Gg, Gg, Rd, Gg^Vh, Gg, Ce, Ce, Ce, Gg, Gg, Gg +Mm, Mm, Hh, Hh, Mm, Chr, Hh, Gg, Gg^Es, Gg, Rd, Gll^Fp, Gll^Fp, Gll^Fp, Gs^Fms, Gg, Rd, Re^Gvs, Gg, Gg, Rd, Gll^Fms, Re^Gvs, Re^Gvs, Gg, Rd, Re, Rd, Re, Gg, Gs^Fp, Gs^Fp, Hh^Fp, Gg, Hh^Emf, Hh^Vhh, Gg +Mm, Mm, Hh, Mm, Mm, Hh, Hh^Vhh, Hh^Emf, Gg, Gg, Rd, Gs^Fp, Gg^Vh, Gll^Fp, Gg^Es, Gg, Rd, Gg^Es, Gs, Rd, Gg, Rd, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Rd, Re, Gg, Gs^Fp, Gs^Fp, Hh^Fp, Hh, Hh, Mm, Hh, Hh +Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Gg, Rd, Re^Gvs, Gg, Re^Gvs, Gg^Wm, Gg, Gg, Rd, Gg, Rd, Rd, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Re, Rd, Gg, Gg, Gs^Fp, Gg, Gs^Fp, Hh, Hh^Vhh, Hh^Emf, Mm, Mm, Mm +Mm^Xm, Mm^Xm, Mm^Xm, Mm^Xm, Mm, Mm, Mm, Hh, Hh, Rd, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Re^Gvs, Gg, Gg, Rd, Gg, Gg, Gg, Gg, Gll^Fp, Gg, Re, Gg^Vh, Gg, Gg^Es, Gs^Fp, Gs^Fp, Hh, Hh, Mm, Mm, Mm, Mm, Mm +Mm^Xm, Mm^Xm, Mm, Mm, Mm, Mm, Chr, Ch, Gll^Fp, Rd, Rd, Re^Gvs, Gg^Vh, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Rd, Re, Gg, Gll^Fp, Gs^Fp, Gll^Fp, Gg, Re, Re^Gvs, Re^Gvs, Gg, Gs^Fp, Chr, Chr, Hh, Mm, Mm, Mm, Mm, Mm +Mm, Mm, Mm, Mm, Hh^Fp, Ch, 1 Kh, Hh^Fp, Gll^Fp, Gll^Fp, Re, Gg, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Rd, Re^Gvs, Re, Gg, Gg^Vh, Gll^Fp, Gll^Fp, Gg, Re, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Hh, Chr, Kh, Mm, Mm, Mm, Mm^Xm, Mm^Xm +Mm, Mm, Mm, Hh^Vhh, Hh^Fms, Ch, Chr, Gs^Fms, Gs^Fms, Gg, Re, Gg, Gll^Fp, Gs^Fp, Gs^Fp, Re^Gvs, Re^Gvs, Rd, Rd, Gg, Gg^Es, Gll^Fp, Gll^Fp, Gg, Re, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Hh, Chr, Mm, Mm, Mm, Mm, Mm^Xm, Mm^Xm +Mm, Mm, Mm, Mm, Hh, Gll^Fp, Gs^Fms, Gs^Fms, Gg^Vh, Rd, Re^Gvs, Gg, Gll^Fp, Gll^Fp, Gs^Fp, Gs^Fp, Re^Gvs, Re^Gvs, Rd, Gg, Gg, Gg, Gs^Fp, Gg, Rd, Gg, Gg, Gg, Gg^Es, Hh^Emf, Hh, Hh, Mm, Mm, Mm, Mm^Xm, Mm^Xm Mm, Mm, Mm, Hh, Hh, Gll^Fp, Re^Gvs, Re^Gvs, Rd, Rd, Re^Gvs, Gg, Gg, Gs^Fp, Gg, Gg^Vh, Gg, Re^Gvs, Rd, Gg, Gg, Gg, Rd, Rd, Gg, Gg, Re^Gvs, Gg, Hh, Hh, Hh, Mm, Mm, Mm, Mm, Mm, Mm Mm, Mm, Hh, Hh, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Re, Re^Gvs, Rd, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg^Efm, Re, Re, Gg, Rd, Re^Gvs, Re^Gvs, Gg^Wm, Gg^Vh, Re^Gvs, Hh, Hh, Mm, Mm, Mm, Mm, Mm^Xm, Mm, Mm -Mm, Mm, Gg, Hh, Gg, Re^Gvs, Rd, Rd, Re, Re^Gvs, Gg, Re^Gvs, Re^Gvs, Gg, Re^Gvs, Gg^Es, Gg, Gg^Efm, Gg^Vh, Re, Rd, Re, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Gg^Efm, Re^Gvs, Mm, Hh, Hh, Mm, Mm^Xm, Mm^Xm, Mm, Mm, Mm +Mm, Mm, Gg, Hh, Gg, Re^Gvs, Rd, Rd, Re, Re^Gvs, Gg, Re^Gvs, Re^Gvs, Gg, Re^Gvs, Gg^Es, Gg, Gg^Efm, Gg, Re, Rd, Re, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Gg^Efm, Re^Gvs, Mm, Hh, Hh, Mm, Mm^Xm, Mm^Xm, Mm, Mm, Mm Gg, Gg, Gg^Vh, Gg, Re, Rd, Gg, Gg^Vh, Gs^Fp, Gg, Gs^Fp, Gg, Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Gg^Efm, Gs^Fp, Rd, Gg, Gg, Gg, Gg, Gg, Gg^Efm, Gg, Hh, Mm, Hh, Mm, Mm, Mm^Xm, Mm^Xm, Mm, Mm, Mm Rd, Rd, Rd, Re, Gg, Gg^Es, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp, Hh^Vhh, Hh^Emf, Re^Gvs, Re^Gvs, Gg, Gg, Gs^Fp, Gs^Fp, Rd, Gg, Gg^Vh, Gg^Es, Gg, Gg, Gg, Gg, Hh, Mm, Mm, Mm, Mm, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp -Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp, Hh, Hh^Emf, Hh, Hh, Mm, Hh^Vhh, Gg, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp, Gg, Gg, Gg, Hh^Vhh, Hh^Emf, Hh, Hh, Mm, Mm, Mm, Hh, Mm^Xm, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp -Re^Gvs, Re^Gvs, Re^Gvs, Gg, Gg, Gs^Fp, Hh, Gs^Fp, Gs^Fp, Hh, Mm, Hh, Mm, Mm, Hh, Gs^Fms, Gll^Fp, Gg, Gs^Fp, Gs^Fp, Re, Gs^Fp, Gs^Fp, Gg, Chr, Hh, Kh, Mm, Mm, Mm, Mm, Mm, Mm, Mm^Xm, Mm^Xm, Mm, Mm -Re^Gvs, Re^Gvs, Gg^Vh, Gg, Gg, Gs^Fp, Mm, Mm, Mm, Hh, Mm, Mm, Mm, Mm, Mm, Hh, Gs^Fms, Gll^Fp, Gs^Fp, Gs^Fp, Rd, Gs^Fp, Gs^Fp, Gg, Gg, Chr, Hh, Hh, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm +Re^Gvs, Re^Gvs, Re^Gvs, Re^Gvs, Gg, Gs^Fp, Gs^Fp, Gs^Fp, Hh^Fp, Gs^Fp, Hh, Hh^Emf, Hh, Hh, Mm, Hh, Gg, Gs^Fp, Gs^Fp, Gs^Fp, Gll^Fp, Gg, Gg, Gg, Hh^Vhh, Hh^Emf, Hh, Hh, Mm, Mm, Mm, Hh, Mm^Xm, Gs^Fp, Gs^Fp, Gs^Fp, Gs^Fp +Re^Gvs, Re^Gvs, Re^Gvs, Gg, Gg, Gs^Fp, Hh, Hh^Fp, Hh^Fp, Hh, Mm, Hh, Mm, Mm, Hh, Hh^Fms, Hh^Fp, Gs, Gll^Fp, Gll^Fp, Re, Gll^Fp, Gs^Fp, Gg, Chr, Hh, Kh, Mm, Mm, Mm, Mm, Mm, Mm, Mm^Xm, Mm^Xm, Mm, Mm +Re^Gvs, Re^Gvs, Gg^Vh, Gg, Gg, Gs^Fp, Mm, Mm, Mm, Hh, Mm, Mm, Mm, Mm, Mm, Hh, Hh^Fms, Gll^Fp, Gll^Fp, Gll^Fp, Rd, Gll^Fp, Gs^Fp, Gg, Gg, Chr, Hh, Hh, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm Re^Gvs, Re^Gvs, Gg, Gg, Gg, Gs^Fp, Mm, Mm, Mm, Hh, Mm, Mm, Mm, Mm, Mm, Hh, Chr, Gs^Fp, Gs^Fp, Gs^Fp, Rd, Gs^Fp, Gs^Fp, Gg, Gg, Hh, Hh, Hh, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm, Mm From d9a63b1c309728d434ce9f324b125012bd7bec5a Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Mon, 30 Mar 2015 21:54:38 +1100 Subject: [PATCH 13/25] Handle shroud last in [redraw] Previously, it was handled first, meaning any events fired by clearing shroud would fire before the screen was completely redrawn. --- src/scripting/game_lua_kernel.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/scripting/game_lua_kernel.cpp b/src/scripting/game_lua_kernel.cpp index 826b552b94a3..deb08584eea0 100644 --- a/src/scripting/game_lua_kernel.cpp +++ b/src/scripting/game_lua_kernel.cpp @@ -3501,6 +3501,11 @@ int game_lua_kernel::intf_redraw(lua_State *L) vconfig cfg(luaW_checkvconfig(L, 1)); bool clear_shroud(luaW_toboolean(L, 2)); + bool result = screen.maybe_rebuild(); + if (!result) { + screen.invalidate_all(); + } + if (clear_shroud) { side_filter filter(cfg, &game_state_); BOOST_FOREACH(const int side, filter.get_teams()){ @@ -3509,10 +3514,6 @@ int game_lua_kernel::intf_redraw(lua_State *L) screen.recalculate_minimap(); } - bool result = screen.maybe_rebuild(); - if (!result) { - screen.invalidate_all(); - } screen.draw(true,true); } return 0; From 48f11240b112caa519c23380b6b20723596ec85d Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Mon, 30 Mar 2015 22:19:37 +1100 Subject: [PATCH 14/25] Fixup d9a63b1c3097 Turns out we want to invalidate both before and after handling shroud --- src/scripting/game_lua_kernel.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/scripting/game_lua_kernel.cpp b/src/scripting/game_lua_kernel.cpp index deb08584eea0..6338cd41a659 100644 --- a/src/scripting/game_lua_kernel.cpp +++ b/src/scripting/game_lua_kernel.cpp @@ -3501,6 +3501,8 @@ int game_lua_kernel::intf_redraw(lua_State *L) vconfig cfg(luaW_checkvconfig(L, 1)); bool clear_shroud(luaW_toboolean(L, 2)); + // We do this twice so any applicable redraws happen both before and after + // any events caused by redrawing shroud are fired bool result = screen.maybe_rebuild(); if (!result) { screen.invalidate_all(); @@ -3514,6 +3516,11 @@ int game_lua_kernel::intf_redraw(lua_State *L) screen.recalculate_minimap(); } + result = screen.maybe_rebuild(); + if (!result) { + screen.invalidate_all(); + } + screen.draw(true,true); } return 0; From 244a3803c03019fb2c414db835131290277f24da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A4r=20Halberkamp?= Date: Mon, 30 Mar 2015 14:08:20 +0200 Subject: [PATCH 15/25] EI: Improved the bandit spawn code in S5 --- .../Eastern_Invasion/lua/bandits.lua | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/data/campaigns/Eastern_Invasion/lua/bandits.lua b/data/campaigns/Eastern_Invasion/lua/bandits.lua index a262f87bb497..4d737b943850 100644 --- a/data/campaigns/Eastern_Invasion/lua/bandits.lua +++ b/data/campaigns/Eastern_Invasion/lua/bandits.lua @@ -14,11 +14,7 @@ function wml_actions.spread_bandit_villages(cfg) wesnoth.set_variable("villages_visited", 0) wesnoth.set_variable("boss_found", false) - local i = 0 - for a in string.gmatch(types, "([^,]+)") do - wesnoth.set_variable("bandit_types["..i.."].value", a) - i = i + 1 - end + wesnoth.set_variable("bandit_types", types) local villages = wesnoth.get_villages(cfg) @@ -28,7 +24,7 @@ function wml_actions.spread_bandit_villages(cfg) local village_i for i = 0, (count - 1) do - village_i = helper.rand(1,#villages) + village_i = helper.rand("1.."..#villages) wesnoth.set_variable("bandit_villages["..i.."].x", villages[village_i][1]) wesnoth.set_variable("bandit_villages["..i.."].y", villages[village_i][2]) @@ -37,22 +33,22 @@ function wml_actions.spread_bandit_villages(cfg) end local function bandits_found(x,y) - local bandit_types = helper.get_variable_array("bandit_types") + local bandit_types = wesnoth.get_variable("bandit_types") local bandit_villages = helper.get_variable_array("bandit_villages") local boss_found = wesnoth.get_variable("boss_found") local visited = wesnoth.get_variable("villages_visited") local rand1 = helper.rand(3,4) - local rand2 = helper.rand(2,rand1) + local rand2 = helper.rand("2.."..rand1) for i=1,rand2 do local locs = wesnoth.get_locations({T["not"] { T.filter {} } , T["and"] { x = x, y = y, radius = 1 } }) if #locs == 0 then locs = wesnoth.get_locations({T["not"] { T.filter {} } , T["and"] { x = x, y = y, radius = 2 } }) end - local bandit = helper.rand(1,#bandit_types) - local loc_i = helper.rand(1, #locs) + local bandit = helper.rand(bandit_types) + local loc_i = helper.rand("1.."..#locs) - wml_actions.move_unit_fake({x = string.format("%d,%d", x, locs[loc_i][1]) , y = string.format("%d,%d", y, locs[loc_i][2]) , type = bandit_types[bandit].value , side = "4"}) - wesnoth.put_unit(locs[loc_i][1], locs[loc_i][2], { type = bandit_types[bandit].value , side = "4", random_traits = "yes", generate_name = "yes" , upkeep = "loyal" }) + wml_actions.move_unit_fake({x = string.format("%d,%d", x, locs[loc_i][1]), y = string.format("%d,%d", y, locs[loc_i][2]), type = bandit, side = "4"}) + wesnoth.put_unit(locs[loc_i][1], locs[loc_i][2], { type = bandit, side = "4", random_traits = "yes", generate_name = "yes", upkeep = "loyal" }) end if not boss_found and visited > 2 then From e232c79505ae03497eb44b089778b629aba8a0bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A4r=20Halberkamp?= Date: Mon, 30 Mar 2015 14:11:23 +0200 Subject: [PATCH 16/25] THoT: Rewrote the bandit spawns in lua --- .../The_Hammer_of_Thursagan/_main.cfg | 4 ++ .../The_Hammer_of_Thursagan/lua/spawns.lua | 25 +++++++++ .../scenarios/05_Invaders.cfg | 55 ++----------------- 3 files changed, 35 insertions(+), 49 deletions(-) create mode 100644 data/campaigns/The_Hammer_of_Thursagan/lua/spawns.lua diff --git a/data/campaigns/The_Hammer_of_Thursagan/_main.cfg b/data/campaigns/The_Hammer_of_Thursagan/_main.cfg index 8335084b8797..898ef87e277c 100644 --- a/data/campaigns/The_Hammer_of_Thursagan/_main.cfg +++ b/data/campaigns/The_Hammer_of_Thursagan/_main.cfg @@ -62,6 +62,10 @@ path=data/campaigns/The_Hammer_of_Thursagan/ [/binary_path] +[lua] + code="wesnoth.require 'campaigns/The_Hammer_of_Thursagan/lua/spawns.lua'" +[/lua] + {campaigns/The_Hammer_of_Thursagan/utils} [+units] diff --git a/data/campaigns/The_Hammer_of_Thursagan/lua/spawns.lua b/data/campaigns/The_Hammer_of_Thursagan/lua/spawns.lua new file mode 100644 index 000000000000..25bd314f2e3c --- /dev/null +++ b/data/campaigns/The_Hammer_of_Thursagan/lua/spawns.lua @@ -0,0 +1,25 @@ +-- Used for the bandit spawns in scenario 5 + +local helper = wesnoth.require "lua/helper.lua" +local wml_actions = wesnoth.wml_actions +local T = helper.set_wml_tag_metatable {} + +function wml_actions.spawn_units(cfg) + local x = cfg.x or helper.wml_error("[spawn_units] missing required x= attribute.") + local y = cfg.y or helper.wml_error("[spawn_units] missing required y= attribute.") + local types = cfg.types or helper.wml_error("[spawn_units] missing required types= attribute.") + local count = cfg.count or helper.wml_error("[spawn_units] missing required count= attribute.") + local side = cfg.side or helper.wml_error("[spawn_units] missing required side= attribute.") + + for i=1,count do + local locs = wesnoth.get_locations({T["not"] { T.filter {} } , T["and"] { x = x, y = y, radius = 1 } }) + if #locs == 0 then locs = wesnoth.get_locations({T["not"] { T.filter {} } , T["and"] { x = x, y = y, radius = 2 } }) end + + local bandit_type = helper.rand(types) + local loc_i = helper.rand("1.."..#locs) + + wml_actions.move_unit_fake({x = string.format("%d,%d", x, locs[loc_i][1]) , y = string.format("%d,%d", y, locs[loc_i][2]) , type = bandit_type , side = side}) + wesnoth.put_unit(locs[loc_i][1], locs[loc_i][2], { type = bandit_type , side = side, random_traits = "yes", generate_name = "yes" , upkeep = "loyal" }) + end +end + diff --git a/data/campaigns/The_Hammer_of_Thursagan/scenarios/05_Invaders.cfg b/data/campaigns/The_Hammer_of_Thursagan/scenarios/05_Invaders.cfg index 3fb2f4058fc5..0a18be4032ea 100644 --- a/data/campaigns/The_Hammer_of_Thursagan/scenarios/05_Invaders.cfg +++ b/data/campaigns/The_Hammer_of_Thursagan/scenarios/05_Invaders.cfg @@ -301,55 +301,12 @@ [/else] [/if] - # Now place the indigs - {VARIABLE indig_countdown $indigs} - - [while] - [variable] - name=indig_countdown - greater_than=0 - [/variable] - - [do] - [store_locations] - [filter_adjacent_location] - x,y=$x1,$y1 - [/filter_adjacent_location] - - [not] - [filter][/filter] - [/not] - - variable=possible_indig_locations - [/store_locations] - - {IF_VAR possible_indig_locations.length greater_than 0 ( - [then] - {VARIABLE_OP random_location_index rand "1..$($possible_indig_locations.length - 1)"} - - {RANDOM (Footpad,Thief,Thug)} - - [move_unit_fake] - side=5 - type=$random - x=$x1,$possible_indig_locations[$random_location_index].x - y=$y1,$possible_indig_locations[$random_location_index].y - [/move_unit_fake] - - [unit] - type=$random - side=5 - x=$possible_indig_locations[$random_location_index].x - y=$possible_indig_locations[$random_location_index].y - generate_name=yes - random_traits=yes - [/unit] - [/then] - )} - - {VARIABLE_OP indig_countdown sub 1} - [/do] - [/while] + [spawn_units] + x,y=$x1,$y1 + count=$indigs + types=Footpad,Thief,Thug + side=5 + [/spawn_units] # Perform appropriate notifications [if] From be646105f24777e3ef0f9af1e0f9f553f31f7659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A4r=20Halberkamp?= Date: Mon, 30 Mar 2015 14:18:41 +0200 Subject: [PATCH 17/25] EI: Improved the bandits implementation a bit --- data/campaigns/Eastern_Invasion/lua/bandits.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/data/campaigns/Eastern_Invasion/lua/bandits.lua b/data/campaigns/Eastern_Invasion/lua/bandits.lua index 4d737b943850..0763103ec436 100644 --- a/data/campaigns/Eastern_Invasion/lua/bandits.lua +++ b/data/campaigns/Eastern_Invasion/lua/bandits.lua @@ -1,4 +1,5 @@ --- Used for the bandit villages in S5. +-- Used for the bandit villages in S5. Much more specific than the village spawn implementations elsewhere, +-- since there are a lot more specific things needed (mostly the boss mechanics and village spreading) local helper = wesnoth.require "lua/helper.lua" local wml_actions = wesnoth.wml_actions @@ -53,7 +54,7 @@ local function bandits_found(x,y) if not boss_found and visited > 2 then local boss_chance = (100 / #bandit_villages) - local rand3 = helper.rand(1,100) + local rand3 = helper.rand(1..100) if rand3 <= boss_chance or #bandit_villages < 3 then wesnoth.set_variable("boss_found", true) From d19926bfb3c21e446a0c701072236d280ce1ff47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A4r=20Halberkamp?= Date: Mon, 30 Mar 2015 14:30:46 +0200 Subject: [PATCH 18/25] DID: Rewrote the goblin spawns in lua --- .../campaigns/Descent_Into_Darkness/_main.cfg | 4 ++ .../Descent_Into_Darkness/lua/spawns.lua | 26 ++++++++++ .../scenarios/02_Peaceful_Valley.cfg | 52 +++---------------- 3 files changed, 36 insertions(+), 46 deletions(-) create mode 100644 data/campaigns/Descent_Into_Darkness/lua/spawns.lua diff --git a/data/campaigns/Descent_Into_Darkness/_main.cfg b/data/campaigns/Descent_Into_Darkness/_main.cfg index 615f22437837..ede4e4e7c719 100644 --- a/data/campaigns/Descent_Into_Darkness/_main.cfg +++ b/data/campaigns/Descent_Into_Darkness/_main.cfg @@ -65,6 +65,10 @@ path=data/campaigns/Descent_Into_Darkness [/binary_path] +[lua] + code="wesnoth.require 'campaigns/Descent_Into_Darkness/lua/spawns.lua'" +[/lua] + {campaigns/Descent_Into_Darkness/utils} {campaigns/Descent_Into_Darkness/scenarios} diff --git a/data/campaigns/Descent_Into_Darkness/lua/spawns.lua b/data/campaigns/Descent_Into_Darkness/lua/spawns.lua new file mode 100644 index 000000000000..081b51736b58 --- /dev/null +++ b/data/campaigns/Descent_Into_Darkness/lua/spawns.lua @@ -0,0 +1,26 @@ +-- Used for the goblin spawns in scenario 2 + +local helper = wesnoth.require "lua/helper.lua" +local wml_actions = wesnoth.wml_actions +local _ = wesnoth.textdomain "wesnoth-did" +local T = helper.set_wml_tag_metatable {} + +function wml_actions.spawn_units(cfg) + local x = cfg.x or helper.wml_error("[spawn_units] missing required x= attribute.") + local y = cfg.y or helper.wml_error("[spawn_units] missing required y= attribute.") + local types = cfg.types or helper.wml_error("[spawn_units] missing required types= attribute.") + local count = cfg.count or helper.wml_error("[spawn_units] missing required count= attribute.") + local side = cfg.side or helper.wml_error("[spawn_units] missing required side= attribute.") + + for i=1,count do + local locs = wesnoth.get_locations({T["not"] { T.filter {} } , T["and"] { x = x, y = y, radius = 1 } }) + if #locs == 0 then locs = wesnoth.get_locations({T["not"] { T.filter {} } , T["and"] { x = x, y = y, radius = 2 } }) end + + local unit_type = helper.rand(types) + local loc_i = helper.rand("1.."..#locs) + + wml_actions.move_unit_fake({x = string.format("%d,%d", x, locs[loc_i][1]) , y = string.format("%d,%d", y, locs[loc_i][2]) , type = unit_type , side = side}) + wesnoth.put_unit(locs[loc_i][1], locs[loc_i][2], { id = string.format("guard_%i_%i_%i", x, y, i), type = unit_type , side = side, random_traits = "yes", name= _"Villager", upkeep = "loyal" }) + end +end + diff --git a/data/campaigns/Descent_Into_Darkness/scenarios/02_Peaceful_Valley.cfg b/data/campaigns/Descent_Into_Darkness/scenarios/02_Peaceful_Valley.cfg index 98ffda267354..6b4e0866f4de 100644 --- a/data/campaigns/Descent_Into_Darkness/scenarios/02_Peaceful_Valley.cfg +++ b/data/campaigns/Descent_Into_Darkness/scenarios/02_Peaceful_Valley.cfg @@ -171,53 +171,13 @@ [/filter_condition] {VARIABLE_OP number_of_guards rand "0..2"} - {VARIABLE guard_i 1} - [while] - [variable] - name=guard_i - less_than_equal_to=$number_of_guards - [/variable] - - [do] - [store_locations] - [filter_adjacent_location] - x,y=$x1,$y1 - [/filter_adjacent_location] - - [not] - [filter] - [/filter] - [/not] - - variable=possible_guard_locations - [/store_locations] - - {IF_VAR possible_guard_locations.length greater_than 0 ( - [then] - {VARIABLE_OP random_location_index rand "0..$($possible_guard_locations.length - 1)"} - - [move_unit_fake] - side=2 - type=Goblin Spearman - x=$x1,$possible_guard_locations[$random_location_index].x - y=$y1,$possible_guard_locations[$random_location_index].y - [/move_unit_fake] - - [unit] - id=guard_$x1|_$y1|_$guard_i - name= _ "Villager" - type=Goblin Spearman - side=2 - x,y=$possible_guard_locations[$random_location_index].x,$possible_guard_locations[$random_location_index].y - random_traits=yes - [/unit] - [/then] - )} - - {VARIABLE_OP guard_i add 1} - [/do] - [/while] + [spawn_units] + x,y=$x1,$y1 + count=$number_of_guards + types=Goblin Spearman + side=2 + [/spawn_units] {VARIABLE village_$x1|_$y1|_cleared yes} From 69660e93e373995e860e2ef229c30558188f08d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A4r=20Halberkamp?= Date: Mon, 30 Mar 2015 14:31:09 +0200 Subject: [PATCH 19/25] THoT: improved the spawn implementation --- data/campaigns/The_Hammer_of_Thursagan/lua/spawns.lua | 6 +++--- .../The_Hammer_of_Thursagan/scenarios/05_Invaders.cfg | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/data/campaigns/The_Hammer_of_Thursagan/lua/spawns.lua b/data/campaigns/The_Hammer_of_Thursagan/lua/spawns.lua index 25bd314f2e3c..c0c520ca64ae 100644 --- a/data/campaigns/The_Hammer_of_Thursagan/lua/spawns.lua +++ b/data/campaigns/The_Hammer_of_Thursagan/lua/spawns.lua @@ -15,11 +15,11 @@ function wml_actions.spawn_units(cfg) local locs = wesnoth.get_locations({T["not"] { T.filter {} } , T["and"] { x = x, y = y, radius = 1 } }) if #locs == 0 then locs = wesnoth.get_locations({T["not"] { T.filter {} } , T["and"] { x = x, y = y, radius = 2 } }) end - local bandit_type = helper.rand(types) + local unit_type = helper.rand(types) local loc_i = helper.rand("1.."..#locs) - wml_actions.move_unit_fake({x = string.format("%d,%d", x, locs[loc_i][1]) , y = string.format("%d,%d", y, locs[loc_i][2]) , type = bandit_type , side = side}) - wesnoth.put_unit(locs[loc_i][1], locs[loc_i][2], { type = bandit_type , side = side, random_traits = "yes", generate_name = "yes" , upkeep = "loyal" }) + wml_actions.move_unit_fake({x = string.format("%d,%d", x, locs[loc_i][1]) , y = string.format("%d,%d", y, locs[loc_i][2]) , type = unit_type , side = side}) + wesnoth.put_unit(locs[loc_i][1], locs[loc_i][2], { type = unit_type , side = side, random_traits = "yes", generate_name = "yes" , upkeep = "loyal" }) end end diff --git a/data/campaigns/The_Hammer_of_Thursagan/scenarios/05_Invaders.cfg b/data/campaigns/The_Hammer_of_Thursagan/scenarios/05_Invaders.cfg index 0a18be4032ea..f3fcf590ad9d 100644 --- a/data/campaigns/The_Hammer_of_Thursagan/scenarios/05_Invaders.cfg +++ b/data/campaigns/The_Hammer_of_Thursagan/scenarios/05_Invaders.cfg @@ -349,7 +349,7 @@ [/elseif] [/if] - {CLEAR_VARIABLE possible_indig_locations,indigs,indigs_countdown} + {CLEAR_VARIABLE indigs} [/event] [event] From cd9eff3bf02ab22d75e0c1ac6ac0d248259c7061 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A4r=20Halberkamp?= Date: Mon, 30 Mar 2015 15:13:03 +0200 Subject: [PATCH 20/25] Revert "DID: Rewrote the goblin spawns in lua" This reverts commit d19926bfb3c21e446a0c701072236d280ce1ff47. --- .../campaigns/Descent_Into_Darkness/_main.cfg | 4 -- .../Descent_Into_Darkness/lua/spawns.lua | 26 ---------- .../scenarios/02_Peaceful_Valley.cfg | 52 ++++++++++++++++--- 3 files changed, 46 insertions(+), 36 deletions(-) delete mode 100644 data/campaigns/Descent_Into_Darkness/lua/spawns.lua diff --git a/data/campaigns/Descent_Into_Darkness/_main.cfg b/data/campaigns/Descent_Into_Darkness/_main.cfg index ede4e4e7c719..615f22437837 100644 --- a/data/campaigns/Descent_Into_Darkness/_main.cfg +++ b/data/campaigns/Descent_Into_Darkness/_main.cfg @@ -65,10 +65,6 @@ path=data/campaigns/Descent_Into_Darkness [/binary_path] -[lua] - code="wesnoth.require 'campaigns/Descent_Into_Darkness/lua/spawns.lua'" -[/lua] - {campaigns/Descent_Into_Darkness/utils} {campaigns/Descent_Into_Darkness/scenarios} diff --git a/data/campaigns/Descent_Into_Darkness/lua/spawns.lua b/data/campaigns/Descent_Into_Darkness/lua/spawns.lua deleted file mode 100644 index 081b51736b58..000000000000 --- a/data/campaigns/Descent_Into_Darkness/lua/spawns.lua +++ /dev/null @@ -1,26 +0,0 @@ --- Used for the goblin spawns in scenario 2 - -local helper = wesnoth.require "lua/helper.lua" -local wml_actions = wesnoth.wml_actions -local _ = wesnoth.textdomain "wesnoth-did" -local T = helper.set_wml_tag_metatable {} - -function wml_actions.spawn_units(cfg) - local x = cfg.x or helper.wml_error("[spawn_units] missing required x= attribute.") - local y = cfg.y or helper.wml_error("[spawn_units] missing required y= attribute.") - local types = cfg.types or helper.wml_error("[spawn_units] missing required types= attribute.") - local count = cfg.count or helper.wml_error("[spawn_units] missing required count= attribute.") - local side = cfg.side or helper.wml_error("[spawn_units] missing required side= attribute.") - - for i=1,count do - local locs = wesnoth.get_locations({T["not"] { T.filter {} } , T["and"] { x = x, y = y, radius = 1 } }) - if #locs == 0 then locs = wesnoth.get_locations({T["not"] { T.filter {} } , T["and"] { x = x, y = y, radius = 2 } }) end - - local unit_type = helper.rand(types) - local loc_i = helper.rand("1.."..#locs) - - wml_actions.move_unit_fake({x = string.format("%d,%d", x, locs[loc_i][1]) , y = string.format("%d,%d", y, locs[loc_i][2]) , type = unit_type , side = side}) - wesnoth.put_unit(locs[loc_i][1], locs[loc_i][2], { id = string.format("guard_%i_%i_%i", x, y, i), type = unit_type , side = side, random_traits = "yes", name= _"Villager", upkeep = "loyal" }) - end -end - diff --git a/data/campaigns/Descent_Into_Darkness/scenarios/02_Peaceful_Valley.cfg b/data/campaigns/Descent_Into_Darkness/scenarios/02_Peaceful_Valley.cfg index 6b4e0866f4de..98ffda267354 100644 --- a/data/campaigns/Descent_Into_Darkness/scenarios/02_Peaceful_Valley.cfg +++ b/data/campaigns/Descent_Into_Darkness/scenarios/02_Peaceful_Valley.cfg @@ -171,13 +171,53 @@ [/filter_condition] {VARIABLE_OP number_of_guards rand "0..2"} + {VARIABLE guard_i 1} - [spawn_units] - x,y=$x1,$y1 - count=$number_of_guards - types=Goblin Spearman - side=2 - [/spawn_units] + [while] + [variable] + name=guard_i + less_than_equal_to=$number_of_guards + [/variable] + + [do] + [store_locations] + [filter_adjacent_location] + x,y=$x1,$y1 + [/filter_adjacent_location] + + [not] + [filter] + [/filter] + [/not] + + variable=possible_guard_locations + [/store_locations] + + {IF_VAR possible_guard_locations.length greater_than 0 ( + [then] + {VARIABLE_OP random_location_index rand "0..$($possible_guard_locations.length - 1)"} + + [move_unit_fake] + side=2 + type=Goblin Spearman + x=$x1,$possible_guard_locations[$random_location_index].x + y=$y1,$possible_guard_locations[$random_location_index].y + [/move_unit_fake] + + [unit] + id=guard_$x1|_$y1|_$guard_i + name= _ "Villager" + type=Goblin Spearman + side=2 + x,y=$possible_guard_locations[$random_location_index].x,$possible_guard_locations[$random_location_index].y + random_traits=yes + [/unit] + [/then] + )} + + {VARIABLE_OP guard_i add 1} + [/do] + [/while] {VARIABLE village_$x1|_$y1|_cleared yes} From 1f59316494db051791243e09a71aea1128680118 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Tue, 31 Mar 2015 02:35:47 +1100 Subject: [PATCH 21/25] Rule fixes by GbDorn. Fixes terrains drawing over chasm edges http://forums.wesnoth.org/viewtopic.php?p=582670#p582670 --- data/core/terrain-graphics.cfg | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/data/core/terrain-graphics.cfg b/data/core/terrain-graphics.cfg index 79330c54836f..52fcf5ad6e2a 100644 --- a/data/core/terrain-graphics.cfg +++ b/data/core/terrain-graphics.cfg @@ -715,9 +715,9 @@ {TRANSITION_COMPLETE_LF Ai,W*,S* Ur -223 inside cave/floor} {TRANSITION_COMPLETE_L Urb (!,Urb) -224 cave/flagstones-dark} -{TRANSITION_COMPLETE_L Ss (!,Ss,H*,M*,A*,Chs,K*) -230 swamp/water} +{TRANSITION_COMPLETE_L Ss (!,Ss,H*,M*,A*,Chs,K*,Q*) -230 swamp/water} -{TRANSITION_COMPLETE_L Iwr G*,R*,W*,S*,D*,A*,Q*,Ur -230 interior/wood-regular} +{TRANSITION_COMPLETE_L Iwr G*,R*,W*,S*,D*,A*,Ur -230 interior/wood-regular} {TRANSITION_COMPLETE_LF *^Efm G* -240 transition4 embellishments/flowers-mixed} @@ -739,13 +739,13 @@ {TRANSITION_COMPLETE_L Gd (R*,D*,Aa,Ur) -262 grass/dry-medium} -{TRANSITION_COMPLETE_L Gll (!,Gll,Qx*,W*,Ai,C*,K*) -270 grass/leaf-litter} -{TRANSITION_COMPLETE_L (Gg*,Qx*) (!,Gg*,Qx*,Mm,Ms,Hh,C*,K*) -271 grass/green-abrupt} -{TRANSITION_COMPLETE_L Gs (!,Gs,Qx*,C*,K*) -272 grass/semi-dry-abrupt} -{TRANSITION_COMPLETE_L Gd (!,Gd,Qx*,C*,K*) -273 grass/dry-abrupt} +{TRANSITION_COMPLETE_L Gll (!,Gll,Q*,W*,Ai,C*,K*) -270 grass/leaf-litter} +{TRANSITION_COMPLETE_L (Gg*,Qx*) (!,Gg*,Q*,Mm,Ms,Hh,C*,K*) -271 grass/green-abrupt} +{TRANSITION_COMPLETE_L Gs (!,Gs,Q*,C*,K*) -272 grass/semi-dry-abrupt} +{TRANSITION_COMPLETE_L Gd (!,Gd,Q*,C*,K*) -273 grass/dry-abrupt} {TRANSITION_COMPLETE_L Aa (W*,Ss) -280 frozen/snow-to-water} -{TRANSITION_COMPLETE_L Aa (!,Aa,Qx*,G*) -281 frozen/snow} +{TRANSITION_COMPLETE_L Aa (!,Aa,Q*,G*) -281 frozen/snow} # This transitions from bank to flat terrains. @@ -760,15 +760,15 @@ # A rule for corner-based beach waves... {NEW:WAVES D*,Hd W* -499 water/waves} -{TRANSITION_COMPLETE_L Rr (!,Rr,W*,Ai) -320 flat/road} -{TRANSITION_COMPLETE_L Rrc (!,Rr,W*,Ai) -321 flat/road-clean} -{TRANSITION_COMPLETE_L Rp (!,Rp,W*,Ai) -322 flat/stone-path} +{TRANSITION_COMPLETE_L Rr (!,Rr,W*,Ai,Q*) -320 flat/road} +{TRANSITION_COMPLETE_L Rrc (!,Rr,W*,Ai,Q*) -321 flat/road-clean} +{TRANSITION_COMPLETE_L Rp (!,Rp,W*,Ai,Q*) -322 flat/stone-path} -{TRANSITION_COMPLETE_LF *^Gvs (!,*^Gvs,C*,K*,*^F*,M*,H*,W*) -330 transition2 embellishments/farm-veg-spring} -{TRANSITION_COMPLETE_LF *^Emf (!,*^Emf,C*,K*,*^F*,M*,H*,W*) -330 transition2 embellishments/mushroom-farm} +{TRANSITION_COMPLETE_LF *^Gvs (!,*^Gvs,C*,K*,*^F*,M*,H*,W*,Q*) -330 transition2 embellishments/farm-veg-spring} +{TRANSITION_COMPLETE_LF *^Emf (!,*^Emf,C*,K*,*^F*,M*,H*,W*,Q*) -330 transition2 embellishments/mushroom-farm} -{TRANSITION_COMPLETE_L Ds (!,Ds,W*,S*,Ai) -510 sand/beach} -{TRANSITION_COMPLETE_L Dd (!,R*,Dd,W*,S*,Ai) -510 sand/desert} +{TRANSITION_COMPLETE_L Ds (!,Ds,W*,S*,Ai,Q*) -510 sand/beach} +{TRANSITION_COMPLETE_L Dd (!,R*,Dd,W*,S*,Ai,Q*) -510 sand/desert} # Dirt transitions are double sided From 658dd22f3904b16722d820fb6debd6f6e4ee4735 Mon Sep 17 00:00:00 2001 From: gfgtdf Date: Mon, 30 Mar 2015 16:51:25 +0200 Subject: [PATCH 22/25] Use given seed in yamg map generator. Just like we do for the other map generators. --- src/generators/yamg/ya_mapgen.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/generators/yamg/ya_mapgen.cpp b/src/generators/yamg/ya_mapgen.cpp index 7c7fc7068b53..9147865bd9a7 100644 --- a/src/generators/yamg/ya_mapgen.cpp +++ b/src/generators/yamg/ya_mapgen.cpp @@ -322,10 +322,12 @@ std::string ya_mapgen::config_name() const { *** create_map Parameters and errors reporting are not defined yet, so this is a mere skeleton. */ -std::string ya_mapgen::create_map(boost::optional) { +std::string ya_mapgen::create_map(boost::optional seed) { yamg_params *par = new yamg_params(); - + if(boost::uint32_t* pseed = seed.get_ptr()){ + par->seed = *pseed; + } //TODO unsigned int n; // = par->readParams(args); // fills the parms object From a85986cce71a9632d3920908ba3214fb9cd95592 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Wed, 1 Apr 2015 13:47:05 +1100 Subject: [PATCH 23/25] NR: cleanup and improvements to death macros --- .../Northern_Rebirth/utils/herodeaths.cfg | 53 ++++++++----------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg b/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg index 0f980d7f99c9..4ca7f5d29467 100644 --- a/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg +++ b/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg @@ -9,10 +9,7 @@ id=Tallin [/filter] - [music] - name=sad.ogg - play_once=yes - [/music] + {INCIDENTAL_MUSIC sad.ogg} [message] speaker=Tallin @@ -38,10 +35,7 @@ id=Camerin [/filter] - [music] - name=sad.ogg - play_once=yes - [/music] + {INCIDENTAL_MUSIC sad.ogg} [message] speaker=Camerin @@ -99,10 +93,7 @@ id=Krash [/filter] - [music] - name=sad.ogg - play_once=yes - [/music] + {INCIDENTAL_MUSIC sad.ogg} [message] speaker=Father Morvin @@ -202,7 +193,7 @@ #define HERODEATH_THERA_AND_MORVIN_WITH_DIALOG [event] name=prestart - # Morvin and Thera appear first in this scenario. + # These will allow their death/dialogs to play in a row, and then never again, # to prevent annoyance. {VARIABLE death_dialog_index_thera 1} @@ -477,7 +468,6 @@ [/if] [/event] - # Father Morvin - See above [event] name=last breath first_time_only=no @@ -714,7 +704,6 @@ {NR_WHITE_MAGE_RESPAWN_AT (Father Morvin)} [/event] - # Father Morvin - See above [event] name=last breath first_time_only=no @@ -734,10 +723,7 @@ id="Ro'Sothian" [/filter] - [music] - name=sad.ogg - play_once=yes - [/music] + {INCIDENTAL_MUSIC sad.ogg} [message] speaker="Ro'Sothian" @@ -746,6 +732,13 @@ [/message] {FLASH_WHITE ()} + [/event] + + [event] + name=die + [filter] + id="Ro'Sothian" + [/filter] [message] speaker=Tallin @@ -763,10 +756,7 @@ id="Ro'Arthian" [/filter] - [music] - name=sad.ogg - play_once=yes - [/music] + {INCIDENTAL_MUSIC sad.ogg} [message] speaker="Ro'Arthian" @@ -774,6 +764,13 @@ [/message] {FLASH_WHITE ()} + [/event] + + [event] + name=die + [filter] + id="Ro'Arthian" + [/filter] [message] speaker=Tallin @@ -793,10 +790,7 @@ id=Stalrag [/filter] - [music] - name=sad.ogg - play_once=yes - [/music] + {INCIDENTAL_MUSIC sad.ogg} [message] speaker=Stalrag @@ -851,10 +845,7 @@ id=Eryssa [/filter] - [music] - name=sad.ogg - play_once=yes - [/music] + {INCIDENTAL_MUSIC sad.ogg} [message] speaker=Eryssa From 2327ac7fd300f0b79d99a4d613a0dc8bc313ded9 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Wed, 1 Apr 2015 14:14:43 +1100 Subject: [PATCH 24/25] Couple improvements to About. --- data/core/help.cfg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/core/help.cfg b/data/core/help.cfg index 86a87b92f380..9a44fe24abaa 100644 --- a/data/core/help.cfg +++ b/data/core/help.cfg @@ -106,11 +106,11 @@ The following pages outline all you need to know to play Wesnoth. As you play, n [topic] id=about_game title= _ "About the Game" - text= _ "The game takes place on a hex-based game field, where your units battle against those controlled by the computer, friends who each take turns sitting at the computer (hotseat play), other players on the same network, or players worldwide in multiplayer mode. + text= _ "The game takes place on a hex-based game field, where your units battle against those controlled by the computer, friends who each take turns on the same computer (hotseat play), other players on the same network, or players worldwide in multiplayer mode. -Each of these battles is called a text='scenario', which cab be strung together to make text='campaigns'. Besides the campaigns that ship with the game, Wesnoth also supports user-made content, and the add-on server boasts hundreds of custom user maps, campaigns, era, factions, and resources. +Each of these battles is called a text='scenario', which can be strung together to make text='campaigns'. Besides the campaigns that ship with the game, Wesnoth supports user-made content, and the add-on server boasts hundreds of custom maps, campaigns, eras, factions, and resources. -The game also features a human-readable markup language called WML to easily allow users to create their own custom content, as well as a fully-featured Map and Scenario Editor for creating your own battlefields. +The game also features a human-readable markup called Wesnoth Markup Language (WML) to easily allow users to create their own content, as well as a fully-featured Map and Scenario Editor for designing your own battlefields. The text='Battle for Wesnoth' project was begun in 2003, and has been worked on by a multitude of volunteers ever since." [/topic] From 9b20b6f628a82278ae2d4184229be7c50247324c Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Wed, 1 Apr 2015 14:21:50 +1100 Subject: [PATCH 25/25] NR: added appropriate wmllint comments --- .../scenarios/02_02_Meeting_With_Dwarves.cfg | 2 ++ .../Northern_Rebirth/scenarios/03_To_the_Mines.cfg | 2 ++ .../Northern_Rebirth/scenarios/04_Clearing_the_Mines.cfg | 2 ++ .../Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg | 2 ++ .../Northern_Rebirth/scenarios/05a_02_Dealings.cfg | 2 ++ .../campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg | 6 ++++-- 6 files changed, 14 insertions(+), 2 deletions(-) diff --git a/data/campaigns/Northern_Rebirth/scenarios/02_02_Meeting_With_Dwarves.cfg b/data/campaigns/Northern_Rebirth/scenarios/02_02_Meeting_With_Dwarves.cfg index 0b59fa00c5b3..57a246ccb623 100644 --- a/data/campaigns/Northern_Rebirth/scenarios/02_02_Meeting_With_Dwarves.cfg +++ b/data/campaigns/Northern_Rebirth/scenarios/02_02_Meeting_With_Dwarves.cfg @@ -18,6 +18,7 @@ [/part] [/story] + # wmllint: validate-off [side] side=1 controller=human @@ -31,6 +32,7 @@ facing=sw shroud=yes [/side] + # wmllint: validate-on # Dwarven side [side] diff --git a/data/campaigns/Northern_Rebirth/scenarios/03_To_the_Mines.cfg b/data/campaigns/Northern_Rebirth/scenarios/03_To_the_Mines.cfg index 5c185c7478eb..f83de79c96ac 100644 --- a/data/campaigns/Northern_Rebirth/scenarios/03_To_the_Mines.cfg +++ b/data/campaigns/Northern_Rebirth/scenarios/03_To_the_Mines.cfg @@ -22,6 +22,7 @@ {NR_TRACK {REVOLT_STAGE3}} + # wmllint: validate-off [side] side=1 controller=human @@ -49,6 +50,7 @@ [/modifications] [/unit] [/side] + # wmllint: validate-on [side] side=2 diff --git a/data/campaigns/Northern_Rebirth/scenarios/04_Clearing_the_Mines.cfg b/data/campaigns/Northern_Rebirth/scenarios/04_Clearing_the_Mines.cfg index 225c2376c099..15eab8141639 100644 --- a/data/campaigns/Northern_Rebirth/scenarios/04_Clearing_the_Mines.cfg +++ b/data/campaigns/Northern_Rebirth/scenarios/04_Clearing_the_Mines.cfg @@ -19,6 +19,7 @@ [/part] [/story] + # wmllint: validate-off [side] side=1 controller=human @@ -30,6 +31,7 @@ # wmllint: recognize Tallin {CHARACTER_STATS_TALLIN} [/side] + # wmllint: validate-on # Five opposing undead sides [side] diff --git a/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg b/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg index 9e1e98620b74..0925e4d9b291 100644 --- a/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg +++ b/data/campaigns/Northern_Rebirth/scenarios/05a_01_The_Pursuit.cfg @@ -22,6 +22,7 @@ [/story] # Players side + # wmllint: validate-off [side] side=1 controller=human @@ -35,6 +36,7 @@ shroud=yes [/side] + # wmllint: validate-on # Main enemy [side] diff --git a/data/campaigns/Northern_Rebirth/scenarios/05a_02_Dealings.cfg b/data/campaigns/Northern_Rebirth/scenarios/05a_02_Dealings.cfg index 7a3d7aee879e..65f211fc639f 100644 --- a/data/campaigns/Northern_Rebirth/scenarios/05a_02_Dealings.cfg +++ b/data/campaigns/Northern_Rebirth/scenarios/05a_02_Dealings.cfg @@ -28,6 +28,7 @@ [/part] [/story] + # wmllint: validate-off [side] side=1 controller=human @@ -39,6 +40,7 @@ facing=sw [/side] + # wmllint: validate-on # Dwarven side [side] diff --git a/data/campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg b/data/campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg index c8345f777dcf..b0d001307810 100644 --- a/data/campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg +++ b/data/campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg @@ -32,7 +32,8 @@ {NR_TRACK {REVOLT_STAGE4}} - # Players side, capture some villages before the start + # Players side + # wmllint: validate-off [side] side=1 controller=human @@ -45,7 +46,7 @@ {CHARACTER_STATS_TALLIN} [/side] - # Main enemy. Note the AI is set to be highly agressive and target Tallin + # Main enemy. Note the AI is set to be highly aggressive and target Tallin [side] side=2 controller=ai @@ -73,6 +74,7 @@ {NOTRAIT_UNIT 2 "Orcish Warlord" 9 24} {GUARDIAN} {NOTRAIT_UNIT 2 "Orcish Warlord" 9 26} {GUARDIAN} [/side] + # wmllint: validate-on # Sidekicks [side]