--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--
-- load the gametype script
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("setup_teams")
-- REP Attacking (attacker is always #1)
REP = 1;
CIS = 2;
-- These variables do not change
ATT = REP;
DEF = CIS;
function ScriptPostLoad()
--This defines the CPs. These need to happen first
AddAIGoal(3, "Deathmatch", 100)
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp5 = CommandPost:New{name = "cp5"}
cp6 = CommandPost:New{name = "cp6"}
cp7 = CommandPost:New{name = "cp7"}
cp8 = CommandPost:New{name = "cp8"}
cp9 = CommandPost:New{name = "cp9"}
cp10 = CommandPost:New{name = "cp10"}
cp11 = CommandPost:New{name = "cp11"}
cp12 = CommandPost:New{name = "cp12"}
--This sets up the actual objective. This needs to happen after cp's are defined
conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF,
textATT = "game.modes.con",
textDEF = "game.modes.con2",
multiplayerRules = true}
--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
conquest:AddCommandPost(cp5)
conquest:AddCommandPost(cp6)
conquest:AddCommandPost(cp7)
conquest:AddCommandPost(cp8)
conquest:AddCommandPost(cp9)
conquest:AddCommandPost(cp10)
conquest:AddCommandPost(cp11)
conquest:AddCommandPost(cp12)
conquest:Start()
SetUberMode(1);
EnableSPHeroRules()
end
---------------------------------------------------------------------------
-- FUNCTION: ScriptInit
-- PURPOSE: This function is only run once
-- INPUT:
-- OUTPUT:
-- NOTES: The name, 'ScriptInit' is a chosen convention, and each
-- mission script must contain a version of this function, as
-- it is called from C to start the mission.
---------------------------------------------------------------------------
function ScriptInit()
ReadDataFile("ingame.lvl")
SetMaxFlyHeight(1800)
SetMaxPlayerFlyHeight(1800)
SetMemoryPoolSize ("ClothData",20)
SetMemoryPoolSize ("Combo",50) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",650) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",550) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",6000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",100) -- should be ~1x #combo
SetTeamAggressiveness(CIS, 1.0)
SetTeamAggressiveness(REP, 1.0)
SetMemoryPoolSize ("Music", 200)
ReadDataFile("sound\\geo.lvl;geo1cw")
ReadDataFile("sound\\kas.lvl;kas2cw")
ReadDataFile("sound\\spa.lvl;spa2cw")
ReadDataFile("dc:SIDE\\rep.lvl",
"rep_bldg_forwardcenter",
"rep_fly_gunship_dome",
"rep_fly_assault_dome",
"rep_hover_fightertank",
"rep_hero_macewindu",
"rep_hover_barcspeeder",
"rep_walk_atte",
"rep_fly_gunship_sc",
"rep_fly_gunship")
ReadDataFile("dc:SIDE\\fst.lvl",
"fst_ep2",
"fst_ep2cap",
"fst_ep2cmd",
"fst_ep2jet",
"fst_ep2lat",
"fst_ep2marine",
"fst_ep2med",
"fst_ep2pilot",
"fst_ep2sgt")
ReadDataFile("dc:SIDE\\drd.lvl",
"drd_battledroid_geo",
"drd_battledroid_geoass",
"drd_battledroid_geocmd",
"drd_battledroid_geoeng",
"drd_battledroid_sb",
"drd_battledroid_geosniper",
"drd_droideka",
"drd_geonosian")
ReadDataFile("dc:SIDE\\cis.lvl",
"cis_hero_countdooku",
"cis_fly_droidfighter_dome",
"cis_hover_aat",
"cis_hover_stap",
"cis_fly_droidstarfighter_sc",
"cis_walk_spider",
"cis_tread_hailfire")
ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_laser",
"tur_bldg_tower",
"tur_bldg_spa_rep_chaingun",
"tur_bldg_spa_rep_beam",
"tur_bldg_chaingun_roof",
"tur_bldg_geoturret")
ReadDataFile("SIDE\\geo.lvl",
"gen_inf_geonosian")
SetupTeams{
rep = {
team = REP,
units = 400,
reinforcements = -1,
soldier = { "fst_ep2",35, 50},
assault = { "fst_ep2sgt",20, 50},
engineer = { "fst_ep2lat",20, 50},
sniper = { "fst_ep2cap",20, 50},
officer = { "fst_ep2cmd",20, 50},
special = { "fst_ep2med",20, 50},
},
cis = {
team = CIS,
units = 400,
reinforcements = -1,
soldier = { "drd_battledroid_geo",35, 50},
assault = { "drd_battledroid_sb",20, 50},
engineer = { "drd_battledroid_geoass",20, 50},
sniper = { "drd_battledroid_geoeng",20, 50},
officer = { "drd_battledroid_geosniper",20, 50},
special = { "drd_battledroid_geocmd",10, 50},
}
}
AddUnitClass(CIS, "drd_geonosian",20, 50)
AddUnitClass(CIS, "drd_droideka",20, 50)
AddUnitClass(REP, "fst_ep2marine",20, 25)
AddUnitClass(REP, "fst_ep2pilot",20, 50)
AddUnitClass(REP, "fst_ep2jet",20, 25)
SetHeroClass(CIS, "cis_hero_countdooku")
SetHeroClass(REP, "rep_hero_macewindu")
-- Geonosians
SetTeamName (3, "locals")
AddUnitClass (3, "gen_inf_geonosian", 100)
SetUnitCount (3, 100)
AddAIGoal(3, "Deathmatch", 1000)
SetTeamAsEnemy(3,ATT)
SetTeamAsEnemy(ATT,3)
SetTeamAsFriend(DEF,3)
SetTeamAsFriend(3,DEF)
-- Level Stats
ClearWalkers()
AddWalkerType(0, 50) -- special -> droidekas
AddWalkerType(1, 0) -- 1x2 (1 pair of legs)
AddWalkerType(2,

-- 2x2 (2 pairs of legs)
AddWalkerType(3,

-- 3x2 (3 pairs of legs)
local weaponCnt = 1864
SetMemoryPoolSize("Aimer", 75)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 1024)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize ("EntityDroideka",50)
SetMemoryPoolSize("EntityCloth", 32)
SetMemoryPoolSize("EntityFlyer", 32)
SetMemoryPoolSize("EntityHover", 32)
SetMemoryPoolSize("EntityLight", 200)
SetMemoryPoolSize("EntitySoundStream", 4)
SetMemoryPoolSize("EntitySoundStatic", 32)
SetMemoryPoolSize("FLEffectObject::OffsetMatrix", 69)
SetMemoryPoolSize("MountedTurret", 225)
SetMemoryPoolSize("Navigator", 200)
SetMemoryPoolSize("Obstacle", 1024)
SetMemoryPoolSize("PathNode", 1024)
SetMemoryPoolSize("PassengerSlot", 72)
SetMemoryPoolSize("SoldierAnimation", 292)
SetMemoryPoolSize("SoundSpaceRegion", 64)
SetMemoryPoolSize("TreeGridStack", 1024)
SetMemoryPoolSize("UnitAgent", 331)
SetMemoryPoolSize("UnitController", 353)
SetMemoryPoolSize("Weapon", weaponCnt)
SetMemoryPoolSize("RedOmniLight", 155)
SetSpawnDelay(10.0, 0.25)
--ReadDataFile("dc:GEL\\GEL.lvl", "GEL_conquest")
ReadDataFile("dc:GEL\\GEL.lvl", "GEL_conquest")
SetDenseEnvironment("false")
-- Sound
voiceSlow = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_slow")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_slow", voiceSlow)
AudioStreamAppendSegments("sound\\global.lvl", "global_vo_slow", voiceSlow)
voiceQuick = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_quick")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_quick", voiceQuick)
OpenAudioStream("sound\\global.lvl", "cw_music")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")
OpenAudioStream("sound\\geo.lvl", "geo1cw")
OpenAudioStream("sound\\geo.lvl", "geo1cw")
SetBleedingVoiceOver(REP, REP, "rep_off_com_report_us_overwhelmed", 1)
SetBleedingVoiceOver(REP, CIS, "rep_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, REP, "cis_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, CIS, "cis_off_com_report_us_overwhelmed", 1)
SetLowReinforcementsVoiceOver(REP, REP, "rep_off_defeat_im", .1, 1)
SetLowReinforcementsVoiceOver(REP, CIS, "rep_off_victory_im", .1, 1)
SetLowReinforcementsVoiceOver(CIS, CIS, "cis_off_defeat_im", .1, 1)
SetLowReinforcementsVoiceOver(CIS, REP, "cis_off_victory_im", .1, 1)
SetOutOfBoundsVoiceOver(1, "repleaving")
SetOutOfBoundsVoiceOver(2, "cisleaving")
SetAmbientMusic(REP, 1.0, "rep_GEO_amb_start", 0,1)
SetAmbientMusic(REP, 0.8, "rep_GEO_amb_middle", 1,1)
SetAmbientMusic(REP, 0.2, "rep_GEO_amb_end", 2,1)
SetAmbientMusic(CIS, 1.0, "cis_GEO_amb_start", 0,1)
SetAmbientMusic(CIS, 0.8, "cis_GEO_amb_middle", 1,1)
SetAmbientMusic(CIS, 0.2, "cis_GEO_amb_end", 2,1)
SetVictoryMusic(REP, "rep_geo_amb_victory")
SetDefeatMusic (REP, "rep_geo_amb_defeat")
SetVictoryMusic(CIS, "cis_geo_amb_victory")
SetDefeatMusic (CIS, "cis_geo_amb_defeat")
SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
--SetSoundEffect("WeaponUnableSelect", "com_weap_inf_weaponchange_null")
--SetSoundEffect("WeaponModeUnableSelect", "com_weap_inf_modechange_null")
SetSoundEffect("SpawnDisplayUnitChange", "shell_select_unit")
SetSoundEffect("SpawnDisplayUnitAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplaySpawnPointChange", "shell_select_change")
SetSoundEffect("SpawnDisplaySpawnPointAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplayBack", "shell_menu_exit")
--OpeningSateliteShot
--Republic Venator Destroyer
AddCameraShot(0.897058, -0.103776, -0.426709, -0.049364, -1624.903198, 336.975311, -1536.692993);
--Desert Spires
AddCameraShot(0.543200, -0.089811, -0.823605, -0.136172, -796.205994, 117.825867, -1338.574219);
end