--[[ IMPORTS ]]
import("ScarUtil.scar") import("WXPScarUtil.scar")
--[[ GAME SETUP ]]
-- Blood Pulse Scar -- Blood pulse nis [[this is only for the intro nis and is seperate from the regular pulse that happens during the game]] -- Raids -- Gate of Chaos [[reinforcements that come through the chaos gate]] -- Spawning the prisoners and the jailer -- Proximity check for relic chatter -- Chatty AI -- relic discovered taunt --Bastion breach taunt -- AI Definition [[sets up the ai and what it can and can't dp]] -- Spawning and Upgrading Things on the map -- Player buildings and builder units -- Spawning Armies [[most of the AI units will be under this heading]] -- Patrols -- Initial Attack --Primary Objective - Destroy the Chaos Gate --Secondary Objective - stop Blood Pulse -- Secondary Objective - Rescue prisoners
--[[ the OnGameSetup() function is mandatory! ]] function OnGameSetup()
--[[defining the name of the player's faction]]
if MetaMap_GetPlayerRaceName() == "chaos_marine_race" then
factionname = "$690014"
colorscheme = "default_1"
t_Prisoners = {--[[1]]"chaos_squad_khorne_berserker_advance_sp", --[[2]]"chaos_squad_khorne_berserker_advance_sp", --[[3]]"chaos_squad_khorne_berserker_advance_sp", --[[4]]"chaos_squad_khorne_berserker_advance_sp"}
g_Player1 = Setup_Player(0, factionname, MetaMap_GetPlayerRaceName(), 1)
Misc_PlayerTeamColor(g_Player1, colorscheme)
elseif MetaMap_GetPlayerRaceName() == "eldar_race" then
factionname = "$690012"
colorscheme = "default_5"
t_Prisoners = {--[[1]]"eldar_squad_dark_reaper_exarch_council", --[[2]]"eldar_squad_warp_spider_exarch_council", --[[3]]"eldar_squad_warp_spider_exarch_council", --[[4]]"eldar_squad_dark_reaper_exarch_council"}
g_Player1 = Setup_Player(0, factionname, MetaMap_GetPlayerRaceName(), 1)
Misc_PlayerTeamColor(g_Player1, colorscheme)
elseif MetaMap_GetPlayerRaceName() == "guard_race" then
factionname = "$690011"
colorscheme = "default_8"
t_Prisoners = {--[[1]]"guard_squad_assassin_advance_sp", --[[2]]"guard_squad_kasrkin_advance_sp", --[[3]]"guard_squad_ogryns_advance_sp", --[[4]]"guard_squad_psyker_advance_sp"}
g_Player1 = Setup_Player(0, factionname, MetaMap_GetPlayerRaceName(), 1)
elseif MetaMap_GetPlayerRaceName() == "ork_race" then
factionname = "$690013"
colorscheme = "default_4"
t_Prisoners = {--[[1]]"ork_squad_nob_advance_sp", --[[2]]"ork_squad_shoota_boy_advance_sp", --[[3]]"ork_squad_tankbusta_advance_sp", --[[4]]"ork_squad_shoota_boy_advance_sp"}
g_Player1 = Setup_Player(0, factionname, MetaMap_GetPlayerRaceName(), 1)
Misc_PlayerTeamColor(g_Player1, colorscheme)
elseif MetaMap_GetPlayerRaceName() == "space_marine_race" then
factionname = "$690010"
colorscheme = "default_0"
t_Prisoners = {--[[1]]"space_marine_squad_terminator_assault_veteran_sp", --[[2]]"space_marine_squad_terminator_veteran_sp",--[[3]]"space_marine_squad_veteran_sp",
--[[4]]"space_marine_squad_terminator_assault_veteran_sp"}
g_Player1 = Setup_Player(0, factionname, MetaMap_GetPlayerRaceName(), 1)
elseif MetaMap_GetPlayerRaceName() == "tau_race" then
factionname = "$690015"
colorscheme = "default_0"
t_Prisoners = {--[[1]]"tau_honor_guard_fire_warrior_squad_advance_sp", --[[2]]"tau_kroot_alpha_squad_advance_sp", --[[3]]"tau_honor_guard_stealth_suit_squad_advance_sp",
--[[4]]"tau_honor_guard_stealth_suit_squad_advance_sp"}
g_Player1 = Setup_Player(0, factionname, MetaMap_GetPlayerRaceName(), 1)
elseif MetaMap_GetPlayerRaceName() == "necron_race" then
factionname = "$690016"
colorscheme = "default_0"
t_Prisoners = {--[[1]]"necron_basic_warrior_squad_advance_sp", --[[2]]"necron_pariah_squad_advance_sp", --[[3]]"necron_flayed_one_squad_advance_sp", --[[4]]"necron_flayed_one_squad_advance_sp"}
g_Player1 = Setup_Player(0, factionname, MetaMap_GetPlayerRaceName(), 1)
end
g_Player2 = Setup_Player(1, "$690014", "chaos_marine_race", 2)
Misc_PlayerTeamColor(g_Player2,"default_1")
g_Player3 = Setup_Player(2, "$690014", "chaos_marine_race", 2)
Misc_PlayerTeamColor(g_Player3,"default_1")
g_Player4 = Setup_Player(3, factionname, MetaMap_GetPlayerRaceName(), 1)
g_Player5 = Setup_Player(4, factionname, MetaMap_GetPlayerRaceName(), TEAM_NEUTRAL)
--[[ DEFINE VARIABLES AND TABLES - define any preset values here for later use]]
g_firstrun = true
g_Counter = 40
g_Increment = 1
g_Reinforcements = 1
g_PulseStop = false
g_Timer = 0
g_reverse_obliterator = false
--difficulty variable
g_Difficulty = 0
g_Strength = 0
--army iterations
g_Bastion_Army_iter = 1
g_FWL_Army_iter = 1
g_FWR_Army_iter = 1
g_LB_Army_iter = 1
g_Right_Barrack_Army_iter = 1
g_Plains_Khorne_Army_iter = 1
g_Reinforce_Army_iter = 1
g_Relic_Army_iter = 1
g_RR_Army_iter = 1
g_Player_Army_iter = 1
g_Opening_Raid_Army_iter = 1
--building iterations
g_FB_Base_iter = 1
g_FB2_Base_iter = 1
g_RB_Base_iter = 1
g_RB2_Base_iter = 1
g_RB3_Base_iter = 1
--Army size variables
g_Bastion = 0
--Raid variables
g_FB1_Increment = 0
g_FB1_Size = 1
g_FB2_Increment = 0
g_FB2_Size = 1
g_RB_Marine_Increment = 0
g_RB_Marine_Size = 1
g_RB_Defiler_Increment = 0
g_RB_Defiler_Size = 1
g_RB2_Obliterator1_Increment = 0
g_RB2_Obliterator1_Size = 1
g_RB2_Obliterator2_Increment = 0
g_RB2_Obliterator2_Size = 1
g_RB2_Beserker1_Increment = 0
g_RB2_Beserker1_Size = 1
g_RB2_Raptor1_Increment = 0
g_RB2_Raptor1_Size = 1
g_RB2_Marine1_Increment = 0
g_RB2_Marine1_Size = 1
g_RB2_Cultist_Increment= 0
g_RB2_Cultist_Size = 1
g_Bastion_Cultist_Increment = 0
g_Bastion_Cultist_Size = 1
g_Bastion_Marine1_Increment = 0
g_Bastion_Marine1_Size = 1
g_Bastion_Predator1_Size = 1
g_RB2_Marine_AI = false
g_BT_First = true
--max squad caps
g_RaptorMaxCap = 18
g_ObliteratorMaxCap = 17
g_KhorneMaxCap = 16
g_MarineMaxCap = 18
g_DefilerMaxCap = 17
-- generator markers start at 0
g_bonus_gen_counter = 0
-- turrer markers start at 6
g_bonus_turret_counter = 6
--[[ define the "enemy" who will win if the player 'loses' ]] g_enemy = g_Player2
--[[Win condition Objective]]
end
--
--[[ the OnGameRestore() function is mandatory!, this will only get called after loading a game ]]
function OnGameRestore()
end
--[[ ON INITIALIZATION ]]
function OnInit()
--[[ RESEARCH LEVEL - sets the research level of the mission, locks researches, squads, and buildings for the appropriate mission number DOW specific!
sets the research level of the mission, locks researches, squads, and buildings]]
Rule_SetResearchLevel( 4 )
--[[ NIS PRESETS - turn off event cues, set the viewable space to black (faded out) and preset letterboxing
turn off event cues, set the viewable space to black (faded out) and preset letterboxing ]]
WXP_OpeningNISPreset()
--[[ START THE MUSIC ]]
-- call the function to load the jukebox with tunes]]
Rule_SetupMusicPlaylist()
--[[ SET AI - call the function to set the pregame state of the AI
call the function to set the pregame state of the AI ]]
Rule_PresetAI()
--[[Upgrade towers and points]]
Rule_AddOneShot(Rule_Upgrade_CM_Points, 0)
Rule_AddOneShot(Rule_Create_Chaos_Buildings, 0)
Rule_Despawn()
--[[ START NIS - calls the NIS function located in the MissionName.nis file
calls the NIS function located in the MissionName.nis file ]]
Util_StartNIS( EVENTS.NIS_Opening )
W40k_Letterbox( true, 0 )
Fade_Start( 2.0, true )
end
--[[ the Scar_AddInit(OnInit) function is mandatory! This registers your init function with scar. ]] Scar_AddInit(OnInit)
--[[ GAME RESTRICTIONS ]]
--[[ Disables, enables, and grants research items ]]
function Rule_SetResearchLevel( resLevel )
--[[ WXP Specific ]]
WXP_Restrict( resLevel )
end
function Rule_Despawn()
EGroup_DeSpawn("eg_Demon")
EGroup_DeSpawn("eg_End_Demon")
EGroup_DeSpawn("eg_Closing_Effects")
Rule_Remove(Rule_Despawn)
end
--[[ MUSIC ]]
function Rule_SetupMusicPlaylist() --music t_music = {"MU_IG_STR_Chaos", "MU_IG_STR_Chaos_perc", "MU_IG_STR_Chaos_perc_brass", "MU_IG_STR_Chaos_perc_str", "MU_IG_STR_Chaos_perc_voice"}
Playlist_Manager( PC_Music, t_music, true, true , {20, 40})
--ambient sound
t_ambient_sound = {"ambient_desert"}
Playlist_Manager( PC_Ambient, t_ambient_sound, true, true , {2, 4})
end
--[[ PRESET AI ]]
function Rule_PresetAI()
--Cpu_EnableAll(false)
Cpu_Enable(g_Player3, false)
Cpu_Enable(g_Player2, false)
Cpu_Enable(g_Player4, false)
Cpu_Enable(g_Player5, false)
end
--[[ START PLAY ]]
--[[ NOW TO KICK OFF THE ACTUAL MISSION ONCE THE OPENING NIS IS DONE ]]
function Rule_GameStart()
if g_firstrun then
g_Strength = MetaMap_GetTerritoryMilitaryStrength(MetaMap_GetDefendingTerritoryIndex())
--[[ PREACTION ]]
--[[ DIFFICULTY LEVEL - gets the difficulty level from the UI and passes it into the function]]
Rule_SetDifficultyLevel( Difficulty_Get() )
--[[ Get the AI doing whatever after the NIS is over ]]
Rule_StartAI()
Rule_AddOneShot(Rule_Set_Research, 1)
--[[create enemy buildings]]
Rule_Add(Rule_ChaosBase_Forward_Creation)
Rule_Add(Rule_ChaosBase_Forward2_Creation)
Rule_Add(Rule_ChaosBase_Rear_Creation)
Rule_Add(Rule_ChaosBase_Rear2_Creation)
Rule_Add(Rule_ChaosBase_Rear3_Creation)
--[[create the player's buildings]]
Rule_Add(Rule_Create_Player_Buildings)
--[[Upgrade towers and points]]
-- Rule_AddOneShot(Rule_Upgrade_CM_Points, 1) -- Rule_AddOneShot(Rule_Create_Chaos_Buildings, 1) Rule_AddOneShot(Rule_Create_CM_Turrets, 1)
--[[create armies]]
Rule_Add(Rule_CM_Bastion_Creation)
Rule_Add(Rule_CM_FWL_Creation)
Rule_Add(Rule_CM_FWR_Creation)
Rule_Add(Rule_CM_LB_Creation)
Rule_Add(Rule_CM_Right_Barrack_Creation)
Rule_Add(Rule_CM_Plains_Khorne_Creation)
Rule_Add(Rule_CM_Relic_Creation)
Rule_Add(Rule_CM_RR_Creation)
--this is the opening raid on the player base, there's a slight delay so the player can get his bearings.
Rule_AddDelay(Rule_Opening_Raid_Creation, 5)
--[[sharing FOW]]
--player 1 and four can see each other to let the player see his units being sacrificed
World_EnablePlayerToPlayerFOW(g_Player1, g_Player4, false)
--[[Chaos Gate summoning]]
Rule_AddInterval(Rule_Reinforcement_Level, 500)
Rule_AddInterval(Rule_Summon_Chaos_Reinforcements,400)
--[[ Set up a Win Check ]]
Rule_AddInterval(Rule_EndGame_Win, 10)
--[[ Set up a Lose Check ]]
Rule_AddInterval(Rule_EndGameLose, 10)
--[[ set up timer]]
Rule_AddOneShot(Rule_Add_Timer, 1)
--[[main objective]]
Rule_AddIntervalDelay(Rule_Objective_Kill_Sorcerer, 1, 20)
--[[Set up the opening taunting]]
Rule_AddOneShot(Rule_Opening_Discussion, 10)
--[[get the AI talking]]
Rule_AddInterval(Rule_Trash_Talk, 420)
--[[secondary objective]]
Rule_AddIntervalDelay(Rule_Objective_Stop_Pulse, 1, 60)
--[[secondary objective]]
Rule_AddIntervalDelay(Rule_Objective_Rescue_Prisoners, 1, 120)
--[[Creating the prisoners and jailer for the secondary objective]]
Rule_AddOneShot(Rule_Spawn_Prisoners, 1)
--[[ Clean up ]]
Rule_Remove(Rule_GameStart)
W40k_Letterbox( false , 2 )
end
end
--[[ DIFFICULTY ]]
function Rule_SetDifficultyLevel( difficultyLevel )
-- easy
if difficultyLevel == DIFFICULTY_EASY then
g_Difficulty = 1
-- medium
elseif difficultyLevel == DIFFICULTY_NORMAL then
g_Difficulty = 2
-- hard
elseif difficultyLevel == DIFFICULTY_HARD then
g_Difficulty = 3
end
end
--[[ AI Definition]]
function Rule_StartAI()
Cpu_Enable(g_Player3, true)
Cpu_Enable(g_Player2, false)
Cpu_EnableComponent(g_Player3, true, CT_Resourcing)
Cpu_EnableComponent(g_Player3, true, CT_BuildBuildings)
Cpu_EnableComponent(g_Player3, true, CT_BuildUnits)
Cpu_EnableComponent(g_Player3, false, CT_BuildResearch)
Cpu_EnableComponent(g_Player3, false, CT_BuildAddOns)
Cpu_EnableComponent(g_Player3, true, CT_Tactics)
Cpu_SetDifficulty(g_Player3, AD_Insane)
--set the squad and vehicle cap for the active AI player
Player_SetSquadCap(g_Player3, 20)
Player_SetSupportCap(g_Player3, 20)
Player_RestrictSquad(g_Player3, "chaos_marine_squad")
Player_RestrictSquad(g_Player3, "chaos_squad_bloodthirster")
Player_RestrictSquad(g_Player3, "chaos_squad_defiler")
Player_RestrictSquad(g_Player3, "chaos_squad_horror")
Player_RestrictSquad(g_Player3, "chaos_squad_khorne_berserker")
Player_RestrictSquad(g_Player3, "chaos_squad_lord")
Player_RestrictSquad(g_Player3, "chaos_squad_obliterator")
Player_RestrictSquad(g_Player3, "chaos_squad_possessed_marine")
Player_RestrictSquad(g_Player3, "chaos_squad_predator")
Player_RestrictSquad(g_Player3, "chaos_squad_raptor")
Player_RestrictSquad(g_Player3, "chaos_squad_rhino")
Player_RestrictSquad(g_Player3, "chaos_squad_sorcerer")
t_Player3_Building_Restrict = {"chaos_greater_sacrificial_circle", "chaos_hq", "chaos_machine_pit", "chaos_sacrificial_circle",
"chaos_temple", }
Player_RestrictBuildingList(g_Player3, t_Player3_Building_Restrict)
end
function Rule_Set_Research()
Player_GrantResearch(g_Player2, "chaos_projectiles")
Player_GrantResearch(g_Player2, "chaos_cultist_sight_research")
Player_GrantResearch(g_Player3, "chaos_cultist_sight_research")
Player_GrantResearch(g_Player2, "chaos_champion_melee_research_2")
Player_GrantResearch(g_Player3, "chaos_champion_melee_research_2")
Player_GrantResearch(g_Player2, "chaos_frag_grenade_research")
Player_GrantResearch(g_Player3, "chaos_frag_grenade_research")
Player_GrantResearch(g_Player2, "chaos_furious_charge_research")
Player_GrantResearch(g_Player3, "chaos_furious_charge_research")
Player_GrantResearch(g_Player2, "chaos_health_upgrade_research_2")
Player_GrantResearch(g_Player3, "chaos_health_upgrade_research_2")
Player_GrantResearch(g_Player2, "chaos_plasma_pistol_research")
Player_GrantResearch(g_Player3, "chaos_plasma_pistol_research")
end
--[[ CORE GAME ]]
--[[Spawning and Upgrading Things on the map]]
--[[chaos buildings]] function Rule_Create_Chaos_Buildings()
Entity_CreateBuildingMarker(g_Player3,"eg_CM_HQ", "chaos_hq","mkr_Chaos_HQ", 1)
EGroup_AddGroup(EGroup_CreateIfNotFound("eg_Chaos_Buildings"), EGroup_FromName("eg_CM_HQ"))
Entity_CreateBuildingMarker(g_Player3,"eg_CM_Vehicle_Bastion", "chaos_machine_pit","mkr_CM_Vehicle_Bastion", 1)
EGroup_AddGroup(EGroup_CreateIfNotFound("eg_Chaos_Buildings"), EGroup_FromName("eg_CM_Vehicle_Bastion"))
Entity_CreateBuildingMarker(g_Player3,"eg_CM_Armoury_Bastion", "chaos_armoury","mkr_CM_Armoury", 1)
EGroup_AddGroup(EGroup_CreateIfNotFound("eg_Chaos_Buildings"), EGroup_FromName("eg_CM_Armoury_Bastion"))
Entity_CreateBuildingMarker(g_Player3,"eg_CM_Circle_Bastion", "chaos_sacrificial_circle","mkr_CM_Circle_Bastion", 1)
EGroup_AddGroup(EGroup_CreateIfNotFound("eg_Chaos_Buildings"), EGroup_FromName("eg_CM_Circle_Bastion"))
for i = 1, 6 do
Entity_CreateBuildingMarker(g_Player3,"eg_SM_Generator"..i, "chaos_plasma_generator","mkr_CM_Power"..i, 1)
EGroup_AddGroup(EGroup_FromName("eg_Chaos_Buildings"), EGroup_FromName("eg_SM_Generator"..i))
end
Rule_AddIntervalDelay(Rule_Bastion_Spawning_Prox_Check, 3, 300)
Rule_AddIntervalDelay(Rule_Bastion_Stealth_Prox_Check, 3, 300)
end
--listening posts and relics function Rule_Upgrade_CM_Points()
for i = 1, 7 do
EGroup_ForceAddOn("eg_CM_List_Post"..i, "chaos_list_post_addon_2" )
end
EGroup_ForceAddOn("eg_Strat_Blood", "chaos_list_post_addon_2")
end
--turrets
function Rule_Create_CM_Turrets()
for i = 1, 17 do
Entity_CreateBuildingMarker(g_Player3,"sg_CM_Turret"..i, "chaos_turret_bolter","mkr_CM_Turret"..i, 1)
end
for j = 1, 3 do
EGroup_ForceAddOn("sg_CM_Turret"..j, "chaos_turret_addon")
end
EGroup_ForceAddOn("sg_CM_Turret8", "chaos_turret_addon")
EGroup_ForceAddOn("sg_CM_Turret10", "chaos_turret_addon")
end
--buildings for the chaos forward base one function Rule_ChaosBase_Forward_Creation()
t_FB_Base = {
egroup_name = { --[[1]]"eg_FB1", --[[2]]"eg_FB2", --[[3]]"eg_FB3", --[[4]]"eg_FB4", --[[5]]"eg_FB5", --[[6]]"eg_FB6", --[[7]]"eg_FB7", --[[8]]"eg_FB8", --[[9]]"eg_FB9", --[[10]]"eg_FB10", --[[11]]"eg_FB11",
--[[12]]"eg_FB12", --[[13]]"eg_FB13", --[[14]]"eg_FB14"},
blueprint = {--[[1]]"chaos_hq", --[[2]]"chaos_plasma_generator", --[[3]]"chaos_turret_bolter", --[[4]]"chaos_turret_bolter", --[[5]]"chaos_turret_bolter", --[[6]]"chaos_turret_bolter", --[[7]]"chaos_turret_bolter",
--[[8]]"chaos_turret_bolter", --[[9]]"chaos_plasma_generator", --[[10]]"chaos_temple", --[[11]]"chaos_turret_bolter", --[[12]]"chaos_turret_bolter", --[[13]]"chaos_turret_bolter", --[[14]]"chaos_armoury"},
marker_spawn = {--[[1]]"mkr_CM_FB_Building1", --[[2]]"mkr_CM_FB_Building2", --[[3]]"mkr_CM_FB_Building3", --[[4]]"mkr_CM_FB_Building4", --[[5]]"mkr_CM_FB_Building5", --[[6]]"mkr_CM_FB_Building6",
--[[7]]"mkr_CM_FB_Building7", --[[8]]"mkr_CM_FB_Building8", --[[9]]"mkr_CM_FB_Building9", --[[10]]"mkr_CM_FB_Building10", --[[11]]"mkr_CM_FB_Building11", --[[12]]"mkr_CM_FB_Building12",
--[[13]]"mkr_CM_FB_Building13", --[[14]]"mkr_CM_FB_Building14"},
construction_percent = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1, --[[9]] 1, --[[10]] 1, --[[11]] 1, --[[12]] 1, --[[13]] 1, --[[14]] 1},
}
local i = g_FB_Base_iter
if g_FB_Base_iter <= table.getn(t_FB_Base.egroup_name) and (EGroup_Exists(t_FB_Base.egroup_name[i]) == false or EGroup_IsEmpty(t_FB_Base.egroup_name[i])) then
local egroupID = Entity_CreateBuildingMarker(g_Player3, t_FB_Base.egroup_name[i], t_FB_Base.blueprint[i], t_FB_Base.marker_spawn[i], t_FB_Base.construction_percent[i])
--add them all into one meta group
EGroup_AddGroup(EGroup_CreateIfNotFound("eg_Forward_Base"), EGroup_FromName(t_FB_Base.egroup_name[i]))
elseif g_FB_Base_iter > table.getn(t_FB_Base.egroup_name) then
g_FB_Base_iter = 0
Rule_Remove(Rule_ChaosBase_Forward_Creation)
--this rule checks to see if the HQ exists before creating a raid so it's added here.
Rule_AddIntervalDelay(Rule_FB1_Raid, 30, 5)
end
g_FB_Base_iter = g_FB_Base_iter+1
end
--buildings for the chaos forward base two function Rule_ChaosBase_Forward2_Creation()
t_FB2_Base = {
egroup_name = { --[[1]]"eg_FB2_1", --[[2]]"eg_FB2_2", --[[3]]"eg_FB2_3", --[[4]]"eg_FB2_4", --[[5]]"eg_FB2_5", --[[6]]"eg_FB2_6", --[[7]]"eg_FB2_7", --[[8]]"eg_FB2_8", --[[9]]"eg_FB2_9",
--[[10]]"eg_FB2_10", --[[11]]"eg_FB2_11"},
blueprint = {--[[1]]"chaos_hq", --[[2]]"chaos_temple", --[[3]]"chaos_plasma_generator", --[[4]]"chaos_turret_bolter", --[[5]]"chaos_turret_bolter", --[[6]]"chaos_turret_bolter", --[[7]]"chaos_turret_bolter",
--[[8]]"chaos_turret_bolter", --[[9]]"chaos_turret_bolter", --[[10]]"chaos_turret_bolter", --[[11]]"chaos_turret_bolter"},
marker_spawn = {--[[1]]"mkr_CM_FB2_Building1", --[[2]]"mkr_CM_FB2_Building2", --[[3]]"mkr_CM_FB2_Building3", --[[4]]"mkr_CM_FB2_Building4", --[[5]]"mkr_CM_FB2_Building5", --[[6]]"mkr_CM_FB2_Building6",
--[[7]]"mkr_CM_FB2_Building7", --[[8]]"mkr_CM_FB2_Building8", --[[9]]"mkr_CM_FB2_Building9", --[[10]]"mkr_CM_FB2_Building10", --[[11]]"mkr_CM_FB2_Building11"},
construction_percent = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1, --[[9]] 1, --[[10]] 1, --[[11]] 1},
}
local i = g_FB2_Base_iter
if g_FB2_Base_iter <= table.getn(t_FB2_Base.egroup_name) and (EGroup_Exists(t_FB2_Base.egroup_name[i]) == false or EGroup_IsEmpty(t_FB2_Base.egroup_name[i])) then
local egroupID = Entity_CreateBuildingMarker(g_Player3, t_FB2_Base.egroup_name[i], t_FB2_Base.blueprint[i], t_FB2_Base.marker_spawn[i], t_FB2_Base.construction_percent[i])
--add them all into one meta group
EGroup_AddGroup(EGroup_CreateIfNotFound("eg_Forward_Base2"), EGroup_FromName(t_FB2_Base.egroup_name[i]))
elseif g_FB2_Base_iter > table.getn(t_FB2_Base.egroup_name) then
g_FB2_Base_iter = 0
Rule_Remove(Rule_ChaosBase_Forward2_Creation)
--this rule checks to see if the HQ exists before creating a raid so it's added here.
Rule_AddIntervalDelay(Rule_FB2_Raid, 30, 5)
end
g_FB2_Base_iter = g_FB2_Base_iter+1
end
--buildings for the chaos rear base one function Rule_ChaosBase_Rear_Creation()
t_RB_Base = {
egroup_name = { --[[1]]"eg_RB1", --[[2]]"eg_RB2", --[[3]]"eg_RB3", --[[4]]"eg_RB4", --[[5]]"eg_RB5", --[[6]]"eg_RB6", --[[7]]"eg_RB7", --[[8]]"eg_RB8", --[[9]]"eg_RB9", --[[10]]"eg_RB10", --[[11]]"eg_RB11",
--[[12]]"eg_RB12",},
blueprint = {--[[1]]"chaos_hq", --[[2]]"chaos_temple", --[[3]]"chaos_turret_bolter", --[[4]]"chaos_turret_bolter", --[[5]]"chaos_turret_bolter", --[[6]]"chaos_turret_bolter", --[[7]]"chaos_turret_bolter",
--[[8]]"chaos_plasma_generator", --[[9]]"chaos_plasma_generator", --[[10]]"chaos_plasma_generator", --[[11]]"chaos_armoury", --[[12]]"chaos_machine_pit"},
marker_spawn = {--[[1]]"mkr_CM_RB_Building1", --[[2]]"mkr_CM_RB_Building2", --[[3]]"mkr_CM_RB_Building3", --[[4]]"mkr_CM_RB_Building4", --[[5]]"mkr_CM_RB_Building5", --[[6]]"mkr_CM_RB_Building6",
--[[7]]"mkr_CM_RB_Building7", --[[8]]"mkr_CM_RB_Building8", --[[9]]"mkr_CM_RB_Building9", --[[10]]"mkr_CM_RB_Building10", --[[11]]"mkr_CM_RB_Building11", --[[12]]"mkr_CM_RB_Building12"},
construction_percent = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1, --[[9]] 1, --[[10]] 1, --[[11]] 1, --[[12]] 1},
}
local i = g_RB_Base_iter
if g_RB_Base_iter <= table.getn(t_RB_Base.egroup_name) and (EGroup_Exists(t_RB_Base.egroup_name[i]) == false or EGroup_IsEmpty(t_RB_Base.egroup_name[i])) then
local egroupID = Entity_CreateBuildingMarker(g_Player3, t_RB_Base.egroup_name[i], t_RB_Base.blueprint[i], t_RB_Base.marker_spawn[i], t_RB_Base.construction_percent[i])
--add them all into one meta group
EGroup_AddGroup(EGroup_CreateIfNotFound("eg_Rear_Base"), EGroup_FromName(t_RB_Base.egroup_name[i]))
elseif g_RB_Base_iter > table.getn(t_RB_Base.egroup_name) then
g_RB_Base_iter = 0
Rule_Remove(Rule_ChaosBase_Rear_Creation)
--this rule checks to see if the HQ exists before creating a raid so it's added here.
Rule_AddIntervalDelay(Rule_RB_Marines_Raid, 150, 240)
Rule_AddIntervalDelay(Rule_RB_Defiler_Raid, 300, 600)
end
g_RB_Base_iter = g_RB_Base_iter+1
end
--buildings for the chaos rear base two function Rule_ChaosBase_Rear2_Creation()
t_RB2_Base = {
egroup_name = { --[[1]]"eg_RB2_1", --[[2]]"eg_RB2_2", --[[3]]"eg_RB2_3", --[[4]]"eg_RB2_4", --[[5]]"eg_RB2_5", --[[6]]"eg_RB2_6", --[[7]]"eg_RB2_7", --[[8]]"eg_RB2_8", --[[9]]"eg_RB2_9", --[[10]]"eg_RB2_10"},
blueprint = {--[[1]]"chaos_temple", --[[2]]"chaos_temple", --[[3]]"chaos_greater_sacrificial_circle", --[[4]]"chaos_turret_bolter", --[[5]]"chaos_turret_bolter", --[[6]]"chaos_turret_bolter", --[[7]]"chaos_turret_bolter",
--[[8]]"chaos_greater_sacrificial_circle", --[[9]]"chaos_turret_bolter", --[[10]]"chaos_hq"},
marker_spawn = {--[[1]]"mkr_CM_RB2_Building1", --[[2]]"mkr_CM_RB2_Building2", --[[3]]"mkr_CM_RB2_Building3", --[[4]]"mkr_CM_RB2_Building4", --[[5]]"mkr_CM_RB2_Building5", --[[6]]"mkr_CM_RB2_Building6",
--[[7]]"mkr_CM_RB2_Building7", --[[8]]"mkr_CM_RB2_Building8", --[[9]]"mkr_CM_RB2_Building9", --[[10]]"mkr_CM_RB2_Building10"},
construction_percent = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1, --[[9]] 1, --[[10]] 1},
}
local i = g_RB2_Base_iter
if g_RB2_Base_iter <= table.getn(t_RB2_Base.egroup_name) and (EGroup_Exists(t_RB2_Base.egroup_name[i]) == false or EGroup_IsEmpty(t_RB2_Base.egroup_name[i])) then
local egroupID = Entity_CreateBuildingMarker(g_Player3, t_RB2_Base.egroup_name[i], t_RB2_Base.blueprint[i], t_RB2_Base.marker_spawn[i], t_RB2_Base.construction_percent[i])
--add them all into one meta group
EGroup_AddGroup(EGroup_CreateIfNotFound("eg_Rear_Base"), EGroup_FromName(t_RB2_Base.egroup_name[i]))
elseif g_RB2_Base_iter > table.getn(t_RB2_Base.egroup_name) then
g_RB2_Base_iter = 0
EGroup_AddGroup(EGroup_CreateIfNotFound("eg_Greater_Sacrifical"), EGroup_FromName("eg_RB2_3"))
EGroup_AddGroup(EGroup_CreateIfNotFound("eg_Greater_Sacrifical"), EGroup_FromName("eg_RB2_8"))
Rule_Remove(Rule_ChaosBase_Rear2_Creation)
--this rule checks to see if the HQ exists before creating a raid so it's added here.
Rule_AddIntervalDelay(Rule_RB2_Marine1_Raid, 150, 390)
Rule_AddIntervalDelay(Rule_Tier3_Raid, 2, 500)
--bloodthirster raid
-- Rule_AddOneShot(Rule_BloodThirster, 1800)
g_BloodthirsterFactor = (17 - g_Strength)
Rule_AddOneShot(Rule_BloodThirster, (240 * g_BloodthirsterFactor))
end
g_RB2_Base_iter = g_RB2_Base_iter+1
end
--buildings for the chaos rear base three function Rule_ChaosBase_Rear3_Creation()
t_RB3_Base = {
egroup_name = { --[[1]]"eg_RB3_1", --[[2]]"eg_RB3_2", --[[3]]"eg_RB3_3", --[[4]]"eg_RB3_4", --[[5]]"eg_RB3_5", --[[6]]"eg_RB3_6", --[[7]]"eg_RB3_7", --[[8]]"eg_RB3_8"},
blueprint = {--[[1]]"chaos_turret_bolter", --[[2]]"chaos_turret_bolter", --[[3]]"chaos_turret_bolter", --[[4]]"chaos_turret_bolter", --[[5]]"chaos_turret_bolter", --[[6]]"chaos_turret_bolter", --[[7]]"chaos_temple",
--[[8]]"chaos_turret_bolter"},
marker_spawn = {--[[1]]"mkr_CM_RB3_Building1", --[[2]]"mkr_CM_RB3_Building2", --[[3]]"mkr_CM_RB3_Building3", --[[4]]"mkr_CM_RB3_Building4", --[[5]]"mkr_CM_RB3_Building5", --[[6]]"mkr_CM_RB3_Building6",
--[[7]]"mkr_CM_RB3_Building7", --[[8]]"mkr_CM_RB3_Building8"},
construction_percent = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1},
}
local i = g_RB3_Base_iter
if g_RB3_Base_iter <= table.getn(t_RB3_Base.egroup_name) and (EGroup_Exists(t_RB3_Base.egroup_name[i]) == false or EGroup_IsEmpty(t_RB3_Base.egroup_name[i])) then
local egroupID = Entity_CreateBuildingMarker(g_Player3, t_RB3_Base.egroup_name[i], t_RB3_Base.blueprint[i], t_RB3_Base.marker_spawn[i], t_RB3_Base.construction_percent[i])
--add them all into one meta group
EGroup_AddGroup(EGroup_CreateIfNotFound("eg_Rear_Base"), EGroup_FromName(t_RB3_Base.egroup_name[i]))
elseif g_RB3_Base_iter > table.getn(t_RB3_Base.egroup_name) then
g_RB3_Base_iter = 0
--upgrade some turrets
EGroup_ForceAddOn("eg_RB3_2", "chaos_turret_addon")
EGroup_ForceAddOn("eg_RB3_4", "chaos_turret_addon")
Rule_Remove(Rule_ChaosBase_Rear3_Creation)
end
g_RB3_Base_iter = g_RB3_Base_iter+1
end
--[[Player buildings and builder units ]]
function Rule_Create_Player_Buildings()
t_Player_Buildings ={
chaos_name = {"eg_Player_HQ"},
chaos_building_blueprint = {"chaos_hq"},
chaos_marker_spawn = {"mkr_Player_HQ"},
eldar_name = {"eg_Player_HQ"},
eldar_building_blueprint = {"eldar_hq"},
eldar_marker_spawn ={"mkr_Player_HQ"},
guard_name = {"eg_Player_HQ"},
guard_building_blueprint = {"guard_hq"},
guard_marker_spawn ={"mkr_Player_HQ"},
ork_name = {"eg_Player_HQ"},
ork_building_blueprint = {"ork_hq"},
ork_marker_spawn ={"mkr_Player_HQ"},
marines_name = {"eg_Player_HQ"},
marines_building_blueprint = {"space_marine_hq"},
marines_marker_spawn ={"mkr_Player_HQ"},
tau_name = {"eg_Player_HQ"},
tau_building_blueprint = {"tau_hq"},
tau_marker_spawn= {"mkr_Player_HQ"},
necron_name ={"eg_Player_HQ"},
necron_building_blueprint = {"monolith"},
necron_marker_spawn = {"mkr_Player_HQ"},
}
t_Player_Builder_Units = {
chaos_buildername = {"sg_Player_Builder"},
chaos_builder_blueprint = {"chaos_squad_slave"},
chaos_buildermarker_spawn = {"mkr_Player_Builder"},
eldar_buildername = {"sg_Player_Builder"},
eldar_builder_blueprint = {"eldar_squad_bonesinger"},
eldar_buildermarker_spawn ={"mkr_Player_Builder"},
guard_buildername = {"sg_Player_Builder"},
guard_builder_blueprint = {"guard_squad_enginseer"},
guard_buildermarker_spawn ={"mkr_Player_Builder"},
ork_buildername = {"sg_Player_Builder"},
ork_builder_blueprint = {"ork_squad_grot"},
ork_buildermarker_spawn ={"mkr_Player_Builder"},
marines_buildername = {"sg_Player_Builder"},
marines_builder_blueprint = {"space_marine_squad_servitor"},
marines_buildermarker_spawn ={"mkr_Player_Builder"},
tau_buildername = {"sg_Player_Builder"},
tau_builder_blueprint = {"tau_builder_squad"},
tau_buildermarker_spawn= {"mkr_Player_Builder"},
necron_buildername ={"sg_Player_Builder"},
necron_builder_blueprint = {"necron_builder_scarab_squad"},
necron_buildermarker_spawn = {"mkr_Player_Builder"},
}
if MetaMap_GetPlayerRaceName() == "chaos_marine_race" then
for i = 1, table.getn(t_Player_Buildings.chaos_name) do
Entity_CreateBuildingMarker(g_Player1, t_Player_Buildings.chaos_name[i], t_Player_Buildings.chaos_building_blueprint[i], t_Player_Buildings.chaos_marker_spawn[i], 1)
Util_CreateSquadsAtMarkerEx(g_Player1, t_Player_Builder_Units.chaos_buildername[i], t_Player_Builder_Units.chaos_builder_blueprint[i], t_Player_Builder_Units.chaos_buildermarker_spawn[i], 1, 1)
--i'm saving the hq blueprint in order to use it later
g_HQ_Type = "chaos_hq"
g_Leader_Type = "chaos_squad_lord"
g_BaseDefense_Type = "chaos_squad_cultist"
end
elseif MetaMap_GetPlayerRaceName() == "eldar_race" then
for i = 1, table.getn(t_Player_Buildings.eldar_name) do
Entity_CreateBuildingMarker(g_Player1, t_Player_Buildings.eldar_name[i], t_Player_Buildings.eldar_building_blueprint[i], t_Player_Buildings.eldar_marker_spawn[i], 1)
Util_CreateSquadsAtMarkerEx(g_Player1, t_Player_Builder_Units.eldar_buildername[i], t_Player_Builder_Units.eldar_builder_blueprint[i], t_Player_Builder_Units.eldar_buildermarker_spawn[i], 1, 1)
--i'm saving the hq blueprint in order to use it later
g_HQ_Type = "eldar_hq"
g_Leader_Type = "eldar_squad_farseer"
g_BaseDefense_Type = "eldar_guardian_squad"
end
elseif MetaMap_GetPlayerRaceName() == "guard_race" then
for i = 1, table.getn(t_Player_Buildings.guard_name) do
Entity_CreateBuildingMarker(g_Player1, t_Player_Buildings.guard_name[i], t_Player_Buildings.guard_building_blueprint[i], t_Player_Buildings.guard_marker_spawn[i], 1)
Util_CreateSquadsAtMarkerEx(g_Player1, t_Player_Builder_Units.guard_buildername[i], t_Player_Builder_Units.guard_builder_blueprint[i], t_Player_Builder_Units.guard_buildermarker_spawn[i], 1, 1)
--i'm saving the hq blueprint in order to use it later
g_HQ_Type = "guard_hq"
g_Leader_Type = "guard_squad_command_squad"
g_BaseDefense_Type = "guard_squad_guardsmen"
end
elseif MetaMap_GetPlayerRaceName() == "ork_race" then
for i = 1, table.getn(t_Player_Buildings.ork_name) do
Entity_CreateBuildingMarker(g_Player1, t_Player_Buildings.ork_name[i], t_Player_Buildings.ork_building_blueprint[i], t_Player_Buildings.ork_marker_spawn[i], 1)
Util_CreateSquadsAtMarkerEx(g_Player1, t_Player_Builder_Units.ork_buildername[i], t_Player_Builder_Units.ork_builder_blueprint[i], t_Player_Builder_Units.ork_buildermarker_spawn[i], 1, 1)
--i'm saving the hq blueprint in order to use it later
g_HQ_Type = "ork_hq"
g_Leader_Type = "ork_squad_warboss"
g_BaseDefense_Type = "ork_squad_slugga"
end
elseif MetaMap_GetPlayerRaceName() == "space_marine_race" then
for i = 1, table.getn(t_Player_Buildings.marines_name) do
Entity_CreateBuildingMarker(g_Player1, t_Player_Buildings.marines_name[i], t_Player_Buildings.marines_building_blueprint[i], t_Player_Buildings.marines_marker_spawn[i], 1)
Util_CreateSquadsAtMarkerEx(g_Player1, t_Player_Builder_Units.marines_buildername[i], t_Player_Builder_Units.marines_builder_blueprint[i], t_Player_Builder_Units.marines_buildermarker_spawn[i], 1, 1)
--i'm saving the hq blueprint in order to use it later
g_HQ_Type = "space_marine_hq"
g_Leader_Type = "space_marine_squad_force_commander"
g_BaseDefense_Type = "space_marine_squad_tactical"
end
elseif MetaMap_GetPlayerRaceName() == "tau_race" then
for i = 1, table.getn(t_Player_Buildings.tau_name) do
Entity_CreateBuildingMarker(g_Player1, t_Player_Buildings.tau_name[i], t_Player_Buildings.tau_building_blueprint[i], t_Player_Buildings.tau_marker_spawn[i], 1)
Util_CreateSquadsAtMarkerEx(g_Player1, t_Player_Builder_Units.tau_buildername[i], t_Player_Builder_Units.tau_builder_blueprint[i], t_Player_Builder_Units.tau_buildermarker_spawn[i], 1, 1)
--i'm saving the hq blueprint in order to use it later
g_HQ_Type = "tau_hq"
g_Leader_Type = "tau_commander_squad"
g_BaseDefense_Type = "tau_fire_warrior_squad"
end
elseif MetaMap_GetPlayerRaceName() == "necron_race" then
for i = 1, table.getn(t_Player_Buildings.necron_name) do
Entity_CreateBuildingMarker(g_Player1, t_Player_Buildings.tau_name[i], t_Player_Buildings.necron_building_blueprint[i], t_Player_Buildings.necron_marker_spawn[i], 1)
Util_CreateSquadsAtMarkerEx(g_Player1, t_Player_Builder_Units.necron_buildername[i], t_Player_Builder_Units.necron_builder_blueprint[i], t_Player_Builder_Units.necron_buildermarker_spawn[i], 1, 1)
--i'm saving the hq blueprint in order to use it later
g_HQ_Type = "monolith"
g_Leader_Type = "necron_lord_squad"
g_BaseDefense_Type = "necron_basic_warrior_squad"
end
end
--blueprint table with the relevant hq
t_blueprinthq = Util_MakeBlueprintTable(g_HQ_Type)
t_blueprintleader = Util_MakeBlueprintTable(g_Leader_Type)
--determine race specific blueprints to be looked for when creating forward base
if MetaMap_GetPlayerRaceName() == "chaos_marine_race" then
g_bonus_generator = "chaos_plasma_generator"
g_bonus_turret = "chaos_turret_bolter"
g_bonus_barracks = "chaos_temple"
g_bonus_barracks2 = 0 --value on used for tau kroot nest, dummy value for all other races, like the Tau turret.
g_bonus_research = "chaos_armoury"
elseif MetaMap_GetPlayerRaceName() == "eldar_race" then
g_bonus_generator = "eldar_warp_generator"
g_bonus_turret = "eldar_support_platform_scatterlaser"
g_bonus_barracks = "eldar_aspect_portal"
g_bonus_barracks2 = 0 --value on used for tau kroot nest, dummy value for all other races, like the Tau turret.
g_bonus_research = "eldar_soul_shrine"
elseif MetaMap_GetPlayerRaceName() == "guard_race" then
g_bonus_generator = "guard_plasma_generator"
g_bonus_turret = "guard_turret_heavy_bolter"
g_bonus_barracks = "guard_infantry"
g_bonus_barracks2 = 0 --value on used for tau kroot nest, dummy value for all other races, like the Tau turret.
g_bonus_research = "guard_tactica"
elseif MetaMap_GetPlayerRaceName() == "ork_race" then
g_bonus_generator = "ork_generator"
g_bonus_turret = "ork_waagh_banner"
g_bonus_barracks = "ork_boy_hut"
g_bonus_barracks2 = 0 --value on used for tau kroot nest, dummy value for all other races, like the Tau turret.
g_bonus_research = "ork_pile_o_guns"
elseif MetaMap_GetPlayerRaceName() == "space_marine_race" then
g_bonus_generator = "space_marine_generator"
g_bonus_turret = "space_marine_turret_bolter"
g_bonus_barracks = "space_marine_barracks"
g_bonus_barracks2 = 0 --value on used for tau kroot nest, dummy value for all other races, like the Tau turret.
g_bonus_research = "space_marine_armoury"
elseif MetaMap_GetPlayerRaceName() == "tau_race" then
g_bonus_generator = "tau_plasma_generator"
g_bonus_turret = 0 --tau have no turrets, so zero is simply a filler value to establish the variable instead of writting cutom checks for tau later. 0 will never be a value fed in by code, so it simply allows the algorithym to function in a standadrd manner for all races.
g_bonus_barracks = "tau_barracks"
g_bonus_barracks2 = "tau_kroot_nest"
g_bonus_research = "tau_research_building"
elseif MetaMap_GetPlayerRaceName() == "necron_race" then
g_bonus_generator = "necron_plasma_generator"
g_bonus_turret = "necron_turret"
g_bonus_barracks = "necron_summoning_core"
g_bonus_barracks2 = 0 --value on used for tau kroot nest, dummy value for all other races, like the Tau turret.
g_bonus_research = "necron_forbidden_archive"
end
--Add in any bonus buildings made availible if the player has purchased them via owning Hyperion peaks province
t_blueprintEntitybonus = {}
MetaMap_GetAttackingRaceStartingEntitiesList(t_blueprintEntitybonus)
for j = 1,table.getn(t_blueprintEntitybonus) do
if t_blueprintEntitybonus[j] == g_bonus_generator then
Entity_CreateBuildingMarker(g_Player1, "eg_Bonus"..j, t_blueprintEntitybonus[j], "MM_Reinforcement"..g_bonus_gen_counter, 1)
--increase by one, the next generator will then spawn at the correct marker after this one
g_bonus_gen_counter = g_bonus_gen_counter + 1
elseif t_blueprintEntitybonus[j] == g_bonus_turret then
Entity_CreateBuildingMarker(g_Player1, "eg_Bonus"..j, t_blueprintEntitybonus[j], "MM_Reinforcement"..g_bonus_turret_counter, 1)
--increase by one, the next turret will then spawn at the correct marker after this one
g_bonus_turret_counter = g_bonus_turret_counter + 1
elseif t_blueprintEntitybonus[j] == g_bonus_barracks then
--fixed marker spawn based on Phil's table. Only one barracks is spawned, always at marker 10
--Necron intentionally spawn a summoning core in place of a barracks due to the monolith doubling as their barracks.
Entity_CreateBuildingMarker(g_Player1, "eg_Bonus"..j, t_blueprintEntitybonus[j], "MM_Reinforcement10", 1)
elseif t_blueprintEntitybonus[j] == g_bonus_research then
--fixed marker spawn based on Phil's table. Only one research building is spawned, always at marker 11
Entity_CreateBuildingMarker(g_Player1, "eg_Bonus"..j, t_blueprintEntitybonus[j], "MM_Reinforcement11", 1)
elseif t_blueprintEntitybonus[j] == g_bonus_barracks2 then
--This will only be used to spawn the kroot nest when the player is Tau, otherwise it will be passed over due to g_bonus_barracks2 being a dummy value.
--fixed marker spawn based on Phil's table. Only one kroot nest is spawned, always at marker 13
Entity_CreateBuildingMarker(g_Player1, "eg_Bonus"..j, t_blueprintEntitybonus[j], "MM_Reinforcement13", 1)
end
end
--setting up the upgrades for the commander
MetaMap_UpdatePlayerWargear(g_Player1)
--setting up the bonus units for the player
t_blueprintbonus = {}
MetaMap_GetRaceStartingSquadsList(MetaMap_GetPlayerRaceName(), t_blueprintbonus)
for j = 1, table.getn(t_blueprintbonus) do
if j <= 7 then
k = j
else
k = j - 7
end
Util_CreateSquadsAtMarker(g_Player1, "sg_Bonus"..j, t_blueprintbonus[j], "mkr_Bonus"..k, 1)
end
Rule_Remove(Rule_Create_Player_Buildings)
-- FOW_RevealMarker("mkr_Gate", -1) -- Rule_Add(Rule_Player_Defense_Creation)
end
--[[Spawning Armies]]
function Rule_CM_Bastion_Creation()
if g_Strength == 15 then
t_Bastion_Army = {
sgroup_name = { --[[1]]"sg_CM_Bastion1", --[[2]]"sg_CM_Bastion2", --[[3]]"sg_CM_Bastion3", --[[4]]"sg_CM_Bastion4", --[[5]]"sg_CM_Bastion5", --[[6]]"sg_CM_Bastion6", --[[7]]"sg_CM_Bastion7", --[[8]]"sg_CM_Bastion8",
--[[9]]"sg_CM_Bastion9", --[[10]]"sg_CM_Bastion10", --[[11]]"sg_CM_Bastion11", --[[12]]"sg_CM_Bastion12", --[[13]]"sg_CM_Bastion13", --[[14]]"sg_CM_Bastion14", --[[15]]"sg_CM_Bastion15", --[[16]]"sg_CM_Bastion16",
--[[17]]"sg_CM_Bastion17", --[[18]]"sg_Sorcerer1", --[[19]]"sg_Sorcerer2", --[[20]]"sg_KhorneDefiler1", --[[21]]"sg_KhorneDefiler2", --[[22]]"sg_KhorneDefiler3", --[[23]]"sg_KhorneDefiler4", --[[24]]"sg_KhorneDefiler5",
--[[25]]"sg_KhorneDefiler6", --[[26]]"sg_Chaos_Lord"},
blueprint = {--[[1]]"chaos_marine_squad_stronghold_sp", --[[2]]"chaos_marine_squad_stronghold_sp", --[[3]]"chaos_marine_squad_stronghold_sp", --[[4]]"chaos_marine_squad_stronghold_sp", --[[5]]"chaos_squad_defiler",
--[[6]]"chaos_squad_defiler", --[[7]]"chaos_squad_possessed_marine", --[[8]]"chaos_squad_possessed_marine", --[[9]]"chaos_squad_possessed_marine", --[[10]]"chaos_squad_defiler", --[[11]]"chaos_squad_defiler",
--[[12]]"chaos_squad_defiler", --[[13]]"chaos_squad_defiler", --[[14]]"chaos_squad_predator", --[[15]]"chaos_squad_defiler", --[[16]]"chaos_squad_predator", --[[17]]"chaos_squad_defiler",
--[[18]]"chaos_squad_sorcerer_stronghold_sp",--[[19]]"chaos_squad_sorcerer_stronghold_sp", --[[20]]"chaos_squad_defiler", --[[21]]"chaos_squad_defiler", --[[22]]"chaos_squad_defiler", --[[23]]"chaos_squad_defiler",
--[[24]]"chaos_squad_defiler", --[[25]]"chaos_squad_defiler", --[[26]]"chaos_squad_lord_advance_sp"},
marker_spawn = {--[[1]]"mkr_Bastion1", --[[2]]"mkr_Bastion2", --[[3]]"mkr_Bastion3", --[[4]]"mkr_Bastion4", --[[5]]"mkr_Bastion5", --[[6]]"mkr_Bastion6", --[[7]]"mkr_Bastion7", --[[8]]"mkr_Bastion8",
--[[9]]"mkr_Bastion9", --[[10]]"mkr_Bastion10", --[[11]]"mkr_Bastion11", --[[12]]"mkr_Bastion12", --[[13]]"mkr_Bastion13", --[[14]]"mkr_Bastion14", --[[15]]"mkr_Bastion15", --[[16]]"mkr_Bastion16",
--[[17]]"mkr_Bastion17", --[[18]]"mkr_Sorcerer1", --[[19]]"mkr_Sorcerer2", --[[20]]"mkr_Khorne_Defiler1", --[[21]]"mkr_Khorne_Defiler2", --[[22]]"mkr_Khorne_Defiler3", --[[23]]"mkr_Khorne_Defiler4", --[[24]]"mkr_Khorne_Defiler5",
--[[25]]"mkr_Khorne_Defiler6", --[[26]]"mkr_Chaos_Lord"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1, --[[9]] 1, --[[10]] 1, --[[11]] 1, --[[12]] 1, --[[13]] 1, --[[14]] 1, --[[15]] 1, --[[16]] 1, --[[17]] 1, --[[18]] 1, --[[19]] 1, --[[20]] 1, --[[21]] 1,
--[[22]] 1, --[[23]] 1, --[[24]] 1, --[[25]] 1, --[[26]] 1},
squad_size = {--[[1]] 9, --[[2]] 9, --[[3]] 9, --[[4]] 9, --[[5]] 1, --[[6]] 1, --[[7]] 9, --[[8]] 9, --[[9]] 9, --[[10]] 1, --[[11]] 1, --[[12]] 1, --[[13]] 1, --[[14]] 1, --[[15]] 1, --[[16]] 1, --[[17]] 1, --[[18]] 1, --[[19]] 1, --[[20]] 1, --[[21]] 1,
--[[2]] 1, --[[23]] 1, --[[24]] 1, --[[25]] 1, --[[26]] 1},
}
elseif g_Strength == 14 then
t_Bastion_Army = {
sgroup_name = { --[[1]]"sg_CM_Bastion1", --[[2]]"sg_CM_Bastion2", --[[3]]"sg_CM_Bastion3", --[[4]]"sg_CM_Bastion4", --[[5]]"sg_CM_Bastion5", --[[6]]"sg_CM_Bastion6", --[[7]]"sg_CM_Bastion7", --[[8]]"sg_CM_Bastion8",
--[[9]]"sg_CM_Bastion9", --[[10]]"sg_CM_Bastion10", --[[11]]"sg_CM_Bastion11", --[[12]]"sg_CM_Bastion12", --[[13]]"sg_CM_Bastion13", --[[14]]"sg_CM_Bastion14", --[[15]]"sg_CM_Bastion15", --[[16]]"sg_CM_Bastion16",
--[[17]]"sg_CM_Bastion17", --[[18]]"sg_Sorcerer1", --[[19]]"sg_Sorcerer2", --[[20]]"sg_KhorneDefiler1", --[[21]]"sg_KhorneDefiler2", --[[22]]"sg_KhorneDefiler3", --[[23]]"sg_KhorneDefiler4", --[[24]]"sg_KhorneDefiler5",
--[[25]]"sg_KhorneDefiler6", --[[26]]"sg_Chaos_Lord"},
blueprint = {--[[1]]"chaos_marine_squad_stronghold_sp", --[[2]]"chaos_marine_squad_stronghold_sp", --[[3]]"chaos_marine_squad_stronghold_sp", --[[4]]"chaos_marine_squad_stronghold_sp", --[[5]]"chaos_squad_defiler",
--[[6]]"chaos_squad_defiler", --[[7]]"chaos_squad_possessed_marine", --[[8]]"chaos_squad_possessed_marine", --[[9]]"chaos_squad_possessed_marine", --[[10]]"chaos_squad_defiler", --[[11]]"chaos_squad_defiler",
--[[12]]"chaos_squad_defiler", --[[13]]"chaos_squad_defiler", --[[14]]"chaos_squad_predator", --[[15]]"chaos_squad_defiler", --[[16]]"chaos_squad_predator", --[[17]]"chaos_squad_defiler",
--[[18]]"chaos_squad_sorcerer_stronghold_sp",--[[19]]"chaos_squad_sorcerer_stronghold_sp", --[[20]]"chaos_squad_defiler", --[[21]]"chaos_squad_defiler", --[[22]]"chaos_squad_defiler", --[[23]]"chaos_squad_defiler",
--[[24]]"chaos_squad_defiler", --[[25]]"chaos_squad_defiler", --[[26]]"chaos_squad_lord_advance_sp"},
marker_spawn = {--[[1]]"mkr_Bastion1", --[[2]]"mkr_Bastion2", --[[3]]"mkr_Bastion3", --[[4]]"mkr_Bastion4", --[[5]]"mkr_Bastion5", --[[6]]"mkr_Bastion6", --[[7]]"mkr_Bastion7", --[[8]]"mkr_Bastion8",
--[[9]]"mkr_Bastion9", --[[10]]"mkr_Bastion10", --[[11]]"mkr_Bastion11", --[[12]]"mkr_Bastion12", --[[13]]"mkr_Bastion13", --[[14]]"mkr_Bastion14", --[[15]]"mkr_Bastion15", --[[16]]"mkr_Bastion16",
--[[17]]"mkr_Bastion17", --[[18]]"mkr_Sorcerer1", --[[19]]"mkr_Sorcerer2", --[[20]]"mkr_Khorne_Defiler1", --[[21]]"mkr_Khorne_Defiler2", --[[22]]"mkr_Khorne_Defiler3", --[[23]]"mkr_Khorne_Defiler4", --[[24]]"mkr_Khorne_Defiler5",
--[[25]]"mkr_Khorne_Defiler6", --[[26]]"mkr_Chaos_Lord"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1, --[[9]] 1, --[[10]] 1, --[[11]] 1, --[[12]] 1, --[[13]] 1, --[[14]] 1, --[[15]] 1, --[[16]] 1, --[[17]] 1, --[[18]] 1, --[[19]] 1, --[[20]] 1, --[[21]] 1,
--[[22]] 1, --[[23]] 1, --[[24]] 1, --[[25]] 1, --[[26]] 1},
squad_size = {--[[1]] 5, --[[2]] 5, --[[3]] 5, --[[4]] 5, --[[5]] 1, --[[6]] 1, --[[7]] 9, --[[8]] 9, --[[9]] 9, --[[10]] 1, --[[11]] 1, --[[12]] 1, --[[13]] 1, --[[14]] 1, --[[15]] 1, --[[16]] 1, --[[17]] 1, --[[18]] 1, --[[19]] 1, --[[20]] 1, --[[21]] 1,
--[[2]] 1, --[[23]] 1, --[[24]] 1, --[[25]] 1, --[[26]] 1},
}
elseif g_Strength == 13 then
t_Bastion_Army = {
sgroup_name = { --[[1]]"sg_CM_Bastion1", --[[2]]"sg_CM_Bastion2", --[[3]]"sg_CM_Bastion3", --[[4]]"sg_CM_Bastion4", --[[5]]"sg_CM_Bastion5", --[[6]]"sg_CM_Bastion6", --[[7]]"sg_CM_Bastion7", --[[8]]"sg_CM_Bastion8",
--[[9]]"sg_CM_Bastion9", --[[10]]"sg_CM_Bastion10", --[[11]]"sg_CM_Bastion11", --[[12]]"sg_CM_Bastion12", --[[13]]"sg_CM_Bastion13", --[[14]]"sg_CM_Bastion14", --[[15]]"sg_CM_Bastion15", --[[16]]"sg_CM_Bastion16",
--[[17]]"sg_CM_Bastion17", --[[18]]"sg_Sorcerer1", --[[19]]"sg_Sorcerer2", --[[20]]"sg_KhorneDefiler1", --[[21]]"sg_KhorneDefiler2", --[[22]]"sg_KhorneDefiler3", --[[23]]"sg_KhorneDefiler4", --[[24]]"sg_KhorneDefiler5",
--[[25]]"sg_KhorneDefiler6", --[[26]]"sg_Chaos_Lord"},
blueprint = {--[[1]]"chaos_marine_squad_stronghold_sp", --[[2]]"chaos_marine_squad", --[[3]]"chaos_marine_squad_stronghold_sp", --[[4]]"chaos_marine_squad", --[[5]]"chaos_squad_defiler",
--[[6]]"chaos_squad_defiler", --[[7]]"chaos_squad_possessed_marine", --[[8]]"chaos_squad_possessed_marine", --[[9]]"chaos_squad_possessed_marine", --[[10]]"chaos_squad_defiler", --[[11]]"chaos_squad_defiler",
--[[12]]"chaos_squad_defiler", --[[13]]"chaos_squad_defiler", --[[14]]"chaos_squad_predator", --[[15]]"chaos_squad_defiler", --[[16]]"chaos_squad_predator", --[[17]]"chaos_squad_defiler",
--[[18]]"chaos_squad_sorcerer_stronghold_sp",--[[19]]"chaos_squad_sorcerer_stronghold_sp", --[[20]]"chaos_squad_defiler", --[[21]]"chaos_squad_defiler", --[[22]]"chaos_squad_defiler", --[[23]]"chaos_squad_defiler",
--[[24]]"chaos_squad_defiler", --[[25]]"chaos_squad_defiler", --[[26]]"chaos_squad_lord_advance_sp"},
marker_spawn = {--[[1]]"mkr_Bastion1", --[[2]]"mkr_Bastion2", --[[3]]"mkr_Bastion3", --[[4]]"mkr_Bastion4", --[[5]]"mkr_Bastion5", --[[6]]"mkr_Bastion6", --[[7]]"mkr_Bastion7", --[[8]]"mkr_Bastion8",
--[[9]]"mkr_Bastion9", --[[10]]"mkr_Bastion10", --[[11]]"mkr_Bastion11", --[[12]]"mkr_Bastion12", --[[13]]"mkr_Bastion13", --[[14]]"mkr_Bastion14", --[[15]]"mkr_Bastion15", --[[16]]"mkr_Bastion16",
--[[17]]"mkr_Bastion17", --[[18]]"mkr_Sorcerer1", --[[19]]"mkr_Sorcerer2", --[[20]]"mkr_Khorne_Defiler1", --[[21]]"mkr_Khorne_Defiler2", --[[22]]"mkr_Khorne_Defiler3", --[[23]]"mkr_Khorne_Defiler4", --[[24]]"mkr_Khorne_Defiler5",
--[[25]]"mkr_Khorne_Defiler6", --[[26]]"mkr_Chaos_Lord"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1, --[[9]] 1, --[[10]] 1, --[[11]] 1, --[[12]] 1, --[[13]] 1, --[[14]] 1, --[[15]] 1, --[[16]] 1, --[[17]] 1, --[[18]] 1, --[[19]] 1, --[[20]] 1, --[[21]] 1,
--[[22]] 1, --[[23]] 1, --[[24]] 1, --[[25]] 1, --[[26]] 1},
squad_size = {--[[1]] 5, --[[2]] 9, --[[3]] 5, --[[4]] 9, --[[5]] 1, --[[6]] 1, --[[7]] 9, --[[8]] 9, --[[9]] 9, --[[10]] 1, --[[11]] 1, --[[12]] 1, --[[13]] 1, --[[14]] 1, --[[15]] 1, --[[16]] 1, --[[17]] 1, --[[18]] 1, --[[19]] 1, --[[20]] 1, --[[21]] 1,
--[[2]] 1, --[[23]] 1, --[[24]] 1, --[[25]] 1, --[[26]] 1},
}
elseif g_Strength == 12 then
t_Bastion_Army = {
sgroup_name = { --[[1]]"sg_CM_Bastion1", --[[2]]"sg_CM_Bastion2", --[[3]]"sg_CM_Bastion3", --[[4]]"sg_CM_Bastion4", --[[5]]"sg_CM_Bastion5", --[[6]]"sg_CM_Bastion6", --[[7]]"sg_CM_Bastion7", --[[8]]"sg_CM_Bastion8",
--[[9]]"sg_CM_Bastion9", --[[10]]"sg_CM_Bastion10", --[[11]]"sg_CM_Bastion11", --[[12]]"sg_CM_Bastion12", --[[13]]"sg_CM_Bastion13", --[[14]]"sg_CM_Bastion14", --[[15]]"sg_CM_Bastion15", --[[16]]"sg_CM_Bastion16",
--[[17]]"sg_CM_Bastion17", --[[18]]"sg_Sorcerer1", --[[19]]"sg_Sorcerer2", --[[20]]"sg_KhorneDefiler1", --[[21]]"sg_KhorneDefiler2", --[[22]]"sg_KhorneDefiler3", --[[23]]"sg_KhorneDefiler4", --[[24]]"sg_KhorneDefiler5",
--[[25]]"sg_KhorneDefiler6", --[[26]]"sg_Chaos_Lord"},
blueprint = {--[[1]]"chaos_marine_squad_stronghold_sp", --[[2]]"chaos_marine_squad", --[[3]]"chaos_marine_squad", --[[4]]"chaos_marine_squad", --[[5]]"chaos_squad_defiler",
--[[6]]"chaos_squad_defiler", --[[7]]"chaos_squad_possessed_marine", --[[8]]"chaos_squad_possessed_marine", --[[9]]"chaos_squad_possessed_marine", --[[10]]"chaos_squad_defiler", --[[11]]"chaos_squad_defiler",
--[[12]]"chaos_squad_defiler", --[[13]]"chaos_squad_defiler", --[[14]]"chaos_squad_predator", --[[15]]"chaos_squad_defiler", --[[16]]"chaos_squad_predator", --[[17]]"chaos_squad_defiler",
--[[18]]"chaos_squad_sorcerer",--[[19]]"chaos_squad_sorcerer_stronghold_sp", --[[20]]"chaos_squad_defiler", --[[21]]"chaos_squad_defiler", --[[22]]"chaos_squad_defiler", --[[23]]"chaos_squad_defiler",
--[[24]]"chaos_squad_defiler", --[[25]]"chaos_squad_defiler", --[[26]]"chaos_squad_lord_advance_sp"},
marker_spawn = {--[[1]]"mkr_Bastion1", --[[2]]"mkr_Bastion2", --[[3]]"mkr_Bastion3", --[[4]]"mkr_Bastion4", --[[5]]"mkr_Bastion5", --[[6]]"mkr_Bastion6", --[[7]]"mkr_Bastion7", --[[8]]"mkr_Bastion8",
--[[9]]"mkr_Bastion9", --[[10]]"mkr_Bastion10", --[[11]]"mkr_Bastion11", --[[12]]"mkr_Bastion12", --[[13]]"mkr_Bastion13", --[[14]]"mkr_Bastion14", --[[15]]"mkr_Bastion15", --[[16]]"mkr_Bastion16",
--[[17]]"mkr_Bastion17", --[[18]]"mkr_Sorcerer1", --[[19]]"mkr_Sorcerer2", --[[20]]"mkr_Khorne_Defiler1", --[[21]]"mkr_Khorne_Defiler2", --[[22]]"mkr_Khorne_Defiler3", --[[23]]"mkr_Khorne_Defiler4", --[[24]]"mkr_Khorne_Defiler5",
--[[25]]"mkr_Khorne_Defiler6", --[[26]]"mkr_Chaos_Lord"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1, --[[9]] 1, --[[10]] 1, --[[11]] 1, --[[12]] 1, --[[13]] 1, --[[14]] 1, --[[15]] 1, --[[16]] 1, --[[17]] 1, --[[18]] 1, --[[19]] 1, --[[20]] 1, --[[21]] 1,
--[[22]] 1, --[[23]] 1, --[[24]] 1, --[[25]] 1, --[[26]] 1},
squad_size = {--[[1]] 9, --[[2]] 9, --[[3]] 9, --[[4]] 9, --[[5]] 1, --[[6]] 1, --[[7]] 9, --[[8]] 9, --[[9]] 9, --[[10]] 1, --[[11]] 1, --[[12]] 1, --[[13]] 1, --[[14]] 1, --[[15]] 1, --[[16]] 1, --[[17]] 1, --[[18]] 1, --[[19]] 1, --[[20]] 1, --[[21]] 1,
--[[2]] 1, --[[23]] 1, --[[24]] 1, --[[25]] 1, --[[26]] 1},
}
elseif g_Strength == 11 then
t_Bastion_Army = {
sgroup_name = { --[[1]]"sg_CM_Bastion1", --[[2]]"sg_CM_Bastion2", --[[3]]"sg_CM_Bastion3", --[[4]]"sg_CM_Bastion4", --[[5]]"sg_CM_Bastion5", --[[6]]"sg_CM_Bastion6", --[[7]]"sg_CM_Bastion7", --[[8]]"sg_CM_Bastion8",
--[[9]]"sg_CM_Bastion9", --[[10]]"sg_CM_Bastion10", --[[11]]"sg_CM_Bastion11", --[[12]]"sg_CM_Bastion12", --[[13]]"sg_CM_Bastion13", --[[14]]"sg_CM_Bastion14", --[[15]]"sg_CM_Bastion15", --[[16]]"sg_CM_Bastion16",
--[[17]]"sg_CM_Bastion17", --[[18]]"sg_Sorcerer1", --[[19]]"sg_Sorcerer2", --[[20]]"sg_KhorneDefiler1", --[[21]]"sg_KhorneDefiler2", --[[22]]"sg_KhorneDefiler3", --[[23]]"sg_KhorneDefiler4", --[[24]]"sg_KhorneDefiler5",
--[[25]]"sg_KhorneDefiler6", --[[26]]"sg_Chaos_Lord"},
blueprint = {--[[1]]"chaos_marine_squad", --[[2]]"chaos_marine_squad", --[[3]]"chaos_marine_squad", --[[4]]"chaos_marine_squad", --[[5]]"chaos_squad_defiler",
--[[6]]"chaos_squad_defiler", --[[7]]"chaos_squad_possessed_marine", --[[8]]"chaos_squad_possessed_marine", --[[9]]"chaos_squad_possessed_marine", --[[10]]"chaos_squad_defiler", --[[11]]"chaos_squad_defiler",
--[[12]]"chaos_squad_defiler", --[[13]]"chaos_squad_defiler", --[[14]]"chaos_squad_predator", --[[15]]"chaos_squad_defiler", --[[16]]"chaos_squad_predator", --[[17]]"chaos_squad_defiler",
--[[18]]"chaos_squad_sorcerer",--[[19]]"chaos_squad_sorcerer", --[[20]]"chaos_squad_defiler", --[[21]]"chaos_squad_defiler", --[[22]]"chaos_squad_defiler", --[[23]]"chaos_squad_defiler",
--[[24]]"chaos_squad_defiler", --[[25]]"chaos_squad_defiler", --[[26]]"chaos_squad_lord_advance_sp"},
marker_spawn = {--[[1]]"mkr_Bastion1", --[[2]]"mkr_Bastion2", --[[3]]"mkr_Bastion3", --[[4]]"mkr_Bastion4", --[[5]]"mkr_Bastion5", --[[6]]"mkr_Bastion6", --[[7]]"mkr_Bastion7", --[[8]]"mkr_Bastion8",
--[[9]]"mkr_Bastion9", --[[10]]"mkr_Bastion10", --[[11]]"mkr_Bastion11", --[[12]]"mkr_Bastion12", --[[13]]"mkr_Bastion13", --[[14]]"mkr_Bastion14", --[[15]]"mkr_Bastion15", --[[16]]"mkr_Bastion16",
--[[17]]"mkr_Bastion17", --[[18]]"mkr_Sorcerer1", --[[19]]"mkr_Sorcerer2", --[[20]]"mkr_Khorne_Defiler1", --[[21]]"mkr_Khorne_Defiler2", --[[22]]"mkr_Khorne_Defiler3", --[[23]]"mkr_Khorne_Defiler4", --[[24]]"mkr_Khorne_Defiler5",
--[[25]]"mkr_Khorne_Defiler6", --[[26]]"mkr_Chaos_Lord"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1, --[[9]] 1, --[[10]] 1, --[[11]] 1, --[[12]] 1, --[[13]] 1, --[[14]] 1, --[[15]] 1, --[[16]] 1, --[[17]] 1, --[[18]] 1, --[[19]] 1, --[[20]] 1, --[[21]] 1,
--[[22]] 1, --[[23]] 1, --[[24]] 1, --[[25]] 1, --[[26]] 1},
squad_size = {--[[1]] 9, --[[2]] 9, --[[3]] 9, --[[4]] 9, --[[5]] 1, --[[6]] 1, --[[7]] 9, --[[8]] 9, --[[9]] 9, --[[10]] 1, --[[11]] 1, --[[12]] 1, --[[13]] 1, --[[14]] 1, --[[15]] 1, --[[16]] 1, --[[17]] 1, --[[18]] 1, --[[19]] 1, --[[20]] 1, --[[21]] 1,
--[[2]] 1, --[[23]] 1, --[[24]] 1, --[[25]] 1, --[[26]] 1},
}
else
t_Bastion_Army = {
sgroup_name = { --[[1]]"sg_CM_Bastion1", --[[2]]"sg_CM_Bastion2", --[[3]]"sg_CM_Bastion3", --[[4]]"sg_CM_Bastion4", --[[5]]"sg_CM_Bastion5", --[[6]]"sg_CM_Bastion6", --[[7]]"sg_CM_Bastion7", --[[8]]"sg_CM_Bastion8",
--[[9]]"sg_CM_Bastion9", --[[10]]"sg_CM_Bastion10", --[[11]]"sg_CM_Bastion11", --[[12]]"sg_CM_Bastion12", --[[13]]"sg_CM_Bastion13", --[[14]]"sg_CM_Bastion14", --[[15]]"sg_CM_Bastion15", --[[16]]"sg_CM_Bastion16",
--[[17]]"sg_CM_Bastion17", --[[18]]"sg_Sorcerer1", --[[19]]"sg_Sorcerer2", --[[20]]"sg_KhorneDefiler1", --[[21]]"sg_KhorneDefiler2", --[[22]]"sg_KhorneDefiler3", --[[23]]"sg_KhorneDefiler4", --[[24]]"sg_KhorneDefiler5",
--[[25]]"sg_KhorneDefiler6", --[[26]]"sg_Chaos_Lord"},
blueprint = {--[[1]]"chaos_marine_squad", --[[2]]"chaos_marine_squad", --[[3]]"chaos_marine_squad", --[[4]]"chaos_marine_squad", --[[5]]"chaos_squad_defiler",
--[[6]]"chaos_squad_defiler", --[[7]]"chaos_squad_possessed_marine", --[[8]]"chaos_squad_possessed_marine", --[[9]]"chaos_squad_possessed_marine", --[[10]]"chaos_squad_defiler", --[[11]]"chaos_squad_defiler",
--[[12]]"chaos_squad_defiler", --[[13]]"chaos_squad_defiler", --[[14]]"chaos_squad_predator", --[[15]]"chaos_squad_defiler", --[[16]]"chaos_squad_predator", --[[17]]"chaos_squad_defiler",
--[[18]]"chaos_squad_sorcerer",--[[19]]"chaos_squad_sorcerer", --[[20]]"chaos_squad_defiler", --[[21]]"chaos_squad_defiler", --[[22]]"chaos_squad_defiler", --[[23]]"chaos_squad_defiler",
--[[24]]"chaos_squad_defiler", --[[25]]"chaos_squad_defiler", --[[26]]"chaos_squad_lord_advance_sp"},
marker_spawn = {--[[1]]"mkr_Bastion1", --[[2]]"mkr_Bastion2", --[[3]]"mkr_Bastion3", --[[4]]"mkr_Bastion4", --[[5]]"mkr_Bastion5", --[[6]]"mkr_Bastion6", --[[7]]"mkr_Bastion7", --[[8]]"mkr_Bastion8",
--[[9]]"mkr_Bastion9", --[[10]]"mkr_Bastion10", --[[11]]"mkr_Bastion11", --[[12]]"mkr_Bastion12", --[[13]]"mkr_Bastion13", --[[14]]"mkr_Bastion14", --[[15]]"mkr_Bastion15", --[[16]]"mkr_Bastion16",
--[[17]]"mkr_Bastion17", --[[18]]"mkr_Sorcerer1", --[[19]]"mkr_Sorcerer2", --[[20]]"mkr_Khorne_Defiler1", --[[21]]"mkr_Khorne_Defiler2", --[[22]]"mkr_Khorne_Defiler3", --[[23]]"mkr_Khorne_Defiler4", --[[24]]"mkr_Khorne_Defiler5",
--[[25]]"mkr_Khorne_Defiler6", --[[26]]"mkr_Chaos_Lord"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1, --[[9]] 1, --[[10]] 1, --[[11]] 1, --[[12]] 1, --[[13]] 1, --[[14]] 1, --[[15]] 1, --[[16]] 1, --[[17]] 1, --[[18]] 1, --[[19]] 1, --[[20]] 1, --[[21]] 1,
--[[22]] 1, --[[23]] 1, --[[24]] 1, --[[25]] 1, --[[26]] 1},
squad_size = {--[[1]] 9, --[[2]] 9, --[[3]] 9, --[[4]] 9, --[[5]] 1, --[[6]] 1, --[[7]] 9, --[[8]] 9, --[[9]] 9, --[[10]] 1, --[[11]] 1, --[[12]] 1, --[[13]] 1, --[[14]] 1, --[[15]] 1, --[[16]] 1, --[[17]] 1, --[[18]] 1, --[[19]] 1, --[[20]] 1, --[[21]] 1,
--[[2]] 1, --[[23]] 1, --[[24]] 1, --[[25]] 1, --[[26]] 1},
}
end
local i = g_Bastion_Army_iter
if g_Bastion_Army_iter <= table.getn(t_Bastion_Army.sgroup_name) and (SGroup_Exists(t_Bastion_Army.sgroup_name[i]) == false or SGroup_IsEmpty(t_Bastion_Army.sgroup_name[i])) then
local sgroupID = Util_CreateSquadsAtMarkerEx(g_Player2, t_Bastion_Army.sgroup_name[i], t_Bastion_Army.blueprint[i], t_Bastion_Army.marker_spawn[i], t_Bastion_Army.squad_num[i], t_Bastion_Army.squad_size[i])
--these space marines don't break
if Squad_HasMorale(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_Bastion_Army.sgroup_name[i]), 1)) then
SGroup_SetMoraleInvulnerable(t_Bastion_Army.sgroup_name[i], true)
end
--add them all into one meta group
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_CM_Bastion_Army"), SGroup_FromName(t_Bastion_Army.sgroup_name[i]))
Cmd_SetStance(t_Bastion_Army.sgroup_name[i], STANCE_Hold)
--prevent AI from using these units
Cpu_LockSGroupAcrossPlayers(t_Bastion_Army.sgroup_name[i])
Cpu_LockSGroupAcrossPlayers("sg_CM_Bastion_Army")
elseif g_Bastion_Army_iter > table.getn(t_Bastion_Army.sgroup_name) then
g_Bastion_Army_iter = 0
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_Sorcerers"), SGroup_FromName("sg_Sorcerer1"))
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_Sorcerers"), SGroup_FromName("sg_Sorcerer2"))
if g_Strength == 15 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion1"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 6)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion2"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion3"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 6)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion4"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion5"), 1), "chaos_obliterator_ranged_group", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion6"), 1), "chaos_obliterator_ranged_group", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion7"), 1), "chaos_flamer_possessed", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion8"), 1), "chaos_flamer_possessed", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion9"), 1), "chaos_flamer_possessed", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion10"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion11"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion12"), 1), "chaos_obliterator_ranged_group",3)
elseif g_Strength == 14 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion1"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion2"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion3"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion4"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion5"), 1), "chaos_obliterator_ranged_group", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion6"), 1), "chaos_obliterator_ranged_group", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion7"), 1), "chaos_flamer_possessed", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion8"), 1), "chaos_flamer_possessed", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion9"), 1), "chaos_flamer_possessed", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion10"), 1), "chaos_obliterator_ranged_group",2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion11"), 1), "chaos_obliterator_ranged_group",2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion12"), 1), "chaos_obliterator_ranged_group",2)
elseif g_Strength == 13 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion1"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion2"), 1), "chaos_heavy_bolter_tactical", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion3"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion4"), 1), "chaos_heavy_bolter_tactical", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion5"), 1), "chaos_obliterator_ranged_group", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion6"), 1), "chaos_obliterator_ranged_group", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion7"), 1), "chaos_flamer_possessed", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion8"), 1), "chaos_flamer_possessed", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion9"), 1), "chaos_flamer_possessed", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion10"), 1), "chaos_obliterator_ranged_group",1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion11"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion12"), 1), "chaos_obliterator_ranged_group",1)
elseif g_Strength == 12 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion1"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion2"), 1), "chaos_heavy_bolter_tactical", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion3"), 1), "chaos_heavy_bolter_tactical", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion4"), 1), "chaos_heavy_bolter_tactical", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion5"), 1), "chaos_obliterator_ranged_group", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion6"), 1), "chaos_obliterator_ranged_group", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion7"), 1), "chaos_flamer_possessed", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion8"), 1), "chaos_flamer_possessed", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion9"), 1), "chaos_flamer_possessed", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion10"), 1), "chaos_obliterator_ranged_group",1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion11"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion12"), 1), "chaos_obliterator_ranged_group",1)
elseif g_Strength == 11 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion1"), 1), "chaos_heavy_bolter_tactical", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion2"), 1), "chaos_heavy_bolter_tactical", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion3"), 1), "chaos_heavy_bolter_tactical", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion4"), 1), "chaos_heavy_bolter_tactical", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion5"), 1), "chaos_obliterator_ranged_group", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion6"), 1), "chaos_obliterator_ranged_group", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion7"), 1), "chaos_flamer_possessed", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion8"), 1), "chaos_flamer_possessed", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion9"), 1), "chaos_flamer_possessed", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion10"), 1), "chaos_obliterator_ranged_group",1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion11"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion12"), 1), "chaos_obliterator_ranged_group",1)
else
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion1"), 1), "chaos_heavy_bolter_tactical", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion2"), 1), "chaos_heavy_bolter_tactical", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion3"), 1), "chaos_heavy_bolter_tactical", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion4"), 1), "chaos_heavy_bolter_tactical", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion5"), 1), "chaos_obliterator_ranged_group", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion6"), 1), "chaos_obliterator_ranged_group", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion7"), 1), "chaos_flamer_possessed", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion8"), 1), "chaos_flamer_possessed", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion9"), 1), "chaos_flamer_possessed", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion10"), 1), "chaos_obliterator_ranged_group",1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion11"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion12"), 1), "chaos_obliterator_ranged_group",1)
end
Cmd_SetStance("sg_CM_Bastion1", STANCE_StandGround)
Cmd_SetStance("sg_CM_Bastion2", STANCE_StandGround)
Cmd_SetStance("sg_CM_Bastion3", STANCE_StandGround)
Cmd_SetStance("sg_CM_Bastion4", STANCE_StandGround)
Cmd_SetStance("sg_CM_Bastion5", STANCE_Hold)
Cmd_SetStance("sg_CM_Bastion6", STANCE_Hold)
Cmd_SetStance("sg_CM_Bastion7", STANCE_Hold)
Cmd_SetStance("sg_CM_Bastion8", STANCE_Hold)
Cmd_SetStance("sg_CM_Bastion9", STANCE_Hold)
Cmd_SetStance("sg_CM_Bastion10", STANCE_Hold)
Cmd_SetStance("sg_CM_Bastion11", STANCE_Hold)
Cmd_SetStance("sg_CM_Bastion12", STANCE_Hold)
Rule_AddInterval(Rule_PatrolA, 5)
Rule_AddInterval(Rule_PatrolB, 5)
Rule_AddInterval(Rule_KD_Patrol, 5)
Rule_AddInterval(Rule_KDPatrol_Check, 5)
Rule_AddInterval(Rule_Defiler_Static_Movement, 30)
Rule_AddInterval(Rule_Defiler_Static_Movement2, 33)
Rule_AddInterval(Rule_Defiler_Static_Movement3, 36)
Rule_AddInterval(Rule_Defiler_Static_Movement4, 39)
Rule_AddInterval(Rule_Defiler_Static_Movement5, 41)
Rule_AddInterval(Rule_Defiler_Static_Movement6, 44)
Rule_AddInterval(Rule_Inner_Bastion_Patrol1, 40)
Rule_AddInterval(Rule_Inner_Bastion_Patrol2, 43)
Rule_AddInterval(Rule_Inner_Bastion_Patrol3,46)
Rule_Remove(Rule_CM_Bastion_Creation)
end
g_Bastion_Army_iter = g_Bastion_Army_iter+1
end
--First Chaos Wave defending the left bridge
function Rule_CM_FWL_Creation()
if g_Strength == 15 then
t_FWL_Army = {
sgroup_name = { --[[1]]"sg_CM_FWL1", --[[2]]"sg_CM_FWL2", --[[3]]"sg_CM_FWL3", --[[4]]"sg_CM_FWL4", --[[5]]"sg_CM_FWL5", --[[6]]"sg_CM_FWL6"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad_stronghold_sp", --[[6]]"chaos_squad_cultist"},
marker_spawn = {--[[1]]"mkr_FWL1", --[[2]]"mkr_FWL2", --[[3]]"mkr_FWL3", --[[4]]"mkr_FWL4", --[[5]]"mkr_FWL5", --[[6]]"mkr_FWL6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 9, --[[2]] 9, --[[3]] 9, --[[4]] 9, --[[5]] 2, --[[6]] 9},
}
elseif g_Strength == 14 then
t_FWL_Army = {
sgroup_name = { --[[1]]"sg_CM_FWL1", --[[2]]"sg_CM_FWL2", --[[3]]"sg_CM_FWL3", --[[4]]"sg_CM_FWL4", --[[5]]"sg_CM_FWL5", --[[6]]"sg_CM_FWL6"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad", --[[6]]"chaos_squad_cultist"},
marker_spawn = {--[[1]]"mkr_FWL1", --[[2]]"mkr_FWL2", --[[3]]"mkr_FWL3", --[[4]]"mkr_FWL4", --[[5]]"mkr_FWL5", --[[6]]"mkr_FWL6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 9, --[[2]] 9, --[[3]] 9, --[[4]] 9, --[[5]] 2, --[[6]] 9},
}
elseif g_Strength == 13 then
t_FWL_Army = {
sgroup_name = { --[[1]]"sg_CM_FWL1", --[[2]]"sg_CM_FWL2", --[[3]]"sg_CM_FWL3", --[[4]]"sg_CM_FWL4", --[[5]]"sg_CM_FWL5", --[[6]]"sg_CM_FWL6"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad", --[[6]]"chaos_squad_cultist"},
marker_spawn = {--[[1]]"mkr_FWL1", --[[2]]"mkr_FWL2", --[[3]]"mkr_FWL3", --[[4]]"mkr_FWL4", --[[5]]"mkr_FWL5", --[[6]]"mkr_FWL6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 8, --[[2]] 8, --[[3]] 8, --[[4]] 8, --[[5]] 2, --[[6]] 8},
}
elseif g_Strength == 12 then
t_FWL_Army = {
sgroup_name = { --[[1]]"sg_CM_FWL1", --[[2]]"sg_CM_FWL2", --[[3]]"sg_CM_FWL3", --[[4]]"sg_CM_FWL4", --[[5]]"sg_CM_FWL5", --[[6]]"sg_CM_FWL6"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad", --[[6]]"chaos_squad_cultist"},
marker_spawn = {--[[1]]"mkr_FWL1", --[[2]]"mkr_FWL2", --[[3]]"mkr_FWL3", --[[4]]"mkr_FWL4", --[[5]]"mkr_FWL5", --[[6]]"mkr_FWL6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 7, --[[2]] 7, --[[3]] 7, --[[4]] 7, --[[5]] 2, --[[6]] 7},
}
elseif g_Strength == 11 then
t_FWL_Army = {
sgroup_name = { --[[1]]"sg_CM_FWL1", --[[2]]"sg_CM_FWL2", --[[3]]"sg_CM_FWL3", --[[4]]"sg_CM_FWL4", --[[5]]"sg_CM_FWL5", --[[6]]"sg_CM_FWL6"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad", --[[6]]"chaos_squad_cultist"},
marker_spawn = {--[[1]]"mkr_FWL1", --[[2]]"mkr_FWL2", --[[3]]"mkr_FWL3", --[[4]]"mkr_FWL4", --[[5]]"mkr_FWL5", --[[6]]"mkr_FWL6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 6, --[[2]] 6, --[[3]] 6, --[[4]] 6, --[[5]] 2, --[[6]] 6},
}
else
t_FWL_Army = {
sgroup_name = { --[[1]]"sg_CM_FWL1", --[[2]]"sg_CM_FWL2", --[[3]]"sg_CM_FWL3", --[[4]]"sg_CM_FWL4", --[[5]]"sg_CM_FWL5", --[[6]]"sg_CM_FWL6"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad", --[[6]]"chaos_squad_cultist"},
marker_spawn = {--[[1]]"mkr_FWL1", --[[2]]"mkr_FWL2", --[[3]]"mkr_FWL3", --[[4]]"mkr_FWL4", --[[5]]"mkr_FWL5", --[[6]]"mkr_FWL6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 5, --[[2]] 5, --[[3]] 5, --[[4]] 5, --[[5]] 2, --[[6]] 5},
}
end
local i = g_FWL_Army_iter
if g_FWL_Army_iter <= table.getn(t_FWL_Army.sgroup_name) and (SGroup_Exists(t_FWL_Army.sgroup_name[i]) == false or SGroup_IsEmpty(t_FWL_Army.sgroup_name[i])) then
local sgroupID = Util_CreateSquadsAtMarkerEx(g_Player2, t_FWL_Army.sgroup_name[i], t_FWL_Army.blueprint[i], t_FWL_Army.marker_spawn[i], t_FWL_Army.squad_num[i], t_FWL_Army.squad_size[i])
--add them all into one meta group
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_CM_FWL_Army"), SGroup_FromName(t_FWL_Army.sgroup_name[i]))
--prevent AI from using these units
Cpu_LockSGroupAcrossPlayers(t_FWL_Army.sgroup_name[i])
Cpu_LockSGroupAcrossPlayers("sg_CM_FWL_Army")
elseif g_FWL_Army_iter > table.getn(t_FWL_Army.sgroup_name) then
g_FWL_Army_iter = 0
if g_Strength == 15 then
--upgrading weaponry
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL1"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL2"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL3"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL3"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL5"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL6"), 1), "chaos_grenade_launcher", 5)
elseif g_Strength == 14 then
--upgrading weaponry
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL1"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL2"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL3"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL3"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL5"), 1), "chaos_heavy_bolter_tactical", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL6"), 1), "chaos_grenade_launcher", 5)
elseif g_Strength == 13 then
--upgrading weaponry
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL1"), 1), "chaos_grenade_launcher", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL2"), 1), "chaos_grenade_launcher", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL3"), 1), "chaos_grenade_launcher", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL3"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL5"), 1), "chaos_heavy_bolter_tactical", 1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL6"), 1), "chaos_grenade_launcher", 5)
elseif g_Strength == 12 then
--upgrading weaponry
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL1"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL2"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL3"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL3"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL5"), 1), "chaos_heavy_bolter_tactical", 1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL6"), 1), "chaos_grenade_launcher", 5)
elseif g_Strength == 11 then
--upgrading weaponry
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL1"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL1"), 1), "chaos_plasma_gun_cultist", 1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL2"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL2"), 1), "chaos_plasma_gun_cultist", 1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL3"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL3"), 1), "chaos_plasma_gun_cultist", 1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL5"), 1), "chaos_heavy_bolter_tactical", 1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL6"), 1), "chaos_grenade_launcher", 5)
else
--upgrading weaponry
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL1"), 1), "chaos_grenade_launcher", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL1"), 1), "chaos_plasma_gun_cultist", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL2"), 1), "chaos_grenade_launcher", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL2"), 1), "chaos_plasma_gun_cultist", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL3"), 1), "chaos_grenade_launcher", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL3"), 1), "chaos_plasma_gun_cultist", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL4"), 1), "chaos_grenade_launcher", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL5"), 1), "chaos_heavy_bolter_tactical", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWL6"), 1), "chaos_grenade_launcher", 5)
end
--set them to attack
Cmd_SetStance("sg_CM_FWL1", STANCE_Attack)
Cmd_SetStance("sg_CM_FWL2", STANCE_Attack)
Cmd_SetStance("sg_CM_FWL3", STANCE_Attack)
Cmd_SetStance("sg_CM_FWL4", STANCE_Attack)
Cmd_SetStance("sg_CM_FWL6", STANCE_Attack)
Cmd_SetStance("sg_CM_FWL5", STANCE_Attack)
Rule_Remove(Rule_CM_FWL_Creation)
end
g_FWL_Army_iter = g_FWL_Army_iter+1
end
--First Chaos Wave defending the Right bridge
function Rule_CM_FWR_Creation()
if g_Strength == 15 then
t_FWR_Army = {
sgroup_name = { --[[1]]"sg_CM_FWR1", --[[2]]"sg_CM_FWR2", --[[3]]"sg_CM_FWR3", --[[4]]"sg_CM_FWR4", --[[5]]"sg_CM_FWR5", --[[6]]"sg_CM_FWR6"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad_stronghold_sp", --[[6]]"chaos_squad_cultist"},
marker_spawn = {--[[1]]"mkr_FWR1", --[[2]]"mkr_FWR2", --[[3]]"mkr_FWR3", --[[4]]"mkr_FWR4", --[[5]]"mkr_FWR5", --[[6]]"mkr_FWR6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 9, --[[2]] 9, --[[3]] 9, --[[4]] 9, --[[5]] 2, --[[6]] 9},
}
elseif g_Strength == 14 then
t_FWR_Army = {
sgroup_name = { --[[1]]"sg_CM_FWR1", --[[2]]"sg_CM_FWR2", --[[3]]"sg_CM_FWR3", --[[4]]"sg_CM_FWR4", --[[5]]"sg_CM_FWR5", --[[6]]"sg_CM_FWR6"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad", --[[6]]"chaos_squad_cultist"},
marker_spawn = {--[[1]]"mkr_FWR1", --[[2]]"mkr_FWR2", --[[3]]"mkr_FWR3", --[[4]]"mkr_FWR4", --[[5]]"mkr_FWR5", --[[6]]"mkr_FWR6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 9, --[[2]] 9, --[[3]] 9, --[[4]] 9, --[[5]] 2, --[[6]] 9},
}
elseif g_Strength == 13 then
t_FWR_Army = {
sgroup_name = { --[[1]]"sg_CM_FWR1", --[[2]]"sg_CM_FWR2", --[[3]]"sg_CM_FWR3", --[[4]]"sg_CM_FWR4", --[[5]]"sg_CM_FWR5", --[[6]]"sg_CM_FWR6"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad", --[[6]]"chaos_squad_cultist"},
marker_spawn = {--[[1]]"mkr_FWR1", --[[2]]"mkr_FWR2", --[[3]]"mkr_FWR3", --[[4]]"mkr_FWR4", --[[5]]"mkr_FWR5", --[[6]]"mkr_FWR6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 8, --[[2]] 8, --[[3]] 8, --[[4]] 8, --[[5]] 2, --[[6]] 8},
}
elseif g_Strength == 12 then
t_FWR_Army = {
sgroup_name = { --[[1]]"sg_CM_FWR1", --[[2]]"sg_CM_FWR2", --[[3]]"sg_CM_FWR3", --[[4]]"sg_CM_FWR4", --[[5]]"sg_CM_FWR5", --[[6]]"sg_CM_FWR6"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad", --[[6]]"chaos_squad_cultist"},
marker_spawn = {--[[1]]"mkr_FWR1", --[[2]]"mkr_FWR2", --[[3]]"mkr_FWR3", --[[4]]"mkr_FWR4", --[[5]]"mkr_FWR5", --[[6]]"mkr_FWR6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 7, --[[2]] 7, --[[3]] 7, --[[4]] 7, --[[5]] 2, --[[6]] 7},
}
elseif g_Strength == 11 then
t_FWR_Army = {
sgroup_name = { --[[1]]"sg_CM_FWR1", --[[2]]"sg_CM_FWR2", --[[3]]"sg_CM_FWR3", --[[4]]"sg_CM_FWR4", --[[5]]"sg_CM_FWR5", --[[6]]"sg_CM_FWR6"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad", --[[6]]"chaos_squad_cultist"},
marker_spawn = {--[[1]]"mkr_FWR1", --[[2]]"mkr_FWR2", --[[3]]"mkr_FWR3", --[[4]]"mkr_FWR4", --[[5]]"mkr_FWR5", --[[6]]"mkr_FWR6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 6, --[[2]] 6, --[[3]] 6, --[[4]] 6, --[[5]] 2, --[[6]] 6},
}
else
t_FWR_Army = {
sgroup_name = { --[[1]]"sg_CM_FWR1", --[[2]]"sg_CM_FWR2", --[[3]]"sg_CM_FWR3", --[[4]]"sg_CM_FWR4", --[[5]]"sg_CM_FWR5", --[[6]]"sg_CM_FWR6"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad", --[[6]]"chaos_squad_cultist"},
marker_spawn = {--[[1]]"mkr_FWR1", --[[2]]"mkr_FWR2", --[[3]]"mkr_FWR3", --[[4]]"mkr_FWR4", --[[5]]"mkr_FWR5", --[[6]]"mkr_FWR6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 5, --[[2]] 5, --[[3]] 5, --[[4]] 5, --[[5]] 2, --[[6]] 5},
}
end
local i = g_FWR_Army_iter
if g_FWR_Army_iter <= table.getn(t_FWR_Army.sgroup_name) and (SGroup_Exists(t_FWR_Army.sgroup_name[i]) == false or SGroup_IsEmpty(t_FWR_Army.sgroup_name[i])) then
local sgroupID = Util_CreateSquadsAtMarkerEx(g_Player2, t_FWR_Army.sgroup_name[i], t_FWR_Army.blueprint[i], t_FWR_Army.marker_spawn[i], t_FWR_Army.squad_num[i], t_FWR_Army.squad_size[i])
--add them all into one meta group
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_CM_FWR_Army"), SGroup_FromName(t_FWR_Army.sgroup_name[i]))
--prevent AI from using these units
Cpu_LockSGroupAcrossPlayers(t_FWR_Army.sgroup_name[i])
Cpu_LockSGroupAcrossPlayers("sg_CM_FWR_Army")
elseif g_FWR_Army_iter > table.getn(t_FWR_Army.sgroup_name) then
g_FWR_Army_iter = 0
if g_Strength == 15 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR1"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR2"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR3"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR3"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR5"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR6"), 1), "chaos_grenade_launcher", 5)
elseif g_Strength ==14 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR1"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR2"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR3"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR3"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR5"), 1), "chaos_heavy_bolter_tactical", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR6"), 1), "chaos_grenade_launcher", 5)
elseif g_Strength ==13 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR1"), 1), "chaos_grenade_launcher", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR2"), 1), "chaos_grenade_launcher", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR3"), 1), "chaos_grenade_launcher", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR3"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR5"), 1), "chaos_heavy_bolter_tactical", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR6"), 1), "chaos_grenade_launcher", 5)
elseif g_Strength ==12 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR1"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR2"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR3"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR3"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR5"), 1), "chaos_heavy_bolter_tactical", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR6"), 1), "chaos_grenade_launcher", 5)
elseif g_Strength ==11 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR1"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR1"), 1), "chaos_plasma_gun_cultist", 1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR2"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR2"), 1), "chaos_plasma_gun_cultist", 1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR3"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR3"), 1), "chaos_plasma_gun_cultist", 1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR5"), 1), "chaos_heavy_bolter_tactical", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR6"), 1), "chaos_grenade_launcher", 5)
else
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR1"), 1), "chaos_grenade_launcher", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR1"), 1), "chaos_plasma_gun_cultist", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR2"), 1), "chaos_grenade_launcher", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR2"), 1), "chaos_plasma_gun_cultist", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR3"), 1), "chaos_grenade_launcher", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR3"), 1), "chaos_plasma_gun_cultist", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR5"), 1), "chaos_heavy_bolter_tactical", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_FWR6"), 1), "chaos_grenade_launcher", 5)
end
--set them to attack
Cmd_SetStance("sg_CM_FWR1", STANCE_Attack)
Cmd_SetStance("sg_CM_FWR2", STANCE_Attack)
Cmd_SetStance("sg_CM_FWR3", STANCE_Attack)
Cmd_SetStance("sg_CM_FWR4", STANCE_Attack)
Cmd_SetStance("sg_CM_FWR6", STANCE_Attack)
Cmd_SetStance("sg_CM_FWR5", STANCE_Attack)
Rule_Remove(Rule_CM_FWR_Creation)
end
g_FWR_Army_iter = g_FWR_Army_iter+1
end
--Left bridge defenders
function Rule_CM_LB_Creation()
if g_Strength == 15 then
t_LB_Army = {
sgroup_name = { --[[1]]"sg_CM_LB1", --[[2]]"sg_CM_LB2", --[[3]]"sg_CM_LB3", --[[4]]"sg_CM_LB4", --[[5]]"sg_CM_LB5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_Bridge_Left1", --[[2]]"mkr_Bridge_Left2", --[[3]]"mkr_Bridge_Left3", --[[4]]"mkr_Bridge_Left4", --[[5]]"mkr_Bridge_Left5"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 9, --[[2]] 9, --[[3]] 9, --[[4]] 9, --[[5]] 2},
}
elseif g_Strength == 14 then
t_LB_Army = {
sgroup_name = { --[[1]]"sg_CM_LB1", --[[2]]"sg_CM_LB2", --[[3]]"sg_CM_LB3", --[[4]]"sg_CM_LB4", --[[5]]"sg_CM_LB5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad"},
marker_spawn = {--[[1]]"mkr_Bridge_Left1", --[[2]]"mkr_Bridge_Left2", --[[3]]"mkr_Bridge_Left3", --[[4]]"mkr_Bridge_Left4", --[[5]]"mkr_Bridge_Left5"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 9, --[[2]] 9, --[[3]] 9, --[[4]] 9, --[[5]] 2},
}
elseif g_Strength == 13 then
t_LB_Army = {
sgroup_name = { --[[1]]"sg_CM_LB1", --[[2]]"sg_CM_LB2", --[[3]]"sg_CM_LB3", --[[4]]"sg_CM_LB4", --[[5]]"sg_CM_LB5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad"},
marker_spawn = {--[[1]]"mkr_Bridge_Left1", --[[2]]"mkr_Bridge_Left2", --[[3]]"mkr_Bridge_Left3", --[[4]]"mkr_Bridge_Left4", --[[5]]"mkr_Bridge_Left5"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 8, --[[2]] 8, --[[3]] 8, --[[4]] 8, --[[5]] 2},
}
elseif g_Strength == 12 then
t_LB_Army = {
sgroup_name = { --[[1]]"sg_CM_LB1", --[[2]]"sg_CM_LB2", --[[3]]"sg_CM_LB3", --[[4]]"sg_CM_LB4", --[[5]]"sg_CM_LB5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad"},
marker_spawn = {--[[1]]"mkr_Bridge_Left1", --[[2]]"mkr_Bridge_Left2", --[[3]]"mkr_Bridge_Left3", --[[4]]"mkr_Bridge_Left4", --[[5]]"mkr_Bridge_Left5"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 7, --[[2]] 7, --[[3]] 7, --[[4]] 7, --[[5]] 2},
}
elseif g_Strength == 11 then
t_LB_Army = {
sgroup_name = { --[[1]]"sg_CM_LB1", --[[2]]"sg_CM_LB2", --[[3]]"sg_CM_LB3", --[[4]]"sg_CM_LB4", --[[5]]"sg_CM_LB5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad"},
marker_spawn = {--[[1]]"mkr_Bridge_Left1", --[[2]]"mkr_Bridge_Left2", --[[3]]"mkr_Bridge_Left3", --[[4]]"mkr_Bridge_Left4", --[[5]]"mkr_Bridge_Left5"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 6, --[[2]] 6, --[[3]] 6, --[[4]] 6, --[[5]] 2},
}
else
t_LB_Army = {
sgroup_name = { --[[1]]"sg_CM_LB1", --[[2]]"sg_CM_LB2", --[[3]]"sg_CM_LB3", --[[4]]"sg_CM_LB4", --[[5]]"sg_CM_LB5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_cultist", --[[4]]"chaos_squad_cultist", --[[5]]"chaos_marine_squad"},
marker_spawn = {--[[1]]"mkr_Bridge_Left1", --[[2]]"mkr_Bridge_Left2", --[[3]]"mkr_Bridge_Left3", --[[4]]"mkr_Bridge_Left4", --[[5]]"mkr_Bridge_Left5"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 5, --[[2]] 5, --[[3]] 5, --[[4]] 5, --[[5]] 2},
}
end
local i = g_LB_Army_iter
if g_LB_Army_iter <= table.getn(t_LB_Army.sgroup_name) and (SGroup_Exists(t_LB_Army.sgroup_name[i]) == false or SGroup_IsEmpty(t_LB_Army.sgroup_name[i])) then
local sgroupID = Util_CreateSquadsAtMarkerEx(g_Player2, t_LB_Army.sgroup_name[i], t_LB_Army.blueprint[i], t_LB_Army.marker_spawn[i], t_LB_Army.squad_num[i], t_LB_Army.squad_size[i])
--add them all into one meta group
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_CM_LB_Army"), SGroup_FromName(t_LB_Army.sgroup_name[i]))
--prevent AI from using these units
Cpu_LockSGroupAcrossPlayers(t_LB_Army.sgroup_name[i])
Cpu_LockSGroupAcrossPlayers("sg_CM_LB_Army")
elseif g_LB_Army_iter > table.getn(t_LB_Army.sgroup_name) then
g_LB_Army_iter = 0
if g_Strength == 15 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB1"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB2"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB3"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB3"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB5"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 2)
elseif g_Strength == 14 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB1"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB2"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB3"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB3"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB5"), 1), "chaos_heavy_bolter_tactical", 2)
elseif g_Strength == 13 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB1"), 1), "chaos_grenade_launcher", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB2"), 1), "chaos_grenade_launcher", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB3"), 1), "chaos_grenade_launcher", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB3"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB5"), 1), "chaos_heavy_bolter_tactical", 2)
elseif g_Strength == 12 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB1"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB2"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB3"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB3"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB5"), 1), "chaos_heavy_bolter_tactical", 2)
elseif g_Strength == 11 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB1"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB1"), 1), "chaos_plasma_gun_cultist", 1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB2"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB2"), 1), "chaos_plasma_gun_cultist", 1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB3"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB3"), 1), "chaos_plasma_gun_cultist", 1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB5"), 1), "chaos_heavy_bolter_tactical", 2)
else
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB1"), 1), "chaos_grenade_launcher", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB1"), 1), "chaos_plasma_gun_cultist", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB2"), 1), "chaos_grenade_launcher", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB2"), 1), "chaos_plasma_gun_cultist", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB3"), 1), "chaos_grenade_launcher", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB3"), 1), "chaos_plasma_gun_cultist", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB4"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_LB5"), 1), "chaos_heavy_bolter_tactical", 2)
end
--these units will follow the player for a little distance applaying pressure
Cmd_SetStance("sg_CM_LB1", STANCE_Hold)
Cmd_SetStance("sg_CM_LB2", STANCE_Hold)
Cmd_SetStance("sg_CM_LB3", STANCE_Hold)
Cmd_SetStance("sg_CM_LB4", STANCE_Hold)
--these units will not follow the player
Cmd_SetStance("sg_CM_LB5", STANCE_StandGround)
Rule_AddIntervalDelay(Rule_Left_Bridge_Static_Movement, 60, 25)
Rule_AddIntervalDelay(Rule_Left_Bridge_Static_Movement2, 60, 40)
Rule_AddIntervalDelay(Rule_Left_Bridge_Static_Movement3, 60, 60)
Rule_AddIntervalDelay(Rule_Left_Bridge_Static_Movement4, 60, 70)
Rule_AddIntervalDelay(Rule_Left_Bridge_Static_Movement5, 60, 80)
Rule_Remove(Rule_CM_LB_Creation)
end
g_LB_Army_iter = g_LB_Army_iter+1
end
--Right Barrack
function Rule_CM_Right_Barrack_Creation()
if g_Strength == 15 then
t_Right_Barrack_Army = {
sgroup_name = { --[[1]]"sg_CM_Right_Barrack1", --[[2]]"sg_CM_Right_Barrack2", --[[3]]"sg_CM_Right_Barrack3", --[[4]]"sg_CM_Right_Barrack4", --[[5]]"sg_CM_Right_Barrack5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_horror", --[[4]]"chaos_squad_horror", --[[5]]"chaos_marine_squad_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_Barrack_Right1", --[[2]]"mkr_Barrack_Right2", --[[3]]"mkr_Barrack_Right3", --[[4]]"mkr_Barrack_Right4", --[[5]]"mkr_Barrack_Right5"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 9, --[[2]] 9, --[[3]] 4, --[[4]] 4, --[[5]] 2},
}
elseif g_Strength == 14 then
t_Right_Barrack_Army = {
sgroup_name = { --[[1]]"sg_CM_Right_Barrack1", --[[2]]"sg_CM_Right_Barrack2", --[[3]]"sg_CM_Right_Barrack3", --[[4]]"sg_CM_Right_Barrack4", --[[5]]"sg_CM_Right_Barrack5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_horror", --[[4]]"chaos_squad_horror", --[[5]]"chaos_marine_squad_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_Barrack_Right1", --[[2]]"mkr_Barrack_Right2", --[[3]]"mkr_Barrack_Right3", --[[4]]"mkr_Barrack_Right4", --[[5]]"mkr_Barrack_Right5"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 9, --[[2]] 9, --[[3]] 4, --[[4]] 4, --[[5]] 2},
}
elseif g_Strength == 13 then
t_Right_Barrack_Army = {
sgroup_name = { --[[1]]"sg_CM_Right_Barrack1", --[[2]]"sg_CM_Right_Barrack2", --[[3]]"sg_CM_Right_Barrack3", --[[4]]"sg_CM_Right_Barrack4", --[[5]]"sg_CM_Right_Barrack5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_horror", --[[4]]"chaos_squad_horror", --[[5]]"chaos_marine_squad"},
marker_spawn = {--[[1]]"mkr_Barrack_Right1", --[[2]]"mkr_Barrack_Right2", --[[3]]"mkr_Barrack_Right3", --[[4]]"mkr_Barrack_Right4", --[[5]]"mkr_Barrack_Right5"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 8, --[[2]] 8, --[[3]] 4, --[[4]] 4, --[[5]] 2},
}
elseif g_Strength == 12 then
t_Right_Barrack_Army = {
sgroup_name = { --[[1]]"sg_CM_Right_Barrack1", --[[2]]"sg_CM_Right_Barrack2", --[[3]]"sg_CM_Right_Barrack3", --[[4]]"sg_CM_Right_Barrack4", --[[5]]"sg_CM_Right_Barrack5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_horror", --[[4]]"chaos_squad_horror", --[[5]]"chaos_marine_squad"},
marker_spawn = {--[[1]]"mkr_Barrack_Right1", --[[2]]"mkr_Barrack_Right2", --[[3]]"mkr_Barrack_Right3", --[[4]]"mkr_Barrack_Right4", --[[5]]"mkr_Barrack_Right5"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 7, --[[2]] 7, --[[3]] 3, --[[4]] 4, --[[5]] 2},
}
elseif g_Strength == 11 then
t_Right_Barrack_Army = {
sgroup_name = { --[[1]]"sg_CM_Right_Barrack1", --[[2]]"sg_CM_Right_Barrack2", --[[3]]"sg_CM_Right_Barrack3", --[[4]]"sg_CM_Right_Barrack4", --[[5]]"sg_CM_Right_Barrack5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_horror", --[[4]]"chaos_squad_horror", --[[5]]"chaos_marine_squad"},
marker_spawn = {--[[1]]"mkr_Barrack_Right1", --[[2]]"mkr_Barrack_Right2", --[[3]]"mkr_Barrack_Right3", --[[4]]"mkr_Barrack_Right4", --[[5]]"mkr_Barrack_Right5"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 6, --[[2]] 6, --[[3]] 3, --[[4]] 3, --[[5]] 2},
}
else
t_Right_Barrack_Army = {
sgroup_name = { --[[1]]"sg_CM_Right_Barrack1", --[[2]]"sg_CM_Right_Barrack2", --[[3]]"sg_CM_Right_Barrack3", --[[4]]"sg_CM_Right_Barrack4", --[[5]]"sg_CM_Right_Barrack5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_squad_horror", --[[4]]"chaos_squad_horror", --[[5]]"chaos_marine_squad"},
marker_spawn = {--[[1]]"mkr_Barrack_Right1", --[[2]]"mkr_Barrack_Right2", --[[3]]"mkr_Barrack_Right3", --[[4]]"mkr_Barrack_Right4", --[[5]]"mkr_Barrack_Right5"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 5, --[[2]] 5, --[[3]] 3, --[[4]] 2, --[[5]] 2},
}
end
local i = g_Right_Barrack_Army_iter
if g_Right_Barrack_Army_iter <= table.getn(t_Right_Barrack_Army.sgroup_name) and (SGroup_Exists(t_Right_Barrack_Army.sgroup_name[i]) == false or SGroup_IsEmpty(t_Right_Barrack_Army.sgroup_name[i])) then
local sgroupID = Util_CreateSquadsAtMarkerEx(g_Player2, t_Right_Barrack_Army.sgroup_name[i], t_Right_Barrack_Army.blueprint[i], t_Right_Barrack_Army.marker_spawn[i], t_Right_Barrack_Army.squad_num[i], t_Right_Barrack_Army.squad_size[i])
--add them all into one meta group
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_CM_Right_Barrack_Army"), SGroup_FromName(t_Right_Barrack_Army.sgroup_name[i]))
--prevent AI from using these units
Cpu_LockSGroupAcrossPlayers(t_Right_Barrack_Army.sgroup_name[i])
Cpu_LockSGroupAcrossPlayers("sg_CM_Right_Barrack_Army")
elseif g_Right_Barrack_Army_iter > table.getn(t_Right_Barrack_Army.sgroup_name) then
g_Right_Barrack_Army_iter = 0
if g_Strength == 15 then
--upgrading weapons
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack1"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack2"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack5"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 2)
elseif g_Strength == 14 then
--upgrading weapons
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack1"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack2"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack5"), 1), "chaos_heavy_bolter_tactical", 2)
elseif g_Strength == 13 then
--upgrading weapons
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack1"), 1), "chaos_grenade_launcher", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack2"), 1), "chaos_grenade_launcher", 9)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack5"), 1), "chaos_heavy_bolter_tactical", 2)
elseif g_Strength == 12 then
--upgrading weapons
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack1"), 1), "chaos_grenade_launcher", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack1"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack2"), 1), "chaos_grenade_launcher", 7)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack2"), 1), "chaos_plasma_gun_cultist", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack5"), 1), "chaos_heavy_bolter_tactical", 2)
elseif g_Strength == 11 then
--upgrading weapons
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack1"), 1), "chaos_grenade_launcher", 6)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack1"), 1), "chaos_plasma_gun_cultist", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack2"), 1), "chaos_grenade_launcher", 6)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack2"), 1), "chaos_plasma_gun_cultist", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack5"), 1), "chaos_heavy_bolter_tactical", 2)
else
--upgrading weapons
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack1"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack1"), 1), "chaos_plasma_gun_cultist", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack2"), 1), "chaos_grenade_launcher", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack2"), 1), "chaos_plasma_gun_cultist", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Right_Barrack5"), 1), "chaos_heavy_bolter_tactical", 2)
end
--these units will follow the player for a little distance applaying pressure
Cmd_SetStance("sg_CM_Right_Barrack1", STANCE_Hold)
Cmd_SetStance("sg_CM_Right_Barrack2", STANCE_Hold)
Cmd_SetStance("sg_CM_Right_Barrack3", STANCE_Hold)
Cmd_SetStance("sg_CM_Right_Barrack4", STANCE_Hold)
Cmd_SetStance("sg_CM_Right_Barrack5", STANCE_Attack)
Rule_AddIntervalDelay(Rule_Right_Static_Movement, 60, 15)
Rule_AddIntervalDelay(Rule_Right_Static_Movement2, 60, 30)
Rule_AddIntervalDelay(Rule_Right_Static_Movement3, 60, 45)
Rule_AddIntervalDelay(Rule_Right_Static_Movement4, 60, 55)
Rule_AddIntervalDelay(Rule_Right_Static_Movement5, 60, 60)
Rule_Remove(Rule_CM_Right_Barrack_Creation)
end
g_Right_Barrack_Army_iter = g_Right_Barrack_Army_iter+1
end
--Plains of Khorne
function Rule_CM_Plains_Khorne_Creation()
if g_Strength == 15 then
t_Plains_Khorne_Army = {
sgroup_name = { --[[1]]"sg_Plains_Khorne1", --[[2]]"sg_Plains_Khorne2", --[[3]]"sg_Plains_Khorne3", --[[4]]"sg_Plains_Khorne4", --[[5]]"sg_Plains_Khorne5", --[[6]]"sg_Plains_Khorne6"},
blueprint = {--[[1]]"chaos_squad_khorne_berserker_stronghold_sp", --[[2]]"chaos_squad_khorne_berserker_stronghold_sp", --[[3]]"chaos_squad_khorne_berserker_stronghold_sp", --[[4]]"chaos_squad_khorne_berserker_stronghold_sp",
--[[5]]"chaos_squad_khorne_berserker_stronghold_sp", --[[6]]"chaos_squad_khorne_berserker_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_Plain_Khorne1", --[[2]]"mkr_Plain_Khorne2", --[[3]]"mkr_Plain_Khorne3", --[[4]]"mkr_Plain_Khorne4", --[[5]]"mkr_Plain_Khorne5", --[[6]]"mkr_Plain_Khorne6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 5, --[[2]] 4, --[[3]] 3, --[[4]] 4, --[[5]] 3, --[[6]] 3},
}
elseif g_Strength == 14 then
t_Plains_Khorne_Army = {
sgroup_name = { --[[1]]"sg_Plains_Khorne1", --[[2]]"sg_Plains_Khorne2", --[[3]]"sg_Plains_Khorne3", --[[4]]"sg_Plains_Khorne4", --[[5]]"sg_Plains_Khorne5", --[[6]]"sg_Plains_Khorne6"},
blueprint = {--[[1]]"chaos_squad_khorne_berserker_stronghold_sp", --[[2]]"chaos_squad_khorne_berserker_stronghold_sp", --[[3]]"chaos_squad_khorne_berserker_stronghold_sp", --[[4]]"chaos_squad_khorne_berserker_stronghold_sp",
--[[5]]"chaos_squad_khorne_berserker_stronghold_sp", --[[6]]"chaos_squad_khorne_berserker_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_Plain_Khorne1", --[[2]]"mkr_Plain_Khorne2", --[[3]]"mkr_Plain_Khorne3", --[[4]]"mkr_Plain_Khorne4", --[[5]]"mkr_Plain_Khorne5", --[[6]]"mkr_Plain_Khorne6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 4, --[[2]] 3, --[[3]] 2, --[[4]] 3, --[[5]] 2, --[[6]] 2},
}
elseif g_Strength == 13 then
t_Plains_Khorne_Army = {
sgroup_name = { --[[1]]"sg_Plains_Khorne1", --[[2]]"sg_Plains_Khorne2", --[[3]]"sg_Plains_Khorne3", --[[4]]"sg_Plains_Khorne4", --[[5]]"sg_Plains_Khorne5", --[[6]]"sg_Plains_Khorne6"},
blueprint = {--[[1]]"chaos_squad_khorne_berserker", --[[2]]"chaos_squad_khorne_berserker", --[[3]]"chaos_squad_khorne_berserker_stronghold_sp", --[[4]]"chaos_squad_khorne_berserker",
--[[5]]"chaos_squad_khorne_berserker_stronghold_sp", --[[6]]"chaos_squad_khorne_berserker_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_Plain_Khorne1", --[[2]]"mkr_Plain_Khorne2", --[[3]]"mkr_Plain_Khorne3", --[[4]]"mkr_Plain_Khorne4", --[[5]]"mkr_Plain_Khorne5", --[[6]]"mkr_Plain_Khorne6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 5, --[[2]] 4, --[[3]] 3, --[[4]] 4, --[[5]] 3, --[[6]] 3},
}
elseif g_Strength == 12 then
t_Plains_Khorne_Army = {
sgroup_name = { --[[1]]"sg_Plains_Khorne1", --[[2]]"sg_Plains_Khorne2", --[[3]]"sg_Plains_Khorne3", --[[4]]"sg_Plains_Khorne4", --[[5]]"sg_Plains_Khorne5", --[[6]]"sg_Plains_Khorne6"},
blueprint = {--[[1]]"chaos_squad_khorne_berserker", --[[2]]"chaos_squad_khorne_berserker", --[[3]]"chaos_squad_khorne_berserker", --[[4]]"chaos_squad_khorne_berserker",
--[[5]]"chaos_squad_khorne_berserker", --[[6]]"chaos_squad_khorne_berserker"},
marker_spawn = {--[[1]]"mkr_Plain_Khorne1", --[[2]]"mkr_Plain_Khorne2", --[[3]]"mkr_Plain_Khorne3", --[[4]]"mkr_Plain_Khorne4", --[[5]]"mkr_Plain_Khorne5", --[[6]]"mkr_Plain_Khorne6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 5, --[[2]] 4, --[[3]] 3, --[[4]] 4, --[[5]] 3, --[[6]] 3},
}
elseif g_Strength == 11 then
t_Plains_Khorne_Army = {
sgroup_name = { --[[1]]"sg_Plains_Khorne1", --[[2]]"sg_Plains_Khorne2", --[[3]]"sg_Plains_Khorne3", --[[4]]"sg_Plains_Khorne4", --[[5]]"sg_Plains_Khorne5", --[[6]]"sg_Plains_Khorne6"},
blueprint = {--[[1]]"chaos_squad_khorne_berserker", --[[2]]"chaos_squad_khorne_berserker", --[[3]]"chaos_squad_khorne_berserker", --[[4]]"chaos_squad_khorne_berserker",
--[[5]]"chaos_squad_khorne_berserker", --[[6]]"chaos_squad_khorne_berserker"},
marker_spawn = {--[[1]]"mkr_Plain_Khorne1", --[[2]]"mkr_Plain_Khorne2", --[[3]]"mkr_Plain_Khorne3", --[[4]]"mkr_Plain_Khorne4", --[[5]]"mkr_Plain_Khorne5", --[[6]]"mkr_Plain_Khorne6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 4, --[[2]] 3, --[[3]] 3, --[[4]] 3, --[[5]] 3, --[[6]] 3},
}
else
t_Plains_Khorne_Army = {
sgroup_name = { --[[1]]"sg_Plains_Khorne1", --[[2]]"sg_Plains_Khorne2", --[[3]]"sg_Plains_Khorne3", --[[4]]"sg_Plains_Khorne4", --[[5]]"sg_Plains_Khorne5", --[[6]]"sg_Plains_Khorne6"},
blueprint = {--[[1]]"chaos_squad_khorne_berserker", --[[2]]"chaos_squad_khorne_berserker", --[[3]]"chaos_squad_khorne_berserker", --[[4]]"chaos_squad_khorne_berserker",
--[[5]]"chaos_squad_khorne_berserker", --[[6]]"chaos_squad_khorne_berserker"},
marker_spawn = {--[[1]]"mkr_Plain_Khorne1", --[[2]]"mkr_Plain_Khorne2", --[[3]]"mkr_Plain_Khorne3", --[[4]]"mkr_Plain_Khorne4", --[[5]]"mkr_Plain_Khorne5", --[[6]]"mkr_Plain_Khorne6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 3, --[[2]] 3, --[[3]] 3, --[[4]] 3, --[[5]] 2, --[[6]] 3},
}
end
local i = g_Plains_Khorne_Army_iter
if g_Plains_Khorne_Army_iter <= table.getn(t_Plains_Khorne_Army.sgroup_name) and (SGroup_Exists(t_Plains_Khorne_Army.sgroup_name[i]) == false or SGroup_IsEmpty(t_Plains_Khorne_Army.sgroup_name[i])) then
local sgroupID = Util_CreateSquadsAtMarkerEx(g_Player2, t_Plains_Khorne_Army.sgroup_name[i], t_Plains_Khorne_Army.blueprint[i], t_Plains_Khorne_Army.marker_spawn[i], t_Plains_Khorne_Army.squad_num[i], t_Plains_Khorne_Army.squad_size[i])
--add them all into one meta group
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_CM_Plains_Khorne_Army"), SGroup_FromName(t_Plains_Khorne_Army.sgroup_name[i]))
--prevent AI from using these units
Cpu_LockSGroupAcrossPlayers(t_Plains_Khorne_Army.sgroup_name[i])
Cpu_LockSGroupAcrossPlayers("sg_CM_Plains_Khorne_Army")
elseif g_Plains_Khorne_Army_iter > table.getn(t_Plains_Khorne_Army.sgroup_name) then
g_Plains_Khorne_Army_iter = 0
if g_Strength == 15 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne1"), 1), "chaos_khornate_chainaxe_advance_sp", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne2"), 1), "chaos_khornate_chainaxe_advance_sp", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne3"), 1), "chaos_khornate_chainaxe_advance_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne4"), 1), "chaos_khornate_chainaxe_advance_sp", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne5"), 1), "chaos_khornate_chainaxe_advance_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne6"), 1), "chaos_khornate_chainaxe_advance_sp", 3)
elseif g_Strength == 14 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne1"), 1), "chaos_khornate_chainaxe_advance_sp", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne2"), 1), "chaos_khornate_chainaxe_advance_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne3"), 1), "chaos_khornate_chainaxe_advance_sp", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne4"), 1), "chaos_khornate_chainaxe_advance_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne5"), 1), "chaos_khornate_chainaxe_advance_sp", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne6"), 1), "chaos_khornate_chainaxe_advance_sp", 2)
elseif g_Strength == 13 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne1"), 1), "chaos_khornate_chainaxe", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne2"), 1), "chaos_khornate_chainaxe", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne3"), 1), "chaos_khornate_chainaxe_advance_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne4"), 1), "chaos_khornate_chainaxe", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne5"), 1), "chaos_khornate_chainaxe_advance_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne6"), 1), "chaos_khornate_chainaxe_advance_sp", 3)
elseif g_Strength == 12 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne1"), 1), "chaos_khornate_chainaxe", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne2"), 1), "chaos_khornate_chainaxe", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne3"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne4"), 1), "chaos_khornate_chainaxe", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne5"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne6"), 1), "chaos_khornate_chainaxe", 3)
elseif g_Strength == 11 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne1"), 1), "chaos_khornate_chainaxe", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne2"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne3"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne4"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne5"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne6"), 1), "chaos_khornate_chainaxe", 3)
else
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne1"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne2"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne3"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne4"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne5"), 1), "chaos_khornate_chainaxe", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_Plains_Khorne6"), 1), "chaos_khornate_chainaxe", 3)
end
--these units will follow the player for a little distance applaying pressure
Cmd_SetStance("sg_Plains_Khorne1", STANCE_Hold)
Cmd_SetStance("sg_Plains_Khorne2", STANCE_Hold)
Cmd_SetStance("sg_Plains_Khorne3", STANCE_Hold)
Cmd_SetStance("sg_Plains_Khorne4", STANCE_Hold)
Cmd_SetStance("sg_Plains_Khorne5", STANCE_Hold)
Cmd_SetStance("sg_Plains_Khorne6", STANCE_Hold)
Rule_AddInterval(Rule_PatrolC, 5)
Rule_AddInterval(Rule_PatrolD, 5)
Rule_AddInterval(Rule_PatrolE, 5)
Rule_AddInterval(Rule_PatrolF, 5)
Rule_AddInterval(Rule_PatrolG, 5)
Rule_AddInterval(Rule_PatrolH, 5)
Rule_Remove(Rule_CM_Plains_Khorne_Creation)
end
g_Plains_Khorne_Army_iter = g_Plains_Khorne_Army_iter+1
end
--units defending the relic and chaos temple function Rule_CM_Relic_Creation()
if g_Strength == 15 then
t_Relic_Army = {
sgroup_name = { --[[1]]"sg_CM_Relic1", --[[2]]"sg_CM_Relic2", --[[3]]"sg_CM_Relic3", --[[4]]"sg_CM_Relic4", --[[5]]"sg_CM_Relic5", --[[6]]"sg_CM_Relic6"},
blueprint = {--[[1]]"chaos_squad_obliterator_stronghold_sp", --[[2]]"chaos_squad_obliterator_stronghold_sp", --[[3]]"chaos_squad_khorne_berserker_stronghold_sp", --[[4]]"chaos_marine_squad_stronghold_sp",
--[[5]]"chaos_squad_obliterator_stronghold_sp", --[[6]]"chaos_marine_squad_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_Khorne_Defender1", --[[2]]"mkr_Khorne_Defender2", --[[3]]"mkr_Khorne_Defender3", --[[4]]"mkr_Khorne_Defender4", --[[5]]"mkr_Khorne_Defender5", --[[6]]"mkr_Khorne_Defender6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 1, --[[2]] 1, --[[3]] 5, --[[4]] 9, --[[5]] 3, --[[6]] 9},
}
elseif g_Strength == 14 then
t_Relic_Army = {
sgroup_name = { --[[1]]"sg_CM_Relic1", --[[2]]"sg_CM_Relic2", --[[3]]"sg_CM_Relic3", --[[4]]"sg_CM_Relic4", --[[5]]"sg_CM_Relic5", --[[6]]"sg_CM_Relic6"},
blueprint = {--[[1]]"chaos_squad_obliterator_stronghold_sp", --[[2]]"chaos_squad_obliterator", --[[3]]"chaos_squad_khorne_berserker", --[[4]]"chaos_marine_squad_stronghold_sp",
--[[5]]"chaos_squad_obliterator", --[[6]]"chaos_marine_squad_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_Khorne_Defender1", --[[2]]"mkr_Khorne_Defender2", --[[3]]"mkr_Khorne_Defender3", --[[4]]"mkr_Khorne_Defender4", --[[5]]"mkr_Khorne_Defender5", --[[6]]"mkr_Khorne_Defender6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 1, --[[2]] 1, --[[3]] 5, --[[4]] 5, --[[5]] 3, --[[6]] 9},
}
elseif g_Strength == 13 then
t_Relic_Army = {
sgroup_name = { --[[1]]"sg_CM_Relic1", --[[2]]"sg_CM_Relic2", --[[3]]"sg_CM_Relic3", --[[4]]"sg_CM_Relic4", --[[5]]"sg_CM_Relic5", --[[6]]"sg_CM_Relic6"},
blueprint = {--[[1]]"chaos_squad_obliterator", --[[2]]"chaos_squad_obliterator", --[[3]]"chaos_squad_khorne_berserker", --[[4]]"chaos_marine_squad_stronghold_sp",
--[[5]]"chaos_squad_obliterator", --[[6]]"chaos_marine_squad_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_Khorne_Defender1", --[[2]]"mkr_Khorne_Defender2", --[[3]]"mkr_Khorne_Defender3", --[[4]]"mkr_Khorne_Defender4", --[[5]]"mkr_Khorne_Defender5", --[[6]]"mkr_Khorne_Defender6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 1, --[[2]] 1, --[[3]] 5, --[[4]] 5, --[[5]] 3, --[[6]] 5},
}
elseif g_Strength == 12 then
t_Relic_Army = {
sgroup_name = { --[[1]]"sg_CM_Relic1", --[[2]]"sg_CM_Relic2", --[[3]]"sg_CM_Relic3", --[[4]]"sg_CM_Relic4", --[[5]]"sg_CM_Relic5", --[[6]]"sg_CM_Relic6"},
blueprint = {--[[1]]"chaos_squad_obliterator", --[[2]]"chaos_squad_obliterator", --[[3]]"chaos_squad_khorne_berserker", --[[4]]"chaos_marine_squad",
--[[5]]"chaos_squad_obliterator", --[[6]]"chaos_marine_squad"},
marker_spawn = {--[[1]]"mkr_Khorne_Defender1", --[[2]]"mkr_Khorne_Defender2", --[[3]]"mkr_Khorne_Defender3", --[[4]]"mkr_Khorne_Defender4", --[[5]]"mkr_Khorne_Defender5", --[[6]]"mkr_Khorne_Defender6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 1, --[[2]] 1, --[[3]] 5, --[[4]] 9, --[[5]] 3, --[[6]] 9},
}
elseif g_Strength == 11 then
t_Relic_Army = {
sgroup_name = { --[[1]]"sg_CM_Relic1", --[[2]]"sg_CM_Relic2", --[[3]]"sg_CM_Relic3", --[[4]]"sg_CM_Relic4", --[[5]]"sg_CM_Relic5", --[[6]]"sg_CM_Relic6"},
blueprint = {--[[1]]"chaos_squad_obliterator", --[[2]]"chaos_squad_obliterator", --[[3]]"chaos_squad_khorne_berserker", --[[4]]"chaos_marine_squad",
--[[5]]"chaos_squad_obliterator", --[[6]]"chaos_marine_squad"},
marker_spawn = {--[[1]]"mkr_Khorne_Defender1", --[[2]]"mkr_Khorne_Defender2", --[[3]]"mkr_Khorne_Defender3", --[[4]]"mkr_Khorne_Defender4", --[[5]]"mkr_Khorne_Defender5", --[[6]]"mkr_Khorne_Defender6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 1, --[[2]] 1, --[[3]] 3, --[[4]] 7, --[[5]] 3, --[[6]] 7},
}
else
t_Relic_Army = {
sgroup_name = { --[[1]]"sg_CM_Relic1", --[[2]]"sg_CM_Relic2", --[[3]]"sg_CM_Relic3", --[[4]]"sg_CM_Relic4", --[[5]]"sg_CM_Relic5", --[[6]]"sg_CM_Relic6"},
blueprint = {--[[1]]"chaos_squad_obliterator", --[[2]]"chaos_squad_obliterator", --[[3]]"chaos_squad_khorne_berserker", --[[4]]"chaos_marine_squad",
--[[5]]"chaos_squad_obliterator", --[[6]]"chaos_marine_squad"},
marker_spawn = {--[[1]]"mkr_Khorne_Defender1", --[[2]]"mkr_Khorne_Defender2", --[[3]]"mkr_Khorne_Defender3", --[[4]]"mkr_Khorne_Defender4", --[[5]]"mkr_Khorne_Defender5", --[[6]]"mkr_Khorne_Defender6"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1},
squad_size = {--[[1]] 1, --[[2]] 1, --[[3]] 3, --[[4]] 6, --[[5]] 3, --[[6]] 6},
}
end
local i = g_Relic_Army_iter
if g_Relic_Army_iter <= table.getn(t_Relic_Army.sgroup_name) and (SGroup_Exists(t_Relic_Army.sgroup_name[i]) == false or SGroup_IsEmpty(t_Relic_Army.sgroup_name[i])) then
local sgroupID = Util_CreateSquadsAtMarkerEx(g_Player2, t_Relic_Army.sgroup_name[i], t_Relic_Army.blueprint[i], t_Relic_Army.marker_spawn[i], t_Relic_Army.squad_num[i], t_Relic_Army.squad_size[i])
--prevent AI from using these units
Cpu_LockSGroupAcrossPlayers(t_Relic_Army.sgroup_name[i])
elseif g_Relic_Army_iter > table.getn(t_Relic_Army.sgroup_name) then
g_Relic_Army_iter = 0
if g_Strength == 15 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic1"), 1), "chaos_obliterator_ranged_group_advance_sp",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic2"), 1), "chaos_obliterator_ranged_group_advance_sp",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic3"), 1), "chaos_khornate_chainaxe_advance_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic4"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic5"), 1), "chaos_obliterator_ranged_group_advance_sp",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic6"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 3)
elseif g_Strength == 14 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic1"), 1), "chaos_obliterator_ranged_group_advance_sp",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic2"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic3"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic4"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic5"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic6"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 3)
elseif g_Strength == 13 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic1"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic2"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic3"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic4"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic5"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic6"), 1), "chaos_heavy_bolter_tactical_stronghold_sp", 3)
elseif g_Strength == 12 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic1"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic2"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic3"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic4"), 1), "chaos_heavy_bolter_tactical", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic5"), 1), "chaos_obliterator_ranged_group",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic6"), 1), "chaos_heavy_bolter_tactical", 3)
elseif g_Strength == 11 then
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic1"), 1), "chaos_obliterator_ranged_group",1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic2"), 1), "chaos_obliterator_ranged_group",1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic3"), 1), "chaos_khornate_chainaxe", 1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic4"), 1), "chaos_heavy_bolter_tactical", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic5"), 1), "chaos_obliterator_ranged_group",1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic6"), 1), "chaos_heavy_bolter_tactical", 3)
else
--upgrading the tac marines to chain guns
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic1"), 1), "chaos_obliterator_ranged_group",1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic2"), 1), "chaos_obliterator_ranged_group",1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic3"), 1), "chaos_khornate_chainaxe", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic4"), 1), "chaos_heavy_bolter_tactical", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic5"), 1), "chaos_obliterator_ranged_group",1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Relic6"), 1), "chaos_heavy_bolter_tactical", 2)
end
Cmd_SetStance("sg_CM_Relic1", STANCE_Hold)
Cmd_SetStance("sg_CM_Relic2", STANCE_Hold)
Cmd_SetStance("sg_CM_Relic3", STANCE_Hold)
Cmd_SetStance("sg_CM_Relic4", STANCE_Hold)
Cmd_SetStance("sg_CM_Relic5", STANCE_Hold)
Cmd_SetStance("sg_CM_Relic6", STANCE_Hold)
--gets an obliterator squad to go on a small patrol inside the relic base
Rule_AddInterval(Rule_KO5_Patrol, 5)
Rule_AddIntervalDelay(Rule_Relic_Static_Movement, 60, 30)
Rule_AddIntervalDelay(Rule_Relic_Static_Movement2, 60, 45)
Rule_AddIntervalDelay(Rule_Relic_Static_Movement3, 60, 60)
Rule_AddIntervalDelay(Rule_Relic_Static_Movement4, 60, 90)
Rule_Remove(Rule_CM_Relic_Creation)
end
g_Relic_Army_iter = g_Relic_Army_iter+1
end
--army on the right ridge
function Rule_CM_RR_Creation()
if g_Strength == 15 then
t_RR_Army = {
sgroup_name = { --[[1]]"sg_CM_RR1", --[[2]]"sg_CM_RR2", --[[3]]"sg_CM_RR3", --[[4]]"sg_CM_RR4", --[[5]]"sg_CM_RR5", --[[6]]"sg_CM_RR6", --[[7]]"sg_CM_RR7", --[[8]]"sg_CM_RR8"},
blueprint = {--[[1]]"chaos_squad_horror", --[[2]]"chaos_squad_horror", --[[3]]"chaos_squad_horror", --[[4]]"chaos_squad_raptor_stronghold_sp", --[[5]]"chaos_squad_raptor_stronghold_sp", --[[6]]"chaos_squad_obliterator_stronghold_sp",
--[[7]]"chaos_squad_raptor_stronghold_sp", --[[8]]"chaos_squad_obliterator_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_RR1", --[[2]]"mkr_RR2", --[[3]]"mkr_RR3", --[[4]]"mkr_RR4", --[[5]]"mkr_RR5", --[[6]]"mkr_RR6", --[[7]]"mkr_RR7", --[[8]]"mkr_RR8", },
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1},
squad_size = {--[[1]] 5, --[[2]] 5, --[[3]] 5, --[[4]] 7, --[[5]] 7, --[[6]] 1, --[[7]] 9, --[[8]] 1},
}
elseif g_Strength == 14 then
t_RR_Army = {
sgroup_name = { --[[1]]"sg_CM_RR1", --[[2]]"sg_CM_RR2", --[[3]]"sg_CM_RR3", --[[4]]"sg_CM_RR4", --[[5]]"sg_CM_RR5", --[[6]]"sg_CM_RR6", --[[7]]"sg_CM_RR7", --[[8]]"sg_CM_RR8"},
blueprint = {--[[1]]"chaos_squad_horror", --[[2]]"chaos_squad_horror", --[[3]]"chaos_squad_horror", --[[4]]"chaos_squad_raptor", --[[5]]"chaos_squad_raptor", --[[6]]"chaos_squad_obliterator_stronghold_sp",
--[[7]]"chaos_squad_raptor", --[[8]]"chaos_squad_obliterator"},
marker_spawn = {--[[1]]"mkr_RR1", --[[2]]"mkr_RR2", --[[3]]"mkr_RR3", --[[4]]"mkr_RR4", --[[5]]"mkr_RR5", --[[6]]"mkr_RR6", --[[7]]"mkr_RR7", --[[8]]"mkr_RR8", },
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1},
squad_size = {--[[1]] 5, --[[2]] 5, --[[3]] 5, --[[4]] 7, --[[5]] 7, --[[6]] 1, --[[7]] 9, --[[8]] 1},
}
elseif g_Strength == 13 then
t_RR_Army = {
sgroup_name = { --[[1]]"sg_CM_RR1", --[[2]]"sg_CM_RR2", --[[3]]"sg_CM_RR3", --[[4]]"sg_CM_RR4", --[[5]]"sg_CM_RR5", --[[6]]"sg_CM_RR6", --[[7]]"sg_CM_RR7", --[[8]]"sg_CM_RR8"},
blueprint = {--[[1]]"chaos_squad_horror", --[[2]]"chaos_squad_horror", --[[3]]"chaos_squad_horror", --[[4]]"chaos_squad_raptor", --[[5]]"chaos_squad_raptor", --[[6]]"chaos_squad_obliterator",
--[[7]]"chaos_squad_raptor", --[[8]]"chaos_squad_obliterator"},
marker_spawn = {--[[1]]"mkr_RR1", --[[2]]"mkr_RR2", --[[3]]"mkr_RR3", --[[4]]"mkr_RR4", --[[5]]"mkr_RR5", --[[6]]"mkr_RR6", --[[7]]"mkr_RR7", --[[8]]"mkr_RR8", },
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1},
squad_size = {--[[1]] 5, --[[2]] 5, --[[3]] 5, --[[4]] 7, --[[5]] 7, --[[6]] 1, --[[7]] 9, --[[8]] 1},
}
elseif g_Strength == 12 then
t_RR_Army = {
sgroup_name = { --[[1]]"sg_CM_RR1", --[[2]]"sg_CM_RR2", --[[3]]"sg_CM_RR3", --[[4]]"sg_CM_RR4", --[[5]]"sg_CM_RR5", --[[6]]"sg_CM_RR6", --[[7]]"sg_CM_RR7", --[[8]]"sg_CM_RR8"},
blueprint = {--[[1]]"chaos_squad_horror", --[[2]]"chaos_squad_horror", --[[3]]"chaos_squad_horror", --[[4]]"chaos_squad_raptor", --[[5]]"chaos_squad_raptor", --[[6]]"chaos_squad_obliterator",
--[[7]]"chaos_squad_raptor", --[[8]]"chaos_squad_obliterator"},
marker_spawn = {--[[1]]"mkr_RR1", --[[2]]"mkr_RR2", --[[3]]"mkr_RR3", --[[4]]"mkr_RR4", --[[5]]"mkr_RR5", --[[6]]"mkr_RR6", --[[7]]"mkr_RR7", --[[8]]"mkr_RR8", },
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1},
squad_size = {--[[1]] 5, --[[2]] 5, --[[3]] 5, --[[4]] 6, --[[5]] 6, --[[6]] 1, --[[7]] 7, --[[8]] 1},
}
elseif g_Strength == 11 then
t_RR_Army = {
sgroup_name = { --[[1]]"sg_CM_RR1", --[[2]]"sg_CM_RR2", --[[3]]"sg_CM_RR3", --[[4]]"sg_CM_RR4", --[[5]]"sg_CM_RR5", --[[6]]"sg_CM_RR6", --[[7]]"sg_CM_RR7", --[[8]]"sg_CM_RR8"},
blueprint = {--[[1]]"chaos_squad_horror", --[[2]]"chaos_squad_horror", --[[3]]"chaos_squad_horror", --[[4]]"chaos_squad_raptor", --[[5]]"chaos_squad_raptor", --[[6]]"chaos_squad_obliterator",
--[[7]]"chaos_squad_raptor", --[[8]]"chaos_squad_obliterator"},
marker_spawn = {--[[1]]"mkr_RR1", --[[2]]"mkr_RR2", --[[3]]"mkr_RR3", --[[4]]"mkr_RR4", --[[5]]"mkr_RR5", --[[6]]"mkr_RR6", --[[7]]"mkr_RR7", --[[8]]"mkr_RR8", },
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1},
squad_size = {--[[1]] 4, --[[2]] 4, --[[3]] 4, --[[4]] 6, --[[5]] 6, --[[6]] 1, --[[7]] 7, --[[8]] 1},
}
else
t_RR_Army = {
sgroup_name = { --[[1]]"sg_CM_RR1", --[[2]]"sg_CM_RR2", --[[3]]"sg_CM_RR3", --[[4]]"sg_CM_RR4", --[[5]]"sg_CM_RR5", --[[6]]"sg_CM_RR6", --[[7]]"sg_CM_RR7", --[[8]]"sg_CM_RR8"},
blueprint = {--[[1]]"chaos_squad_horror", --[[2]]"chaos_squad_horror", --[[3]]"chaos_squad_horror", --[[4]]"chaos_squad_raptor", --[[5]]"chaos_squad_raptor", --[[6]]"chaos_squad_obliterator",
--[[7]]"chaos_squad_raptor", --[[8]]"chaos_squad_obliterator"},
marker_spawn = {--[[1]]"mkr_RR1", --[[2]]"mkr_RR2", --[[3]]"mkr_RR3", --[[4]]"mkr_RR4", --[[5]]"mkr_RR5", --[[6]]"mkr_RR6", --[[7]]"mkr_RR7", --[[8]]"mkr_RR8", },
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1, --[[6]] 1, --[[7]] 1, --[[8]] 1},
squad_size = {--[[1]] 5, --[[2]] 3, --[[3]] 5, --[[4]] 5, --[[5]] 7, --[[6]] 1, --[[7]] 6, --[[8]] 1},
}
end
local i = g_RR_Army_iter
if g_RR_Army_iter <= table.getn(t_RR_Army.sgroup_name) and (SGroup_Exists(t_RR_Army.sgroup_name[i]) == false or SGroup_IsEmpty(t_RR_Army.sgroup_name[i])) then
local sgroupID = Util_CreateSquadsAtMarkerEx(g_Player2, t_RR_Army.sgroup_name[i], t_RR_Army.blueprint[i], t_RR_Army.marker_spawn[i], t_RR_Army.squad_num[i], t_RR_Army.squad_size[i])
--add them all into one meta group
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_CM_Bastion_Army"), SGroup_FromName(t_RR_Army.sgroup_name[i]))
--prevent AI from using these units
Cpu_LockSGroupAcrossPlayers(t_RR_Army.sgroup_name[i])
Cpu_LockSGroupAcrossPlayers("sg_CM_Bastion_Army")
elseif g_RR_Army_iter > table.getn(t_RR_Army.sgroup_name) then
g_RR_Army_iter = 0
if g_Strength == 15 then
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR4"), 1), "chaos_flamer_raptor", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR5"), 1), "chaos_flamer_raptor", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR6"), 1), "chaos_power_fist_obliterator",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR7"), 1), "chaos_chainsword_raptor", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR8"), 1), "chaos_power_fist_obliterator",3)
elseif g_Strength == 14 then
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR4"), 1), "chaos_flamer_raptor", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR5"), 1), "chaos_flamer_raptor", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR6"), 1), "chaos_power_fist_obliterator",3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR7"), 1), "chaos_chainsword_raptor", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR8"), 1), "chaos_power_fist_obliterator",3)
elseif g_Strength == 13 then
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR4"), 1), "chaos_flamer_raptor", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR5"), 1), "chaos_flamer_raptor", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR6"), 1), "chaos_power_fist_obliterator",2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR7"), 1), "chaos_chainsword_raptor", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR8"), 1), "chaos_power_fist_obliterator",2)
elseif g_Strength == 12 then
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR4"), 1), "chaos_flamer_raptor", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR5"), 1), "chaos_flamer_raptor", 5)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR6"), 1), "chaos_power_fist_obliterator",1)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR7"), 1), "chaos_chainsword_raptor", 4)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR8"), 1), "chaos_power_fist_obliterator",1)
elseif g_Strength == 11 then
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR4"), 1), "chaos_flamer_raptor", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR5"), 1), "chaos_flamer_raptor", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR6"), 1), "chaos_power_fist_obliterator",2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR7"), 1), "chaos_chainsword_raptor", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR8"), 1), "chaos_power_fist_obliterator",2)
else
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR4"), 1), "chaos_flamer_raptor", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR5"), 1), "chaos_flamer_raptor", 2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR6"), 1), "chaos_power_fist_obliterator",2)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR7"), 1), "chaos_chainsword_raptor", 3)
Squad_ForceUpgradeWeapons(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_RR8"), 1), "chaos_power_fist_obliterator",1)
end
Cmd_SetStance("sg_CM_RR1", STANCE_Hold)
Cmd_SetStance("sg_CM_RR2", STANCE_Hold)
Cmd_SetStance("sg_CM_RR3", STANCE_Hold)
Cmd_SetStance("sg_CM_RR4", STANCE_Hold)
Cmd_SetStance("sg_CM_RR5", STANCE_Hold)
Cmd_SetStance("sg_CM_RR6", STANCE_Hold)
Cmd_SetStance("sg_CM_RR7", STANCE_Hold)
Cmd_SetStance("sg_CM_RR8", STANCE_Hold)
Rule_AddIntervalDelay(Rule_RR_Static_Movement, 60, 30)
Rule_AddIntervalDelay(Rule_RR_Static_Movement2, 60, 45)
Rule_AddIntervalDelay(Rule_RR_Static_Movement3, 60, 60)
Rule_AddIntervalDelay(Rule_RR_Static_Movement4, 60, 80)
Rule_AddIntervalDelay(Rule_RR_Static_Movement5, 60, 95)
Rule_AddIntervalDelay(Rule_RR_Static_Movement6, 60, 120)
Rule_AddIntervalDelay(Rule_RR_Static_Movement7, 60, 150)
Rule_AddIntervalDelay(Rule_RR_Static_Movement8, 60, 180)
Rule_Remove(Rule_CM_RR_Creation)
end
g_RR_Army_iter = g_RR_Army_iter+1
end
--a few units the player begins with in order to be able to defend his base (not the bonus units)
function Rule_Player_Defense_Creation()
t_Player_Army = {
sgroup_name = { --[[1]]"sg_Player_Defense1", --[[2]]"sg_Player_Defense2", --[[3]]"sg_Player_Defense3", --[[4]]"sg_Player_Defense4"},
blueprint = {--[[1]] g_BaseDefense_Type, --[[2]] g_BaseDefense_Type, --[[3]] g_BaseDefense_Type, --[[4]] g_BaseDefense_Type},
marker_spawn = {--[[1]]"mkr_P_Defense1", --[[2]]"mkr_P_Defense2", --[[3]]"mkr_P_Defense3", --[[4]]"mkr_P_Defense4"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1},
squad_size = {--[[1]] 9, --[[2]] 9, --[[3]] 9, --[[4]] 9},
}
local i = g_Player_Army_iter
if g_Player_Army_iter <= table.getn(t_Player_Army.sgroup_name) and (SGroup_Exists(t_Player_Army.sgroup_name[i]) == false or SGroup_IsEmpty(t_Player_Army.sgroup_name[i])) then
local sgroupID = Util_CreateSquadsAtMarkerEx(g_Player1, t_Player_Army.sgroup_name[i], t_Player_Army.blueprint[i], t_Player_Army.marker_spawn[i], t_Player_Army.squad_num[i], t_Player_Army.squad_size[i])
elseif g_Player_Army_iter > table.getn(t_Player_Army.sgroup_name) then
g_Player_Army_iter = 0
Rule_Remove(Rule_Player_Defense_Creation)
end
g_Player_Army_iter = g_Player_Army_iter+1
end
--[[Initial Attack]]
--a few unitsto attack the player at the start and get things rolling... initial attack
function Rule_Opening_Raid_Creation()
if g_Strength == 15 then
t_Opening_Raid_Army = {
sgroup_name = { --[[1]]"sg_CM_Opening1", --[[2]]"sg_CM_Opening2", --[[3]]"sg_CM_Opening3", --[[4]]"sg_CM_Opening4"},
blueprint = {--[[1]] "chaos_squad_khorne_berserker_stronghold_sp", --[[2]] "chaos_marine_squad_stronghold_sp", --[[3]] "chaos_squad_cultist", --[[4]] "chaos_squad_horror"},
marker_spawn = {--[[1]]"mkr_OpeningRaid2", --[[2]]"mkr_OpeningRaid2", --[[3]]"mkr_OpeningRaid1", --[[4]]"mkr_OpeningRaid1"},
squad_num = {--[[1]] 7, --[[2]] 3, --[[3]] 3, --[[4]] 2},
squad_size = {--[[1]] 1, --[[2]] 6, --[[3]] 5, --[[4]] 6},
}
elseif g_Strength == 14 then
t_Opening_Raid_Army = {
sgroup_name = { --[[1]]"sg_CM_Opening1", --[[2]]"sg_CM_Opening2", --[[3]]"sg_CM_Opening3", --[[4]]"sg_CM_Opening4"},
blueprint = {--[[1]] "chaos_squad_khorne_berserker_stronghold_sp", --[[2]] "chaos_marine_squad_stronghold_sp", --[[3]] "chaos_squad_cultist", --[[4]] "chaos_squad_horror"},
marker_spawn = {--[[1]]"mkr_OpeningRaid2", --[[2]]"mkr_OpeningRaid2", --[[3]]"mkr_OpeningRaid1", --[[4]]"mkr_OpeningRaid1"},
squad_num = {--[[1]] 6, --[[2]] 3, --[[3]] 3, --[[4]] 2},
squad_size = {--[[1]] 1, --[[2]] 5, --[[3]] 8, --[[4]] 5},
}
elseif g_Strength == 13 then
t_Opening_Raid_Army = {
sgroup_name = { --[[1]]"sg_CM_Opening1", --[[2]]"sg_CM_Opening2", --[[3]]"sg_CM_Opening3", --[[4]]"sg_CM_Opening4"},
blueprint = {--[[1]] "chaos_squad_khorne_berserker_stronghold_sp", --[[2]] "chaos_marine_squad", --[[3]] "chaos_squad_cultist", --[[4]] "chaos_squad_horror"},
marker_spawn = {--[[1]]"mkr_OpeningRaid2", --[[2]]"mkr_OpeningRaid2", --[[3]]"mkr_OpeningRaid1", --[[4]]"mkr_OpeningRaid1"},
squad_num = {--[[1]] 5, --[[2]] 3, --[[3]] 3, --[[4]] 2},
squad_size = {--[[1]] 1, --[[2]] 4, --[[3]] 8, --[[4]] 4},
}
elseif g_Strength == 12 then
t_Opening_Raid_Army = {
sgroup_name = { --[[1]]"sg_CM_Opening1", --[[2]]"sg_CM_Opening2", --[[3]]"sg_CM_Opening3", --[[4]]"sg_CM_Opening4"},
blueprint = {--[[1]] "chaos_squad_khorne_berserker_stronghold_sp", --[[2]] "chaos_marine_squad", --[[3]] "chaos_squad_cultist", --[[4]] "chaos_squad_horror"},
marker_spawn = {--[[1]]"mkr_OpeningRaid2", --[[2]]"mkr_OpeningRaid2", --[[3]]"mkr_OpeningRaid1", --[[4]]"mkr_OpeningRaid1"},
squad_num = {--[[1]] 3, --[[2]] 2, --[[3]] 2, --[[4]] 2},
squad_size = {--[[1]] 1, --[[2]] 4, --[[3]] 8, --[[4]] 4},
}
elseif g_Strength == 11 then
t_Opening_Raid_Army = {
sgroup_name = { --[[1]]"sg_CM_Opening1", --[[2]]"sg_CM_Opening2", --[[3]]"sg_CM_Opening3", --[[4]]"sg_CM_Opening4"},
blueprint = {--[[1]] "chaos_squad_khorne_berserker_stronghold_sp", --[[2]] "chaos_marine_squad", --[[3]] "chaos_squad_cultist", --[[4]] "chaos_squad_horror"},
marker_spawn = {--[[1]]"mkr_OpeningRaid2", --[[2]]"mkr_OpeningRaid2", --[[3]]"mkr_OpeningRaid1", --[[4]]"mkr_OpeningRaid1"},
squad_num = {--[[1]] 2, --[[2]] 1, --[[3]] 1, --[[4]] 1},
squad_size = {--[[1]] 1, --[[2]] 4, --[[3]] 8, --[[4]] 4},
}
else
t_Opening_Raid_Army = {
sgroup_name = { --[[1]]"sg_CM_Opening1", --[[2]]"sg_CM_Opening2", --[[3]]"sg_CM_Opening3", --[[4]]"sg_CM_Opening4"},
blueprint = {--[[1]] "chaos_squad_khorne_berserker_stronghold_sp", --[[2]] "chaos_marine_squad", --[[3]] "chaos_squad_cultist", --[[4]] "chaos_squad_horror"},
marker_spawn = {--[[1]]"mkr_OpeningRaid2", --[[2]]"mkr_OpeningRaid2", --[[3]]"mkr_OpeningRaid1", --[[4]]"mkr_OpeningRaid1"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1},
squad_size = {--[[1]] 1, --[[2]] 3, --[[3]] 8, --[[4]] 1},
}
end
local i = g_Opening_Raid_Army_iter
if g_Opening_Raid_Army_iter <= table.getn(t_Opening_Raid_Army.sgroup_name) and (SGroup_Exists(t_Opening_Raid_Army.sgroup_name[i]) == false or SGroup_IsEmpty(t_Opening_Raid_Army.sgroup_name[i])) then
local sgroupID = Util_CreateSquadsAtMarkerEx(g_Player2, t_Opening_Raid_Army.sgroup_name[i], t_Opening_Raid_Army.blueprint[i], t_Opening_Raid_Army.marker_spawn[i],
t_Opening_Raid_Army.squad_num[i], t_Opening_Raid_Army.squad_size[i])
Cmd_AttackMoveMarker(t_Opening_Raid_Army.sgroup_name[i], "mkr_Player_HQ")
elseif g_Opening_Raid_Army_iter > table.getn(t_Opening_Raid_Army.sgroup_name) then
g_Opening_Raid_Army_iter = 0
Rule_Remove(Rule_Opening_Raid_Creation)
end
g_Opening_Raid_Army_iter = g_Opening_Raid_Army_iter+1
end
--[[ Patrols ]]
--predator patrol function Rule_PatrolA()
if SGroup_Exists("sg_CM_Bastion14") and SGroup_IsEmpty("sg_CM_Bastion14") == false then
if Prox_AnySquadNearMarker("sg_CM_Bastion14", "mkr_PatrolA1") then
Cmd_AttackMoveMarker("sg_CM_Bastion14", "mkr_PatrolA2")
elseif Prox_AnySquadNearMarker("sg_CM_Bastion14", "mkr_PatrolA2") then
Cmd_AttackMoveMarker("sg_CM_Bastion14", "mkr_PatrolA1")
end
else
Rule_Remove(Rule_PatrolA)
end
end
--predator patrol function Rule_PatrolB()
if SGroup_Exists("sg_CM_Bastion16") and SGroup_IsEmpty("sg_CM_Bastion16") == false then
if Prox_AnySquadNearMarker("sg_CM_Bastion16", "mkr_PatrolB1") then
Cmd_AttackMoveMarker("sg_CM_Bastion16", "mkr_PatrolB2")
elseif Prox_AnySquadNearMarker("sg_CM_Bastion16", "mkr_PatrolB2") then
Cmd_AttackMoveMarker("sg_CM_Bastion16", "mkr_PatrolB1")
end
else
Rule_Remove(Rule_PatrolB)
end
end
--khorne berserker patrol function Rule_PatrolC()
if SGroup_Exists("sg_Plains_Khorne1") and SGroup_IsEmpty("sg_Plains_Khorne1") == false then
if Prox_AnySquadNearMarker("sg_Plains_Khorne1", "mkr_Plain_Khorne1") then
Cmd_AttackMoveMarker("sg_Plains_Khorne1", "mkr_PatrolC1")
elseif Prox_AnySquadNearMarker("sg_Plains_Khorne1", "mkr_PatrolC1") then
Cmd_AttackMoveMarker("sg_Plains_Khorne1", "mkr_PatrolC2")
elseif Prox_AnySquadNearMarker("sg_Plains_Khorne1", "mkr_PatrolC2") then
Cmd_AttackMoveMarker("sg_Plains_Khorne1", "mkr_PatrolC3")
elseif Prox_AnySquadNearMarker("sg_Plains_Khorne1", "mkr_PatrolC3") then
Cmd_AttackMoveMarker("sg_Plains_Khorne1", "mkr_PatrolC4")
elseif Prox_AnySquadNearMarker("sg_Plains_Khorne1", "mkr_PatrolC4") then
Cmd_AttackMoveMarker("sg_Plains_Khorne1", "mkr_Plain_Khorne1")
end
else
Rule_Remove(Rule_PatrolC)
end
end
--khorne berserker patrol function Rule_PatrolD()
if SGroup_Exists("sg_Plains_Khorne2") and SGroup_IsEmpty("sg_Plains_Khorne2") == false then
if Prox_AnySquadNearMarker("sg_Plains_Khorne2", "mkr_Plain_Khorne2") then
Cmd_AttackMoveMarker("sg_Plains_Khorne2", "mkr_PatrolD1")
elseif Prox_AnySquadNearMarker("sg_Plains_Khorne2", "mkr_PatrolD1") then
Cmd_AttackMoveMarker("sg_Plains_Khorne2", "mkr_PatrolD2")
elseif Prox_AnySquadNearMarker("sg_Plains_Khorne2", "mkr_PatrolD2") then
Cmd_AttackMoveMarker("sg_Plains_Khorne2", "mkr_Plain_Khorne2")
end
else
Rule_Remove(Rule_PatrolD)
end
end
--khorne berserker patrol function Rule_PatrolE()
if SGroup_Exists("sg_Plains_Khorne3") and SGroup_IsEmpty("sg_Plains_Khorne3") == false then
if Prox_AnySquadNearMarker("sg_Plains_Khorne3", "mkr_Plain_Khorne3") then
Cmd_AttackMoveMarker("sg_Plains_Khorne3", "mkr_PatrolE1")
elseif Prox_AnySquadNearMarker("sg_Plains_Khorne3", "mkr_PatrolE1") then
Cmd_AttackMoveMarker("sg_Plains_Khorne3", "mkr_PatrolE2")
elseif Prox_AnySquadNearMarker("sg_Plains_Khorne3", "mkr_PatrolE2") then
Cmd_AttackMoveMarker("sg_Plains_Khorne3", "mkr_Plain_Khorne3")
end
else
Rule_Remove(Rule_PatrolE)
end
end
--khorne berserker patrol function Rule_PatrolF()
if SGroup_Exists("sg_Plains_Khorne5") and SGroup_IsEmpty("sg_Plains_Khorne5") == false then
if Prox_AnySquadNearMarker("sg_Plains_Khorne5", "mkr_Plain_Khorne5") then
Cmd_AttackMoveMarker("sg_Plains_Khorne5", "mkr_PatrolF1")
elseif Prox_AnySquadNearMarker("sg_Plains_Khorne5", "mkr_PatrolF1") then
Cmd_AttackMoveMarker("sg_Plains_Khorne5", "mkr_PatrolF2")
elseif Prox_AnySquadNearMarker("sg_Plains_Khorne5", "mkr_PatrolF2") then
Cmd_AttackMoveMarker("sg_Plains_Khorne5", "mkr_Plain_Khorne5")
end
else
Rule_Remove(Rule_PatrolF)
end
end
--khorne berserker patrol function Rule_PatrolG()
if SGroup_Exists("sg_Plains_Khorne4") and SGroup_IsEmpty("sg_Plains_Khorne4") == false then
if Prox_AnySquadNearMarker("sg_Plains_Khorne4", "mkr_Plain_Khorne4") then
Cmd_AttackMoveMarker("sg_Plains_Khorne4", "mkr_PatrolG1")
elseif Prox_AnySquadNearMarker("sg_Plains_Khorne4", "mkr_PatrolG1") then
Cmd_AttackMoveMarker("sg_Plains_Khorne4", "mkr_PatrolG2")
elseif Prox_AnySquadNearMarker("sg_Plains_Khorne4", "mkr_PatrolG2") then
Cmd_AttackMoveMarker("sg_Plains_Khorne4", "mkr_Plain_Khorne4")
end
else
Rule_Remove(Rule_PatrolG)
end
end
--khorne berserker patrol function Rule_PatrolH()
if SGroup_Exists("sg_Plains_Khorne6") and SGroup_IsEmpty("sg_Plains_Khorne6") == false then
if Prox_AnySquadNearMarker("sg_Plains_Khorne6", "mkr_Plain_Khorne6") then
Cmd_AttackMoveMarker("sg_Plains_Khorne6", "mkr_PatrolH1")
elseif Prox_AnySquadNearMarker("sg_Plains_Khorne6", "mkr_PatrolH1") then
Cmd_AttackMoveMarker("sg_Plains_Khorne6", "mkr_Plain_Khorne6")
end
else
Rule_Remove(Rule_PatrolH)
end
end
--obliterator patrol in the relic base
function Rule_KO5_Patrol()
t_obliterator_relic_patrol ={--[[1]]"mkr_KO5_1", --[[2]]"mkr_KO5_2", --[[3]]"mkr_KO5_3", --[[4]]"mkr_KO5_4"}
if SGroup_Exists("sg_CM_Relic5") and SGroup_IsEmpty("sg_CM_Relic5") == false then
if g_reverse_obliterator == false then
for i = 1, 4 do
if Prox_AnySquadNearMarker("sg_CM_Relic5", t_obliterator_relic_patrol[i]) then
--if the group has made it to the end of the patrol then reverse it
if i == 4 then
g_reverse_obliterator = true
j = i - 1
Cmd_AttackMoveMarker("sg_CM_Relic5", t_obliterator_relic_patrol[j])
else
j = i + 1
Cmd_AttackMoveMarker("sg_CM_Relic5", t_obliterator_relic_patrol[j])
end
break
end
end
elseif g_reverse_obliterator == true then
for i = 1, 4 do
if Prox_AnySquadNearMarker("sg_CM_Relic5", t_obliterator_relic_patrol[i]) then
--if the group has made it to the end of the patrol then reverse it
if i == 1 then
g_reverse_obliterator = false
j = i + 1
Cmd_AttackMoveMarker("sg_CM_Relic5", t_obliterator_relic_patrol[j])
else
j = i - 1
Cmd_AttackMoveMarker("sg_CM_Relic5", t_obliterator_relic_patrol[j])
end
break
end
end
end
else
Rule_Remove(Rule_KO5_Patrol)
end
end
--defiler patrol infront of the bastion
--if the number of defilers patrolling is increased or decreased that change has to be made to the two tables below. t_existence_table = {--[[1]]6}
function Rule_KDPatrol_Check() --this is to check if there are still any defilers left, if not then remove the KD patrol rule. This could as easily have been done by adding all the defilers into a meta group and checking if it was empty of course.
local numdefile = t_existence_table[1]
g_total_defiler = 0
if numdefile == 0 then
Rule_Remove(Rule_KDPatrol_Check)
Rule_Remove(Rule_KD_Patrol)
else
for i = 1, 6 do
if SGroup_Exists("sg_KhorneDefiler"..i) and SGroup_IsEmpty("sg_KhorneDefiler"..i) == false then
g_total_defiler =g_total_defiler +1
end
t_existence_table[1] = g_total_defiler
end
end
end
t_reverse_table = {--[[1]]false, --[[2]]false, --[[3]]false, --[[4]]false, --[[5]]false, --[[6]]false}
function Rule_KD_Patrol()
t_KD1_patrol ={--[[1]]"mkr_KD1_1", --[[2]]"mkr_KD1_2", --[[3]]"mkr_KD1_3", --[[4]]"mkr_KD1_4"} t_KD2_patrol ={--[[1]]"mkr_KD2_1", --[[2]]"mkr_KD2_2", --[[3]]"mkr_KD2_3", --[[4]]"mkr_KD2_4"} t_KD3_patrol ={--[[1]]"mkr_KD3_1", --[[2]]"mkr_KD3_2", --[[3]]"mkr_KD3_3", --[[4]]"mkr_KD3_4", --[[5]]"mkr_KD3_5"} t_KD4_patrol ={--[[1]]"mkr_KD4_1", --[[2]]"mkr_KD4_2", --[[3]]"mkr_KD4_3"} t_KD5_patrol ={--[[1]]"mkr_KD5_1", --[[2]]"mkr_KD5_2", --[[3]]"mkr_KD5_3"} t_KD6_patrol ={--[[1]]"mkr_KD6_1", --[[2]]"mkr_KD6_2", --[[3]]"mkr_KD6_3", --[[4]]"mkr_KD6_4", --[[5]]"mkr_KD6_5"} t_KD_patroltables = {--[[1]]t_KD1_patrol, --[[2]]t_KD2_patrol, --[[3]]t_KD3_patrol, --[[4]]t_KD4_patrol, --[[5]]t_KD5_patrol, --[[6]]t_KD6_patrol}
for i = 1, 6 do
if SGroup_Exists("sg_KhorneDefiler"..i) and SGroup_IsEmpty("sg_KhorneDefiler"..i) == false then
if t_reverse_table[i] == false then
local maxsize = table.getn(t_KD_patroltables[i])
for k = 1, maxsize do
if Prox_AnySquadNearMarker("sg_KhorneDefiler"..i, t_KD_patroltables[i][k]) then
if k == maxsize then
t_reverse_table[i] = true
j = k - 1
Cmd_AttackMoveMarker("sg_KhorneDefiler"..i, t_KD_patroltables[i][j])
else
j = k + 1
Cmd_AttackMoveMarker("sg_KhorneDefiler"..i, t_KD_patroltables[i][j])
end
break
end
end
elseif t_reverse_table[i] == true then
local maxsize = table.getn(t_KD_patroltables[i])
for k = 1, maxsize do
if Prox_AnySquadNearMarker("sg_KhorneDefiler"..i, t_KD_patroltables[i][k]) then
if k == 1 then
t_reverse_table[i] = false
j = k + 1
Cmd_AttackMoveMarker("sg_KhorneDefiler"..i, t_KD_patroltables[i][j])
else
j = k - 1
Cmd_AttackMoveMarker("sg_KhorneDefiler"..i, t_KD_patroltables[i][j])
end
break
end
end
end
end
end
end
--patrol inside the bastion
function Rule_Inner_Bastion_Patrol1()
if SGroup_Exists("sg_CM_Bastion1") and SGroup_IsEmpty("sg_CM_Bastion1") == false then
if Prox_AnySquadNearMarker("sg_CM_Bastion1", "mkr_Bastion1_P1") and Squad_IsUnderAttack(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion1"), 1)) == false then
Cmd_AttackMoveMarker("sg_CM_Bastion1", "mkr_Bastion1_P2")
elseif Prox_AnySquadNearMarker("sg_CM_Bastion1", "mkr_Bastion1_P2") and Squad_IsUnderAttack(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion1"), 1)) == false then
Cmd_AttackMoveMarker("sg_CM_Bastion1", "mkr_Bastion1_P1")
end
else
Rule_Remove(Rule_Inner_Bastion_Patrol1)
end
end
function Rule_Inner_Bastion_Patrol2()
if SGroup_Exists("sg_CM_Bastion2") and SGroup_IsEmpty("sg_CM_Bastion2") == false then
if Prox_AnySquadNearMarker("sg_CM_Bastion2", "mkr_Bastion2_P1") and Squad_IsUnderAttack(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion2"), 1)) == false then
Cmd_AttackMoveMarker("sg_CM_Bastion2", "mkr_Bastion2_P2")
elseif Prox_AnySquadNearMarker("sg_CM_Bastion2", "mkr_Bastion2_P2") and Squad_IsUnderAttack(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion2"), 1)) == false then
Cmd_AttackMoveMarker("sg_CM_Bastion2", "mkr_Bastion2_P1")
end
else
Rule_Remove(Rule_Inner_Bastion_Patrol2)
end
end
function Rule_Inner_Bastion_Patrol3()
if SGroup_Exists("sg_CM_Bastion3") and SGroup_IsEmpty("sg_CM_Bastion3") == false then
if Prox_AnySquadNearMarker("sg_CM_Bastion3", "mkr_Bastion3_P1") and Squad_IsUnderAttack(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion3"), 1)) == false then
Cmd_AttackMoveMarker("sg_CM_Bastion3", "mkr_Bastion3_P2")
elseif Prox_AnySquadNearMarker("sg_CM_Bastion3", "mkr_Bastion3_P2") and Squad_IsUnderAttack(SGroup_GetSpawnedSquadAt(SGroup_FromName("sg_CM_Bastion3"), 1)) == false then
Cmd_AttackMoveMarker("sg_CM_Bastion3", "mkr_Bastion3_P1")
end
else
Rule_Remove(Rule_Inner_Bastion_Patrol3)
end
end
--[[these are all in seperate functions to give more randomness]] --static random movement in the bastion function Rule_Defiler_Static_Movement()
if SGroup_Exists("sg_CM_Bastion5") and SGroup_IsEmpty("sg_CM_Bastion5") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Bastion5", "mkr_Bastion5")
else
Rule_Remove(Rule_Defiler_Static_Movement)
end
end
function Rule_Defiler_Static_Movement2()
if SGroup_Exists("sg_CM_Bastion6") and SGroup_IsEmpty("sg_CM_Bastion6") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Bastion6", "mkr_Bastion6")
else
Rule_Remove(Rule_Defiler_Static_Movement2)
end
end
function Rule_Defiler_Static_Movement3()
if SGroup_Exists("sg_CM_Bastion10") and SGroup_IsEmpty("sg_CM_Bastion10") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Bastion10", "mkr_Bastion10")
else
Rule_Remove(Rule_Defiler_Static_Movement3)
end
end
function Rule_Defiler_Static_Movement4()
if SGroup_Exists("sg_CM_Bastion11") and SGroup_IsEmpty("sg_CM_Bastion11") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Bastion11", "mkr_Bastion11")
else
Rule_Remove(Rule_Defiler_Static_Movement4)
end
end
function Rule_Defiler_Static_Movement5()
if SGroup_Exists("sg_CM_Bastion12") and SGroup_IsEmpty("sg_CM_Bastion12") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Bastion12", "mkr_Bastion12")
else
Rule_Remove(Rule_Defiler_Static_Movement5)
end
end
function Rule_Defiler_Static_Movement6()
if SGroup_Exists("sg_CM_Bastion17") and SGroup_IsEmpty("sg_CM_Bastion17") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Bastion17", "mkr_Bastion17")
else
Rule_Remove(Rule_Defiler_Static_Movement6)
end
end
--static random movement in the relic area
function Rule_Relic_Static_Movement()
if SGroup_Exists("sg_CM_Relic2") and SGroup_IsEmpty("sg_CM_Relic2") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Relic2", "mkr_Khorne_Defender2")
else
Rule_Remove(Rule_Relic_Static_Movement)
end
end
function Rule_Relic_Static_Movement2()
if SGroup_Exists("sg_CM_Relic3") and SGroup_IsEmpty("sg_CM_Relic3") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Relic3", "mkr_Khorne_Defender3")
else
Rule_Remove(Rule_Relic_Static_Movement2)
end
end
function Rule_Relic_Static_Movement3()
if SGroup_Exists("sg_CM_Relic4") and SGroup_IsEmpty("sg_CM_Relic4") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Relic4", "mkr_Khorne_Defender4")
else
Rule_Remove(Rule_Relic_Static_Movement3)
end
end
function Rule_Relic_Static_Movement4()
if SGroup_Exists("sg_CM_Relic6") and SGroup_IsEmpty("sg_CM_Relic6") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Relic6", "mkr_Khorne_Defender6")
else
Rule_Remove(Rule_Relic_Static_Movement4)
end
end
--static random in the right rear base
function Rule_RR_Static_Movement()
if SGroup_Exists("sg_CM_RR1") and SGroup_IsEmpty("sg_CM_RR1") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_RR1", "mkr_RR1")
else
Rule_Remove(Rule_RR_Static_Movement)
end
end
function Rule_RR_Static_Movement2()
if SGroup_Exists("sg_CM_RR2") and SGroup_IsEmpty("sg_CM_RR2") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_RR2", "mkr_RR2")
else
Rule_Remove(Rule_RR_Static_Movement2)
end
end
function Rule_RR_Static_Movement3()
if SGroup_Exists("sg_CM_RR3") and SGroup_IsEmpty("sg_CM_RR3") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_RR3", "mkr_RR3")
else
Rule_Remove(Rule_RR_Static_Movement3)
end
end
function Rule_RR_Static_Movement4()
if SGroup_Exists("sg_CM_RR4") and SGroup_IsEmpty("sg_CM_RR4") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_RR4", "mkr_RR4")
else
Rule_Remove(Rule_RR_Static_Movement4)
end
end
function Rule_RR_Static_Movement5()
if SGroup_Exists("sg_CM_RR5") and SGroup_IsEmpty("sg_CM_RR5") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_RR5", "mkr_RR5")
else
Rule_Remove(Rule_RR_Static_Movement5)
end
end
function Rule_RR_Static_Movement6()
if SGroup_Exists("sg_CM_RR6") and SGroup_IsEmpty("sg_CM_RR6") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_RR6", "mkr_RR6")
else
Rule_Remove(Rule_RR_Static_Movement6)
end
end
function Rule_RR_Static_Movement7()
if SGroup_Exists("sg_CM_RR7") and SGroup_IsEmpty("sg_CM_RR7") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_RR7", "mkr_RR7")
else
Rule_Remove(Rule_RR_Static_Movement7)
end
end
function Rule_RR_Static_Movement8()
if SGroup_Exists("sg_CM_RR8") and SGroup_IsEmpty("sg_CM_RR8") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_RR8", "mkr_RR8")
else
Rule_Remove(Rule_RR_Static_Movement8)
end
end
--static movement for the area immediatly north of the player's starting spot
function Rule_Right_Static_Movement()
if SGroup_Exists("sg_CM_Right_Barrack1") and SGroup_IsEmpty("sg_CM_Right_Barrack1") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Right_Barrack1", "mkr_Barrack_Right1")
else
Rule_Remove(Rule_Right_Static_Movement)
end
end
function Rule_Right_Static_Movement2()
if SGroup_Exists("sg_CM_Right_Barrack2") and SGroup_IsEmpty("sg_CM_Right_Barrack2") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Right_Barrack2", "mkr_Barrack_Right2")
else
Rule_Remove(Rule_Right_Static_Movement2)
end
end
function Rule_Right_Static_Movement3()
if SGroup_Exists("sg_CM_Right_Barrack3") and SGroup_IsEmpty("sg_CM_Right_Barrack3") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Right_Barrack3", "mkr_Barrack_Right3")
else
Rule_Remove(Rule_Right_Static_Movement3)
end
end
function Rule_Right_Static_Movement4()
if SGroup_Exists("sg_CM_Right_Barrack4") and SGroup_IsEmpty("sg_CM_Right_Barrack4") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Right_Barrack4", "mkr_Barrack_Right4")
else
Rule_Remove(Rule_Right_Static_Movement4)
end
end
function Rule_Right_Static_Movement5()
if SGroup_Exists("sg_CM_Right_Barrack5") and SGroup_IsEmpty("sg_CM_Right_Barrack5") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_Right_Barrack5", "mkr_Barrack_Right5")
else
Rule_Remove(Rule_Right_Static_Movement5)
end
end
--static movement for the left bridge area
function Rule_Left_Bridge_Static_Movement()
if SGroup_Exists("sg_CM_LB1") and SGroup_IsEmpty("sg_CM_LB1") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_LB1", "mkr_Bridge_Left1")
else
Rule_Remove(Rule_Left_Bridge_Static_Movement)
end
end
function Rule_Left_Bridge_Static_Movement2()
if SGroup_Exists("sg_CM_LB2") and SGroup_IsEmpty("sg_CM_LB2") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_LB2", "mkr_Bridge_Left2")
else
Rule_Remove(Rule_Left_Bridge_Static_Movement2)
end
end
function Rule_Left_Bridge_Static_Movement3()
if SGroup_Exists("sg_CM_LB3") and SGroup_IsEmpty("sg_CM_LB3") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_LB3", "mkr_Bridge_Left3")
else
Rule_Remove(Rule_Left_Bridge_Static_Movement3)
end
end
function Rule_Left_Bridge_Static_Movement4()
if SGroup_Exists("sg_CM_LB4") and SGroup_IsEmpty("sg_CM_LB4") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_LB4", "mkr_Bridge_Left4")
else
Rule_Remove(Rule_Left_Bridge_Static_Movement4)
end
end
function Rule_Left_Bridge_Static_Movement5()
if SGroup_Exists("sg_CM_LB5") and SGroup_IsEmpty("sg_CM_LB5") == false then
Util_AttackMoveMarkerRandomRadius("sg_CM_LB5", "mkr_Bridge_Left5")
else
Rule_Remove(Rule_Left_Bridge_Static_Movement5)
end
end
--[[ Util functions ]]
--[[ --this is a function to make units that are stationary appear more life like by having them move around within the confines of a marker function Util_AttackMoveMarkerRandomRadius( squadgroupname, markername)
local pos = Marker_GetPosition( Marker_FromName( markername, "basic_marker" ) )
local prox = Marker_GetProximity( Marker_FromName( markername, "basic_marker" ) )
local xrand = World_GetRand( -prox, prox )
local zrand = World_GetRand( -prox, prox )
local attackpos = World_Pos( xrand + pos.x, pos.y, zrand + pos.z )
Cmd_AttackMovePos(squadgroupname, attackpos)
end]]
--[[ OBJECTIVES ]]
--[[Primary Objective - Destroy the Chaos Gate]] function Rule_Objective_Kill_Sorcerer()
Objective_Kill_Sorcerer = {title_id = 2520000, short_desc_id = 2520001, help_tip_id = 2520000}
if Event_IsAnyRunning() == false and Objective_Exists(Objective_Kill_Sorcerer.title_id) == false then
Util_WXP_ObjectiveCreate(Objective_Kill_Sorcerer, true, g_Player1)
Objective_ShowScreen()
Flash_OtherButton("dlg_objectives", 0, false, true)
--[[adding map and mini-map pings]]
g_ping_hq = Objective_PingMarker(Objective_Kill_Sorcerer.title_id, "mkr_Sorcerer_Ping", true, "default")
g_ping_hq_mini = Ping_Marker("mkr_Sorcerer_Ping", true, "default")
Rule_AddOneShot(Rule_Stop_HQ_Ping, 5)
elseif Event_IsAnyRunning() == false and g_Win == true then
--[[removing map and mini-map pings]]
Objective_PingRemove(Objective_Kill_Sorcerer.title_id, g_ping_hq)
Util_ObjectiveComplete(Objective_Kill_Sorcerer.title_id)
Rule_Remove(Rule_Objective_Kill_Sorcerer)
--[[game is won]]
Fade_Start(4, false)
World_SetTeamWin( g_Player1, "" )
Rule_AddIntervalEx( Rule_GameOver,5,1 )
end
end
function Rule_Stop_HQ_Ping()
Ping_Stop(g_ping_hq_mini)
end
--[[Secondary Objective - stop Blood Pulse]] function Rule_Objective_Stop_Pulse()
Objective_Stop_Pulse = {title_id = 2520100, short_desc_id = 2520101, help_tip_id = 2520100}
if Event_IsAnyRunning() == false and Objective_Exists(Objective_Stop_Pulse.title_id) == false then
Util_WXP_ObjectiveCreate(Objective_Stop_Pulse, false, g_Player1)
Objective_ShowScreen()
Flash_OtherButton("dlg_objectives", 0, false, true)
--[[adding map and mini-map pings]]
g_ping_Blood = Objective_PingMarker(Objective_Stop_Pulse.title_id, "mkr_Blood_Pit_Ping", true, "default")
g_ping_Blood_mini = Ping_Marker("mkr_Blood_Pit_Ping", true, "default")
Rule_AddOneShot(Rule_Stop_Blood_Ping, 5)
--[[Set up the Pulse]]
Rule_AddOneShot(Rule_Set_Counter, 1)
elseif Event_IsAnyRunning() == false and g_PulseStop == true then
--[[removing map and mini-map pings]]
Objective_PingRemove(Objective_Stop_Pulse.title_id, g_ping_Blood)
Util_ObjectiveComplete(Objective_Stop_Pulse.title_id)
Rule_Remove(Rule_Objective_Stop_Pulse)
end
end
function Rule_Stop_Blood_Ping()
Ping_Stop(g_ping_Blood_mini)
end
--[[Secondary Objective - Rescue prisoners]] function Rule_Objective_Rescue_Prisoners()
Objective_Rescue_Prisoners = {title_id = 2520200, short_desc_id = 2520201, help_tip_id = 2520200}
if Event_IsAnyRunning() == false and Objective_Exists(Objective_Rescue_Prisoners.title_id) == false then
Util_WXP_ObjectiveCreate(Objective_Rescue_Prisoners, false, g_Player1)
Objective_ShowScreen()
Flash_OtherButton("dlg_objectives", 0, false, true)
--[[adding map and mini-map pings]]
g_ping_Prisoners = Objective_PingMarker(Objective_Rescue_Prisoners.title_id, "mkr_Jailer", true, "default")
g_ping_Prisoners_mini = Ping_Marker("mkr_Jailer", true, "default")
Rule_AddOneShot(Rule_Stop_Prisoner_Ping, 5)
elseif Event_IsAnyRunning() == false and g_PrisonersStop == true then
--[[removing map and mini-map pings]]
Objective_PingRemove(Objective_Rescue_Prisoners.title_id, g_ping_Prisoners)
Util_ObjectiveComplete(Objective_Rescue_Prisoners.title_id)
Rule_Remove(Rule_Objective_Rescue_Prisoners)
end
end
function Rule_Stop_Prisoner_Ping()
Ping_Stop(g_ping_Prisoners_mini)
end
--[[ Gate of Chaos ]]
function Rule_Summon_Chaos_Reinforcements()
Anim_PlaySGroupAnim(SGroup_FromName("sg_Sorcerer1"), "doombolt")
Anim_PlaySGroupAnim(SGroup_FromName("sg_Sorcerer2"), "doombolt")
Rule_AddOneShot(Rule_Open_Gate, 4)
end
function Rule_Open_Gate()
Rule_AddIntervalDelay(Rule_Summon_Reinforcements, 1, 15)
end
function Rule_Reinforcement_Level()
if g_Increment <= 10 then
g_Reinforcements = g_Reinforcements +1
g_Increment = g_Increment +1
elseif g_Increment <= 20 then
g_Reinforcements = g_Reinforcements +1
g_Increment = g_Increment +1
elseif g_Increment <= 30 then
g_Reinforcements = g_Reinforcements +1
g_Increment = g_Increment +1
elseif g_Increment <= 40 then
g_Reinforcements = g_Reinforcements +1
g_Increment = g_Increment +1
elseif g_Increment <= 50 then
Rule_Remove(Rule_Reinforcement_Level)
end
end
function Rule_Summon_Reinforcements()
if g_Reinforcements == 1 then
t_Reinforce_Army = {
sgroup_name = { --[[1]]"sg_CM_Raid1", --[[2]]"sg_CM_Raid2", --[[3]]"sg_CM_Raid3", --[[4]]"sg_CM_Raid4", --[[5]]"sg_CM_Raid5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_marine_squad_stronghold_sp", --[[4]]"chaos_marine_squad_stronghold_sp",
--[[5]]"chaos_marine_squad_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_Chaos_Summoning", --[[2]]"mkr_Chaos_Summoning", --[[3]]"mkr_Chaos_Summoning", --[[4]]"mkr_Chaos_Summoning", --[[5]]"mkr_Chaos_Summoning"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 5, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
}
elseif g_Reinforcements == 2 then
t_Reinforce_Army = {
sgroup_name = { --[[1]]"sg_CM_Raid1", --[[2]]"sg_CM_Raid2", --[[3]]"sg_CM_Raid3", --[[4]]"sg_CM_Raid4", --[[5]]"sg_CM_Raid5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_squad_cultist", --[[3]]"chaos_marine_squad_stronghold_sp", --[[4]]"chaos_marine_squad_stronghold_sp",
--[[5]]"chaos_marine_squad_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_Chaos_Summoning", --[[2]]"mkr_Chaos_Summoning", --[[3]]"mkr_Chaos_Summoning", --[[4]]"mkr_Chaos_Summoning", --[[5]]"mkr_Chaos_Summoning"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 4, --[[2]] 4, --[[3]] 1, --[[4]] 2, --[[5]] 2},
}
elseif g_Reinforcements == 3 then
t_Reinforce_Army = {
sgroup_name = { --[[1]]"sg_CM_Raid1", --[[2]]"sg_CM_Raid2", --[[3]]"sg_CM_Raid3", --[[4]]"sg_CM_Raid4", --[[5]]"sg_CM_Raid5"},
blueprint = {--[[1]]"chaos_squad_cultist", --[[2]]"chaos_marine_squad_stronghold_sp", --[[3]]"chaos_marine_squad_stronghold_sp",
--[[4]]"chaos_marine_squad_stronghold_sp", --[[5]]"chaos_marine_squad_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_Chaos_Summoning", --[[2]]"mkr_Chaos_Summoning", --[[3]]"mkr_Chaos_Summoning", --[[4]]"mkr_Chaos_Summoning", --[[5]]"mkr_Chaos_Summoning"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 4, --[[2]] 1, --[[3]] 1, --[[4]] 2, --[[5]] 2},
}
elseif g_Reinforcements == 4 then
t_Reinforce_Army = {
sgroup_name = { --[[1]]"sg_CM_Raid1", --[[2]]"sg_CM_Raid2", --[[3]]"sg_CM_Raid3", --[[4]]"sg_CM_Raid4", --[[5]]"sg_CM_Raid5"},
blueprint = {--[[1]]"chaos_squad_horror", --[[2]]"chaos_squad_horror",
--[[3]]"chaos_marine_squad_stronghold_sp", --[[4]]"chaos_squad_possessed_marine_advance_sp", --[[5]]"chaos_marine_squad_stronghold_sp"},
marker_spawn = {--[[1]]"mkr_Chaos_Summoning", --[[2]]"mkr_Chaos_Summoning", --[[3]]"mkr_Chaos_Summoning", --[[4]]"mkr_Chaos_Summoning", --[[5]]"mkr_Chaos_Summoning"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 2, --[[5]] 2},
}
elseif g_Reinforcements == 5 then
t_Reinforce_Army = {
sgroup_name = { --[[1]]"sg_CM_Raid1", --[[2]]"sg_CM_Raid2", --[[3]]"sg_CM_Raid3", --[[4]]"sg_CM_Raid4", --[[5]]"sg_CM_Raid5"},
blueprint = {--[[1]]"chaos_squad_horror", --[[2]]"chaos_squad_khorne_berserker_stronghold_sp", --[[3]]"chaos_squad_horror", --[[4]]"chaos_marine_squad_stronghold_sp",
--[[5]]"chaos_squad_possessed_marine_advance_sp"},
marker_spawn = {--[[1]]"mkr_Chaos_Summoning", --[[2]]"mkr_Chaos_Summoning", --[[3]]"mkr_Chaos_Summoning", --[[4]]"mkr_Chaos_Summoning", --[[5]]"mkr_Chaos_Summoning"},
squad_num = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 1},
squad_size = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1, --[[5]] 2},
}
end
local i = g_Reinforce_Army_iter
if g_Reinforce_Army_iter <= table.getn(t_Reinforce_Army.sgroup_name) and (SGroup_Exists(t_Reinforce_Army.sgroup_name[i]) == false or SGroup_IsEmpty(t_Reinforce_Army.sgroup_name[i])) then
local sgroupID = Util_CreateSquadsAtMarkerEx(g_Player2, t_Reinforce_Army.sgroup_name[i], t_Reinforce_Army.blueprint[i], t_Reinforce_Army.marker_spawn[i], t_Reinforce_Army.squad_num[i], t_Reinforce_Army.squad_size[i])
World_FXEventSquad("data:Art/Events/Unit_Upgrade_Morale_FX/Reinforce_Trooper", SGroup_FromName(t_Reinforce_Army.sgroup_name[i]))
Cmd_SetStance(t_Reinforce_Army.sgroup_name[i], STANCE_Hold)
Cmd_AttackMoveMarker(t_Reinforce_Army.sgroup_name[i], "mkr_Player_HQ")
--prevent AI from using these units
Cpu_LockSGroupAcrossPlayers(t_Bastion_Army.sgroup_name[i])
--this will add a leader after Xmn of gameplay to the raiding parties
if g_Timer >= 20 then
Cmd_ReinforceLeader(t_Reinforce_Army.sgroup_name[i], 1)
end
elseif g_Reinforce_Army_iter > table.getn(t_Bastion_Army.sgroup_name) then
g_Reinforce_Army_iter = 0
--Rule_AddOneShot(Rule_Summon_Chaos_Reinforcements_Close, 5)
Rule_Remove(Rule_Summon_Reinforcements)
end
g_Reinforce_Army_iter = g_Reinforce_Army_iter+1
end
--[[Blood Pulse Scar]]
--this is the rule that sets up the pulse on the map. Each time the pulse hits any player units near one of the towers will die.
function Rule_Set_Counter()
--creating the counter g_Counter is set at 40 for the moment
UI_ShowCountDXP("BloodPulse", g_Player1, 2530000, g_Counter )
Rule_AddInterval(Rule_Pulse_Warning, 1)
Rule_AddInterval(Rule_Pulse_Halt, 1)
end
function Rule_Pulse_Warning()
--counting down from 30 to 0
g_Counter = g_Counter -1
UI_ShowCountUpdateDxp("BloodPulse", g_Counter, 2530000)
--once you hit 0 the pulse fires
if g_Counter == 10 then
--this will play the warning laugh
Anim_PlayEGroupAnim(EGroup_FromName("eg_Blood_Warning"), "audio_warning")
end
if g_Counter == 0 then
Rule_AddOneShot(Rule_Blood_Pulse_Effect, 0.5)
Rule_AddOneShot(Rule_Blood_Pulse, 1)
Rule_Remove(Rule_Pulse_Warning)
end
end
function Rule_Blood_Pulse_Effect()
for i = 1, 6 do
Util_MarkerFX("mkr_Pulse"..i, "data:Art/Events/Chaos/Blood_Pulse")
end
end
function Rule_Blood_Pulse() --units that should be ignored by the blood pulse t_Vehicle = Util_MakeBlueprintTable(--[[eldar]]"eldar_squad_farseer", "eldar_squad_farseer_advance_sp","eldar_squad_farseer_sp","eldar_squad_farseer_stronghold_sp", "eldar_squad_avatar","eldar_squad_falcon_grav_tank", "eldar_squad_falcon_grav_tank_advance_sp", "eldar_squad_fire_prism","eldar_squad_grav_platform", "eldar_squad_grav_platform_brightlance", "eldar_squad_grav_platform_brightlance_advance_sp","eldar_squad_vypers", "eldar_squad_vypers_advance_sp", "eldar_squad_wraithlord", "eldar_squad_wraithlord_advance_sp",
--[[IG]]"guard_squad_command_squad", "guard_squad_command_squad_advance_sp", "guard_squad_baneblade", "guard_squad_basilisk","guard_squad_basilisk_sp_mso2", "guard_squad_chimera","guard_squad_chimera_sp_test","guard_squad_hellhound", "guard_squad_hellhound_advance_sp", "guard_squad_lemanruss", "guard_squad_sentinel", "guard_squad_sentinel_advance_sp",
--[[ork]]"ork_squad_warboss", "ork_squad_warboss_advance_sp", "ork_squad_warboss_sp_md2", "ork_squad_warboss_stronghold_sp","ork_squad_killa_kan", "ork_squad_killa_kan_advance_sp", "ork_squad_looted_tank", "ork_squad_looted_tank_sp", "ork_squad_squiggoth", "ork_squad_squiggoth_sp_long_rampage","ork_squad_trukk", "ork_squad_trukk_advance_sp","ork_squad_wartrak", "ork_squad_wartrak_advance_sp",
--[[space marine]]"space_marine_squad_force_commander", "space_marine_squad_force_commander_advance_sp", "space_marine_squad_dreadnought", "space_marine_squad_dreadnought_advance_sp", "space_marine_squad_dreadnought_hellfire","space_marine_squad_dreadnought_hellfire_advance_sp", "space_marine_squad_land_raider", "space_marine_squad_land_speeder", "space_marine_squad_land_speeder_advance_sp","space_marine_squad_predator", "space_marine_squad_rhino", "space_marine_squad_skull_probe", "space_marine_squad_whirlwind",
--[[Tau]] "tau_devilfish_troop_carrier", "tau_drone_harbinger_squad", "tau_drone_harbinger_squad_advance_sp", "tau_drone_squad", "tau_ethereal_squad", "tau_ethereal_squad_stronghold_sp", "tau_hammerhead_gunship_squad", "tau_skyray_squad", "tau_skyray_squad_advance_sp", "tau_greater_knarloc_squad", "tau_broadside_battlesuit_squad", "tau_broadside_battlesuit_squad_clone_sp", "tau_commander_squad", "tau_commander_squad_advance_sp",
--[[Necron]]"necron_night_bringer", "necron_restored_monolith_squad", "necron_destroyer_squad", "necron_destroyer_squad_advance_sp", "necron_heavy_destroyer_squad", "necron_lord_destroyer_squad", "necron_lord_squad", "necron_lord_squad_advance_sp", "necron_tomb_spyder_squad", "necron_tomb_spyder_squad_advance_sp")
for i = 1, 6 do
if Player_AreSquadsNearMarker(g_Player1, "mkr_Pulse"..i) then
--clean up the group to make sure nothing odd happens
SGroup_Clear(SGroup_CreateIfNotFound("sg_Sacrifice"..i))
--get all the player's units near that specific pulse tower and place them in a specific group
Player_GetAllSquadsNearMarker(g_Player1, "sg_Sacrifice"..i, "mkr_Pulse"..i)
count = SGroup_Count(SGroup_FromName("sg_Sacrifice" ..i))
for j =1, count do
SGroup_Clear(SGroup_CreateIfNotFound("sg_Potentials"..j))
SGroup_Add(SGroup_FromName("sg_Potentials"..j), SGroup_GetSpawnedSquadAt("sg_Sacrifice"..i, j))
--check to see if the group does not contain any of the forbidden units.
if SGroup_ContainsBlueprints("sg_Potentials"..j, t_Vehicle, false) == false then
--give them to the sacrifice player
SGroup_SetPlayerOwner("sg_Potentials"..j, g_Player4)
--stop them from going anywhere
Cmd_StopSquads("sg_Potentials"..j)
--play a suitably gruesome animation
if MetaMap_GetPlayerRaceName() == "necron_race" then
World_FXEventSquad("data:Art/Events/Chaos/Blood_Pulse_Hit", SGroup_FromName("sg_Potentials"..j))
else
World_FXEventSquad("data:Art/Events/Chaos/Blood_Pulse_Hit", SGroup_FromName("sg_Potentials"..j))
end
--kill the units
SGroup_SelfDestroy("sg_Potentials"..j, true)
end
end
end
end
g_Counter = 41
Rule_AddInterval(Rule_Pulse_Warning, 1)
end
--[[Blood pulse nis]] --special rule for the intro nis which is seperate from the regular pulse. It is a one shot and doesn't re-add the loop nor trigger the timer. function Rule_Blood_Pulse_Nis() --vehicles that should be ignored by the blood pulse t_Vehicle = Util_MakeBlueprintTable(--[[eldar]]"eldar_squad_farseer", "eldar_squad_farseer_advance_sp","eldar_squad_farseer_sp","eldar_squad_farseer_stronghold_sp", "eldar_squad_avatar","eldar_squad_falcon_grav_tank", "eldar_squad_falcon_grav_tank_advance_sp", "eldar_squad_fire_prism","eldar_squad_grav_platform", "eldar_squad_grav_platform_brightlance", "eldar_squad_grav_platform_brightlance_advance_sp","eldar_squad_vypers", "eldar_squad_vypers_advance_sp", "eldar_squad_wraithlord", "eldar_squad_wraithlord_advance_sp",
--[[IG]]"guard_squad_command_squad", "guard_squad_command_squad_advance_sp", "guard_squad_baneblade", "guard_squad_basilisk","guard_squad_basilisk_sp_mso2", "guard_squad_chimera","guard_squad_chimera_sp_test","guard_squad_hellhound", "guard_squad_hellhound_advance_sp", "guard_squad_lemanruss", "guard_squad_sentinel", "guard_squad_sentinel_advance_sp",
--[[ork]]"ork_squad_warboss", "ork_squad_warboss_advance_sp", "ork_squad_warboss_sp_md2", "ork_squad_warboss_stronghold_sp","ork_squad_killa_kan", "ork_squad_killa_kan_advance_sp", "ork_squad_looted_tank", "ork_squad_looted_tank_sp", "ork_squad_squiggoth", "ork_squad_squiggoth_sp_long_rampage","ork_squad_trukk", "ork_squad_trukk_advance_sp","ork_squad_wartrak", "ork_squad_wartrak_advance_sp",
--[[space marine]]"space_marine_squad_force_commander", "space_marine_squad_force_commander_advance_sp", "space_marine_squad_dreadnought", "space_marine_squad_dreadnought_advance_sp", "space_marine_squad_dreadnought_hellfire","space_marine_squad_dreadnought_hellfire_advance_sp", "space_marine_squad_land_raider", "space_marine_squad_land_speeder", "space_marine_squad_land_speeder_advance_sp","space_marine_squad_predator", "space_marine_squad_rhino", "space_marine_squad_skull_probe", "space_marine_squad_whirlwind",
--[[Tau]] "tau_devilfish_troop_carrier", "tau_drone_harbinger_squad", "tau_drone_harbinger_squad_advance_sp", "tau_drone_squad", "tau_ethereal_squad", "tau_ethereal_squad_stronghold_sp", "tau_hammerhead_gunship_squad", "tau_skyray_squad", "tau_skyray_squad_advance_sp", "tau_greater_knarloc_squad", "tau_broadside_battlesuit_squad", "tau_broadside_battlesuit_squad_clone_sp", "tau_commander_squad", "tau_commander_squad_advance_sp",
--[[Necron]]"necron_night_bringer", "necron_restored_monolith_squad", "necron_destroyer_squad", "necron_destroyer_squad_advance_sp", "necron_heavy_destroyer_squad", "necron_lord_destroyer_squad", "necron_lord_squad", "necron_lord_squad_advance_sp", "necron_tomb_spyder_squad", "necron_tomb_spyder_squad_advance_sp")
for i = 1, 6 do
-- Util_MarkerFX("mkr_Pulse"..i, "data:Art/Events/Chaos/Blood_Pulse")
if Player_AreSquadsNearMarker(g_Player1, "mkr_Pulse"..i) then
--clean up the group to make sure nothing odd happens
SGroup_Clear(SGroup_CreateIfNotFound("sg_Sacrifice"..i))
--get all the player's units near that specific pulse tower and place them in a specific group
Player_GetAllSquadsNearMarker(g_Player1, "sg_Sacrifice"..i, "mkr_Pulse"..i)
count = SGroup_Count(SGroup_FromName("sg_Sacrifice" ..i))
for j =1, count do
SGroup_Clear(SGroup_CreateIfNotFound("sg_Potentials"..j))
SGroup_Add(SGroup_FromName("sg_Potentials"..j), SGroup_GetSpawnedSquadAt("sg_Sacrifice"..i, j))
if SGroup_ContainsBlueprints("sg_Potentials"..j, t_Vehicle, false) == false then
--give them to the sacrifice player
SGroup_SetPlayerOwner("sg_Potentials"..j, g_Player4)
--stop them from going anywhere
Cmd_StopSquads("sg_Potentials"..j)
--play a suitably gruesome animation
-- Anim_PlaySGroupAnim(SGroup_FromName("sg_Potentials"..j), "syncdeath_2")
if MetaMap_GetPlayerRaceName() == "necron_race" then
World_FXEventSquad("data:Art/Events/Chaos/Blood_Pulse_Hit", SGroup_FromName("sg_Potentials"..j))
else
World_FXEventSquad("data:Art/Events/Chaos/Blood_Pulse_Hit", SGroup_FromName("sg_Potentials"..j))
end
SGroup_SelfDestroy("sg_Potentials"..j, true)
end
end
end
end
end
--[[Stopping the pulse ]]
--Capturing the blood pit strategic point stops the pulses
function Rule_Pulse_Halt()
if EGroup_IsCapturedByPlayer("eg_Blood_Point", g_Player1, false) then
Rule_Remove(Rule_Pulse_Warning)
Rule_Remove(Rule_Blood_Pulse)
--despawns the effect that's around the strat point.
EGroup_DeSpawn("eg_Chaos_Star")
UI_HideCount("BloodPulse")
--making the objective complete
g_PulseStop = true
Rule_Remove(Rule_Pulse_Halt)
end
end
--[[ Raids ]]
--the following raids are set up in two different ways; some have units being sent to attack the player in the traditional fashion. For others units are spawned and then given to the AI to play with.
--Forward Base 1 function Rule_FB1_Raid()
t_FB1_Raid_Army = {
squadname = {--[[1]]"sg_FB1_Raiders1", --[[2]]"sg_FB1_Raiders2", --[[3]]"sg_FB1_Raiders3", --[[4]]"sg_FB1_Raiders4"},
squadnum = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1},
squadsize = {--[[1]] 4, --[[2]] 5, --[[3]] 6, --[[4]] 7},
reinforceleader = {--[[1]] true, --[[2]] false, --[[3]]false, --[[4]]false},
}
if EGroup_Exists("eg_FB1") and EGroup_IsEmpty("eg_FB1") == false then
--FB1Inc can never be freater than the number of entries in the squadsize and squadnum tables.
if g_FB1_Increment <= 5 then
FB1Inc = 1
elseif g_FB1_Increment <= 10 then
FB1Inc = 2
elseif g_FB1_Increment <= 15 then
FB1Inc = 3
elseif g_FB1_Increment > 15 then
FB1Inc = 4
end
local i = g_FB1_Size
--checking how many squads in this group in order to prevent over population
if SGroup_CountSpawned(SGroup_CreateIfNotFound("sg_FB1_Raid")) <= 10 then
--there are two variables here "i" and "FB1Inc" they are linked to different systems. "i" incrememnts where in the spawning cycle we are for the number of squads and "FB1Inc" where we are in the difficulty cycle. The reason i am using "i' instead of a for loop
--is that I didn't want to have four squads spawning at once and looking unfair to the player.
Util_CreateSquadsAtMarkerEx(g_Player2, t_FB1_Raid_Army.squadname[i], "chaos_squad_cultist", "mkr_FB1_Building1_Spawn", t_FB1_Raid_Army.squadnum[FB1Inc], t_FB1_Raid_Army.squadsize[FB1Inc])
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_FB1_Raid"), SGroup_FromName( t_FB1_Raid_Army.squadname[i]))
if t_FB1_Raid_Army.reinforceleader[i] == true then
Cmd_ReinforceLeader(t_FB1_Raid_Army.squadname[i], 1)
end
--this will add a leader after Xmn of gameplay to the raiding parties
if g_Timer >= 20 then
t_FB1_Raid_Army.reinforceleader[i] = true
end
if g_FB1_Size < table.getn(t_FB1_Raid_Army.squadname) then
g_FB1_Size = g_FB1_Size + 1
elseif g_FB1_Size == table.getn(t_FB1_Raid_Army.squadname) then
g_FB1_Size = 1
Rule_Remove(Rule_FB1_Raid)
Rule_Add(Rule_FB1_Raid_Attack)
end
g_FB1_Increment = g_FB1_Increment +1
end
else
--if this raid is stopped begin the one further back
Rule_AddIntervalDelay(Rule_RB2_Cultist_Raid, 30, 320)
--check for player incursion to trigger some chatter near the relic
Rule_AddInterval(Rule_Relic_Talk, 5)
Rule_Remove(Rule_FB1_Raid)
end
end
--this is done in a seperate function than Rule_FB1_Raid in order to be able to to re-add Rule_FB1_Raid after a delay and not get an error about the rule still existing. function Rule_FB1_Raid_Attack()
--checks to see if the player has an HQ and if yes to go attack it
EGroup_Clear(EGroup_CreateIfNotFound("eg_Player1_Buildings"))
EGroup_AddGroup(EGroup_FromName("eg_Player1_Buildings"), Player_GetEntities(g_Player1))
local countbuilding = EGroup_CountSpawned(EGroup_FromName("eg_Player1_Buildings"))
for i = 1, countbuilding do
EGroup_Clear(EGroup_CreateIfNotFound("eg_Potential_HQ"))
EGroup_Add(EGroup_FromName("eg_Potential_HQ"), EGroup_GetSpawnedEntityAt("eg_Player1_Buildings", i))
if EGroup_ContainsBlueprints(EGroup_FromName("eg_Potential_HQ"), t_blueprinthq, true) then
pos_HQ = Entity_GetPosition( EGroup_GetSpawnedEntityAt("eg_Potential_HQ", 1))
Cmd_AttackMovePos("sg_FB1_Raid", pos_HQ)
--at this point we want to stop the for loop
break
end
end
--this is the table in the spawning rule Rule_FB1_Raid
for j = 1, table.getn(t_FB1_Raid_Army.squadname) do
--check to see if the squads are idle. if they are then it means the player has no HQ in which case they are given to the active AI player
if SGroup_IsEmpty(t_FB1_Raid_Army.squadname[j]) == false and
Squad_GetActiveCommand(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_FB1_Raid_Army.squadname[j]), 1)) == SQUADSTATEID_Idle then
Squad_SetPlayerOwner(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_FB1_Raid_Army.squadname[j]), 1), g_Player3)
end
end
--this is to prevent the squads from going back to their spawn point while en route to their attack
for d = 1, table.getn(t_FB1_Raid_Army.squadname) do
SGroup_Clear(SGroup_FromName(t_FB1_Raid_Army.squadname[d]))
end
Rule_Remove(Rule_FB1_Raid_Attack)
Rule_AddIntervalDelay(Rule_FB1_Raid, 30, 5)
end
--Forward Base 2 function Rule_FB2_Raid()
t_FB2_Raid_Army = {
squadname = {--[[1]]"sg_FB2_Raiders1", --[[2]]"sg_FB2_Raiders2", --[[3]]"sg_FB2_Raiders3", --[[4]]"sg_FB2_Raiders4"},
squadnum = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1},
squadsize = {--[[1]] 4, --[[2]] 5, --[[3]] 6, --[[4]] 7},
reinforceleader = {--[[1]] true, --[[2]] false, --[[3]]false, --[[4]]false},
}
if EGroup_Exists("eg_FB2_1") and EGroup_IsEmpty("eg_FB2_1") == false then
--FB2Inc can never be freater than the number of entries in the squadsize and squadnum tables.
if g_FB2_Increment <= 5 then
FB2Inc = 1
elseif g_FB2_Increment <= 10 then
FB2Inc = 2
elseif g_FB2_Increment <= 15 then
FB2Inc = 3
elseif g_FB2_Increment > 15 then
FB2Inc = 4
end
local i = g_FB2_Size
--checking how many squads in this group in order to prevent over population
if SGroup_CountSpawned(SGroup_CreateIfNotFound("sg_FB2_Raid")) <= 5 then
--there are two variables here "i" and "FB2Inc" they are linked to different systems. "i" incrememnts where in the spawning cycle we are for the number of squads and "FB2Inc" where we are in the difficulty cycle. The reason i am using "i' instead of a for loop
--is that I didn't want to have four squads spawning at once and looking unfair to the player.
Util_CreateSquadsAtMarkerEx(g_Player2, t_FB2_Raid_Army.squadname[i], "chaos_squad_cultist", "mkr_FB2_Building1_Spawn", t_FB2_Raid_Army.squadnum[FB2Inc], t_FB2_Raid_Army.squadsize[FB2Inc])
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_FB2_Raid"), SGroup_FromName( t_FB2_Raid_Army.squadname[i]))
if t_FB2_Raid_Army.reinforceleader[i] == true then
Cmd_ReinforceLeader(t_FB2_Raid_Army.squadname[i], 1)
end
--this will add a leader after Xmn of gameplay to the raiding parties
if g_Timer >= 20 then
t_FB2_Raid_Army.reinforceleader[i] = true
end
if g_FB2_Size < table.getn(t_FB2_Raid_Army.squadname) then
g_FB2_Size = g_FB2_Size + 1
elseif g_FB2_Size == table.getn(t_FB2_Raid_Army.squadname) then
g_FB2_Size = 1
Rule_Remove(Rule_FB2_Raid)
Rule_Add(Rule_FB2_Raid_Attack)
end
g_FB2_Increment = g_FB2_Increment +1
end
else
Rule_Remove(Rule_FB2_Raid)
end
end
--this is done in a seperate function than Rule_FB2_Raid in order to be able to to re-add Rule_FB2_Raid after a delay and not get an error about the rule still existing. function Rule_FB2_Raid_Attack()
--checks to see if the player has an HQ and if yes to go attack it
EGroup_Clear(EGroup_CreateIfNotFound("eg_Player1_Buildings"))
EGroup_AddGroup(EGroup_FromName("eg_Player1_Buildings"), Player_GetEntities(g_Player1))
local countbuilding = EGroup_CountSpawned(EGroup_FromName("eg_Player1_Buildings"))
for i = 1, countbuilding do
EGroup_Clear(EGroup_CreateIfNotFound("eg_Potential_HQ"))
EGroup_Add(EGroup_FromName("eg_Potential_HQ"), EGroup_GetSpawnedEntityAt("eg_Player1_Buildings", i))
if EGroup_ContainsBlueprints(EGroup_FromName("eg_Potential_HQ"), t_blueprinthq, true) then
pos_HQ = Entity_GetPosition( EGroup_GetSpawnedEntityAt("eg_Potential_HQ", 1))
Cmd_AttackMovePos("sg_FB2_Raid", pos_HQ)
--at this point we want to stop the for loop
break
end
end
--this is the table in the spawning rule Rule_FB2_Raid
for j = 1, table.getn(t_FB2_Raid_Army.squadname) do
--check to see if the squads are idle. if they are then it means the player has no HQ in which case they are given to the active AI player
if SGroup_IsEmpty(t_FB2_Raid_Army.squadname[j]) == false and
Squad_GetActiveCommand(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_FB2_Raid_Army.squadname[j]), 1)) == SQUADSTATEID_Idle then
Squad_SetPlayerOwner(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_FB2_Raid_Army.squadname[j]), 1), g_Player3)
end
end
--this is to prevent the squads from going back to their spawn point while en route to their attack
for d = 1, table.getn(t_FB2_Raid_Army.squadname) do
SGroup_Clear(SGroup_FromName(t_FB2_Raid_Army.squadname[d]))
end
Rule_Remove(Rule_FB2_Raid_Attack)
Rule_AddIntervalDelay(Rule_FB2_Raid, 30, 5)
end
function Rule_Tier3_Raid()
if Player_AreSquadsNearMarker(g_Player1, "mkr_RB2_Trigger") then
g_RB2_Marine_AI = true
Rule_AddIntervalDelay(Rule_RB2_Beserker1_Raid, 300, 800)
Rule_AddIntervalDelay(Rule_RB2_Raptor1_Raid, 200, 250)
Rule_Remove(Rule_Tier3_Raid)
end
end
--Rear Base 1 Chaos marines function Rule_RB_Marines_Raid()
t_RB_Marine_Raid_Army = {
squadname = {--[[1]]"sg_RB_Marine_Raiders1", --[[2]]"sg_RB_Marine_Raiders2"},
squadnum = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1},
squadsize = {--[[1]] 2, --[[2]] 2, --[[3]] 3, --[[4]] 3},
}
if EGroup_Exists("eg_RB2") and EGroup_IsEmpty("eg_RB2") == false and Player_GetCurrentSquadCap(g_Player3, CT_SquadCap) <= g_MarineMaxCap then
--RB1Inc can never be freater than the number of entries in the squadsize and squadnum tables.
if g_RB_Marine_Increment <= 5 then
RB1Inc = 1
elseif g_RB_Marine_Increment <= 10 then
RB1Inc = 2
elseif g_RB_Marine_Increment <= 15 then
RB1Inc = 3
elseif g_RB_Marine_Increment > 15 then
RB1Inc = 4
end
local i = g_RB_Marine_Size
--there are two variables here "i" and "RB1Inc" they are linked to different systems. "i" incrememnts where in the spawning cycle we are for the number of squads and "RB1Inc" where we are in the difficulty cycle. The reason i am using "i' instead of a for loop
--is that I didn't want to have four squads spawning at once and looking unfair to the player.
--checking how many squads in this group in order to prevent over population
if SGroup_CountSpawned(SGroup_CreateIfNotFound("sg_RB_Marines_Raid")) <= 2 then
Util_CreateSquadsAtMarkerEx(g_Player2, t_RB_Marine_Raid_Army.squadname[i], "chaos_marine_squad_stronghold_sp", "mkr_RB_Building2_Spawn", t_RB_Marine_Raid_Army.squadnum[RB1Inc],
t_RB_Marine_Raid_Army.squadsize[RB1Inc])
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_RB_Marines_Raid"), SGroup_FromName( t_RB_Marine_Raid_Army.squadname[i]))
--this will add a leader after Xmn of gameplay to the raiding parties
if g_Timer >= 30 then
Cmd_ReinforceLeader(t_RB_Marine_Raid_Army.squadname[i], 1)
end
if g_RB_Marine_Size < table.getn(t_RB_Marine_Raid_Army.squadname) then
g_RB_Marine_Size = g_RB_Marine_Size + 1
elseif g_RB_Marine_Size == table.getn(t_RB_Marine_Raid_Army.squadname) then
g_RB_Marine_Size = 1
Rule_Remove(Rule_RB_Marines_Raid)
Rule_Add(Rule_RB_Marines_Attack)
end
g_RB_Marine_Increment = g_RB_Marine_Increment +1
end
elseif EGroup_Exists("eg_RB2") and EGroup_IsEmpty("eg_RB2") == false and Player_GetCurrentSquadCap(g_Player3, CT_SquadCap) > g_MarineMaxCap then
else
Rule_Remove(Rule_RB_Marines_Raid)
end
end
--this is done in a seperate function than Rule_RB_Marines_Raid in order to be able to to re-add Rule_RB_Marines_Raid after a delay and not get an error about the rule still existing. function Rule_RB_Marines_Attack()
--checks to see if the player has an HQ and if yes to go attack it
EGroup_Clear(EGroup_CreateIfNotFound("eg_Player1_Buildings"))
EGroup_AddGroup(EGroup_FromName("eg_Player1_Buildings"), Player_GetEntities(g_Player1))
local countbuilding = EGroup_CountSpawned(EGroup_FromName("eg_Player1_Buildings"))
for i = 1, countbuilding do
EGroup_Clear(EGroup_CreateIfNotFound("eg_Potential_HQ"))
EGroup_Add(EGroup_FromName("eg_Potential_HQ"), EGroup_GetSpawnedEntityAt("eg_Player1_Buildings", i))
if EGroup_ContainsBlueprints(EGroup_FromName("eg_Potential_HQ"), t_blueprinthq, true) then
pos_HQ = Entity_GetPosition( EGroup_GetSpawnedEntityAt("eg_Potential_HQ", 1))
Cmd_AttackMovePos("sg_RB_Marines_Raid", pos_HQ)
--at this point we want to stop the for loop
break
end
end
--this is the table in the spawning rule Rule_RB_Marines_Raid
for j = 1, table.getn(t_RB_Marine_Raid_Army.squadname) do
--check to see if the squads are idle. if they are then it means the player has no HQ in which case they are given to the active AI player
if SGroup_IsEmpty(t_RB_Marine_Raid_Army.squadname[j]) == false and
Squad_GetActiveCommand(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_RB_Marine_Raid_Army.squadname[j]), 1)) == SQUADSTATEID_Idle then
Squad_SetPlayerOwner(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_RB_Marine_Raid_Army.squadname[j]), 1), g_Player3)
end
end
--this is to prevent the squads from going back to their spawn point while en route to their attack
for d = 1, table.getn(t_RB_Marine_Raid_Army.squadname) do
SGroup_Clear(SGroup_FromName(t_RB_Marine_Raid_Army.squadname[d]))
end
Rule_Remove(Rule_RB_Marines_Attack)
Rule_AddIntervalDelay(Rule_RB_Marines_Raid, 150, 5)
end
--Rear Base 1 defiler function Rule_RB_Defiler_Raid()
t_RB_Defiler_Raid_Army = {
squadname = {--[[1]]"sg_RB_Defiler_Raiders1"},
squadnum = {--[[1]] 1, --[[2]] 1, --[[3]] 2, --[[4]] 2},
squadsize = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1},
}
if EGroup_Exists("eg_RB12") and EGroup_IsEmpty("eg_RB12") == false then
--RB2Inc can never be freater than the number of entries in the squadsize and squadnum tables.
if g_RB_Defiler_Increment <= 5 then
RB2Inc = 1
elseif g_RB_Defiler_Increment <= 10 then
RB2Inc = 2
elseif g_RB_Defiler_Increment <= 15 then
RB2Inc = 3
elseif g_RB_Defiler_Increment > 15 then
RB2Inc = 4
end
local i = g_RB_Defiler_Size
--there are two variables here "i" and "RB2Inc" they are linked to different systems. "i" incrememnts where in the spawning cycle we are for the number of squads and "RB2Inc" where we are in the difficulty cycle. The reason i am using "i' instead of a for loop
--is that I didn't want to have four squads spawning at once and looking unfair to the player.
Util_CreateSquadsAtMarkerEx(g_Player2, t_RB_Defiler_Raid_Army.squadname[i], "chaos_squad_defiler", "mkr_RB_Building12_Spawn", t_RB_Defiler_Raid_Army.squadnum[RB2Inc],
t_RB_Defiler_Raid_Army.squadsize[RB2Inc])
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_RB_Defiler_Raid"), SGroup_FromName( t_RB_Defiler_Raid_Army.squadname[i]))
if g_RB_Defiler_Size < table.getn(t_RB_Defiler_Raid_Army.squadname) then
g_RB_Defiler_Size = g_RB_Defiler_Size + 1
elseif g_RB_Defiler_Size == table.getn(t_RB_Defiler_Raid_Army.squadname) then
g_RB_Defiler_Size = 1
Rule_Remove(Rule_RB_Defiler_Raid)
Rule_Add(Rule_RB_Defiler_Attack)
end
g_RB_Defiler_Increment = g_RB_Defiler_Increment +1
else
Rule_Remove(Rule_RB_Defiler_Raid)
end
end
--this is done in a seperate function than Rule_RB_Defiler_Raid in order to be able to to re-add Rule_RB_Defiler_Raid after a delay and not get an error about the rule still existing. function Rule_RB_Defiler_Attack()
--checks to see if the player has an HQ and if yes to go attack it
EGroup_Clear(EGroup_CreateIfNotFound("eg_Player1_Buildings"))
EGroup_AddGroup(EGroup_FromName("eg_Player1_Buildings"), Player_GetEntities(g_Player1))
local countbuilding = EGroup_CountSpawned(EGroup_FromName("eg_Player1_Buildings"))
for i = 1, countbuilding do
EGroup_Clear(EGroup_CreateIfNotFound("eg_Potential_HQ"))
EGroup_Add(EGroup_FromName("eg_Potential_HQ"), EGroup_GetSpawnedEntityAt("eg_Player1_Buildings", i))
if EGroup_ContainsBlueprints(EGroup_FromName("eg_Potential_HQ"), t_blueprinthq, true) then
pos_HQ = Entity_GetPosition( EGroup_GetSpawnedEntityAt("eg_Potential_HQ", 1))
Cmd_AttackMovePos("sg_RB_Defiler_Raid", pos_HQ)
--at this point we want to stop the for loop
break
end
end
--[[ --this is the table in the spawning rule Rule_RB_Defiler_Raid for j = 1, table.getn(t_RB_Defiler_Raid_Army.squadname) do --check to see if the squads are idle. if they are then it means the player has no HQ in which case they are given to the active AI player if Squad_GetActiveCommand(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_RB_Defiler_Raid_Army.squadname[j]), 1)) == SQUADSTATEID_Idle then
Squad_SetPlayerOwner(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_RB_Defiler_Raid_Army.squadname[j]), 1), g_Player3)
end
end]]
--this is to prevent the squads from going back to their spawn point while en route to their attack
for d = 1, table.getn(t_RB_Defiler_Raid_Army.squadname) do
SGroup_Clear(SGroup_FromName(t_RB_Defiler_Raid_Army.squadname[d]))
end
Rule_Remove(Rule_RB_Defiler_Attack)
Rule_AddIntervalDelay(Rule_RB_Defiler_Raid, 300, 5)
end
--Rear Base 2 Beserkers 1 function Rule_RB2_Beserker1_Raid()
t_RB2_Beserker1_Raid_Army = {
squadname = {--[[1]]"sg_RB2_Beserker_Raid1", --[[2]]"sg_RB2_Beserker_Raid2", --[[3]]"sg_RB2_Beserker_Raid3"},
squadnum = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 2},
squadsize = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1},
}
if EGroup_Exists("eg_RB2_1") and EGroup_IsEmpty("eg_RB2_1") == false and Player_GetCurrentSquadCap(g_Player3, CT_SquadCap) <= g_KhorneMaxCap then
--RB4Inc can never be freater than the number of entries in the squadsize and squadnum tables.
if g_RB2_Beserker1_Increment <= 5 then
RB4Inc = 1
elseif g_RB2_Beserker1_Increment <= 10 then
RB4Inc = 2
elseif g_RB2_Beserker1_Increment <= 15 then
RB4Inc = 3
elseif g_RB2_Beserker1_Increment > 15 then
RB4Inc = 4
end
local i = g_RB2_Beserker1_Size
--there are two variables here "i" and "RB3Inc" they are linked to different systems. "i" incrememnts where in the spawning cycle we are for the number of squads and "RB3Inc" where we are in the difficulty cycle. The reason i am using "i' instead of a for loop
--is that I didn't want to have four squads spawning at once and looking unfair to the player.
--checking how many squads in this group in order to prevent over population
if SGroup_CountSpawned(SGroup_CreateIfNotFound("sg_RB2_Beserker1_Raid")) <= 3 then
Util_CreateSquadsAtMarkerEx(g_Player2, t_RB2_Beserker1_Raid_Army.squadname[i], "chaos_squad_khorne_berserker_stronghold_sp", "mkr_RB2_Building1_Spawn", t_RB2_Beserker1_Raid_Army.squadnum[RB4Inc],
t_RB2_Beserker1_Raid_Army.squadsize[RB4Inc])
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_RB2_Beserker1_Raid"), SGroup_FromName( t_RB2_Beserker1_Raid_Army.squadname[i]))
if g_RB2_Beserker1_Size < table.getn(t_RB2_Beserker1_Raid_Army.squadname) then
g_RB2_Beserker1_Size = g_RB2_Beserker1_Size + 1
elseif g_RB2_Beserker1_Size == table.getn(t_RB2_Beserker1_Raid_Army.squadname) then
g_RB2_Beserker1_Size = 1
Rule_Remove(Rule_RB2_Beserker1_Raid)
Rule_Add(Rule_RB2_Beserker1_Attack)
end
g_RB2_Beserker1_Increment = g_RB2_Beserker1_Increment +1
end
elseif EGroup_Exists("eg_RB2_1") and EGroup_IsEmpty("eg_RB2_1") == false and Player_GetCurrentSquadCap(g_Player3, CT_SquadCap) > g_KhorneMaxCap then
else
Rule_Remove(Rule_RB2_Beserker1_Raid)
end
end
--this is done in a seperate function than Rule_RB2_Beserker1_Raid in order to be able to to re-add Rule_RB2_Beserker1_Raid after a delay and not get an error about the rule still existing. function Rule_RB2_Beserker1_Attack()
--checks to see if the player has an HQ and if yes to go attack it
EGroup_Clear(EGroup_CreateIfNotFound("eg_Player1_Buildings"))
EGroup_AddGroup(EGroup_FromName("eg_Player1_Buildings"), Player_GetEntities(g_Player1))
local countbuilding = EGroup_CountSpawned(EGroup_FromName("eg_Player1_Buildings"))
for i = 1, countbuilding do
EGroup_Clear(EGroup_CreateIfNotFound("eg_Potential_HQ"))
EGroup_Add(EGroup_FromName("eg_Potential_HQ"), EGroup_GetSpawnedEntityAt("eg_Player1_Buildings", i))
if EGroup_ContainsBlueprints(EGroup_FromName("eg_Potential_HQ"), t_blueprinthq, true) then
pos_HQ = Entity_GetPosition( EGroup_GetSpawnedEntityAt("eg_Potential_HQ", 1))
Cmd_AttackMovePos("sg_RB2_Beserker1_Raid", pos_HQ)
--at this point we want to stop the for loop
break
end
end
--[[ --this is the table in the spawning rule Rule_RB2_Beserker1_Raid for j = 1, table.getn(t_RB2_Beserker1_Raid_Army.squadname) do --check to see if the squads are idle. if they are then it means the player has no HQ in which case they are given to the active AI player if Squad_GetActiveCommand(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_RB2_Beserker1_Raid_Army.squadname[j]), 1)) == SQUADSTATEID_Idle then
Squad_SetPlayerOwner(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_RB2_Beserker1_Raid_Army.squadname[j]), 1), g_Player3)
end
end]]
--this is to prevent the squads from going back to their spawn point while en route to their attack
for d = 1, table.getn(t_RB2_Beserker1_Raid_Army.squadname) do
SGroup_Clear(SGroup_FromName(t_RB2_Beserker1_Raid_Army.squadname[d]))
end
Rule_Remove(Rule_RB2_Beserker1_Attack)
Rule_AddIntervalDelay(Rule_RB2_Beserker1_Raid, 300, 90)
end
--Rear Base 2 Marine 1 function Rule_RB2_Marine1_Raid()
t_RB2_Marine1_Raid_Army = {
squadname = {--[[1]]"sg_RB2_Marine_Raid1", --[[2]]"sg_RB2_Marine_Raid2", --[[3]]"sg_RB2_Marine_Raid3"},
squadnum = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1},
squadsize = {--[[1]] 2, --[[2]] 2, --[[3]] 2, --[[4]] 2},
}
if EGroup_Exists("eg_RB2_1") and EGroup_IsEmpty("eg_RB2_1") == false and Player_GetCurrentSquadCap(g_Player3, CT_SquadCap) <= g_MarineMaxCap then
--RB5Inc can never be freater than the number of entries in the squadsize and squadnum tables.
if g_RB2_Marine1_Increment <= 5 then
RB5Inc = 1
elseif g_RB2_Marine1_Increment <= 10 then
RB5Inc = 2
elseif g_RB2_Marine1_Increment <= 15 then
RB5Inc = 3
elseif g_RB2_Marine1_Increment > 15 then
RB5Inc = 4
end
local i = g_RB2_Marine1_Size
--there are two variables here "i" and "RB5Inc" they are linked to different systems. "i" incrememnts where in the spawning cycle we are for the number of squads and "RB5Inc" where we are in the difficulty cycle. The reason i am using "i' instead of a for loop
--is that I didn't want to have four squads spawning at once and looking unfair to the player.
--checking how many squads in this group in order to prevent over population
if SGroup_CountSpawned(SGroup_CreateIfNotFound("sg_RB2_Marine1_Raid")) <= 3 then
Util_CreateSquadsAtMarkerEx(g_Player2, t_RB2_Marine1_Raid_Army.squadname[i], "chaos_marine_squad_stronghold_sp", "mkr_RB2_Building1_Spawn", t_RB2_Marine1_Raid_Army.squadnum[RB5Inc],
t_RB2_Marine1_Raid_Army.squadsize[RB5Inc])
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_RB2_Marine1_Raid"), SGroup_FromName( t_RB2_Marine1_Raid_Army.squadname[i]))
--this will add a leader after Xmn of gameplay to the raiding parties
if g_Timer >= 30 then
Cmd_ReinforceLeader(t_RB2_Marine1_Raid_Army.squadname[i], 1)
end
if g_RB2_Marine1_Size < table.getn(t_RB2_Marine1_Raid_Army.squadname) then
g_RB2_Marine1_Size = g_RB2_Marine1_Size + 1
elseif g_RB2_Marine1_Size == table.getn(t_RB2_Marine1_Raid_Army.squadname) then
g_RB2_Marine1_Size = 1
Rule_Remove(Rule_RB2_Marine1_Raid)
Rule_Add(Rule_RB2_Marine1_Attack)
end
g_RB2_Marine1_Increment = g_RB2_Marine1_Increment +1
end
elseif EGroup_Exists("eg_RB2_1") and EGroup_IsEmpty("eg_RB2_1") == false and Player_GetCurrentSquadCap(g_Player3, CT_SquadCap) > g_MarineMaxCap then
else
Rule_Remove(Rule_RB2_Marine1_Raid)
end
end
--this is done in a seperate function than Rule_RB2_Marine1_Raid in order to be able to to re-add Rule_RB2_Marine1_Raid after a delay and not get an error about the rule still existing. function Rule_RB2_Marine1_Attack()
--checks to see if the player has an HQ and if yes to go attack it
EGroup_Clear(EGroup_CreateIfNotFound("eg_Player1_Buildings"))
EGroup_AddGroup(EGroup_FromName("eg_Player1_Buildings"), Player_GetEntities(g_Player1))
local countbuilding = EGroup_CountSpawned(EGroup_FromName("eg_Player1_Buildings"))
for i = 1, countbuilding do
EGroup_Clear(EGroup_CreateIfNotFound("eg_Potential_HQ"))
EGroup_Add(EGroup_FromName("eg_Potential_HQ"), EGroup_GetSpawnedEntityAt("eg_Player1_Buildings", i))
if EGroup_ContainsBlueprints(EGroup_FromName("eg_Potential_HQ"), t_blueprinthq, true) then
pos_HQ = Entity_GetPosition( EGroup_GetSpawnedEntityAt("eg_Potential_HQ", 1))
Cmd_AttackMovePos("sg_RB2_Marine1_Raid", pos_HQ)
--at this point we want to stop the for loop
break
end
end
--this is the table in the spawning rule Rule_RB2_Marine1_Raid
for j = 1, table.getn(t_RB2_Marine1_Raid_Army.squadname) do
--check to see if the squads are idle. if they are then it means the player has no HQ in which case they are given to the active AI player
if SGroup_IsEmpty(t_RB2_Marine1_Raid_Army.squadname[j]) == false and g_RB2_Marine_AI == true then
Squad_SetPlayerOwner(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_RB2_Marine1_Raid_Army.squadname[j]), 1), g_Player3)
end
end
--this is to prevent the squads from going back to their spawn point while en route to their attack
for d = 1, table.getn(t_RB2_Marine1_Raid_Army.squadname) do
SGroup_Clear(SGroup_FromName(t_RB2_Marine1_Raid_Army.squadname[d]))
end
Rule_Remove(Rule_RB2_Marine1_Attack)
Rule_AddIntervalDelay(Rule_RB2_Marine1_Raid, 150, 60)
end
--Rear Base 2 Raptors 1 These units are given to the AI to do as it pleases with. function Rule_RB2_Raptor1_Raid()
t_RB2_Raptor1_Raid_Army = {
squadname = {--[[1]]"sg_RB2_Raptor_Raid1", --[[2]]"sg_RB2_Raptor_Raid2", --[[3]]"sg_RB2_Raptor_Raid3"},
squadnum = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1},
squadsize = {--[[1]] 2, --[[2]] 2, --[[3]] 3, --[[4]] 4},
}
if EGroup_Exists("eg_RB2_2") and EGroup_IsEmpty("eg_RB2_2") == false and Player_GetCurrentSquadCap(g_Player3, CT_SquadCap) <= g_RaptorMaxCap then
--RB6Inc can never be freater than the number of entries in the squadsize and squadnum tables.
if g_RB2_Raptor1_Increment <= 5 then
RB6Inc = 1
elseif g_RB2_Raptor1_Increment <= 10 then
RB6Inc = 2
elseif g_RB2_Raptor1_Increment <= 15 then
RB6Inc = 3
elseif g_RB2_Raptor1_Increment > 15 then
RB6Inc = 4
end
local i = g_RB2_Raptor1_Size
--there are two variables here "i" and "RB3Inc" they are linked to different systems. "i" incrememnts where in the spawning cycle we are for the number of squads and "RB3Inc" where we are in the difficulty cycle. The reason i am using "i' instead of a for loop
--is that I didn't want to have four squads spawning at once and looking unfair to the player.
--checking how many squads in this group in order to prevent over population
if SGroup_CountSpawned(SGroup_CreateIfNotFound("sg_RB2_Raptor1_Raid")) <= 3 then
Util_CreateSquadsAtMarkerEx(g_Player2, t_RB2_Raptor1_Raid_Army.squadname[i], "chaos_squad_raptor_stronghold_sp", "mkr_RB2_Building2_Spawn", t_RB2_Raptor1_Raid_Army.squadnum[RB6Inc],
t_RB2_Raptor1_Raid_Army.squadsize[RB6Inc])
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_RB2_Raptor1_Raid"), SGroup_FromName( t_RB2_Raptor1_Raid_Army.squadname[i]))
--this will add a leader after Xmn of gameplay to the raiding parties
if g_Timer >= 30 then
Cmd_ReinforceLeader(t_RB2_Raptor1_Raid_Army.squadname[i], 1)
end
if g_RB2_Raptor1_Size < table.getn(t_RB2_Raptor1_Raid_Army.squadname) then
g_RB2_Raptor1_Size = g_RB2_Raptor1_Size + 1
elseif g_RB2_Raptor1_Size == table.getn(t_RB2_Raptor1_Raid_Army.squadname) then
g_RB2_Raptor1_Size = 1
Rule_Remove(Rule_RB2_Raptor1_Raid)
Rule_Add(Rule_RB2_Raptor1_Attack)
end
g_RB2_Raptor1_Increment = g_RB2_Raptor1_Increment +1
end
elseif EGroup_Exists("eg_RB2_2") and EGroup_IsEmpty("eg_RB2_2") == false and Player_GetCurrentSquadCap(g_Player3, CT_SquadCap) > g_RaptorMaxCap then
else
Rule_Remove(Rule_RB2_Raptor1_Raid)
end
end
--this is done in a seperate function than Rule_RB2_Raptor1_Raid in order to be able to to re-add Rule_RB2_Raptor1_Raid after a delay and not get an error about the rule still existing. function Rule_RB2_Raptor1_Attack()
--this is the table in the spawning rule Rule_RB2_Raptor1_Raid
for i = 1, table.getn(t_RB2_Raptor1_Raid_Army.squadname) do
if SGroup_Exists(t_RB2_Raptor1_Raid_Army.squadname[i]) and SGroup_IsEmpty(t_RB2_Raptor1_Raid_Army.squadname[i]) == false then
Squad_SetPlayerOwner(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_RB2_Raptor1_Raid_Army.squadname[i]), 1), g_Player3)
SGroup_Clear(SGroup_FromName(t_RB2_Raptor1_Raid_Army.squadname[i]))
end
end
Rule_Remove(Rule_RB2_Raptor1_Attack)
Rule_AddIntervalDelay(Rule_RB2_Raptor1_Raid, 200, 60)
end
--Rear Base2 cultists function Rule_RB2_Cultist_Raid()
t_RB2_Cultist_Raid_Army = {
squadname = {--[[1]]"sg_RB2_Cultist_Raiders1", --[[2]]"sg_RB2_Cultist_Raiders2", --[[3]]"sg_RB2_Cultist_Raiders3", --[[4]]"sg_RB2_Cultist_Raiders4"},
squadnum = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1},
squadsize = {--[[1]] 4, --[[2]] 5, --[[3]] 6, --[[4]] 7},
reinforceleader = {--[[1]] true, --[[2]] false, --[[3]]false, --[[4]]false},
}
if EGroup_Exists("eg_RB2_10") and EGroup_IsEmpty("eg_RB2_10") == false then
--FB1Inc can never be freater than the number of entries in the squadsize and squadnum tables.
if g_RB2_Cultist_Increment <= 5 then
RB7Inc = 1
elseif g_RB2_Cultist_Increment <= 10 then
RB7Inc = 2
elseif g_RB2_Cultist_Increment <= 15 then
RB7Inc = 3
elseif g_RB2_Cultist_Increment > 15 then
RB7Inc = 4
end
local i = g_RB2_Cultist_Size
--there are two variables here "i" and "FB1Inc" they are linked to different systems. "i" incrememnts where in the spawning cycle we are for the number of squads and "FB1Inc" where we are in the difficulty cycle. The reason i am using "i' instead of a for loop
--is that I didn't want to have four squads spawning at once and looking unfair to the player.
--checking how many squads in this group in order to prevent over population
if SGroup_CountSpawned(SGroup_CreateIfNotFound("sg_RB2_Cultist_Raid")) <= 5 then
Util_CreateSquadsAtMarkerEx(g_Player2, t_RB2_Cultist_Raid_Army.squadname[i], "chaos_squad_cultist", "mkr_RB2_Building10_Spawn", t_RB2_Cultist_Raid_Army.squadnum[RB7Inc], t_RB2_Cultist_Raid_Army.squadsize[RB7Inc])
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_RB2_Cultist_Raid"), SGroup_FromName( t_RB2_Cultist_Raid_Army.squadname[i]))
if t_RB2_Cultist_Raid_Army.reinforceleader[i] == true then
Cmd_ReinforceLeader(t_RB2_Cultist_Raid_Army.squadname[i], 1)
end
--this will add a leader after Xmn of gameplay to the raiding parties
if g_Timer >= 20 then
t_RB2_Cultist_Raid_Army.reinforceleader[i] = true
end
if g_RB2_Cultist_Size < table.getn(t_RB2_Cultist_Raid_Army.squadname) then
g_RB2_Cultist_Size = g_RB2_Cultist_Size + 1
elseif g_RB2_Cultist_Size == table.getn(t_RB2_Cultist_Raid_Army.squadname) then
g_RB2_Cultist_Size = 1
Rule_Remove(Rule_RB2_Cultist_Raid)
Rule_Add(Rule_RB2_Cultist_Raid_Attack)
end
g_RB2_Cultist_Increment = g_RB2_Cultist_Increment +1
end
else
Rule_Remove(Rule_RB2_Cultist_Raid)
end
end
--this is done in a seperate function than Rule_FB1_Raid in order to be able to to re-add Rule_FB1_Raid after a delay and not get an error about the rule still existing. function Rule_RB2_Cultist_Raid_Attack()
--checks to see if the player has an HQ and if yes to go attack it
EGroup_Clear(EGroup_CreateIfNotFound("eg_Player1_Buildings"))
EGroup_AddGroup(EGroup_FromName("eg_Player1_Buildings"), Player_GetEntities(g_Player1))
local countbuilding = EGroup_CountSpawned(EGroup_FromName("eg_Player1_Buildings"))
for i = 1, countbuilding do
EGroup_Clear(EGroup_CreateIfNotFound("eg_Potential_HQ"))
EGroup_Add(EGroup_FromName("eg_Potential_HQ"), EGroup_GetSpawnedEntityAt("eg_Player1_Buildings", i))
if EGroup_ContainsBlueprints(EGroup_FromName("eg_Potential_HQ"), t_blueprinthq, true) then
pos_HQ = Entity_GetPosition( EGroup_GetSpawnedEntityAt("eg_Potential_HQ", 1))
Cmd_AttackMovePos("sg_RB2_Cultist_Raid", pos_HQ)
--at this point we want to stop the for loop
break
end
end
--this is the table in the spawning rule Rule_FB1_Raid
for j = 1, table.getn(t_RB2_Cultist_Raid_Army.squadname) do
--check to see if the squads are idle. if they are then it means the player has no HQ in which case they are given to the active AI player
if SGroup_IsEmpty(t_RB2_Cultist_Raid_Army.squadname[j]) == false and
Squad_GetActiveCommand(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_RB2_Cultist_Raid_Army.squadname[j]), 1)) == SQUADSTATEID_Idle then
Squad_SetPlayerOwner(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_RB2_Cultist_Raid_Army.squadname[j]), 1), g_Player3)
end
end
--this is to prevent the squads from going back to their spawn point while en route to their attack
for d = 1, table.getn(t_RB2_Cultist_Raid_Army.squadname) do
SGroup_Clear(SGroup_FromName(t_RB2_Cultist_Raid_Army.squadname[d]))
end
Rule_Remove(Rule_RB2_Cultist_Raid_Attack)
Rule_AddIntervalDelay(Rule_RB2_Cultist_Raid, 30, 5)
end
--Bastion Marine 1 function Rule_Bastion_Marine1_Raid()
t_Bastion_Marine1_Raid_Army = {
squadname = {--[[1]]"sg_Bastion_Marine_Raid1", --[[2]]"sg_Bastion_Marine_Raid2", --[[3]]"sg_Bastion_Marine_Raid3"},
squadnum = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1},
squadsize = {--[[1]] 2, --[[2]] 3, --[[3]] 3, --[[4]] 4},
}
if EGroup_Exists("eg_CM_Barrack_Bastion") and EGroup_IsEmpty("eg_CM_Barrack_Bastion") == false then
--RB9Inc can never be freater than the number of entries in the squadsize and squadnum tables.
if g_Bastion_Marine1_Increment <= 5 then
RB9Inc = 1
elseif g_Bastion_Marine1_Increment <= 10 then
RB9Inc = 2
elseif g_Bastion_Marine1_Increment <= 15 then
RB9Inc = 3
elseif g_Bastion_Marine1_Increment > 15 then
RB9Inc = 4
end
local i = g_Bastion_Marine1_Size
--there are two variables here "i" and "RB9Inc" they are linked to different systems. "i" incrememnts where in the spawning cycle we are for the number of squads and "RB9Inc" where we are in the difficulty cycle. The reason i am using "i' instead of a for loop
--is that I didn't want to have four squads spawning at once and looking unfair to the player.
--checking how many squads in this group in order to prevent over population
if SGroup_CountSpawned(SGroup_CreateIfNotFound("sg_Bastion_Marine1_Raid")) <= 3 then
Util_CreateSquadsAtMarkerEx(g_Player2, t_Bastion_Marine1_Raid_Army.squadname[i], "chaos_marine_squad_stronghold_sp", "mkr_CM_Barrack_Bastion_Spawn", t_Bastion_Marine1_Raid_Army.squadnum[RB9Inc],
t_RB2_Marine1_Raid_Army.squadsize[RB9Inc])
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_Bastion_Marine1_Raid"), SGroup_FromName( t_Bastion_Marine1_Raid_Army.squadname[i]))
--this will add a leader after Xmn of gameplay to the raiding parties
if g_Timer >= 20 then
Cmd_ReinforceLeader(t_Bastion_Marine1_Raid_Army.squadname[i], 1)
end
if g_Bastion_Marine1_Size < table.getn(t_Bastion_Marine1_Raid_Army.squadname) then
g_Bastion_Marine1_Size = g_Bastion_Marine1_Size + 1
elseif g_Bastion_Marine1_Size == table.getn(t_Bastion_Marine1_Raid_Army.squadname) then
g_Bastion_Marine1_Size = 1
Rule_Remove(Rule_Bastion_Marine1_Raid)
Rule_Add(Rule_Bastion_Marine1_Attack)
end
g_Bastion_Marine1_Increment = g_Bastion_Marine1_Increment +1
end
else
Rule_Remove(Rule_Bastion_Marine1_Raid)
end
end
--this is done in a seperate function than Rule_RB2_Marine1_Raid in order to be able to to re-add Rule_RB2_Marine1_Raid after a delay and not get an error about the rule still existing. function Rule_Bastion_Marine1_Attack()
--checks to see if the player has an HQ and if yes to go attack it
EGroup_Clear(EGroup_CreateIfNotFound("eg_Player1_Buildings"))
EGroup_AddGroup(EGroup_FromName("eg_Player1_Buildings"), Player_GetEntities(g_Player1))
local countbuilding = EGroup_CountSpawned(EGroup_FromName("eg_Player1_Buildings"))
for i = 1, countbuilding do
EGroup_Clear(EGroup_CreateIfNotFound("eg_Potential_HQ"))
EGroup_Add(EGroup_FromName("eg_Potential_HQ"), EGroup_GetSpawnedEntityAt("eg_Player1_Buildings", i))
if EGroup_ContainsBlueprints(EGroup_FromName("eg_Potential_HQ"), t_blueprinthq, true) then
pos_HQ = Entity_GetPosition( EGroup_GetSpawnedEntityAt("eg_Potential_HQ", 1))
Cmd_AttackMovePos("sg_Bastion_Marine1_Raid", pos_HQ)
--at this point we want to stop the for loop
break
end
end
--this is the table in the spawning rule Rule_RB2_Marine1_Raid
for j = 1, table.getn(t_Bastion_Marine1_Raid_Army.squadname) do
--check to see if the squads are idle. if they are then it means the player has no HQ in which case they are given to the active AI player
if SGroup_IsEmpty(t_Bastion_Marine1_Raid_Army.squadname[j]) == false then
Squad_SetPlayerOwner(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_Bastion_Marine1_Raid_Army.squadname[j]), 1), g_Player3)
end
end
--this is to prevent the squads from going back to their spawn point while en route to their attack
for d = 1, table.getn(t_Bastion_Marine1_Raid_Army.squadname) do
SGroup_Clear(SGroup_FromName(t_Bastion_Marine1_Raid_Army.squadname[d]))
end
Rule_Remove(Rule_Bastion_Marine1_Attack)
Rule_AddIntervalDelay(Rule_Bastion_Marine1_Raid, 150, 60)
end
--Bastion cultists function Rule_Bastion_Cultist_Raid()
t_Bastion_Cultist_Raid_Army = {
squadname = {--[[1]]"sg_Bastion_Cultist_Raiders1", --[[2]]"sg_Bastion_Cultist_Raiders2", --[[3]]"sg_Bastion_Cultist_Raiders3", --[[4]]"sg_Bastion_Cultist_Raiders4"},
squadnum = {--[[1]] 1, --[[2]] 1, --[[3]] 1, --[[4]] 1},
squadsize = {--[[1]] 4, --[[2]] 5, --[[3]] 6, --[[4]] 7},
reinforceleader = {--[[1]] true, --[[2]] false, --[[3]]false, --[[4]]false},
}
if EGroup_Exists("eg_CM_HQ") and EGroup_IsEmpty("eg_CM_HQ") == false then
--FB1Inc can never be freater than the number of entries in the squadsize and squadnum tables.
if g_Bastion_Cultist_Increment <= 5 then
RB8Inc = 1
elseif g_Bastion_Cultist_Increment <= 10 then
RB8Inc = 2
elseif g_Bastion_Cultist_Increment <= 15 then
RB8Inc = 3
elseif g_Bastion_Cultist_Increment > 15 then
RB8Inc = 4
end
local i = g_Bastion_Cultist_Size
--there are two variables here "i" and "FB1Inc" they are linked to different systems. "i" incrememnts where in the spawning cycle we are for the number of squads and "FB1Inc" where we are in the difficulty cycle. The reason i am using "i' instead of a for loop
--is that I didn't want to have four squads spawning at once and looking unfair to the player.
--checking how many squads in this group in order to prevent over population
if SGroup_CountSpawned(SGroup_CreateIfNotFound("sg_Bastion_Cultist_Raid")) <= 4 then
Util_CreateSquadsAtMarkerEx(g_Player2, t_Bastion_Cultist_Raid_Army.squadname[i], "chaos_squad_cultist", "mkr_Chaos_HQ", t_Bastion_Cultist_Raid_Army.squadnum[RB8Inc], t_Bastion_Cultist_Raid_Army.squadsize[RB8Inc])
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_Bastion_Cultist_Raid"), SGroup_FromName( t_Bastion_Cultist_Raid_Army.squadname[i]))
if t_Bastion_Cultist_Raid_Army.reinforceleader[i] == true then
Cmd_ReinforceLeader(t_Bastion_Cultist_Raid_Army.squadname[i], 1)
end
--this will add a leader after Xmn of gameplay to the raiding parties
if g_Timer >= 20 then
t_Bastion_Cultist_Raid_Army.reinforceleader[i] = true
end
if g_Bastion_Cultist_Size < table.getn(t_Bastion_Cultist_Raid_Army.squadname) then
g_Bastion_Cultist_Size = g_Bastion_Cultist_Size + 1
elseif g_Bastion_Cultist_Size == table.getn(t_Bastion_Cultist_Raid_Army.squadname) then
g_Bastion_Cultist_Size = 1
Rule_Remove(Rule_Bastion_Cultist_Raid)
Rule_Add(Rule_Bastion_Cultist_Raid_Attack)
end
g_Bastion_Cultist_Increment = g_Bastion_Cultist_Increment +1
end
else
Rule_Remove(Rule_Bastion_Cultist_Raid)
end
end
--this is done in a seperate function than Rule_FB1_Raid in order to be able to to re-add Rule_FB1_Raid after a delay and not get an error about the rule still existing. function Rule_Bastion_Cultist_Raid_Attack()
--checks to see if the player has an HQ and if yes to go attack it
EGroup_Clear(EGroup_CreateIfNotFound("eg_Player1_Buildings"))
EGroup_AddGroup(EGroup_FromName("eg_Player1_Buildings"), Player_GetEntities(g_Player1))
local countbuilding = EGroup_CountSpawned(EGroup_FromName("eg_Player1_Buildings"))
for i = 1, countbuilding do
EGroup_Clear(EGroup_CreateIfNotFound("eg_Potential_HQ"))
EGroup_Add(EGroup_FromName("eg_Potential_HQ"), EGroup_GetSpawnedEntityAt("eg_Player1_Buildings", i))
if EGroup_ContainsBlueprints(EGroup_FromName("eg_Potential_HQ"), t_blueprinthq, true) then
pos_HQ = Entity_GetPosition( EGroup_GetSpawnedEntityAt("eg_Potential_HQ", 1))
Cmd_AttackMovePos("sg_Bastion_Cultist_Raid", pos_HQ)
--at this point we want to stop the for loop
break
end
end
--this is the table in the spawning rule Rule_FB1_Raid
for j = 1, table.getn(t_Bastion_Cultist_Raid_Army.squadname) do
--check to see if the squads are idle. if they are then it means the player has no HQ in which case they are given to the active AI player
if SGroup_IsEmpty(t_Bastion_Cultist_Raid_Army.squadname[j]) == false and
Squad_GetActiveCommand(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_Bastion_Cultist_Raid_Army.squadname[j]), 1)) == SQUADSTATEID_Idle then
Squad_SetPlayerOwner(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_Bastion_Cultist_Raid_Army.squadname[j]), 1), g_Player3)
end
end
--this is to prevent the squads from going back to their spawn point while en route to their attack
for d = 1, table.getn(t_Bastion_Cultist_Raid_Army.squadname) do
SGroup_Clear(SGroup_FromName(t_Bastion_Cultist_Raid_Army.squadname[d]))
end
Rule_Remove(Rule_Bastion_Cultist_Raid_Attack)
Rule_AddIntervalDelay(Rule_Bastion_Cultist_Raid, 30, 5)
end
--Bastion predator 1 function Rule_Bastion_Predator1_Raid()
t_Bastion_Predator1_Raid_Army = {
squadname = {--[[1]]"sg_Bastion_Predator_Raid1"},
squadnum = {--[[1]] 1},
squadsize = {--[[1]] 1},
}
if EGroup_Exists("eg_CM_Barrack_Bastion") and EGroup_IsEmpty("eg_CM_Barrack_Bastion") == false then
local i = g_Bastion_Predator1_Size
--there are two variables here "i" and "RB9Inc" they are linked to different systems. "i" incrememnts where in the spawning cycle we are for the number of squads and "RB9Inc" where we are in the difficulty cycle. The reason i am using "i' instead of a for loop
--is that I didn't want to have four squads spawning at once and looking unfair to the player.
--checking how many squads in this group in order to prevent over population
if SGroup_CountSpawned(SGroup_CreateIfNotFound("sg_Bastion_Predator1_Raid")) < 1 then
Util_CreateSquadsAtMarkerEx(g_Player2, t_Bastion_Predator1_Raid_Army.squadname[i], "chaos_squad_predator", "mkr_CM_Vehicle_Bastion_Spawn", t_Bastion_Predator1_Raid_Army.squadnum[1],
t_Bastion_Predator1_Raid_Army.squadsize[1])
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_Bastion_Predator1_Raid"), SGroup_FromName( t_Bastion_Predator1_Raid_Army.squadname[i]))
if g_Bastion_Predator1_Size < table.getn(t_Bastion_Predator1_Raid_Army.squadname) then
g_Bastion_Predator1_Size = g_Bastion_Predator1_Size + 1
end
elseif g_Bastion_Predator1_Size == table.getn(t_Bastion_Predator1_Raid_Army.squadname) then
g_Bastion_Predator1_Size = 1
Rule_Remove(Rule_Bastion_Predator1_Raid)
Rule_Add(Rule_Bastion_Predator1_Attack)
end
else
Rule_Remove(Rule_Bastion_Predator1_Raid)
end
end
--this is done in a seperate function than Rule_RB2_Marine1_Raid in order to be able to to re-add Rule_RB2_Marine1_Raid after a delay and not get an error about the rule still existing. function Rule_Bastion_Predator1_Attack()
--checks to see if the player has an HQ and if yes to go attack it
EGroup_Clear(EGroup_CreateIfNotFound("eg_Player1_Buildings"))
EGroup_AddGroup(EGroup_FromName("eg_Player1_Buildings"), Player_GetEntities(g_Player1))
local countbuilding = EGroup_CountSpawned(EGroup_FromName("eg_Player1_Buildings"))
for i = 1, countbuilding do
EGroup_Clear(EGroup_CreateIfNotFound("eg_Potential_HQ"))
EGroup_Add(EGroup_FromName("eg_Potential_HQ"), EGroup_GetSpawnedEntityAt("eg_Player1_Buildings", i))
if EGroup_ContainsBlueprints(EGroup_FromName("eg_Potential_HQ"), t_blueprinthq, true) then
pos_HQ = Entity_GetPosition( EGroup_GetSpawnedEntityAt("eg_Potential_HQ", 1))
Cmd_AttackMovePos("sg_Bastion_Predator1_Raid", pos_HQ)
--at this point we want to stop the for loop
break
end
end
--this is the table in the spawning rule Rule_RB2_Marine1_Raid
for j = 1, table.getn(t_Bastion_Predator1_Raid_Army.squadname) do
--check to see if the squads are idle. if they are then it means the player has no HQ in which case they are given to the active AI player
if SGroup_IsEmpty(t_Bastion_Predator1_Raid_Army.squadname[j]) == false then
Squad_SetPlayerOwner(SGroup_GetSpawnedSquadAt(SGroup_FromName(t_Bastion_Predator1_Raid_Army.squadname[j]), 1), g_Player3)
end
end
--this is to prevent the squads from going back to their spawn point while en route to their attack
for d = 1, table.getn(t_Bastion_Marine1_Raid_Army.squadname) do
SGroup_Clear(SGroup_FromName(t_Bastion_Marine1_Raid_Army.squadname[d]))
end
Rule_Remove(Rule_Bastion_Predator1_Attack)
Rule_AddIntervalDelay(Rule_Bastion_Predator1_Raid, 300, 300)
end
function Rule_BloodThirster()
if EGroup_IsCapturedByPlayer("eg_CM_Strat1", g_Player1, true) == false then
if EGroup_Exists("eg_RB2_3") and EGroup_IsEmpty("eg_RB2_3") == false then
if SGroup_Exists("sg_BloodThirster") == false or SGroup_Exists("sg_BloodThirster") and SGroup_IsEmpty("sg_BloodThirster") then
if EGroup_Exists("eg_RB2_10") and EGroup_IsEmpty("eg_RB2_10") == false then
--create a sorcerer
Util_CreateSquadsAtMarker(g_Player2, "sg_BloodThirster", "chaos_squad_sorcerer_stronghold_sp", "mkr_RB2_Building10_Spawn", 1)
Cmd_MoveToMarker("sg_BloodThirster", "mkr_KO5_4")
if g_BT_First == true then
Rule_AddInterval(Rule_Sorcerer_First_Transform, 5)
elseif g_BT_First == false then
Rule_AddInterval(Rule_Sorcerer_Transformation, 5)
end
Rule_AddInterval(Rule_Make_New_Bloodthirster, 1200)
end
end
elseif EGroup_Exists("eg_RB2_8") and EGroup_IsEmpty("eg_RB2_8") == false then
if EGroup_Exists("eg_RB2_10") and EGroup_IsEmpty("eg_RB2_10") == false then
--create a sorcerer
Util_CreateSquadsAtMarker(g_Player2, "sg_BloodThirster", "chaos_squad_sorcerer_stronghold_sp", "mkr_RB2_Building10_Spawn", 1)
Cmd_MoveToMarker("sg_BloodThirster", "mkr_KO5_4")
if g_BT_First == true then
Rule_AddOneShot(Rule_Sorcerer_First_Transform, 5)
elseif g_BT_First == false then
Rule_AddInterval(Rule_Sorcerer_Transformation, 5)
end
Rule_AddInterval(Rule_Make_New_Bloodthirster, 1200)
end
else
Rule_Remove(Rule_BloodThirster)
end
else
Rule_Remove(Rule_BloodThirster)
end
end
function Rule_Sorcerer_First_Transform()
if Prox_AllSquadsNearMarker("sg_BloodThirster", "mkr_KO5_4") then
if EGroup_Exists("eg_Greater_Sacrifical") and EGroup_IsEmpty("eg_Greater_Sacrifical") == false and EGroup_IsCapturedByPlayer("eg_CM_Strat1", g_Player1, true) == false then
Util_StartNIS( EVENTS.NIS_Bloodthirster )
Rule_Remove(Rule_Sorcerer_First_Transform)
else
Rule_Remove(Rule_Sorcerer_First_Transform)
end
end
end
function Rule_Sorcerer_Transformation()
if Prox_AllSquadsNearMarker("sg_BloodThirster", "mkr_KO5_4") then
if EGroup_Exists("eg_Greater_Sacrifical") and EGroup_IsEmpty("eg_Greater_Sacrifical") == false and EGroup_IsCapturedByPlayer("eg_CM_Strat1", g_Player1, true) == false then
--the research grant than restrict is to prevent the AI from pumping out its own Bloodthirsters.
Player_GrantResearch(g_Player2, "chaos_bloodthirster_research")
Cmd_Possesion("sg_BloodThirster")
Rule_AddOneShot(Rule_Transfer_Ownership, 10)
Rule_Remove(Rule_Sorcerer_Transformation)
Player_RestrictResearch(g_Player2, "chaos_bloodthirster_research")
else
Rule_Remove(Rule_Sorcerer_Transformation)
end
end
end
function Rule_Transfer_Ownership()
--gives the bloodthirster to the active ai
SGroup_SetPlayerOwner("sg_BloodThirster", g_Player3)
end
function Rule_Make_New_Bloodthirster()
if SGroup_Exists("sg_BloodThirster") == false or SGroup_Exists("sg_BloodThirster") and SGroup_IsEmpty("sg_BloodThirster") then
Rule_AddOneShot(Rule_BloodThirster, 30)
Rule_Remove(Rule_Make_New_Bloodthirster)
end
end
--[[Proximity check for bastion spawning ]]
function Rule_Bastion_Spawning_Prox_Check() --check to see if the player has breached the perimiter of the bastion before begining the spawning of raids from there for i = 1, 6 do
if Player_AreSquadsNearMarker(g_Player1, "mkr_Bastion_Breach"..i) then
Rule_AddOneShot(Rule_Bastion_Discussion, 5)
Rule_AddIntervalDelay(Rule_Bastion_Cultist_Raid, 30, 5)
Rule_AddIntervalDelay(Rule_Bastion_Marine1_Raid, 150, 60)
Rule_AddIntervalDelay(Rule_Bastion_Predator1_Raid, 300, 300)
Rule_Remove(Rule_Bastion_Spawning_Prox_Check)
end
end
end
--[[Proximity check for chaos stealth ]]
function Rule_Bastion_Stealth_Prox_Check() --check to see if the player has breached the perimiter of the bastion and if he has give the chaos player his stealth research for i = 1, 2 do
if Player_AreSquadsNearMarker(g_Player1, "mkr_Bastion_Stealth_Check"..i) then
Player_GrantResearch(g_Player2, "chaos_infiltration_research")
Player_GrantResearch(g_Player3, "chaos_infiltration_research")
Player_GrantResearch(g_Player2, "chaos_purge_the_weak")
Player_GrantResearch(g_Player3, "chaos_purge_the_weak")
--REMOVED FROM GAME
--Player_GrantResearch(g_Player2, "chaos_possessed_daemon_mutation_research")
--Player_GrantResearch(g_Player3, "chaos_possessed_daemon_mutation_research")
Player_GrantResearch(g_Player2, "chaos_possessed_daemon_fire_research")
Player_GrantResearch(g_Player3, "chaos_possessed_daemon_fire_research")
Rule_Remove(Rule_Bastion_Stealth_Prox_Check)
end
end
end
--[[Proximity check for relic chatter ]]
function Rule_Relic_Talk()
if Player_AreSquadsNearMarker(g_Player1, "mkr_Khorne_Defender3") then
Rule_Check_AddOneShot(Rule_Relic_Discussion, 5)
Rule_Remove(Rule_Relic_Talk)
end
end
--[[ Spawning the prisoners and the jailer ]]
function Rule_Spawn_Prisoners()
for i = 1, table.getn(t_Prisoners) do
Util_CreateSquadsAtMarker(g_Player5, "sg_Prisoners"..i, t_Prisoners[i], "mkr_Prisoner"..i, 1)
SGroup_AddGroup(SGroup_CreateIfNotFound("sg_Prisoners"), SGroup_CreateIfNotFound("sg_Prisoners"..i))
end
Util_CreateSquadsAtMarker(g_Player2, "sg_Jailer", "chaos_squad_sorcerer_torment_sp", "mkr_Jailer", 1)
Rule_AddOneShot(Rule_Jail, 2)
end
function Rule_Jail()
Cmd_CastAbilitySGroup("sg_Jailer", "Chaos_chains_of_torment_sp", "sg_Prisoners1")
Rule_AddOneShot(Rule_Jail2, 1)
end
function Rule_Jail2()
Cmd_CastAbilitySGroup("sg_Jailer", "Chaos_chains_of_torment_sp_2", "sg_Prisoners2")
Rule_AddOneShot(Rule_Jail3, 1)
end
function Rule_Jail3()
Cmd_CastAbilitySGroup("sg_Jailer", "Chaos_chains_of_torment_sp_3", "sg_Prisoners3")
Rule_AddOneShot(Rule_Jail4, 1)
end
function Rule_Jail4()
Cmd_CastAbilitySGroup("sg_Jailer", "Chaos_chains_of_torment_sp_4", "sg_Prisoners4")
Rule_Add(Rule_Jailer_Dead)
end
function Rule_Jailer_Dead() --check to see the health of the jailer before transfering the prisoners to the player
if SGroup_Exists("sg_Jailer") == false or SGroup_Exists("sg_Jailer") and SGroup_IsEmpty("sg_Jailer") then
g_PrisonersStop = true
World_FXEventSquad("data:Art/Events/Unit_Upgrade_Morale_FX/Reinforce_Trooper", SGroup_FromName("sg_Prisoners"))
SGroup_SetPlayerOwner("sg_Prisoners", g_Player1)
Rule_Remove(Rule_Jailer_Dead)
end
end
--[[ Chatty AI ]]
--this is to have the AI send generic messages to the player every x seconds. So far they're not supposed to repeat but are supposed to be random
t_Talk = { false, false, false, false, false, false, false, false, false, false}
function Rule_Trash_Talk()
t_Event ={EVENTS.IE_Generic1, EVENTS.IE_Generic2, EVENTS.IE_Generic3, EVENTS.IE_Generic4, EVENTS.IE_Generic5, EVENTS.IE_Generic6, EVENTS.IE_Generic7, EVENTS.IE_Generic8, EVENTS.IE_Generic9, EVENTS.IE_Generic10} local i = World_GetRand(1, 10)
if Event_IsAnyRunning() == false and t_Talk[i] == false then
Util_StartIntel(t_Event[i])
t_Talk[i] = true
end
end
---[[opening taunts]]
function Rule_Opening_Discussion()
local humanplayer = MetaMap_GetPlayerRaceName()
if humanplayer == "chaos_marine_race" then
--[[no text since this is the chaos stronghold]]
elseif humanplayer == "eldar_race" then
Util_StartIntel(EVENTS.IE_Eldar_Start)
elseif humanplayer == "guard_race" then
Util_StartIntel(EVENTS.IE_IG_Start)
elseif humanplayer == "ork_race" then
Util_StartIntel(EVENTS.IE_Ork_Start)
elseif humanplayer =="space_marine_race" then
Util_StartIntel(EVENTS.IE_SM_Start)
elseif humanplayer == "tau_race" then
Util_StartIntel(EVENTS.IE_Tau_Start)
elseif humanplayer == "necron_race" then
Util_StartIntel(EVENTS.IE_Necron_Start)
end
end
--[[relic discovered taunt]]
function Rule_Relic_Discussion()
local humanplayer = MetaMap_GetPlayerRaceName()
if humanplayer == "chaos_marine_race" then
--[[no text since this is the chaos stronghold]]
elseif humanplayer == "eldar_race" then
Util_StartIntel(EVENTS.IE_Eldar_Relic)
elseif humanplayer == "guard_race" then
Util_StartIntel(EVENTS.IE_IG_Relic)
elseif humanplayer == "ork_race" then
Util_StartIntel(EVENTS.IE_Ork_Relic)
elseif humanplayer =="space_marine_race" then
Util_StartIntel(EVENTS.IE_SM_Relic)
elseif humanplayer == "tau_race" then
Util_StartIntel(EVENTS.IE_Tau_Relic)
elseif humanplayer == "necron_race" then
Util_StartIntel(EVENTS.IE_Necron_Relic)
end
end
--[[Bastion breach taunt]]
function Rule_Bastion_Discussion()
local humanplayer = MetaMap_GetPlayerRaceName()
if humanplayer == "chaos_marine_race" then
--[[no text since this is the chaos stronghold]]
elseif humanplayer == "eldar_race" then
Util_StartIntel(EVENTS.IE_Eldar_Bastion)
elseif humanplayer == "guard_race" then
Util_StartIntel(EVENTS.IE_IG_Bastion)
elseif humanplayer == "ork_race" then
Util_StartIntel(EVENTS.IE_Ork_Bastion)
elseif humanplayer =="space_marine_race" then
Util_StartIntel(EVENTS.IE_SM_Bastion)
elseif humanplayer == "tau_race" then
Util_StartIntel(EVENTS.IE_Tau_Bastion)
elseif humanplayer == "necron_race" then
Util_StartIntel(EVENTS.IE_Necron_Bastion)
end
end
--[[Timer ]]
function Rule_Add_Timer() --warning g_Timer is used elsewhere. if you remove the counter make sure that you leave the function updating the timer
Rule_AddInterval(Rule_Increment_Timer, 60)
end
function Rule_Increment_Timer() --warning g_Timer is used elsewhere. if you remove the counter make sure that you leave the function updating the timer g_Timer = g_Timer +1
end
--[[ win loss ]]
function Rule_EndGame_Win()
if EGroup_Exists("eg_Gate") == false or (EGroup_Exists("eg_Gate") and EGroup_IsEmpty("eg_Gate")) then
g_Win = true
Util_StartNIS(EVENTS.NIS_Closing)
Rule_Remove( Rule_EndGame_Win )
Rule_Remove(Rule_EndGameLose)
end
end
function Rule_EndGameLose()
g_building_exceptions =
{
"guard_thermo_plasma",
"guard_plasma_generator",
"guard_turret_heavy_bolter",
"guard_mines"
}
g_unit_exceptions =
{
}
--[[ Lose because of Annihilation ]]
if( Player_HasBuildingsExcept(g_Player1, g_building_exceptions) == false ) then
if( Player_HasSquadsExcept(g_Player1, g_unit_exceptions ) == false ) then
Rule_RemoveAll()
Fade_Start(4, false)
World_SetTeamWin( g_enemy, "" )
Rule_AddIntervalEx( Rule_GameOver,5,1 )
Rule_Remove( Rule_EndGameLose )
Rule_Remove( Rule_EndGame_Win )
end
end
end
--[[ call this with an interval to ensure the mission ends ]] function Rule_GameOver() World_SetGameOver() end