Code:
;=== Garrison Script ===
declare_counter Bremen_siege
declare_counter Stade_siege
declare_counter Nordenham_siege
declare_counter Stuttgart_siege
declare_counter Moempelgard_siege
declare_counter Aschaffenburg_siege
declare_counter Mainz_siege
declare_counter Erfurt_siege
declare_counter Heiligenstadt_siege
declare_counter Muenchen_siege
declare_counter Freising_siege
;--- mustering garison ---
monitor_event GeneralAssaultsResidence TargetFactionType hungary
and IsTargetRegionOneOf Reichsstadt_Bremen
and I_SettlementUnderSiege Bremen
if I_TurnNumber < 100
create_unit Bremen, BuergerwehrG, num 4, exp 0, arm 0, wep 0
create_unit Bremen, GrenadiereG, num 1, exp 0, arm 0, wep 0
create_unit Bremen, MusketiereG, num 2, exp 0, arm 0, wep 0
create_unit Bremen, PikeniereG, num 3, exp 0, arm 0, wep 0
set_counter Bremen_siege 1
end_if
if I_TurnNumber > 99
terminate_monitor
end_if
end_monitor
monitor_event GeneralAssaultsResidence TargetFactionType hungary
and IsTargetRegionOneOf Erzbistum_Bremen
and I_SettlementUnderSiege Stade
if I_TurnNumber < 50
create_unit Stade, BuergerwehrG, num 4, exp 0, arm 0, wep 0
create_unit Stade, GrenadiereG, num 1, exp 0, arm 0, wep 0
create_unit Stade, MusketiereG, num 2, exp 0, arm 0, wep 0
create_unit Stade, PikeniereG, num 3, exp 0, arm 0, wep 0
set_counter Stade_siege 1
end_if
if I_TurnNumber > 49
terminate_monitor
end_if
end_monitor
monitor_event GeneralAssaultsResidence TargetFactionType hungary
and IsTargetRegionOneOf Butjadingen
and I_SettlementUnderSiege Nordenham
if I_TurnNumber < 50
create_unit Nordenham, BuergerwehrG, num 4, exp 0, arm 0, wep 0
create_unit Nordenham, GrenadiereG, num 1, exp 0, arm 0, wep 0
create_unit Nordenham, MusketiereG, num 2, exp 0, arm 0, wep 0
create_unit Nordenham, PikeniereG, num 3, exp 0, arm 0, wep 0
set_counter Nordenham_siege 1
end_if
if I_TurnNumber > 49
terminate_monitor
end_if
end_monitor
monitor_event GeneralAssaultsResidence TargetFactionType turks
and IsTargetRegionOneOf Herzogtum_Wuerttemberg
and I_SettlementUnderSiege Stuttgart
if I_TurnNumber < 100
create_unit Stuttgart, BuergerwehrG, num 4, exp 0, arm 0, wep 0
create_unit Stuttgart, GrenadiereG, num 1, exp 0, arm 0, wep 0
create_unit Stuttgart, MusketiereG, num 2, exp 0, arm 0, wep 0
create_unit Stuttgart, PikeniereG, num 3, exp 0, arm 0, wep 0
set_counter Stuttgart_siege 1
end_if
if I_TurnNumber > 99
terminate_monitor
end_if
end_monitor
monitor_event GeneralAssaultsResidence TargetFactionType turks
and IsTargetRegionOneOf Grafschaft_Moempelgard
and I_SettlementUnderSiege Moempelgard
if I_TurnNumber < 50
create_unit Moempelgard, BuergerwehrG, num 4, exp 0, arm 0, wep 0
create_unit Moempelgard, GrenadiereG, num 1, exp 0, arm 0, wep 0
create_unit Moempelgard, MusketiereG, num 2, exp 0, arm 0, wep 0
create_unit Moempelgard, PikeniereG, num 3, exp 0, arm 0, wep 0
set_counter Moempelgard_siege 1
end_if
if I_TurnNumber > 49
terminate_monitor
end_if
end_monitor
monitor_event GeneralAssaultsResidence TargetFactionType egypt
and IsTargetRegionOneOf Erzbistum_Mainz
and I_SettlementUnderSiege Aschaffenburg
if I_TurnNumber < 100
create_unit Aschaffenburg, BuergerwehrG, num 4, exp 0, arm 0, wep 0
create_unit Aschaffenburg, GrenadiereG, num 1, exp 0, arm 0, wep 0
create_unit Aschaffenburg, MusketiereG, num 2, exp 0, arm 0, wep 0
create_unit Aschaffenburg, PikeniereG, num 3, exp 0, arm 0, wep 0
set_counter Aschaffenburg_siege 1
end_if
if I_TurnNumber > 99
terminate_monitor
end_if
end_monitor
monitor_event GeneralAssaultsResidence TargetFactionType egypt
and IsTargetRegionOneOf Stadt_Mainz
and I_SettlementUnderSiege Mainz
if I_TurnNumber < 50
create_unit Mainz, BuergerwehrG, num 4, exp 0, arm 0, wep 0
create_unit Mainz, GrenadiereG, num 1, exp 0, arm 0, wep 0
create_unit Mainz, MusketiereG, num 2, exp 0, arm 0, wep 0
create_unit Mainz, PikeniereG, num 3, exp 0, arm 0, wep 0
set_counter Mainz_siege 1
end_if
if I_TurnNumber > 49
terminate_monitor
end_if
end_monitor
monitor_event GeneralAssaultsResidence TargetFactionType egypt
and IsTargetRegionOneOf Stadt_Erfurt
and I_SettlementUnderSiege Erfurt
if I_TurnNumber < 50
create_unit Erfurt, BuergerwehrG, num 4, exp 0, arm 0, wep 0
create_unit Erfurt, GrenadiereG, num 1, exp 0, arm 0, wep 0
create_unit Erfurt, MusketiereG, num 2, exp 0, arm 0, wep 0
create_unit Erfurt, PikeniereG, num 3, exp 0, arm 0, wep 0
set_counter Erfurt_siege 1
end_if
if I_TurnNumber > 49
terminate_monitor
end_if
end_monitor
monitor_event GeneralAssaultsResidence TargetFactionType egypt
and IsTargetRegionOneOf Eichsfeld
and I_SettlementUnderSiege Heiligenstadt
if I_TurnNumber < 50
create_unit Heiligenstadt, BuergerwehrG, num 4, exp 0, arm 0, wep 0
create_unit Heiligenstadt, GrenadiereG, num 1, exp 0, arm 0, wep 0
create_unit Heiligenstadt, MusketiereG, num 2, exp 0, arm 0, wep 0
create_unit Heiligenstadt, PikeniereG, num 3, exp 0, arm 0, wep 0
set_counter Heiligenstadt_siege 1
end_if
if I_TurnNumber > 49
terminate_monitor
end_if
end_monitor
monitor_event GeneralAssaultsResidence TargetFactionType portugal
and IsTargetRegionOneOf Herzogtum_Bayern
and I_SettlementUnderSiege Muenchen
if I_TurnNumber < 100
create_unit Muenchen, BuergerwehrG, num 4, exp 0, arm 0, wep 0
create_unit Muenchen, GrenadiereG, num 1, exp 0, arm 0, wep 0
create_unit Muenchen, MusketiereG, num 2, exp 0, arm 0, wep 0
create_unit Muenchen, PikeniereG, num 3, exp 0, arm 0, wep 0
set_counter Muenchen_siege 1
end_if
if I_TurnNumber > 99
terminate_monitor
end_if
end_monitor
monitor_event GeneralAssaultsResidence TargetFactionType portugal
and IsTargetRegionOneOf Bistum_Freising
and I_SettlementUnderSiege Freising
if I_TurnNumber < 50
create_unit Freising, BuergerwehrG, num 4, exp 0, arm 0, wep 0
create_unit Freising, GrenadiereG, num 1, exp 0, arm 0, wep 0
create_unit Freising, MusketiereG, num 2, exp 0, arm 0, wep 0
create_unit Freising, PikeniereG, num 3, exp 0, arm 0, wep 0
set_counter Freising_siege 1
end_if
if I_TurnNumber > 49
terminate_monitor
end_if
end_monitor
;--- siege is over ---
monitor_event FactionTurnEnd not FactionIsLocal
if I_SettlementOwner Bremen = hungary
and not I_SettlementUnderSiege Bremen
and I_TurnNumber < 101
set_counter Bremen_siege 0
end_if
if I_SettlementOwner Stade = hungary
and not I_SettlementUnderSiege Stade
and I_TurnNumber < 51
set_counter Stade_siege 0
end_if
if I_SettlementOwner Nordenham = hungary
and not I_SettlementUnderSiege Nordenham
and I_TurnNumber < 51
set_counter Nordenham_siege 0
end_if
if I_SettlementOwner Stuttgart = turks
and not I_SettlementUnderSiege Stuttgart
and I_TurnNumber < 101
set_counter Stuttgart_siege 0
end_if
if I_SettlementOwner Moempelgard = turks
and not I_SettlementUnderSiege Moempelgard
and I_TurnNumber < 51
set_counter Moempelgard_siege 0
end_if
if I_SettlementOwner Aschaffenburg = egypt
and not I_SettlementUnderSiege Aschaffenburg
and I_TurnNumber < 101
set_counter Aschaffenburg_siege 0
end_if
if I_SettlementOwner Mainz = egypt
and not I_SettlementUnderSiege Mainz
and I_TurnNumber < 51
set_counter Mainz_siege 0
end_if
if I_SettlementOwner Erfurt = egypt
and not I_SettlementUnderSiege Erfurt
and I_TurnNumber < 50
set_counter Erfurt_siege 0
end_if
if I_SettlementOwner Heiligenstadt = egypt
and not I_SettlementUnderSiege Heiligenstadt
and I_TurnNumber < 51
set_counter Heiligenstadt_siege 0
end_if
if I_SettlementOwner Muenchen = portugal
and not I_SettlementUnderSiege Muenchen
and I_TurnNumber < 101
set_counter Muenchen_siege 0
end_if
if I_SettlementOwner Freising = portugal
and not I_SettlementUnderSiege Freising
and I_TurnNumber < 51
set_counter Freising_siege 0
end_if
if I_TurnNumber > 100
terminate_monitor
end_if
end_monitor
;--- disbanding garison ---
monitor_event FactionTurnStart FactionType hungary
and not FactionIsLocal
if I_CompareCounter Bremen_siege < 1
and I_CompareCounter Stade_siege < 1
and I_CompareCounter Nordenham_siege < 1
destroy_units hungary garnison
end_if
if I_TurnNumber > 100
terminate_monitor
end_if
end_monitor
monitor_event FactionTurnStart FactionType turks
and not FactionIsLocal
if I_CompareCounter Stuttgart_siege < 1
and I_CompareCounter Moempelgard_siege < 1
destroy_units turks garnison
end_if
if I_TurnNumber > 100
terminate_monitor
end_if
end_monitor
monitor_event FactionTurnStart FactionType egypt
and not FactionIsLocal
if I_CompareCounter Mainz_siege < 1
and I_CompareCounter Aschaffenburg_siege < 1
and I_CompareCounter Erfurt_siege < 1
and I_CompareCounter Heiligenstadt_siege < 1
destroy_units egypt garnison
end_if
if I_TurnNumber > 100
terminate_monitor
end_if
end_monitor
monitor_event FactionTurnStart FactionType portugal
and not FactionIsLocal
if I_CompareCounter Muenchen_siege < 1
and I_CompareCounter Freising_siege < 1
destroy_units portugal garnison
end_if
if I_TurnNumber > 100
terminate_monitor
end_if
end_monitor