From be90903595cc49c74cf34ac7182f6c18cf4437b6 Mon Sep 17 00:00:00 2001 From: ChocoTaco Date: Tue, 24 Jul 2018 00:18:42 -0400 Subject: [PATCH] Some work on LCTF --- SCtF/DeleteObjects.cs | 10 +++-- SCtFGame.cs | 63 +++++++++++++++++++++++++---- prefs/evo_mapRotation.cs | 86 ++++++++++++++++++++-------------------- 3 files changed, 106 insertions(+), 53 deletions(-) diff --git a/SCtF/DeleteObjects.cs b/SCtF/DeleteObjects.cs index 2e997d4..4a94f20 100644 --- a/SCtF/DeleteObjects.cs +++ b/SCtF/DeleteObjects.cs @@ -41,6 +41,7 @@ function deleteObjectsFromMapByType(%type) return; } + deleteObjectsFromGroupByType(%team1Base0Group, %type); deleteObjectsFromGroupByType(%team2Base0Group, %type); } @@ -76,13 +77,14 @@ function deleteObjectsFromGroupByType(%group, %type) } function deleteNonSCtFObjectsFromMap() -{ +{ + deleteObjectsFromGroupByType(MissionGroup, "PhysicalZone"); deleteObjectsFromGroupByType(MissionGroup, "Turret"); deleteObjectsFromGroupByType(MissionGroup, "StaticShape"); - deleteObjectsFromGroupByType(MissionGroup, "TSStatic"); - // deleteObjectsFromGroupByType(MissionGroup, "ForceFieldBare"); + //deleteObjectsFromGroupByType(MissionGroup, "ForceFieldBare"); deleteObjectsFromGroupByType(MissionGroup, "FlyingVehicle"); deleteObjectsFromGroupByType(MissionGroup, "WheeledVehicle"); + deleteObjectsFromGroupByType(MissionGroup, "HoverVehicle"); deleteObjectsFromGroupByType(MissionGroup, "Waypoint"); + } - diff --git a/SCtFGame.cs b/SCtFGame.cs index 98a087f..87f8b4a 100644 --- a/SCtFGame.cs +++ b/SCtFGame.cs @@ -304,7 +304,59 @@ package SCtFGame function SCtFGame::missionLoadDone(%game) { //default version sets up teams - must be called first... - DefaultGame::missionLoadDone(%game); + %game.initGameVars(); //set up scoring variables and other game specific globals + + // make team0 visible/friendly to all + setSensorGroupAlwaysVisMask(0, 0xffffffff); + setSensorGroupFriendlyMask(0, 0xffffffff); + + // update colors: + // - enemy teams are red + // - same team is green + // - team 0 is white + for(%i = 0; %i < 32; %i++) + { + %team = (1 << %i); + setSensorGroupColor(%i, %team, "0 255 0 255"); + setSensorGroupColor(%i, ~%team, "255 0 0 255"); + setSensorGroupColor(%i, 1, "255 255 255 255"); + + // setup the team targets (alwyas friendly and visible to same team) + setTargetAlwaysVisMask(%i, %team); + setTargetFriendlyMask(%i, %team); + } + + //set up the teams + %game.setUpTeams(); + + //clear out the team rank array... + for (%i = 0; %i < 32; %i++) + $TeamRank[%i, count] = ""; + + // objectiveInit has to take place after setupTeams -- objective HUD relies on flags + // having their team set + MissionGroup.objectiveInit(); + + //initialize the AI system + %game.aiInit(); + + //need to reset the teams if we switch from say, CTF to Bounty... + // assign the bots team + if ($currentMissionType !$= $previousMissionType) + { + $previousMissionType = $currentMissionType; + for(%i = 0; %i < ClientGroup.getCount(); %i++) + { + %cl = ClientGroup.getObject(%i); + if (%cl.isAIControlled()) + %game.assignClientTeam(%cl); + } + } + + //Save off respawn or Siege Team switch information... + if(%game.class !$= "SiegeGame") + MissionGroup.setupPositionMarkers(true); + echo("Default game mission load done."); for(%i = 1; %i < (%game.numTeams + 1); %i++) $teamScore[%i] = 0; @@ -319,6 +371,8 @@ function SCtFGame::missionLoadDone(%game) echo( "starting camp thread..." ); %game.campThread_1 = schedule( 1000, 0, "checkVehicleCamping", 1 ); %game.campThread_2 = schedule( 1000, 0, "checkVehicleCamping", 2 ); + + deleteNonSCtFObjectsFromMap(); } function SCtFGame::clientMissionDropReady(%game, %client) @@ -1989,9 +2043,4 @@ function SCtFGame::startFlagCollisionSearch(%game, %flag) // } //} -function SCtFGame::missionLoadDone(%game) -{ - DefaultGame::missionLoadDone(%game); - deleteNonSCtFObjectsFromMap(); - $InvincibleTime = 5 + $Duel_StartInvincibleTime / 1000; -} + diff --git a/prefs/evo_mapRotation.cs b/prefs/evo_mapRotation.cs index 63e0fd9..d802d9d 100644 --- a/prefs/evo_mapRotation.cs +++ b/prefs/evo_mapRotation.cs @@ -31,12 +31,12 @@ addRotationMap("SmallCrossing", CTF, 1, 1); addRotationMap("HighOctane", CTF, 1, 1); -addRotationMap("TWL2_JaggedClaw", CTF, 1, 1); +addRotationMap("TWL2_CanyonCrusadeDeluxe", CTF, 1, 1); addRotationMap("S5_Mordacity", CTF, 1, 1); addRotationMap("RoundTheMountain", CTF, 1, 1); addRotationMap("S5_Damnation", CTF, 1, 1); +addRotationMap("TWL2_JaggedClaw", CTF, 1, 1); addRotationMap("S5_Massive", CTF, 1, 1); -addRotationMap("TWL2_CanyonCrusadeDeluxe", CTF, 1, 1); addRotationMap("TWL_Stonehenge", CTF, 1, 1); addRotationMap("TWL_Feign", CTF, 1, 1); addRotationMap("TheFray", CTF, 1, 1); @@ -292,60 +292,79 @@ addRotationMap("Tombstone", Duel, 1, 1); // * SpawnCTF Maps * // ************************ -addRotationMap("BeggarsRun", sctf, 0, 0); +addRotationMap("BastardForgeLT", sctf, 1, 1); +addRotationMap("FirestormLT", sctf, 1, 1); +addRotationMap("DangerousCrossing_nef", sctf, 1, 1); +addRotationMap("SmallCrossingLT", sctf, 1, 1); +addRotationMap("RoundTheMountain", sctf, 1, 1); +addRotationMap("CirclesEdge", sctf, 1, 1); +addRotationMap("HighOctane", sctf, 1, 1); +addRotationMap("JadeValley", sctf, 1, 1); +addRotationMap("TenebrousCTF", sctf, 1, 1); +addRotationMap("TheFray", sctf, 1, 1); +addRotationMap("S5_DamnationLT", sctf, 1, 1); +addRotationMap("S5_Icedance", sctf, 1, 1); +addRotationMap("S5_Mordacity", sctf, 1, 1); +addRotationMap("S5_Silenus", sctf, 1, 1); +addRotationMap("TWL2_CanyonCrusadeDeluxeLT", sctf, 1, 1); +addRotationMap("TWL2_FrozenHopeLT", sctf, 1, 1); +addRotationMap("TWL2_HildebrandLT", sctf, 1, 1); +addRotationMap("TWL2_SkylightLT", sctf, 1, 1); +addRotationMap("TWL_BeachBlitz", sctf, 1, 1); +addRotationMap("TWL_DangerousCrossing", sctf, 1, 1); +addRotationMap("TWL_Feign", sctf, 1, 1); +addRotationMap("TWL_RollercoasterLT", sctf, 1, 1); +addRotationMap("TWL_StonehengeLT", sctf, 1, 1); +addRotationMap("TWL_WilderZoneLT", sctf, 1, 1); +addRotationMap("oasisintensity", sctf, 1, 1); +addRotationMap("berlard", sctf, 1, 1); +addRotationMap("DuelersDelight", sctf, 1, 1); +addRotationMap("SuperHappyBouncyFunTime", sctf, 1, 0); +addRotationMap("SmallTimeCTF", sctf, 1, 1); +addRotationMap("Pariah", sctf, 1, 1); +addRotationMap("SmallMelee", sctf, 1, 1); +addRotationMap("ArenaDome", sctf, 1, 1); +addRotationMap("Bulwark", sctf, 1, 1); +addRotationMap("Discord", sctf, 1, 1); +addRotationMap("TitForTat", sctf, 1, 1); +addRotationMap("CloseCombatLT", sctf, 1, 1); +addRotationMap("BeggarsRunLT", sctf, 0, 0); addRotationMap("Damnation", sctf, 0, 0); addRotationMap("DustToDust", sctf, 0, 0); -addRotationMap("Firestorm", sctf, 1, 1); addRotationMap("Minotaur", sctf, 0, 0); -addRotationMap("DangerousCrossing_nef", sctf, 1, 1); addRotationMap("DesertofDeath_nef", sctf, 0, 0); addRotationMap("Gorgon", sctf, 0, 0); addRotationMap("Titan", sctf, 0, 0); -addRotationMap("SmallCrossing", sctf, 1, 1); addRotationMap("Signal", sctf, 0, 0); addRotationMap("Mac_FlagArena", sctf, 0, 0); -addRotationMap("RoundTheMountain", sctf, 1, 1); addRotationMap("Extractor", sctf, 0, 0); addRotationMap("AstersDescent", sctf, 0, 0); addRotationMap("Azoth", sctf, 0, 0); -addRotationMap("CirclesEdge", sctf, 1, 1); addRotationMap("DustLust", sctf, 0, 0); -addRotationMap("HighOctane", sctf, 1, 1); -addRotationMap("Island", sctf, 1, 1); addRotationMap("Dire", sctf, 0, 0); addRotationMap("Disjointed", sctf, 0, 0); addRotationMap("Headstone", sctf, 0, 0); -addRotationMap("JadeValley", sctf, 1, 1); addRotationMap("Mirage", sctf, 0, 0); addRotationMap("Peak", sctf, 0, 0); addRotationMap("Snowcone", sctf, 0, 0); -addRotationMap("TenebrousCTF", sctf, 1, 1); -addRotationMap("TheFray", sctf, 1, 1); addRotationMap("S5_Centaur", sctf, 0, 0); -addRotationMap("S5_Damnation", sctf, 1, 1); addRotationMap("S5_Drache", sctf, 0, 0); addRotationMap("S5_HawkingHeat", sctf, 0, 0); -addRotationMap("S5_Icedance", sctf, 1, 1); addRotationMap("S5_Massive", sctf, 0, 0); addRotationMap("S5_Mimicry", sctf, 0, 0); addRotationMap("S5_Misadventure", sctf, 0, 0); -addRotationMap("S5_Mordacity", sctf, 1, 1); addRotationMap("S5_Reynard", sctf, 0, 0); addRotationMap("S5_Sherman", sctf, 0, 0); -addRotationMap("S5_Silenus", sctf, 1, 1); addRotationMap("S5_Woodymyrk", sctf, 0, 0); addRotationMap("S8_Cardiac", sctf, 0, 0); addRotationMap("S8_Geothermal", sctf, 0, 0); addRotationMap("S8_Opus", sctf, 0, 0); addRotationMap("S8_Zilch", sctf, 0, 0); -addRotationMap("TWL2_CanyonCrusadeDeluxe", sctf, 1, 1); addRotationMap("TWL2_Celerity", sctf, 0, 0); addRotationMap("TWL2_Crevice", sctf, 0, 0); addRotationMap("TWL2_Drifts", sctf, 0, 0); addRotationMap("TWL2_Drorck", sctf, 0, 0); addRotationMap("TWL2_FrozenGlory", sctf, 0, 0); -addRotationMap("TWL2_FrozenHope", sctf, 1, 1); -addRotationMap("TWL2_Hildebrand", sctf, 1, 1); addRotationMap("TWL2_IceDagger", sctf, 0, 0); addRotationMap("TWL2_JaggedClaw", sctf, 0, 0); addRotationMap("TWL2_MidnightMayhemDeluxe", sctf, 0, 0); @@ -354,9 +373,7 @@ addRotationMap("TWL2_Norty", sctf, 0, 0); addRotationMap("TWL2_Ocular", sctf, 0, 0); addRotationMap("TWL2_RoughLand", sctf, 0, 0); addRotationMap("TWL2_Ruined", sctf, 0, 0); -addRotationMap("TWL2_Skylight", sctf, 1, 1); addRotationMap("TWL_BaNsHee", sctf, 0, 0); -addRotationMap("TWL_BeachBlitz", sctf, 1, 1); addRotationMap("TWL_Boss", sctf, 0, 0); addRotationMap("TWL_Cinereous", sctf, 0, 0); addRotationMap("TWL_Crossfire", sctf, 0, 0); @@ -365,39 +382,24 @@ addRotationMap("TWL_OsIris", sctf, 0, 0); addRotationMap("TWL_Clusterfuct", sctf, 0, 0); addRotationMap("TWL_Curtilage", sctf, 0, 0); addRotationMap("TWL_Damnation", sctf, 0, 0); -addRotationMap("TWL_DangerousCrossing", sctf, 1, 1); addRotationMap("TWL_DeadlyBirdsSong", sctf, 0, 0); addRotationMap("TWL_Deserted", sctf, 0, 0); -addRotationMap("TWL_Feign", sctf, 1, 1); addRotationMap("TWL_Frostclaw", sctf, 0, 0); addRotationMap("TWL_Magamatic", sctf, 0, 0); addRotationMap("TWL_Neve", sctf, 0, 0); addRotationMap("TWL_Pandemonium", sctf, 0, 0); addRotationMap("TWL_Ramparts", sctf, 0, 0); -addRotationMap("TWL_Stonehenge", sctf, 1, 1); addRotationMap("TWL_Titan", sctf, 0, 0); -addRotationMap("TWL_WilderZone", sctf, 1, 1); -addRotationMap("oasisintensity", sctf, 1, 1); addRotationMap("DehSwamp", sctf, 0, 0); -addRotationMap("TWL_Rollercoaster", sctf, 0, 0); -addRotationMap("berlard", sctf, 1, 1); addRotationMap("HostileLoch", sctf, 0, 0); addRotationMap("DevilsElbow", sctf, 0, 0); -addRotationMap("DuelersDelight", sctf, 1, 1); -addRotationMap("SuperHappyBouncyFunTime", sctf, 1, 0); addRotationMap("Camelland", sctf, 0, 0); -addRotationMap("SmallTimeCTF", sctf, 1, 1); -addRotationMap("Pariah", sctf, 1, 1); addRotationMap("SmallDesertofDeath", sctf, 0, 0); -addRotationMap("SmallMelee", sctf, 1, 1); addRotationMap("ShortFall", sctf, 0, 0); -addRotationMap("ArenaDome", sctf, 1, 1); -addRotationMap("Bulwark", sctf, 1, 1); -addRotationMap("Discord", sctf, 1, 1); addRotationMap("Fallout", sctf, 0, 0); addRotationMap("SoylentGreen", sctf, 0, 0); -addRotationMap("TitForTat", sctf, 1, 1); -addRotationMap("CloseCombat", sctf, 1, 1); +addRotationMap("Island", sctf, 0, 0); + @@ -405,7 +407,7 @@ addRotationMap("CloseCombat", sctf, 1, 1); // * Siege Maps * // ************************ -//addRotationMap("Isleofman", siege, 1, 1); -//addRotationMap("Trident", siege, 1, 1); -//addRotationMap("Alcatraz", siege, 1, 1); +addRotationMap("Isleofman", siege, 1, 1); +addRotationMap("Trident", siege, 1, 1); +addRotationMap("Alcatraz", siege, 1, 1);