Code:
Tingis_Defender_ID = nil;
Carthago_Nova_Defender_ID = nil;
Hadrumentum_Defender_ID = nil;
Carthage_Defender_ID = nil;
function Spawn_Defenses()
-- create_force_in_garrison(String faction to which the force belongs, String unit breakdown of the force, String region of garrison, String label for force)
-- returns cqi of new character
Tingis_Defender_ID = create_force_in_garrison(
"pun_carthage",
"Car_Noble_Cav,Car_Noble_Cav,Car_Cav,Car_Cav,Car_Cav,Car_African_Pike,Car_African_Pike,Car_Libyan_Hoplites,Car_Libyan_Hoplites,Car_Libyan_Hoplites,Car_Libyan_Infantry,Car_Libyan_Infantry,Car_Hoplites,Car_Hoplites,Car_Libyan_Peltasts,Car_Libyan_Peltasts,Car_Libyan_Javelin,Car_Libyan_Javelin,Car_Libyan_Peltasts",
"pun_mauretania_tingis",
"tingis_defenders"
);
Carthago_Nova_Defender_ID = create_force_in_garrison(
"pun_carthage",
"Car_Noble_Cav,Car_Noble_Cav,Car_Cav,Car_Cav,Car_Cav,Car_African_Pike,Car_African_Pike,Car_Libyan_Hoplites,Car_Libyan_Hoplites,Car_Libyan_Hoplites,Car_Libyan_Infantry,Car_Libyan_Infantry,Car_Hoplites,Car_Hoplites,Car_Libyan_Peltasts,Car_Libyan_Peltasts,Car_Libyan_Javelin,Car_Libyan_Peltasts,Car_Libyan_Peltasts",
"pun_hispania_ulterior_carthago_nova",
"carthago_nova_defenders"
);
Hadrumentum_Defender_ID = create_force_in_garrison(
"pun_carthage",
"Car_Noble_Cav,Car_Noble_Cav,Car_Noble_Cav,Car_Noble_Cav,Car_Cav,Car_Cav,Car_African_Pike,Car_African_Pike,Car_Libyan_Hoplites,Car_Libyan_Hoplites,Car_Libyan_Hoplites,Car_Libyan_Infantry,Car_Libyan_Infantry,Car_Libyan_Infantry,Car_Libyan_Peltasts,Car_Libyan_Peltasts,Car_Libyan_Javelin,Car_Libyan_Javelin,Car_Onager,Car_Onager",
"pun_africa_hadrumentum",
"hadrumentum_defenders"
);
Carthage_Defender_ID = create_force_in_garrison(
"pun_carthage",
"Car_Noble_Cav,Car_Noble_Cav,Car_Noble_Cav,Car_Cav,Car_Sacred_Band,Car_Sacred_Band,Car_Sacred_Band,Car_Sacred_Band,Car_African_Pike,Car_Libyan_Hoplites,Car_Libyan_Hoplites,Car_Libyan_Infantry,Car_Libyan_Infantry,Car_Libyan_Infantry,Car_Libyan_Peltasts,Car_Libyan_Javelin,Car_Libyan_Javelin,Car_Onager",
"pun_africa_carthago",
"carthage_defenders"
);
-- principal enemy faction gets big reduction in army upkeep to pay for this system
cm:apply_effect_bundle("pun_faction_scripted_reduced_upkeep", "pun_carthage", -1);
end;
function Start_Defenses()
--[[
start_defense(
String name for this campaign_defense object,
String defending faction,
String cqi of defending force (if nil it loads from savegame),
Int number of regions player has to own to trigger release,
Table of strings of region names that should trigger release if the player owns them,
opt String message_event to trigger on release
)
returns campaign defense object
]]
cd_tingis = start_defense("Tingis", "pun_carthage", Tingis_Defender_ID, 25, Settlements_Close_To_Tingis, "pun_rome_releasing_defenders_1");
cd_carthago_nova = start_defense("Carthago_Nova", "pun_carthage", Carthago_Nova_Defender_ID, 32, Settlements_Close_To_Carthago_Nova);
cd_hadrumentum = start_defense("Corfinium", "pun_carthage", Hadrumentum_Defender_ID, 39, Settlements_Close_To_Hadrumentum, "pun_rome_releasing_defenders_2");
cd_carthage = start_defense("Carthage", "pun_carthage", Carthage_Defender_ID, 44, Settlements_Close_To_Carthage, "pun_rome_releasing_defenders_3");
-- prevent the campaign defense objects from attempting to award upkeep for their armies as the AI is not aware of that system
cd_tingis:set_should_award_upkeep(false);
cd_carthago_nova:set_should_award_upkeep(false);
cd_hadrumentum:set_should_award_upkeep(false);
cd_carthage:set_should_award_upkeep(false);
end;
function Spawn_Additional_Carthaginian_Forces()
cm:create_force("pun_carthage", "Car_Cav,Car_Cav,Car_Cav,Car_African_Pike,Car_Libyan_Hoplites,Car_Libyan_Infantry,Car_Hoplites,Car_Hoplites,Car_Libyan_Peltasts,Car_Libyan_Javelin,Car_Libyan_Peltasts", "pun_hispania_ulterior_ilici", 304, 300, "Carthage_Additional_01", true);
cm:create_force("pun_carthage", "Car_Noble_Cav,Car_Cav,Car_African_Pike,Car_Libyan_Infantry,Car_Libyan_Infantry,Car_Hoplites,Car_Hoplites,Car_Libyan_Peltasts,Car_Libyan_Javelin", "pun_hispania_ulterior_carthago_nova", 263, 274, "Carthage_Additional_02", true);
end;