Hidden/Spoiler:
--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--
-- load the gametype script
ScriptCB_DoFile("MultiObjectiveContainer")
ScriptCB_DoFile("ObjectiveAssault")
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("ObjectiveGoto")
ScriptCB_DoFile("ObjectiveCTF")
ScriptCB_DoFile("ObjectiveTDM")
ScriptCB_DoFile("Ambush")
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()
SetAIDifficulty(0, 2, "hard")
AllowAISpawn(ATT, false)
AllowAISpawn(DEF, true)
EnableSPScriptedHeroes()
ScriptCB_SetGameRules("campaign")
onfirstspawn = OnCharacterSpawn(
function(character)
if character == 0 then
ShowPopup("level.geo1.hints.hints")
ReleaseCharacterSpawn(onfirstspawn)
onfirstspawn = nil
BeginObjectivesTimer()
ScriptCB_EnableCommandPostVO(0)
end
end)
SetProperty("cis1", "Team", 2)
SetProperty("cis2", "Team", 2)
SetProperty("sheild1", "CurHealth", 1000000)
SetProperty("sheild2", "CurHealth", 1000000)
SetProperty("sheild3", "CurHealth", 1000000)
SetProperty("sheild4", "CurHealth", 1000000)
SetProperty("sheild5", "CurHealth", 1000000)
SetProperty("gun1", "CurHealth", 1000000)
SetProperty("gun2", "CurHealth", 1000000)
SetProperty("gun3", "CurHealth", 1000000)
SetProperty("sheildg1", "CurHealth", 1000000)
SetClassProperty("rep_talon", "WeaponName3", "rep_weap_dc15se")
SetClassProperty("rep_talon", "WeaponAmmo3", 0)
--capture cis1
Objective1CP = CommandPost:New{name = "cis1"}
Objective1 = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF, text = "level.maf.c.1", popupText = "level.maf.c.1_popup", AIGoalWeight = 0}
Objective1:AddCommandPost(Objective1CP)
Objective1:AddHint("level.geo1.hints.capture_cp")
Objective1.OnStart = function(self)
AICanCaptureCP("cis1", ATT, false)
AICanCaptureCP("cis1", DEF, true)
att_obj1_aigoal = AddAIGoal(ATT, "Defend", 50, "cis1")
def_obj1_aigoal = AddAIGoal(DEF, "Defend", 50, "cis1")
att_obj1_aigoal2 = AddAIGoal(ATT, "Deathmatch", 100)
def_obj1_aigoal2 = AddAIGoal(DEF, "Deathmatch", 100)
end
Objective1.OnComplete = function(self)
ShowMessageText("game.objectives.complete", ATT)
DeleteAIGoal(att_obj1_aigoal)
DeleteAIGoal(att_obj1_aigoal2)
DeleteAIGoal(def_obj1_aigoal)
DeleteAIGoal(def_obj1_aigoal2)
SetProperty("cis1", "Team", 1)
SetProperty("cis1", "CaptureRegion", "")
SetProperty("rep_inv2", "Team", 3)
end
--get dc17m AA
Objective2 = ObjectiveGoto:New{TeamATT = ATT, TeamDEF = DEF,
text = "level.maf.c.2", popupText = "level.maf.c.2_popup",
regionName = "goto1", mapIcon = "hud_objective_icon_circle", AIGoalWeight = 0}
Objective2:AddHint("level.geo1.hints.movement")
Objective2:AddHint("level.geo1.hints.obj_markers")
Objective2:AddHint("level.geo1.hints.review_objectives")
Objective2:AddHint("level.geo1.hints.sprint")
Objective2.OnStart = function(self)
att_obj2_aigoal = AddAIGoal(ATT, "Deathmatch", 100)
def_obj2_aigoal = AddAIGoal(DEF, "Deathmatch", 100)
end
Objective2.OnComplete = function(self)
DeleteAIGoal(att_obj2_aigoal)
DeleteAIGoal(def_obj2_aigoal)
SetClassProperty("rep_talon", "WeaponName3", "rep_weap_dc17r")
SetClassProperty("rep_talon", "WeaponAmmo3", 4)
ShowMessageText("game.objectives.complete", ATT)
end
--blow up 3 HAGs
Objective3= ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.3", popupText = "level.maf.c.3_popup"}
Dclass = TargetType:New{classname = "cis_hover_HAG", killLimit = 2}
Objective3:AddTarget(Dclass)
Objective3.OnStart = function(self)
Objective3.Dclass_cpGoal1 = AddAIGoal(ATT, "Defend", 100, "cis_inv1")
Objective3.Dclass_cpGoal2 = AddAIGoal(DEF, "Defend", 100, "cis_inv1")
end
Objective3.OnComplete = function(self)
DeleteAIGoal(Objective3.Dclass_cpGoal1)
DeleteAIGoal(Objective3.Dclass_cpGoal2)
end
--capture cis2
Objective4CP = CommandPost:New{name = "cis2"}
Objective4 = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF, text = "level.maf.c.4", popupText = "level.maf.c.4_popup", AIGoalWeight = 0}
Objective4:AddCommandPost(Objective4CP)
Objective4:AddHint("level.geo1.hints.capture_cp")
Objective4.OnStart = function(self)
AICanCaptureCP("cis2", ATT, false)
AICanCaptureCP("cis2", DEF, true)
att_obj4_aigoal = AddAIGoal(ATT, "Defend", 50, "cis2")
def_obj4_aigoal = AddAIGoal(DEF, "Defend", 50, "cis2")
att_obj4_aigoal2 = AddAIGoal(ATT, "Deathmatch", 100)
def_obj4_aigoal2 = AddAIGoal(DEF, "Deathmatch", 100)
end
Objective4.OnComplete = function(self)
ShowMessageText("game.objectives.complete", ATT)
DeleteAIGoal(att_obj4_aigoal)
DeleteAIGoal(att_obj4_aigoal2)
DeleteAIGoal(def_obj4_aigoal)
DeleteAIGoal(def_obj4_aigoal2)
SetProperty("cis2", "Team", 1)
SetProperty("cis2", "CaptureRegion", "")
SetProperty("rep_inv3", "Team", 3)
end
--go to sheilds
Objective5 = ObjectiveGoto:New{TeamATT = ATT, TeamDEF = DEF,
text = "level.maf.c.5", popupText = "level.maf.c.5_popup",
regionName = "goto2", mapIcon = "hud_objective_icon_circle", AIGoalWeight = 0}
Objective5:AddHint("level.geo1.hints.movement")
Objective5:AddHint("level.geo1.hints.obj_markers")
Objective5:AddHint("level.geo1.hints.review_objectives")
Objective5:AddHint("level.geo1.hints.sprint")
Objective5.OnStart = function(self)
att_obj5_aigoal = AddAIGoal(ATT, "Deathmatch", 100)
def_obj5_aigoal = AddAIGoal(DEF, "Deathmatch", 100)
end
Objective5.OnComplete = function(self)
DeleteAIGoal(att_obj5_aigoal)
DeleteAIGoal(def_obj5_aigoal)
ShowMessageText("game.objectives.complete", ATT)
SetProperty("sheildg1", "CurHealth", 1000)
end
--destroy sheild generator
Dobjekt = Target:New{name = "sheildg1"}
Dobjekt.OnDestroy = function(self)
end
Objective6 = ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.6", popupText = "level.maf.c.6_popup"}
Objective6:AddTarget(Dobjekt)
Objective6.OnStart = function(self)
end
Objective6.OnComplete = function(self)
ShowMessageText("game.objectives.complete", ATT)
SetProperty("gun1", "CurHealth", 1000)
SetProperty("gun2", "CurHealth", 1000)
SetProperty("gun3", "CurHealth", 1000)
end
--destroy power generator1
Dobjekt = Target:New{name = "gun1"}
Dobjekt.OnDestroy = function(self)
end
Objective7 = ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.7", popupText = "level.maf.c.7_popup"}
Objective7:AddTarget(Dobjekt)
Objective7.OnStart = function(self)
end
Objective7.OnComplete = function(self)
ShowMessageText("game.objectives.complete", ATT)
end
--destroy generator 2
Dobjekt = Target:New{name = "gun2"}
Dobjekt.OnDestroy = function(self)
end
Objective8 = ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.7", popupText = "level.maf.c.7_popup"}
Objective8:AddTarget(Dobjekt)
Objective8.OnStart = function(self)
end
Objective8.OnComplete = function(self)
ShowMessageText("game.objectives.complete", ATT)
end
--destroy generator 3
Dobjekt = Target:New{name = "gun3"}
Dobjekt.OnDestroy = function(self)
end
Objective9 = ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.7", popupText = "level.maf.c.7_popup"}
Objective9:AddTarget(Dobjekt)
Objective9.OnStart = function(self)
end
Objective9.OnComplete = function(self)
ShowMessageText("game.objectives.complete", ATT)
SetProperty("rep_inv3", "Team", 5)
SetTeamAsEnemy(leg, var)
SetTeamAsEnemy(var, leg)
end
\
Objective10= ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.8", popupText = "level.maf.c.8__popup"}
Dclass = TargetType:New{classname = "secret", killLimit = 1}
Objective10:AddTarget(Dclass)
Objective10.OnStart = function(self)
Objective10.Dclass_cpGoal1 = AddAIGoal(ATT, "Defend", 100, "secret_cp")
Objective10.Dclass_cpGoal2 = AddAIGoal(DEF, "Defend", 100, "secret_cp")
end
Objective10.OnComplete = function(self)
DeleteAIGoal(Objective10.Dclass_cpGoal1)
DeleteAIGoal(Objective10.Dclass_cpGoal2)
SetProperty("rep_450_end", "Team", 4)
SetProperty("rep_450", "Team", 0)
end
Objective11= ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.9", popupText = "level.maf.c.9_popup"}
Dclass = TargetType:New{classname = "secret", killLimit = 20}
Objective11:AddTarget(Dclass)
Objective11.OnStart = function(self)
Objective11.Dclass_cpGoal1 = AddAIGoal(ATT, "Defend", 100, "secretcp2")
Objective11.Dclass_cpGoal2 = AddAIGoal(DEF, "Defend", 100, "secretcp2")
end
Objective11.OnComplete = function(self)
DeleteAIGoal(Objective11.Dclass_cpGoal1)
DeleteAIGoal(Objective11.Dclass_cpGoal2)
end
end
function BeginObjectivesTimer()
beginobjectivestimer = CreateTimer("beginobjectivestimer")
OnTimerElapse(BeginObjectives, beginobjectivestimer)
SetTimerValue(beginobjectivestimer, 3)
StartTimer(beginobjectivestimer)
end
function BeginObjectives()
objectiveSequence = MultiObjectiveContainer:New{delayVictoryTime = 5}
objectiveSequence:AddObjectiveSet(Objective1)
objectiveSequence:AddObjectiveSet(Objective2)
objectiveSequence:AddObjectiveSet(Objective3)
objectiveSequence:AddObjectiveSet(Objective4)
objectiveSequence:AddObjectiveSet(Objective5)
objectiveSequence:AddObjectiveSet(Objective6)
objectiveSequence:AddObjectiveSet(Objective7)
objectiveSequence:AddObjectiveSet(Objective8)
objectiveSequence:AddObjectiveSet(Objective9)
objectiveSequence:AddObjectiveSet(Objective10)
objectiveSequence:AddObjectiveSet(Objective11)
objectiveSequence:Start()
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(30)
SetMaxPlayerFlyHeight (30)
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
ReadDataFile("sound\\myg.lvl;myg1cw")
ReadDataFile("dc:SIDE\\tal.lvl",
"rep_talon")
ReadDataFile("dc:SIDE\\CIShag.lvl",
"cis_hover_HAG")
ReadDataFile("dc:SIDE\\rep.lvl",
"rep_inf_ep2_rifleman",
"rep_inf_ep2_rocketeer",
"rep_inf_ep2_engineer",
"rep_inf_ep2_sniper",
"rep_inf_ep2_officer",
"rep_inf_ep2_jettrooper",
"rep_inf_clone_commando",
"rep_hover_fightertank",
"rep_hero_varen")
ReadDataFile("SIDE\\rep.lvl",
"rep_inf_ep3_rifleman",
"rep_hover_fightertank",
"rep_fly_gunship_dome")
ReadDataFile("SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_marine",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_officer",
"cis_inf_droideka",
"cis_fly_gunship_dome",
"cis_hero_darthmaul",
"cis_hover_aat")
ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_laser",
"tur_bldg_tower")
SetupTeams{
rep = {
team = REP,
units = 1,
reinforcements = 5,
soldier = { "rep_talon",1, 1},
},
cis = {
team = CIS,
units = 50,
reinforcements = 150,
soldier = { "cis_inf_marine",9, 25},
assault = { "cis_inf_rocketeer",1, 4},
engineer = { "cis_inf_engineer",1, 4},
sniper = { "cis_inf_sniper",1, 4},
officer = {"cis_inf_officer",1, 4},
special = { "cis_inf_droideka",1, 4},
}
}
SetTeamName (3, "REP")
AddUnitClass (3, "rep_inf_ep2_rifleman", 9,30)
AddUnitClass (3, "rep_inf_ep2_rocketeer", 2,6)
AddUnitClass (3, "rep_inf_ep2_engineer", 2,10)
AddUnitClass (3, "rep_inf_ep2_sniper", 2,10)
AddUnitClass (3, "rep_inf_ep2_officer", 1,4)
AddUnitClass (3, "rep_inf_ep2_jettrooper", 2,6)
AddUnitClass (3, "rep_inf_clone_commando", 4,4)
SetUnitCount (3, 30)
AddAIGoal(3, "Deathmatch", 100)
SetTeamName (4, "REP")
AddUnitClass (4, "rep_inf_ep3_rifleman", 9,20)
SetUnitCount (4, 20)
AddAIGoal(4, "Deathmatch", 100)
SetTeamName (5, "REP")
AddUnitClass (5, "rep_hero_varen", 1,1)
SetUnitCount (5, 1)
AddAIGoal(5, "Deathmatch", 100)
AddUnitClass(CIS, "cis_inf_droidcommander",1, 4)
AddUnitClass(CIS, "cis_inf_rifleman",1, 4)
SetTeamAsEnemy(DEF, 3)
SetTeamAsEnemy(3, DEF)
SetTeamAsEnemy(ATT, DEF)
SetTeamAsEnemy(DEF, ATT)
SetTeamAsFriend(3, AtT)
SetTeamAsFriend(ATT, 3)
SetTeamAsEnemy(DEF, 4)
SetTeamAsEnemy(4, DEF)
SetTeamAsFriend(4, ATT)
SetTeamAsFriend(ATT, 4)
SetTeamAsEnemy(DEF, 5)
SetTeamAsEnemy(5, DEF)
SetTeamAsFriend(5, ATT)
SetTeamAsFriend(ATT, 5)
SetTeamAsFriend(5, 4)
SetTeamAsFriend(4, 5)
SetTeamAsFriend(5, 3)
SetTeamAsFriend(3, 5)
SetTeamAsFriend(3, 4)
SetTeamAsFriend(4, 3)
-- Level Stats
-- ClearWalkers()
AddWalkerType(0, 4) -- special -> droidekas
AddWalkerType(1, 0) -- 1x2 (1 pair of legs)
AddWalkerType(2, 0) -- 2x2 (2 pairs of legs)
AddWalkerType(3, 0) -- 3x2 (3 pairs of legs)
local weaponCnt = 1024
SetMemoryPoolSize("Aimer", 75)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 1024)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize("EntityCloth", 32)
SetMemoryPoolSize("EntityFlyer", 32)
SetMemoryPoolSize("EntityHover", 32)
SetMemoryPoolSize("EntityLight", 200)
SetMemoryPoolSize("EntitySoundStream", 4)
SetMemoryPoolSize("EntitySoundStatic", 32)
SetMemoryPoolSize("MountedTurret", 32)
SetMemoryPoolSize("Navigator", 128)
SetMemoryPoolSize("Obstacle", 1024)
SetMemoryPoolSize("PathNode", 1024)
SetMemoryPoolSize("SoundSpaceRegion", 64)
SetMemoryPoolSize("TreeGridStack", 1024)
SetMemoryPoolSize("UnitAgent", 128)
SetMemoryPoolSize("UnitController", 128)
SetMemoryPoolSize("Weapon", weaponCnt)
SetSpawnDelay(10.0, 0.25)
--ReadDataFile("dc:MAF\\MAF.lvl", "MAF_con")
ReadDataFile("dc:MAF\\MAF.lvl", "MAF_eli")
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\\myg.lvl", "myg1")
OpenAudioStream("sound\\myg.lvl", "myg1")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")
-- OpenAudioStream("sound\\myg.lvl", "myg1_emt")
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_myg_amb_start", 0,1)
SetAmbientMusic(REP, 0.8, "rep_myg_amb_middle", 1,1)
SetAmbientMusic(REP, 0.2,"rep_myg_amb_end", 2,1)
SetAmbientMusic(CIS, 1.0, "cis_myg_amb_start", 0,1)
SetAmbientMusic(CIS, 0.8, "cis_myg_amb_middle", 1,1)
SetAmbientMusic(CIS, 0.2,"cis_myg_amb_end", 2,1)
SetVictoryMusic(REP, "rep_myg_amb_victory")
SetDefeatMusic (REP, "rep_myg_amb_defeat")
SetVictoryMusic(CIS, "cis_myg_amb_victory")
SetDefeatMusic (CIS, "cis_myg_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
AddCameraShot(0.908386, -0.209095, -0.352873, -0.081226, -45.922508, -19.114113, 77.022636);
AddCameraShot(-0.481173, 0.024248, -0.875181, -0.044103, 14.767292, -30.602322, -144.506851);
AddCameraShot(0.999914, -0.012495, -0.004416, -0.000055, 1.143253, -33.602314, -76.884430);
AddCameraShot(0.839161, 0.012048, -0.543698, 0.007806, 19.152437, -49.802273, 24.337317);
AddCameraShot(0.467324, 0.006709, -0.883972, 0.012691, 11.825212, -49.802273, -7.000720);
AddCameraShot(0.861797, 0.001786, -0.507253, 0.001051, -11.986043, -59.702248, 23.263165);
AddCameraShot(0.628546, -0.042609, -0.774831, -0.052525, 20.429928, -48.302277, 9.771714);
AddCameraShot(0.765213, -0.051873, 0.640215, 0.043400, 57.692474, -48.302277, 16.540724);
AddCameraShot(0.264032, -0.015285, -0.962782, -0.055734, -16.681797, -42.902290, 129.553268);
AddCameraShot(-0.382320, 0.022132, -0.922222, -0.053386, 20.670977, -42.902290, 135.513001);
end
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--
-- load the gametype script
ScriptCB_DoFile("MultiObjectiveContainer")
ScriptCB_DoFile("ObjectiveAssault")
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("ObjectiveGoto")
ScriptCB_DoFile("ObjectiveCTF")
ScriptCB_DoFile("ObjectiveTDM")
ScriptCB_DoFile("Ambush")
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()
SetAIDifficulty(0, 2, "hard")
AllowAISpawn(ATT, false)
AllowAISpawn(DEF, true)
EnableSPScriptedHeroes()
ScriptCB_SetGameRules("campaign")
onfirstspawn = OnCharacterSpawn(
function(character)
if character == 0 then
ShowPopup("level.geo1.hints.hints")
ReleaseCharacterSpawn(onfirstspawn)
onfirstspawn = nil
BeginObjectivesTimer()
ScriptCB_EnableCommandPostVO(0)
end
end)
SetProperty("cis1", "Team", 2)
SetProperty("cis2", "Team", 2)
SetProperty("sheild1", "CurHealth", 1000000)
SetProperty("sheild2", "CurHealth", 1000000)
SetProperty("sheild3", "CurHealth", 1000000)
SetProperty("sheild4", "CurHealth", 1000000)
SetProperty("sheild5", "CurHealth", 1000000)
SetProperty("gun1", "CurHealth", 1000000)
SetProperty("gun2", "CurHealth", 1000000)
SetProperty("gun3", "CurHealth", 1000000)
SetProperty("sheildg1", "CurHealth", 1000000)
SetClassProperty("rep_talon", "WeaponName3", "rep_weap_dc15se")
SetClassProperty("rep_talon", "WeaponAmmo3", 0)
--capture cis1
Objective1CP = CommandPost:New{name = "cis1"}
Objective1 = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF, text = "level.maf.c.1", popupText = "level.maf.c.1_popup", AIGoalWeight = 0}
Objective1:AddCommandPost(Objective1CP)
Objective1:AddHint("level.geo1.hints.capture_cp")
Objective1.OnStart = function(self)
AICanCaptureCP("cis1", ATT, false)
AICanCaptureCP("cis1", DEF, true)
att_obj1_aigoal = AddAIGoal(ATT, "Defend", 50, "cis1")
def_obj1_aigoal = AddAIGoal(DEF, "Defend", 50, "cis1")
att_obj1_aigoal2 = AddAIGoal(ATT, "Deathmatch", 100)
def_obj1_aigoal2 = AddAIGoal(DEF, "Deathmatch", 100)
end
Objective1.OnComplete = function(self)
ShowMessageText("game.objectives.complete", ATT)
DeleteAIGoal(att_obj1_aigoal)
DeleteAIGoal(att_obj1_aigoal2)
DeleteAIGoal(def_obj1_aigoal)
DeleteAIGoal(def_obj1_aigoal2)
SetProperty("cis1", "Team", 1)
SetProperty("cis1", "CaptureRegion", "")
SetProperty("rep_inv2", "Team", 3)
end
--get dc17m AA
Objective2 = ObjectiveGoto:New{TeamATT = ATT, TeamDEF = DEF,
text = "level.maf.c.2", popupText = "level.maf.c.2_popup",
regionName = "goto1", mapIcon = "hud_objective_icon_circle", AIGoalWeight = 0}
Objective2:AddHint("level.geo1.hints.movement")
Objective2:AddHint("level.geo1.hints.obj_markers")
Objective2:AddHint("level.geo1.hints.review_objectives")
Objective2:AddHint("level.geo1.hints.sprint")
Objective2.OnStart = function(self)
att_obj2_aigoal = AddAIGoal(ATT, "Deathmatch", 100)
def_obj2_aigoal = AddAIGoal(DEF, "Deathmatch", 100)
end
Objective2.OnComplete = function(self)
DeleteAIGoal(att_obj2_aigoal)
DeleteAIGoal(def_obj2_aigoal)
SetClassProperty("rep_talon", "WeaponName3", "rep_weap_dc17r")
SetClassProperty("rep_talon", "WeaponAmmo3", 4)
ShowMessageText("game.objectives.complete", ATT)
end
--blow up 3 HAGs
Objective3= ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.3", popupText = "level.maf.c.3_popup"}
Dclass = TargetType:New{classname = "cis_hover_HAG", killLimit = 2}
Objective3:AddTarget(Dclass)
Objective3.OnStart = function(self)
Objective3.Dclass_cpGoal1 = AddAIGoal(ATT, "Defend", 100, "cis_inv1")
Objective3.Dclass_cpGoal2 = AddAIGoal(DEF, "Defend", 100, "cis_inv1")
end
Objective3.OnComplete = function(self)
DeleteAIGoal(Objective3.Dclass_cpGoal1)
DeleteAIGoal(Objective3.Dclass_cpGoal2)
end
--capture cis2
Objective4CP = CommandPost:New{name = "cis2"}
Objective4 = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF, text = "level.maf.c.4", popupText = "level.maf.c.4_popup", AIGoalWeight = 0}
Objective4:AddCommandPost(Objective4CP)
Objective4:AddHint("level.geo1.hints.capture_cp")
Objective4.OnStart = function(self)
AICanCaptureCP("cis2", ATT, false)
AICanCaptureCP("cis2", DEF, true)
att_obj4_aigoal = AddAIGoal(ATT, "Defend", 50, "cis2")
def_obj4_aigoal = AddAIGoal(DEF, "Defend", 50, "cis2")
att_obj4_aigoal2 = AddAIGoal(ATT, "Deathmatch", 100)
def_obj4_aigoal2 = AddAIGoal(DEF, "Deathmatch", 100)
end
Objective4.OnComplete = function(self)
ShowMessageText("game.objectives.complete", ATT)
DeleteAIGoal(att_obj4_aigoal)
DeleteAIGoal(att_obj4_aigoal2)
DeleteAIGoal(def_obj4_aigoal)
DeleteAIGoal(def_obj4_aigoal2)
SetProperty("cis2", "Team", 1)
SetProperty("cis2", "CaptureRegion", "")
SetProperty("rep_inv3", "Team", 3)
end
--go to sheilds
Objective5 = ObjectiveGoto:New{TeamATT = ATT, TeamDEF = DEF,
text = "level.maf.c.5", popupText = "level.maf.c.5_popup",
regionName = "goto2", mapIcon = "hud_objective_icon_circle", AIGoalWeight = 0}
Objective5:AddHint("level.geo1.hints.movement")
Objective5:AddHint("level.geo1.hints.obj_markers")
Objective5:AddHint("level.geo1.hints.review_objectives")
Objective5:AddHint("level.geo1.hints.sprint")
Objective5.OnStart = function(self)
att_obj5_aigoal = AddAIGoal(ATT, "Deathmatch", 100)
def_obj5_aigoal = AddAIGoal(DEF, "Deathmatch", 100)
end
Objective5.OnComplete = function(self)
DeleteAIGoal(att_obj5_aigoal)
DeleteAIGoal(def_obj5_aigoal)
ShowMessageText("game.objectives.complete", ATT)
SetProperty("sheildg1", "CurHealth", 1000)
end
--destroy sheild generator
Dobjekt = Target:New{name = "sheildg1"}
Dobjekt.OnDestroy = function(self)
end
Objective6 = ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.6", popupText = "level.maf.c.6_popup"}
Objective6:AddTarget(Dobjekt)
Objective6.OnStart = function(self)
end
Objective6.OnComplete = function(self)
ShowMessageText("game.objectives.complete", ATT)
SetProperty("gun1", "CurHealth", 1000)
SetProperty("gun2", "CurHealth", 1000)
SetProperty("gun3", "CurHealth", 1000)
end
--destroy power generator1
Dobjekt = Target:New{name = "gun1"}
Dobjekt.OnDestroy = function(self)
end
Objective7 = ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.7", popupText = "level.maf.c.7_popup"}
Objective7:AddTarget(Dobjekt)
Objective7.OnStart = function(self)
end
Objective7.OnComplete = function(self)
ShowMessageText("game.objectives.complete", ATT)
end
--destroy generator 2
Dobjekt = Target:New{name = "gun2"}
Dobjekt.OnDestroy = function(self)
end
Objective8 = ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.7", popupText = "level.maf.c.7_popup"}
Objective8:AddTarget(Dobjekt)
Objective8.OnStart = function(self)
end
Objective8.OnComplete = function(self)
ShowMessageText("game.objectives.complete", ATT)
end
--destroy generator 3
Dobjekt = Target:New{name = "gun3"}
Dobjekt.OnDestroy = function(self)
end
Objective9 = ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.7", popupText = "level.maf.c.7_popup"}
Objective9:AddTarget(Dobjekt)
Objective9.OnStart = function(self)
end
Objective9.OnComplete = function(self)
ShowMessageText("game.objectives.complete", ATT)
SetProperty("rep_inv3", "Team", 5)
SetTeamAsEnemy(leg, var)
SetTeamAsEnemy(var, leg)
end
\
Objective10= ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.8", popupText = "level.maf.c.8__popup"}
Dclass = TargetType:New{classname = "secret", killLimit = 1}
Objective10:AddTarget(Dclass)
Objective10.OnStart = function(self)
Objective10.Dclass_cpGoal1 = AddAIGoal(ATT, "Defend", 100, "secret_cp")
Objective10.Dclass_cpGoal2 = AddAIGoal(DEF, "Defend", 100, "secret_cp")
end
Objective10.OnComplete = function(self)
DeleteAIGoal(Objective10.Dclass_cpGoal1)
DeleteAIGoal(Objective10.Dclass_cpGoal2)
SetProperty("rep_450_end", "Team", 4)
SetProperty("rep_450", "Team", 0)
end
Objective11= ObjectiveAssault:New{teamATT = ATT, teamDEF = DEF,
text = "level.maf.c.9", popupText = "level.maf.c.9_popup"}
Dclass = TargetType:New{classname = "secret", killLimit = 20}
Objective11:AddTarget(Dclass)
Objective11.OnStart = function(self)
Objective11.Dclass_cpGoal1 = AddAIGoal(ATT, "Defend", 100, "secretcp2")
Objective11.Dclass_cpGoal2 = AddAIGoal(DEF, "Defend", 100, "secretcp2")
end
Objective11.OnComplete = function(self)
DeleteAIGoal(Objective11.Dclass_cpGoal1)
DeleteAIGoal(Objective11.Dclass_cpGoal2)
end
end
function BeginObjectivesTimer()
beginobjectivestimer = CreateTimer("beginobjectivestimer")
OnTimerElapse(BeginObjectives, beginobjectivestimer)
SetTimerValue(beginobjectivestimer, 3)
StartTimer(beginobjectivestimer)
end
function BeginObjectives()
objectiveSequence = MultiObjectiveContainer:New{delayVictoryTime = 5}
objectiveSequence:AddObjectiveSet(Objective1)
objectiveSequence:AddObjectiveSet(Objective2)
objectiveSequence:AddObjectiveSet(Objective3)
objectiveSequence:AddObjectiveSet(Objective4)
objectiveSequence:AddObjectiveSet(Objective5)
objectiveSequence:AddObjectiveSet(Objective6)
objectiveSequence:AddObjectiveSet(Objective7)
objectiveSequence:AddObjectiveSet(Objective8)
objectiveSequence:AddObjectiveSet(Objective9)
objectiveSequence:AddObjectiveSet(Objective10)
objectiveSequence:AddObjectiveSet(Objective11)
objectiveSequence:Start()
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(30)
SetMaxPlayerFlyHeight (30)
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
ReadDataFile("sound\\myg.lvl;myg1cw")
ReadDataFile("dc:SIDE\\tal.lvl",
"rep_talon")
ReadDataFile("dc:SIDE\\CIShag.lvl",
"cis_hover_HAG")
ReadDataFile("dc:SIDE\\rep.lvl",
"rep_inf_ep2_rifleman",
"rep_inf_ep2_rocketeer",
"rep_inf_ep2_engineer",
"rep_inf_ep2_sniper",
"rep_inf_ep2_officer",
"rep_inf_ep2_jettrooper",
"rep_inf_clone_commando",
"rep_hover_fightertank",
"rep_hero_varen")
ReadDataFile("SIDE\\rep.lvl",
"rep_inf_ep3_rifleman",
"rep_hover_fightertank",
"rep_fly_gunship_dome")
ReadDataFile("SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_marine",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_officer",
"cis_inf_droideka",
"cis_fly_gunship_dome",
"cis_hero_darthmaul",
"cis_hover_aat")
ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_laser",
"tur_bldg_tower")
SetupTeams{
rep = {
team = REP,
units = 1,
reinforcements = 5,
soldier = { "rep_talon",1, 1},
},
cis = {
team = CIS,
units = 50,
reinforcements = 150,
soldier = { "cis_inf_marine",9, 25},
assault = { "cis_inf_rocketeer",1, 4},
engineer = { "cis_inf_engineer",1, 4},
sniper = { "cis_inf_sniper",1, 4},
officer = {"cis_inf_officer",1, 4},
special = { "cis_inf_droideka",1, 4},
}
}
SetTeamName (3, "REP")
AddUnitClass (3, "rep_inf_ep2_rifleman", 9,30)
AddUnitClass (3, "rep_inf_ep2_rocketeer", 2,6)
AddUnitClass (3, "rep_inf_ep2_engineer", 2,10)
AddUnitClass (3, "rep_inf_ep2_sniper", 2,10)
AddUnitClass (3, "rep_inf_ep2_officer", 1,4)
AddUnitClass (3, "rep_inf_ep2_jettrooper", 2,6)
AddUnitClass (3, "rep_inf_clone_commando", 4,4)
SetUnitCount (3, 30)
AddAIGoal(3, "Deathmatch", 100)
SetTeamName (4, "REP")
AddUnitClass (4, "rep_inf_ep3_rifleman", 9,20)
SetUnitCount (4, 20)
AddAIGoal(4, "Deathmatch", 100)
SetTeamName (5, "REP")
AddUnitClass (5, "rep_hero_varen", 1,1)
SetUnitCount (5, 1)
AddAIGoal(5, "Deathmatch", 100)
AddUnitClass(CIS, "cis_inf_droidcommander",1, 4)
AddUnitClass(CIS, "cis_inf_rifleman",1, 4)
SetTeamAsEnemy(DEF, 3)
SetTeamAsEnemy(3, DEF)
SetTeamAsEnemy(ATT, DEF)
SetTeamAsEnemy(DEF, ATT)
SetTeamAsFriend(3, AtT)
SetTeamAsFriend(ATT, 3)
SetTeamAsEnemy(DEF, 4)
SetTeamAsEnemy(4, DEF)
SetTeamAsFriend(4, ATT)
SetTeamAsFriend(ATT, 4)
SetTeamAsEnemy(DEF, 5)
SetTeamAsEnemy(5, DEF)
SetTeamAsFriend(5, ATT)
SetTeamAsFriend(ATT, 5)
SetTeamAsFriend(5, 4)
SetTeamAsFriend(4, 5)
SetTeamAsFriend(5, 3)
SetTeamAsFriend(3, 5)
SetTeamAsFriend(3, 4)
SetTeamAsFriend(4, 3)
-- Level Stats
-- ClearWalkers()
AddWalkerType(0, 4) -- special -> droidekas
AddWalkerType(1, 0) -- 1x2 (1 pair of legs)
AddWalkerType(2, 0) -- 2x2 (2 pairs of legs)
AddWalkerType(3, 0) -- 3x2 (3 pairs of legs)
local weaponCnt = 1024
SetMemoryPoolSize("Aimer", 75)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 1024)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize("EntityCloth", 32)
SetMemoryPoolSize("EntityFlyer", 32)
SetMemoryPoolSize("EntityHover", 32)
SetMemoryPoolSize("EntityLight", 200)
SetMemoryPoolSize("EntitySoundStream", 4)
SetMemoryPoolSize("EntitySoundStatic", 32)
SetMemoryPoolSize("MountedTurret", 32)
SetMemoryPoolSize("Navigator", 128)
SetMemoryPoolSize("Obstacle", 1024)
SetMemoryPoolSize("PathNode", 1024)
SetMemoryPoolSize("SoundSpaceRegion", 64)
SetMemoryPoolSize("TreeGridStack", 1024)
SetMemoryPoolSize("UnitAgent", 128)
SetMemoryPoolSize("UnitController", 128)
SetMemoryPoolSize("Weapon", weaponCnt)
SetSpawnDelay(10.0, 0.25)
--ReadDataFile("dc:MAF\\MAF.lvl", "MAF_con")
ReadDataFile("dc:MAF\\MAF.lvl", "MAF_eli")
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\\myg.lvl", "myg1")
OpenAudioStream("sound\\myg.lvl", "myg1")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")
-- OpenAudioStream("sound\\myg.lvl", "myg1_emt")
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_myg_amb_start", 0,1)
SetAmbientMusic(REP, 0.8, "rep_myg_amb_middle", 1,1)
SetAmbientMusic(REP, 0.2,"rep_myg_amb_end", 2,1)
SetAmbientMusic(CIS, 1.0, "cis_myg_amb_start", 0,1)
SetAmbientMusic(CIS, 0.8, "cis_myg_amb_middle", 1,1)
SetAmbientMusic(CIS, 0.2,"cis_myg_amb_end", 2,1)
SetVictoryMusic(REP, "rep_myg_amb_victory")
SetDefeatMusic (REP, "rep_myg_amb_defeat")
SetVictoryMusic(CIS, "cis_myg_amb_victory")
SetDefeatMusic (CIS, "cis_myg_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
AddCameraShot(0.908386, -0.209095, -0.352873, -0.081226, -45.922508, -19.114113, 77.022636);
AddCameraShot(-0.481173, 0.024248, -0.875181, -0.044103, 14.767292, -30.602322, -144.506851);
AddCameraShot(0.999914, -0.012495, -0.004416, -0.000055, 1.143253, -33.602314, -76.884430);
AddCameraShot(0.839161, 0.012048, -0.543698, 0.007806, 19.152437, -49.802273, 24.337317);
AddCameraShot(0.467324, 0.006709, -0.883972, 0.012691, 11.825212, -49.802273, -7.000720);
AddCameraShot(0.861797, 0.001786, -0.507253, 0.001051, -11.986043, -59.702248, 23.263165);
AddCameraShot(0.628546, -0.042609, -0.774831, -0.052525, 20.429928, -48.302277, 9.771714);
AddCameraShot(0.765213, -0.051873, 0.640215, 0.043400, 57.692474, -48.302277, 16.540724);
AddCameraShot(0.264032, -0.015285, -0.962782, -0.055734, -16.681797, -42.902290, 129.553268);
AddCameraShot(-0.382320, 0.022132, -0.922222, -0.053386, 20.670977, -42.902290, 135.513001);
end






