From d7d1468a2ef31129a55eafba4d25b4fe9c7b366e Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Fri, 12 Dec 2025 17:43:06 +0100 Subject: [PATCH 01/17] Change default formation of combined campaign platoons AttackFormation - the wide one is desirable in most of the cases --- lua/aibrains/campaign-ai.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/aibrains/campaign-ai.lua b/lua/aibrains/campaign-ai.lua index a8ac30dad5..60d7259814 100644 --- a/lua/aibrains/campaign-ai.lua +++ b/lua/aibrains/campaign-ai.lua @@ -1711,7 +1711,7 @@ AIBrain = Class(StandardBrain) { for k, platoon in platoonList do for j, type in squadTypes do local squadUnits = platoon:GetSquadUnits(type) - local formation = 'GrowthFormation' + local formation = 'AttackFormation' if squadUnits then self:AssignUnitsToPlatoon(returnPlatoon, squadUnits, type, formation) end From 61b2a4796799fa50104b3683244bc4f0ddb6fecb Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Fri, 12 Dec 2025 17:43:37 +0100 Subject: [PATCH 02/17] Add camera move to area function --- lua/cinematics.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lua/cinematics.lua b/lua/cinematics.lua index d8c60b2242..d37e3dad09 100644 --- a/lua/cinematics.lua +++ b/lua/cinematics.lua @@ -121,6 +121,14 @@ function CameraMoveToRectangle(rectangle, seconds) end end +--- This will move the camera to an area +---@param area string +---@param seconds? number +function CameraMoveToArea(area, seconds) + local rectangle = ScenarioUtils.AreaToRect(area) + CameraMoveToRectangle(rectangle, seconds) +end + --- See track entities ---@param entity Unit ---@param zoom number From daf9fe620c8a0fdb079b6d835268ea35cd62aaaa Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Fri, 12 Dec 2025 17:44:40 +0100 Subject: [PATCH 03/17] Fix wrong field in attack manager conditions Long time ago AttackManager got split from the AiBrain, some fields go renamed, but this one was forgotten. --- lua/editor/PlatoonCountBuildConditions.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lua/editor/PlatoonCountBuildConditions.lua b/lua/editor/PlatoonCountBuildConditions.lua index 876e9fb0b2..3bcfc70bc8 100644 --- a/lua/editor/PlatoonCountBuildConditions.lua +++ b/lua/editor/PlatoonCountBuildConditions.lua @@ -14,7 +14,7 @@ ---@param varName string ---@return boolean function AMPlatoonsGreaterOrEqualVarTable(aiBrain, name, varName) - local counter = aiBrain.AttackData.AMPlatoonCount[name] or 0 + local counter = aiBrain.AttackData.PlatoonCount[name] or 0 local num = ScenarioInfo.VarTable[varName] if not num then @@ -29,7 +29,7 @@ end ---@param varName string ---@return boolean function AMPlatoonsLessThanVarTable(aiBrain, name, varName) - local counter = aiBrain.AttackData.AMPlatoonCount[name] or 0 + local counter = aiBrain.AttackData.PlatoonCount[name] or 0 local num = ScenarioInfo.VarTable[varName] if not num then @@ -96,7 +96,7 @@ end ---@param num number ---@return boolean function NumGreaterOrEqualAMPlatoons(aiBrain, name, num) - return (aiBrain.AttackData.AMPlatoonCount[name] or 0) >= num + return (aiBrain.AttackData.PlatoonCount[name] or 0) >= num end ---@param aiBrain AIBrain @@ -104,7 +104,7 @@ end ---@param num number ---@return boolean function NumGreaterAMPlatoons(aiBrain, name, num) - return (aiBrain.AttackData.AMPlatoonCount[name] or 0) > num + return (aiBrain.AttackData.PlatoonCount[name] or 0) > num end ---@param aiBrain AIBrain @@ -112,7 +112,7 @@ end ---@param num number ---@return boolean function NumLessOrEqualAMPlatoons(aiBrain, name, num) - return (aiBrain.AttackData.AMPlatoonCount[name] or 0) <= num + return (aiBrain.AttackData.PlatoonCount[name] or 0) <= num end ---@param aiBrain AIBrain @@ -120,7 +120,7 @@ end ---@param num number ---@return boolean function NumLessAMPlatoons(aiBrain, name, num) - return (aiBrain.AttackData.AMPlatoonCount[name] or 0) < num + return (aiBrain.AttackData.PlatoonCount[name] or 0) < num end ---@param aiBrain AIBrain From 6b428a58d25e88597ff9d0a31fb73d6162963651 Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Fri, 12 Dec 2025 17:45:00 +0100 Subject: [PATCH 04/17] Improve campaign related annotations --- engine/Sim.lua | 3 +- engine/Sim/CAiBrain.lua | 6 +-- engine/Sim/Unit.lua | 1 + lua/AI/OpAI/BaseManager.lua | 56 +++++++++++++---------- lua/aibrain.lua | 1 - lua/aibrains/campaign-ai.lua | 4 +- lua/editor/BaseManagerBuildConditions.lua | 44 +++++++++--------- lua/platoon.lua | 18 ++++---- lua/scenariotriggers.lua | 4 +- lua/sim/Unit.lua | 4 +- lua/system/utils.lua | 6 +-- 11 files changed, 79 insertions(+), 68 deletions(-) diff --git a/engine/Sim.lua b/engine/Sim.lua index db1d07e6ae..796938b90b 100644 --- a/engine/Sim.lua +++ b/engine/Sim.lua @@ -855,11 +855,12 @@ function IssueFormMove(units, position, formation, degrees) end --- Orders a group of units to patrol to a position in formation +--- +--- Does NOT return `SimCommand` --- @param units Unit[] --- @param position Vector --- @param formation UnitFormations # Unit formation to use as defined in `formations.lua` --- @param degrees number # Orientation the platoon takes when it reaches the position. South is 0 degrees, east is 90 degrees, etc. ---- @return SimCommand function IssueFormPatrol(units, position, formation, degrees) end diff --git a/engine/Sim/CAiBrain.lua b/engine/Sim/CAiBrain.lua index 9781b152ce..c64daef2ed 100644 --- a/engine/Sim/CAiBrain.lua +++ b/engine/Sim/CAiBrain.lua @@ -58,9 +58,9 @@ end --- Filteres factories that can build the platoon and returns them. -- Usually passed table with only one factory as AI picks the highest tech factory as a primary and others are assisting. ----@param template table # Platoon's template. ----@param factories table # containing units-factories. ----@return table tblUnits # containing units-factories. +---@param template PlatoonTemplate # Platoon's template. +---@param factories FactoryUnit[] # containing units-factories. +---@return FactoryUnit[] tblUnits # containing units-factories. function CAiBrain:CanBuildPlatoon(template, factories) end diff --git a/engine/Sim/Unit.lua b/engine/Sim/Unit.lua index 6a6480994f..1db26bbf4d 100644 --- a/engine/Sim/Unit.lua +++ b/engine/Sim/Unit.lua @@ -235,6 +235,7 @@ end --- Returns number of factory/engineer build orders that fit in the specified category ---@param category EntityCategory +---@return integer function Unit:GetNumBuildOrders(category) end diff --git a/lua/AI/OpAI/BaseManager.lua b/lua/AI/OpAI/BaseManager.lua index 0287019f7b..b6ee7a7f1c 100644 --- a/lua/AI/OpAI/BaseManager.lua +++ b/lua/AI/OpAI/BaseManager.lua @@ -8,11 +8,17 @@ -- types that originate from the map ----@alias MarkerChain Marker[] # Name reference to a marker chain as defined in the map ----@class Area: string # Name reference to a area as defined in the map - ----@class Marker: string # Name reference to a marker as defined in the map ----@field position Vector # A { x, y, z } array-based table +---@class MarkerChain +---@field Markers Marker[] # Name reference to a marker chain as defined in the map +---@class Area: string # Name reference to a area as defined in the map + +---@class Marker: string # Name reference to a marker as defined in the map +---@field position Vector # A { x, y, z } array-based table +---@field orientation Vector # heading, pitch, roll +---@field type string +---@field color string +---@field prop string +---@field resource boolean|nil -- types commonly used in repository @@ -21,7 +27,7 @@ ---@class BuildCondition ---@field [1] FileName ---@field [2] FunctionName ----@field [3] any +---@field [3] table ---@class FileFunctionRef ---@field [1] FileName @@ -38,13 +44,15 @@ ---@field [2] FunctionName ---@class PlatoonData ----@field TransportReturn Marker # Location for transports to return to ----@field PatrolChains MarkerChain[] # Selection of patrol chains to guide the constructed units ----@field PatrolChain MarkerChain # Patrol chain to guide the construced units ----@field AttackChain MarkerChain # Attack chain to guide the constructed units ----@field LandingChain MarkerChain # Landing chain to guide the transports carrying the constructed units ----@field Area Area # An area, use depends on master platoon function ----@field Location Marker # A location, use depends on master platoon function +---@field TransportReturn Marker # Location for transports to return to +---@field PatrolChains Marker[] # Selection of patrol chains to guide the constructed units +---@field PatrolChain Marker # Patrol chain to guide the construced units +---@field AttackChain Marker # Attack chain to guide the constructed units +---@field LandingChain Marker # Landing chain to guide the transports carrying the constructed units +---@field Area Area # An area, use depends on master platoon function +---@field Location Marker # A location, use depends on master platoon function +---@field BaseName string # Name of the `BaseManager` the platoon belongs to +---@field NumBuilding integer # Specific to `BaseManager` engineer platoons ---@class AddOpAIData ---@field MasterPlatoonFunction FileFunctionRef # Behavior of instances upon completion @@ -241,6 +249,7 @@ function FailSafeUpgradeOnStopBeingBuilt(unit) end end +---@alias BaseFunctionalityState "AirScouting" | "AntiAir" | "Artillery" | "BuildEngineers" | "CounterIntel" | "Engineers" | "ExpansionBases" | "Fabrication" | "GroundDefense" | "Intel" | "LandScouting" | "Nukes" | "Patrolling" | "Shields" | "TMLs" | "Torpedos" | "Walls" ---@class ExpansionBaseData ---@field BaseName string Name of the base manager to expand to @@ -280,6 +289,7 @@ end ---@field EngineersBuilding integer ---@field ExpansionBaseData ExpansionBaseData[] ---@field FactoryBuildRateBuff string|nil Name of the buff to apply to factories +---@field FunctionalityStates table ---@field Initialized boolean ---@field LevelNames LevelName[] ---@field MaximumConstructionEngineers integer @@ -330,7 +340,7 @@ BaseManager = ClassSimple { self.BuildTable = {} self.ConstructionEngineers = {} self.ExpansionBaseData = {} - + -- Commented out unused states, these were only found here throughout the FAF repo -- We can re-enable them if corresponding functionalities are created, but right now there are none self.FunctionalityStates = { @@ -571,7 +581,7 @@ BaseManager = ClassSimple { }) return true end - + ---@cast name -AddUnitAIData if not self:CheckOpAIName(name) then return false end self.OpAITable[name] = BaseOpAI.CreateOpAI(self.AIBrain, self.BaseName, ptype, name, data) @@ -1470,7 +1480,7 @@ BaseManager = ClassSimple { ---@param self BaseManager ---@param location Vector - ---@param buildCounter number + ---@param buildCounter table ---@return boolean CheckUnitBuildCounter = function(self, location, buildCounter) for xVal, xData in buildCounter do @@ -2037,7 +2047,7 @@ BaseManager = ClassSimple { end, ---@param self BaseManager - ---@return any + ---@return PlatoonTemplate CreateTMLPlatoonTemplate = function(self) local faction = self.AIBrain:GetFactionIndex() local template = { @@ -2051,7 +2061,7 @@ BaseManager = ClassSimple { end, ---@param self BaseManager - ---@return any + ---@return PlatoonTemplate CreateNukePlatoonTemplate = function(self) local faction = self.AIBrain:GetFactionIndex() local template = { @@ -2065,7 +2075,7 @@ BaseManager = ClassSimple { end, ---@param self BaseManager - ---@return any + ---@return PlatoonTemplate CreateLandScoutPlatoon = function(self) local faction = self.AIBrain:GetFactionIndex() local template = { @@ -2080,7 +2090,7 @@ BaseManager = ClassSimple { ---@param self BaseManager ---@param techLevel number - ---@return any + ---@return PlatoonTemplate CreateAirScoutPlatoon = function(self, techLevel) local faction = self.AIBrain:GetFactionIndex() local template = { @@ -2101,7 +2111,7 @@ BaseManager = ClassSimple { end, ---@param self BaseManager - ---@return any + ---@return PlatoonTemplate CreateCommanderPlatoonTemplate = function(self) local faction = self.AIBrain:GetFactionIndex() local template = { @@ -2115,7 +2125,7 @@ BaseManager = ClassSimple { end, ---@param self BaseManager - ---@return any + ---@return PlatoonTemplate CreateSupportCommanderPlatoonTemplate = function(self) local faction = self.AIBrain:GetFactionIndex() local template = { @@ -2131,7 +2141,7 @@ BaseManager = ClassSimple { ---@param self BaseManager ---@param techLevel number ---@param platoonSize? number Defaults to 5 - ---@return any + ---@return PlatoonTemplate CreateEngineerPlatoonTemplate = function(self, techLevel, platoonSize) local faction = self.AIBrain:GetFactionIndex() local size = platoonSize or 5 diff --git a/lua/aibrain.lua b/lua/aibrain.lua index 7c78435872..5108bdf8cc 100644 --- a/lua/aibrain.lua +++ b/lua/aibrain.lua @@ -42,7 +42,6 @@ local CommanderSafeTime = import("/lua/simutils.lua").CommanderSafeTime ---@field Position Vector ---@field TaggedBy Unit ----@class PlatoonTable ---@alias AIResult "defeat" | "draw" | "victor" ---@alias BrainState "Defeat" | "Draw" | "InProgress" | "Recalled" | "Victory" ---@alias BrainType "AI" | "Human" diff --git a/lua/aibrains/campaign-ai.lua b/lua/aibrains/campaign-ai.lua index 60d7259814..3be8c142e0 100644 --- a/lua/aibrains/campaign-ai.lua +++ b/lua/aibrains/campaign-ai.lua @@ -1697,8 +1697,8 @@ AIBrain = Class(StandardBrain) { ---@param self CampaignAIBrain ---@param platoonList Platoon[] - ---@param ai BaseAIBrain - ---@return nil|Platoon + ---@param ai? string + ---@return Platoon CombinePlatoons = function(self, platoonList, ai) local squadTypes = {'Unassigned', 'Attack', 'Artillery', 'Support', 'Scout', 'Guard'} local returnPlatoon diff --git a/lua/editor/BaseManagerBuildConditions.lua b/lua/editor/BaseManagerBuildConditions.lua index 7dad48eaab..57512ea632 100644 --- a/lua/editor/BaseManagerBuildConditions.lua +++ b/lua/editor/BaseManagerBuildConditions.lua @@ -9,7 +9,7 @@ local AIUtils = import("/lua/ai/aiutilities.lua") ---NeedAnyStructure = BuildCondition ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function NeedAnyStructure(aiBrain, baseName) @@ -56,7 +56,7 @@ function NeedAnyStructure(aiBrain, baseName) end ---NumUnitsLessNearBase = BuildCondition ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@param category EntityCategory ---@param varName string @@ -90,7 +90,7 @@ function NumUnitsLessNearBase(aiBrain, baseName, category, varName) end end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function BaseManagerNeedsEngineers(aiBrain, baseName) @@ -98,7 +98,7 @@ function BaseManagerNeedsEngineers(aiBrain, baseName) return bManager and bManager.EngineerQuantity > bManager.CurrentEngineerCount end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function ExpansionBasesNeedEngineers(aiBrain, baseName) @@ -124,7 +124,7 @@ function ExpansionBasesNeedEngineers(aiBrain, baseName) end --- Check if specific expansion base needs engineers ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@param eBaseName string ---@return boolean @@ -151,7 +151,7 @@ function NumEngiesInExpansionBase(aiBrain, baseName, eBaseName) return false end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function CDRInPoolNeedAnyStructure(aiBrain, baseName) @@ -199,7 +199,7 @@ function CDRInPoolNeedAnyStructure(aiBrain, baseName) return false end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function SubCDRInPoolNeedAnyStructure(aiBrain, baseName) @@ -250,7 +250,7 @@ function SubCDRInPoolNeedAnyStructure(aiBrain, baseName) return false end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@param catTable string ---@return boolean @@ -305,7 +305,7 @@ function HighestFactoryLevel(aiBrain, level, baseName) return true end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param techLevel number ---@param engQuantity number ---@param pType string @@ -343,13 +343,13 @@ function FactoryCountAndNeed(aiBrain, techLevel, engQuantity, pType, baseName) return false end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param platoonData PlatoonData function BaseManagerEngineersStarted(aiBrain, platoonData) aiBrain.BaseManagers[platoonData.BaseName]:SetEngineersBuilding(platoonData.NumBuilding) end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function UnfinishedBuildingsCheck(aiBrain, baseName) @@ -381,7 +381,7 @@ function UnfinishedBuildingsCheck(aiBrain, baseName) return false end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param level number ---@param baseName string ---@param type string @@ -411,7 +411,7 @@ function HighestFactoryLevelType(aiBrain, level, baseName, type) return true end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function BaseActive(aiBrain, baseName) @@ -420,7 +420,7 @@ function BaseActive(aiBrain, baseName) end --- Deprecated, it was supposed to be a condition for an unfinished reclaim function/thread ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function BaseReclaimEnabled(aiBrain, baseName) @@ -428,7 +428,7 @@ function BaseReclaimEnabled(aiBrain, baseName) return bManager and bManager.FunctionalityStates.EngineerReclaiming end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function BasePatrollingEnabled(aiBrain, baseName) @@ -436,7 +436,7 @@ function BasePatrollingEnabled(aiBrain, baseName) return bManager and bManager.FunctionalityStates.Patrolling end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function BaseBuildingEngineers(aiBrain, baseName) @@ -444,7 +444,7 @@ function BaseBuildingEngineers(aiBrain, baseName) return bManager and bManager.FunctionalityStates.BuildEngineers end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function BaseEngineersEnabled(aiBrain, baseName) @@ -452,7 +452,7 @@ function BaseEngineersEnabled(aiBrain, baseName) return bManager and bManager.FunctionalityStates.Engineers end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function LandScoutingEnabled(aiBrain, baseName) @@ -460,7 +460,7 @@ function LandScoutingEnabled(aiBrain, baseName) return bManager and bManager.FunctionalityStates.LandScouting end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function AirScoutingEnabled(aiBrain, baseName) @@ -468,7 +468,7 @@ function AirScoutingEnabled(aiBrain, baseName) return bManager and bManager.FunctionalityStates.AirScouting end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function ExpansionBasesEnabled(aiBrain, baseName) @@ -476,7 +476,7 @@ function ExpansionBasesEnabled(aiBrain, baseName) return bManager and bManager.FunctionalityStates.ExpansionBases end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function TMLsEnabled(aiBrain, baseName) @@ -484,7 +484,7 @@ function TMLsEnabled(aiBrain, baseName) return bManager and bManager.FunctionalityStates.TMLs end ----@param aiBrain AIBrain +---@param aiBrain CampaignAIBrain ---@param baseName string ---@return boolean function NukesEnabled(aiBrain, baseName) diff --git a/lua/platoon.lua b/lua/platoon.lua index 4c4bc36c7b..31c52d1617 100644 --- a/lua/platoon.lua +++ b/lua/platoon.lua @@ -27,15 +27,15 @@ local SUtils = import("/lua/ai/sorianutilities.lua") ---@class PlatoonSquadTemplate ---@field [1] UnitId ----@field [2] number Min ----@field [3] number Max +---@field [2] integer Min, negative number will set it to `Min` * NumAvailableFactories, each time the platoon is set to build +---@field [3] integer Max ---@field [4] PlatoonSquads ---@field [5] UnitFormations ---@class PlatoonTemplate ---@field [1] string Platoon name ---@field [2] string Plan name ----@field ... PlatoonSquadTemplate +---@field [integer] PlatoonSquadTemplate ---@class Platoon : moho.platoon_methods ---@field PlatoonData table @@ -145,7 +145,7 @@ Platoon = Class(moho.platoon_methods) { end, ---@param self Platoon - ---@param callbackFunction function + ---@param callbackFunction fun(brain: AIBrain, platoon: Platoon) AddDestroyCallback = function(self, callbackFunction) if not callbackFunction then error('*ERROR: Tried to add an OnDestroy on a platoon callback with a nil function') @@ -213,7 +213,7 @@ Platoon = Class(moho.platoon_methods) { end, ---@param self Platoon - ---@return string|nil + ---@return string? GetPlan = function(self) if self.PlanName then return self.PlanName @@ -361,12 +361,12 @@ Platoon = Class(moho.platoon_methods) { ---@param self Platoon ---@param category EntityCategory - ---@param position Vector - ---@param radius number + ---@param position? Vector Requires `radius` + ---@param radius? number Requires `position` ---@return number GetNumCategoryUnits = function(self, category, position, radius) local numUnits = 0 - if position then + if position and radius then numUnits = self:PlatoonCategoryCountAroundPosition(category, position, radius) else numUnits = self:PlatoonCategoryCount(category) @@ -377,7 +377,7 @@ Platoon = Class(moho.platoon_methods) { -- ===== AI THREADS ===== -- ---@param self Platoon BuildOnceAI = function(self) - local aiBrain = self:GetBrain() + local aiBrain = self:GetBrain() --[[@as CampaignAIBrain]] for k,v in self:GetPlatoonUnits() do if not v.Dead then v.PreviousPriority = aiBrain:PBMGetPriority(self) diff --git a/lua/scenariotriggers.lua b/lua/scenariotriggers.lua index 7e7cd68a27..c93da811fb 100644 --- a/lua/scenariotriggers.lua +++ b/lua/scenariotriggers.lua @@ -453,8 +453,8 @@ end --- ---@param callback InstigatorTriggerCallback ---@param unit Unit ----@param amount? number defaults to `-1` ----@param repeatNum? number defaults to `1` +---@param amount? number Defaults to `-1` - any amount of damage` +---@param repeatNum? integer Defaults to `1` - Triggered only once function CreateUnitDamagedTrigger(callback, unit, amount, repeatNum) unit:AddOnDamagedCallback(callback, amount, repeatNum) end diff --git a/lua/sim/Unit.lua b/lua/sim/Unit.lua index e0b93be0a2..37053ae358 100644 --- a/lua/sim/Unit.lua +++ b/lua/sim/Unit.lua @@ -4357,8 +4357,8 @@ Unit = ClassUnit(moho.unit_methods, IntelComponent, VeterancyComponent, DebugUni ---@param self Unit ---@param fn function - ---@param amount number - ---@param repeatNum number + ---@param amount? number Defaults to `-1` - any amount of damage + ---@param repeatNum? integer Defaults to `1` - Triggered only once AddOnDamagedCallback = function(self, fn, amount, repeatNum) local num = amount or -1 repeatNum = repeatNum or 1 diff --git a/lua/system/utils.lua b/lua/system/utils.lua index df07239d01..10457bc4a6 100644 --- a/lua/system/utils.lua +++ b/lua/system/utils.lua @@ -555,8 +555,8 @@ function table.print(tbl, tblPrefix, printer) end --- Return filtered table containing every mapping from table for which fn function returns true when passed the value. ---- @param t - is a table to filter ---- @param fn - is decision function to use to filter the table, defaults checking if a value is true or exists in table +--- @param t table - is a table to filter +--- @param fn? function - is decision function to use to filter the table, defaults checking if a value is true or exists in table function table.filter(t, fn) local r = {} if not fn then fn = function(v) return v end end @@ -569,7 +569,7 @@ function table.filter(t, fn) end --- Returns total count of values that match fn function or if values exist in table ---- @param fn is optional filtering function that is applied to each value of the table +--- @param fn? function is optional filtering function that is applied to each value of the table function table.count(t, fn) if not t then return 0 end -- prevents looping over nil table if not fn then fn = function(v) return v end end From 8c526822cd8a21c22a6d87b2f4f50ef53dbd66eb Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Fri, 12 Dec 2025 17:45:15 +0100 Subject: [PATCH 05/17] Add table.clear helper function --- lua/system/utils.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lua/system/utils.lua b/lua/system/utils.lua index 10457bc4a6..79a808cdf6 100644 --- a/lua/system/utils.lua +++ b/lua/system/utils.lua @@ -606,6 +606,15 @@ function table.random(array) return array[Random(1, TableGetn(array))] end +---Removes all elements from the table +---@param t table +function table.clear(t) + if not t then return end + for k, _ in t do + t[k] = nil + end +end + -- Lua 5.0 implementation of the Lua 5.1 function string.match -- Returns a regex match From f6d1b4adae9af8a6ce03d3d231f0cf9531df0008 Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Sat, 13 Dec 2025 13:26:42 +0100 Subject: [PATCH 06/17] Refactor AttackManager and add annotations --- lua/AI/AttackManager.lua | 448 ++++++++++++++++++++------------------- 1 file changed, 228 insertions(+), 220 deletions(-) diff --git a/lua/AI/AttackManager.lua b/lua/AI/AttackManager.lua index 60279e8935..c7276ca93a 100644 --- a/lua/AI/AttackManager.lua +++ b/lua/AI/AttackManager.lua @@ -1,5 +1,8 @@ local Utilities = import("/lua/utilities.lua") +local pairs, ipairs = pairs, ipairs +local iscallable = iscallable + ------------------------------------------------------------------------------------------------------------------------- --- This is the AttackManager class that is used for campaign/coop --- Vanilla Supreme Commander (referred to as *SC1* from now on) used this along with the PBM for its skirmish AI as well @@ -35,41 +38,60 @@ local Utilities = import("/lua/utilities.lua") --- }, --- Example how to pick the master platoon - within PlatoonData - --- PlatoonData = { - --- AMPlatoons = { AMPlatoonName, AMPlatoonName, etc }, - --- }, +--- PlatoonData = { +--- AMPlatoons = { AMPlatoonName, AMPlatoonName, etc }, +--- }, --- Example how to set a master platoon - within PlatoonData - --- PlatoonData = { - --- AMMasterPlatoon = true, - --- }, +--- PlatoonData = { +--- AMMasterPlatoon = true, +--- }, + +---@class AMBuilder +---@field PlatoonName string +---@field AttackConditions BuildCondition[] List of conditions that have to pass for the platoon to be formed +---@field AIThread FileFunctionRef +---@field AIName string +---@field Priority integer +---@field PlatoonData table +---@field OverrideFormation UnitFormations|nil Formation to use for the formed platoon +---@field FormCallbacks table|nil Table of functions called when an AM Platoon forms +---@field DestroyCallbacks FileFunctionRef[]|nil Table of functions called when the platoon is destroyed +---@field LocationType string Location from PBM -- used if you want to get units from pool +---@field PlatoonType "Air" | "Gate" | "Land" | "Sea" | "Any" MUST BE SET IF UsePool IS `true` +---@field UsePool boolean Bool to use pool or not. Defaults to `false` + + +---@alias AttackManagerState "ACTIVE" | "PAUSED" ---@class AttackManager ----@field brain AI Brain ----@field PlatoonCount ----@field AttackCheckInterval How often the AM should attempt to form platoons ----@field Platoons Table of platoons belonging to the AI ----@field AttackManagerState Either 'ACTIVE' or 'PAUSED', used to check if the AM is active for an AI ----@field AttackManagerThread Bool, used to check if the main AM thread is already running +---@field brain CampaignAIBrain AI Brain +---@field Trash TrashBag +---@field PlatoonCount table +---@field AttackCheckInterval integer HOw often the AM should attempt to form platoons +---@field Platoons AMBuilder[] Table of platoons belonging to the AI +---@field AttackManagerState AttackManagerState Either 'ACTIVE' or 'PAUSED', used to check if the AM is active for an AI +---@field AMFormThread thread|nil AttackManager = ClassSimple { brain = nil, NeedSort = false, PlatoonCount = { DefaultGroupAir = 0, DefaultGroupLand = 0, DefaultGroupSea = 0, }, - + --- Engine level initialization, usually triggered by *AIBrain:InitializeAttackManager(attackDataTable)* in the campaign AI brain ---@param self AttackManager - ---@param brain AI Brain - ---@param attackDataTable table | See *Initialize()* below for its expected contents + ---@param brain CampaignAIBrain Brain + ---@param attackDataTable table See *Initialize()* below for its expected contents __init = function(self, brain, attackDataTable) self.Trash = TrashBag() self.brain = brain self:Initialize(attackDataTable) end, - + --- Unique ForkThread for this class, for easy syntax usage, and data trash handling --- Swaps the order of params for simpler function call ---@param self AttackManager - ---@param fn Function - ---@param ... | Further parameters for the function we want to be forked + ---@param fn function + ---@param ... any Further parameters for the function we want to be forked + ---@return thread|nil ForkThread = function(self, fn, ...) if fn then local thread = ForkThread(fn, self, unpack(arg)) @@ -79,10 +101,10 @@ AttackManager = ClassSimple { return nil end end, - + --- The actual initialization of all necessary data, and the main Thread ---@param self AttackManager - ---@param attackDataTable table | Optional table containing the loop check delay, default build conditions, and default platoons to load + ---@param attackDataTable table # Optional table containing the loop check delay, default build conditions, and default platoons to load Initialize = function(self, attackDataTable) self:AddDefaultPlatoons(attackDataTable.AttackConditions) if attackDataTable then @@ -93,38 +115,38 @@ AttackManager = ClassSimple { elseif not self.AttackCheckInterval then self.AttackCheckInterval = 10 end - - self['AttackManagerState'] = 'ACTIVE' - self['AttackManagerThread'] = self:ForkThread(self.AttackManagerThread) + + self.AttackManagerState = 'ACTIVE' + self.AMFormThread = self:ForkThread(self.AttackManagerThread) end, - + --- The main thread that forms the AM platoons periodically ---@param self AttackManager AttackManagerThread = function(self) while true do if self.AttackManagerState == 'ACTIVE' and self.Platoons then self:AttackManageAttackVectors() + if self.NeedSort then + self:SortPlatoonsViaPriority() + end self:FormAttackPlatoon() end WaitSeconds(self.AttackCheckInterval) end end, - + --- Loads the default AM platoons, these aren't formed in coop/campaign, they were used by SC1's skirmish AIs ---@param self AttackManager - ---@param AttackConds table | Table of conditions that return with either true or false - AddDefaultPlatoons = function(self, AttackConds) - -- Fallback condition - if not AttackConds then - AttackConds = { - {'/lua/editor/MiscBuildConditions.lua', 'False', {'default_brain'}}, - } - end + ---@param attackConds? BuildCondition[] Table of conditions that return with either true or false + AddDefaultPlatoons = function(self, attackConds) + attackConds = attackConds or { + {'/lua/editor/MiscBuildConditions.lua', 'False', {}} + } local platoons = { { PlatoonName = 'DefaultGroupAir', - AttackConditions = AttackConds, + AttackConditions = attackConds, AIName = 'HuntAI', Priority = 1, PlatoonType = 'Air', @@ -132,7 +154,7 @@ AttackManager = ClassSimple { }, { PlatoonName = 'DefaultGroupLand', - AttackConditions = AttackConds, + AttackConditions = attackConds, AIName = 'AttackForceAI', Priority = 1, PlatoonType = 'Land', @@ -143,7 +165,7 @@ AttackManager = ClassSimple { }, { PlatoonName = 'DefaultGroupSea', - AttackConditions = AttackConds, + AttackConditions = attackConds, AIName = 'HuntAI', Priority = 1, PlatoonType = 'Sea', @@ -153,70 +175,70 @@ AttackManager = ClassSimple { self:AddPlatoonsTable(platoons) end, - + --- Adds a table of platoon builders to the AM ---@param self AttackManager - ---@param platoons table | Table of platoon builders + ---@param platoons AMBuilder[] Table of platoon builders AddPlatoonsTable = function(self, platoons) - for k,v in platoons do + for _, v in pairs(platoons) do self:AddPlatoon(v) end end, - + --- Adds a single platoon builder to the AM ---@param self AttackManager - ---@param pltnTable table | table of a platoon builder instance + ---@param pltnTable AMBuilder table of a platoon builder instance AddPlatoon = function(self, pltnTable) if not pltnTable.AttackConditions then - error('*AI WARNING: INVALID ATTACK MANAGER PLATOON LIST - Missing AttackConditions', 2) + WARN('*AI WARNING: AttackManager: Invalid platoon builder - Missing AttackConditions', repr(pltnTable)) return - end - if not pltnTable.AIThread and not pltnTable.AIName then - error('*AI WARNING: INVALID ATTACK MANAGER PLATOON LIST - Mission either AIName or AIThread', 2) + elseif not pltnTable.AIThread and not pltnTable.AIName then + WARN('*AI WARNING: AttackManager: Invalid platoon builder - Mission either AIName or AIThread', repr(pltnTable)) return - end - if not pltnTable.Priority then - error('*AI WARNING: INVALID ATTACK MANAGER PLATOON LIST - Missing Priority', 2) + elseif not pltnTable.Priority then + WARN('*AI WARNING: AttackManager: Invalid platoon builder - Missing Priority', repr(pltnTable)) return end + if not pltnTable.UsePool then pltnTable.UsePool = false end - if not self then - self = {} - end if not self.Platoons then self.Platoons = {} end + + --- If the first entry is "default_brain", it will be removed, this is a GPG thing ever since SC1, because the Brain param provided is always THIS AI's brain + --- My guess is that they planned to have any brain be providable, or that they moved these from C Engine side to Lua, and this is a leftover + for _, v in pairs(pltnTable.AttackConditions) do + if v[3][1] == "default_brain" then + table.remove(v[3], 1) + end + end + self.NeedSort = true table.insert(self.Platoons, pltnTable) end, - + --- Wipes the current platoon list, useful if you want to give the AI a whole new list of platoons to be formed over the old ones ---@param self AttackManager ClearPlatoonList = function(self) self.Platoons = {} self.NeedSort = false end, - + --- Sets the loop delay for the main platoon forming thread ---@param self AttackManager - ---@param interval number + ---@param interval integer SetAttackCheckInterval = function(self, interval) self.AttackCheckInterval = interval end, - - --- Checks the provided conditions - --- If the first entry is "default_brain", it will be removed, this is a GPG thing ever since SC1, because the Brain param provided is always THIS AI's brain - --- My guess is that they planned to have any brain be providable, or that they moved these from C Engine side to Lua, and this is a leftover + + --- Returns true if all attack conditions pass ---@param self AttackManager - ---@param pltnInfo table | table of a platoon instance - ---@return bool + ---@param pltnInfo AMBuilder + ---@return boolean CheckAttackConditions = function(self, pltnInfo) - for k, v in pltnInfo.AttackConditions do - if v[3][1] == "default_brain" then - table.remove(v[3], 1) - end + for _, v in pairs(pltnInfo.AttackConditions) do if iscallable(v[1]) then if not v[1](self.brain, unpack(v[2])) then return false @@ -229,40 +251,23 @@ AttackManager = ClassSimple { end return true end, - + ---@param self AttackManager ---@param builderName string - ---@param priority number + ---@param priority integer SetPriority = function(self, builderName, priority) - for k,v in self.Platoons do + for _, v in pairs(self.Platoons) do if v.PlatoonName == builderName then v.Priority = priority end end end, - + ---@param self AttackManager SortPlatoonsViaPriority = function(self) - local sortedList = {} - -- Simple selection sort, this can be made faster later if we decide we need it. - if self.Platoons then - for i = 1, table.getn(self.Platoons) do - local highest = 0 - local key, value - for k, v in self.Platoons do - if v.Priority > highest then - highest = v.Priority - value = v - key = k - end - end - sortedList[i] = value - table.remove(self.Platoons, key) - end - self.Platoons = sortedList - end + table.sort(self.Platoons, function(a, b) return a.Priority > b.Priority end) self.NeedSort = false - return sortedList + return self.Platoons end, --- The main function that forms the AM platoons @@ -270,177 +275,180 @@ AttackManager = ClassSimple { FormAttackPlatoon = function(self) local poolPlatoon = self.brain:GetPlatoonUniquelyNamed('ArmyPool') - if self.NeedSort then - self:SortPlatoonsViaPriority() - end - -- Loop through all of the AM platoons - for k,v in self.Platoons do - if self:CheckAttackConditions(v) then - local combineList = {} - local platoonList = self.brain:GetPlatoonsList() - - -- Loop through all of the platoons the AI has, check if it's part of the attack force - -- The PBM platoons are the ones set to be part of the attack force, if they have 'AMPlatoons' platoon data set, this is handled by the "PBMFormPlatoons()" function - -- If it's part of it, check the PlatoonData for the name of the 'master' platoon it belongs to, and if it matches, insert this platoon to the combineList - -- These are defined in the lua/AI/OpAI *save.lua files, containing all of the default platoons - for j, platoon in platoonList do - if platoon:IsPartOfAttackForce() then - for i, name in platoon.PlatoonData.AMPlatoons do - if name == v.PlatoonName then - table.insert(combineList, platoon) - end - end - end + for _, v in ipairs(self.Platoons) do + if not self:CheckAttackConditions(v) then + continue + end + + local combineList = {} + local platoonList = self.brain:GetPlatoonsList() + + -- Loop through all of the platoons the AI has, check if it's part of the attack force + -- The PBM platoons are the ones set to be part of the attack force, if they have 'AMPlatoons' platoon data set, this is handled by the "PBMFormPlatoons()" function + -- If it's part of it, check the PlatoonData for the name of the 'master' platoon it belongs to, and if it matches, insert this platoon to the combineList + -- These are defined in the lua/AI/OpAI *save.lua files, containing all of the default platoons + for _, platoon in pairs(platoonList) do + if not platoon:IsPartOfAttackForce() then + continue end - - -- If the combineList is not empty, it will form the AM platoon - -- Usually platoons inside the combineList are PBM ones - -- If UsePool is true, it can cause some wonky behaviour, it can additionally grab units from the ArmyPool, but will mess up the actual unit counts defined in the platoon templates - -- This can result in platoons not forming properly, thus units sitting at their bases cluttering up - -- By default it's practically not used at all - if not table.empty(combineList) or v.UsePool then - local tempPlatoon - if self.Platoons[k].AIName then - tempPlatoon = self.brain:CombinePlatoons(combineList, v.AIName) - else - tempPlatoon = self.brain:CombinePlatoons(combineList) - end - local formation = 'GrowthFormation' - - if v.PlatoonData.OverrideFormation then - tempPlatoon:SetPlatoonFormationOverride(v.PlatoonData.OverrideFormation) - elseif v.PlatoonType == 'Air' and not v.UsePool then - tempPlatoon:SetPlatoonFormationOverride('GrowthFormation') + + for _, name in pairs(platoon.PlatoonData.AMPlatoons) do + if name == v.PlatoonName then + table.insert(combineList, platoon) + break end - - -- This section is only relevant if we want the AM platoon to grab from the ArmyPool, it was used for SC1's skirmish AI - -- I've added additional categories to be filtered out, we don't want land platoons to grab unassigned transports or such in case we ever decide to make use of the ArmyPool - if v.UsePool then - local checkCategory - -- Only T1-T3 aerial combat units - if v.PlatoonType == 'Air' then - checkCategory = categories.AIR * categories.MOBILE - categories.TRANSPORTATION - categories.EXPERIMENTAL - categories.SCOUT - -- Only T1-T3 surface combat units - elseif v.PlatoonType == 'Land' then - checkCategory = categories.LAND * categories.MOBILE - categories.ENGINEER - categories.EXPERIMENTAL - categories.SCOUT - -- Only T1-T3 naval combat units - elseif v.PlatoonType == 'Sea' then - checkCategory = categories.NAVAL * categories.MOBILE - categories.EXPERIMENTAL - -- Only T1-T3 combined-arms combat units - elseif v.PlatoonType == 'Any' then - checkCategory = categories.MOBILE - categories.ENGINEER - categories.TRANSPORTATION - categories.EXPERIMENTAL - categories.SCOUT - else - error('*AI WARNING: Invalid Platoon Type - ' .. v.PlatoonType, 2) + end + end + + -- If the combineList is not empty, it will form the AM platoon + -- Usually platoons inside the combineList are PBM ones + -- If UsePool is true, it can cause some wonky behaviour, it can additionally grab units from the ArmyPool, but will mess up the actual unit counts defined in the platoon templates + -- This can result in platoons not forming properly, thus units sitting at their bases cluttering up + -- By default it's practically not used at all + if table.empty(combineList) and not v.UsePool then + continue + end + + local tempPlatoon + if v.AIName then + tempPlatoon = self.brain:CombinePlatoons(combineList, v.AIName) + else + tempPlatoon = self.brain:CombinePlatoons(combineList) + end + local formation = 'GrowthFormation' + + if v.PlatoonData.OverrideFormation then + tempPlatoon:SetPlatoonFormationOverride(v.PlatoonData.OverrideFormation) + elseif v.PlatoonType == 'Air' and not v.UsePool then + tempPlatoon:SetPlatoonFormationOverride('GrowthFormation') + end + + -- This section is only relevant if we want the AM platoon to grab from the ArmyPool, it was used for SC1's skirmish AI + -- I've added additional categories to be filtered out, we don't want land platoons to grab unassigned transports or such in case we ever decide to make use of the ArmyPool + if v.UsePool then + local checkCategory + -- Only T1-T3 aerial combat units + if v.PlatoonType == 'Air' then + checkCategory = categories.AIR * categories.MOBILE - categories.TRANSPORTATION - categories.EXPERIMENTAL - categories.SCOUT + -- Only T1-T3 surface combat units + elseif v.PlatoonType == 'Land' then + checkCategory = categories.LAND * categories.MOBILE - categories.ENGINEER - categories.EXPERIMENTAL - categories.SCOUT + -- Only T1-T3 naval combat units + elseif v.PlatoonType == 'Sea' then + checkCategory = categories.NAVAL * categories.MOBILE - categories.EXPERIMENTAL + -- Only T1-T3 combined-arms combat units + elseif v.PlatoonType == 'Any' then + checkCategory = categories.MOBILE - categories.ENGINEER - categories.TRANSPORTATION - categories.EXPERIMENTAL - categories.SCOUT + else + error('*AI WARNING: Invalid Platoon Type - ' .. v.PlatoonType, 2) + break + end + + local poolUnits = poolPlatoon:GetPlatoonUnits() + local addUnits = {} + + -- If the AM platoon has a base of origin, it will only grab ArmyPool units from near it + if v.LocationType then + local location = false + for locNum, locData in self.brain.PBM.Locations do + if v.LocationType == locData.LocationType then + location = locData break end - - local poolUnits = poolPlatoon:GetPlatoonUnits() - local addUnits = {} - - -- If the AM platoon has a base of origin, it will only grab ArmyPool units from near it - if v.LocationType then - local location = false - for locNum, locData in self.brain.PBM.Locations do - if v.LocationType == locData.LocationType then - location = locData - break - end - end - if not location then - SPEW('*AI WARNING: No EngineerManager present at location - ' .. v.LocationType, '[FormAttackPlatoon]') - break - end - for i,unit in poolUnits do - if Utilities.GetDistanceBetweenTwoVectors(unit:GetPosition(), location.Location) <= location.Radius and EntityCategoryContains(checkCategory, unit) then - table.insert(addUnits, unit) - end - end - -- If there's no base of origin, grab ArmyPool units from anywhere - else - for i,unit in poolUnits do - if EntityCategoryContains(checkCategory, unit) then - table.insert(addUnits, unit) - end - end - end - self.brain:AssignUnitsToPlatoon(tempPlatoon, addUnits, 'Attack', formation) end - - -- Set the platoon's data - if v.PlatoonData then - tempPlatoon:SetPlatoonData(v.PlatoonData) - else - tempPlatoon.PlatoonData = {} + if not location then + SPEW('*AI WARNING: No EngineerManager present at location - ' .. v.LocationType, '[FormAttackPlatoon]') + break end - -- Set the platoon's name - tempPlatoon.PlatoonData.PlatoonName = v.PlatoonName - - -- Set the platoon AI function - if v.AIThread then - tempPlatoon:ForkAIThread(import(v.AIThread[1])[v.AIThread[2]]) - end - - -- Add callbacks when the platoon is destroyed - if v.DestroyCallbacks then - for dcbNum, destroyCallback in v.DestroyCallbacks do - tempPlatoon:AddDestroyCallback(import(destroyCallback[1])[destroyCallback[2]]) + for i,unit in poolUnits do + if Utilities.GetDistanceBetweenTwoVectors(unit:GetPosition(), location.Location) <= location.Radius and EntityCategoryContains(checkCategory, unit) then + table.insert(addUnits, unit) end end - - -- Call for the specified callbacks, since we were just formed - if v.FormCallbacks then - for cbNum, callback in v.FormCallbacks do - if type(callback) == 'function' then - self.Trash:Add(ForkThread(callback, tempPlatoon)) - else - self.Trash:Add(ForkThread(import(callback[1])[callback[2]], tempPlatoon)) - end + -- If there's no base of origin, grab ArmyPool units from anywhere + else + for i,unit in poolUnits do + if EntityCategoryContains(checkCategory, unit) then + table.insert(addUnits, unit) end end end + self.brain:AssignUnitsToPlatoon(tempPlatoon, addUnits, 'Attack', formation) + end + + -- Set the platoon's data + if v.PlatoonData then + tempPlatoon:SetPlatoonData(v.PlatoonData) + else + tempPlatoon.PlatoonData = {} + end + -- Set the platoon's name + tempPlatoon.PlatoonData.PlatoonName = v.PlatoonName + + -- Set the platoon AI function + if v.AIThread then + tempPlatoon:ForkAIThread(import(v.AIThread[1])[v.AIThread[2]]) + end + + -- Add callbacks when the platoon is destroyed + if v.DestroyCallbacks then + for _, destroyCallback in ipairs(v.DestroyCallbacks) do + tempPlatoon:AddDestroyCallback(import(destroyCallback[1])[destroyCallback[2]]) + end + end + + -- Call for the specified callbacks, since we were just formed + if v.FormCallbacks then + for _, callback in ipairs(v.FormCallbacks) do + if type(callback) == 'function' then + self.Trash:Add(ForkThread(callback, tempPlatoon)) + else + self.Trash:Add(ForkThread(import(callback[1])[callback[2]], tempPlatoon)) + end + end end end end, - + --- Completely removes the AM thread ---@param self AttackManager DestroyAttackManager = function(self) - if self.AttackManagerThread then - self.AttackManagerThread:Destroy() - self.AttackManagerThread = nil + if self.AMFormThread then + self.AMFormThread:Destroy() + self.AMFormThread = nil end end, - + --- Pauses the AM thread ---@param self AttackManager PauseAttackManager = function(self) self.AttackManagerState = 'PAUSED' end, - + --- Re-enables the AM thread ---@param self AttackManager UnPauseAttackManager = function(self) self.AttackManagerState = 'ACTIVE' end, - + --- Checks if the AttackManager has been enabled ---@param self AttackManager ---@return boolean IsAttackManagerActive = function(self) - if self and self.AttackManagerThread and self.AttackManagerState == 'ACTIVE' then + if self.AMFormThread and self.AttackManagerState == 'ACTIVE' then return true end return false end, - + --- Returns with the number of platoons part of the attack force ---@param self AttackManager - ---@return result number + ---@return number count GetNumberAttackForcePlatoons = function(self) local platoonList = self.brain:GetPlatoonsList() local result = 0 - for k, v in platoonList do + for _, v in pairs(platoonList) do if v:IsPartOfAttackForce() then result = result + 1 end @@ -449,7 +457,7 @@ AttackManager = ClassSimple { result = result + 1 return result end, - + --- SC1's use of attack vector data, mostly on the engine side, so I can't comment on it ---@param self AttackManager AttackManageAttackVectors = function(self) @@ -458,15 +466,15 @@ AttackManager = ClassSimple { self.brain:SetUpAttackVectorsToArmy() end end, - + --- XXX: refactor this later, artifact from moving AttackManager from aibrain - ---@param brain AIBrain + ---@param brain CampaignAIBrain ---@param platoon Platoon DecrementCount = function(brain, platoon) local AM = brain.AttackManager local data = platoon.PlatoonData - for k,v in data.AMPlatoons do + for _,v in data.AMPlatoons do AM.PlatoonCount[v] = AM.PlatoonCount[v] - 1 end end -} \ No newline at end of file +} From 5f0d5f55ac0e4df84308b54f0a8516b72872923a Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Thu, 18 Dec 2025 11:44:57 +0100 Subject: [PATCH 07/17] Fix objective arrow not bouncing Fixes #6983 Seems like the `[2]` value of the vector is used to read the position and `.y` just points to it. So changing `.y` has no effect on the vector --- lua/objectiveArrow.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/objectiveArrow.lua b/lua/objectiveArrow.lua index 21782281b2..2c1e4d974d 100644 --- a/lua/objectiveArrow.lua +++ b/lua/objectiveArrow.lua @@ -56,7 +56,7 @@ ObjectiveArrow = Class(Entity) { local bounceTime = 0 local bounceChng = math.pi * 0.25 while not self:BeenDestroyed() do - vec.y = yOff + math.sin(bounceTime) * 0.25 + vec[2] = yOff + math.sin(bounceTime) * 0.25 self:SetParentOffset(vec) WaitSeconds(0.1) From 78d6090358c00512df79e8756c0cb7c783118127 Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Thu, 18 Dec 2025 11:45:39 +0100 Subject: [PATCH 08/17] Add description to read only fields of Vector --- engine/Core.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/engine/Core.lua b/engine/Core.lua index 21d7813d33..4b54f66ec0 100644 --- a/engine/Core.lua +++ b/engine/Core.lua @@ -10,8 +10,8 @@ ---@class VectorBase ---@field [1] number # x ---@field [2] number # y ----@field x number ----@field y number +---@field x number Read only value. Changing it has no effect on the vector. Set `[1]` instead. +---@field y number Read only value. Changing it has no effect on the vector. Set `[2]` instead. ---@class Quaternion : VectorBase ---@operator mul(Quaternion): Quaternion @@ -28,7 +28,7 @@ ---@operator mul(number): Vector ---@operator unm: Vector ---@field [3] number # z ----@field z number +---@field z number Read only value. Changing it has no effect on the vector. Set `[3]` instead. ---@class Vector2 : VectorBase ---@operator add(Vector2): Vector2 From b36a79413785cd41354f03ea968e7cebc40a3124 Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Thu, 18 Dec 2025 11:50:01 +0100 Subject: [PATCH 09/17] Cleanup build conditions when adding the platoon `default_brain` param isnt used anywhere, thats why its being removed. I dont think there's a need to check for it each time when we check the build condition, but only when we're adding the platoon. The build conditions of the campaign platoons rarely change and if they do, they don't contain the param. And if that case happens, its better if the author doesn't include it anymore as it has no effect! --- lua/aibrains/campaign-ai.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lua/aibrains/campaign-ai.lua b/lua/aibrains/campaign-ai.lua index 3be8c142e0..ff8a2d3f3f 100644 --- a/lua/aibrains/campaign-ai.lua +++ b/lua/aibrains/campaign-ai.lua @@ -391,6 +391,12 @@ AIBrain = Class(StandardBrain) { pltnTable.BuildConditions = {} end + for _, v in pairs(pltnTable.BuildConditions) do + if v[3][1] == "default_brain" then + TableRemove(v[3], 1) + end + end + if not pltnTable.BuildTimeOut or pltnTable.BuildTimeOut == 0 then pltnTable.GenerateTimeOut = true end @@ -1632,9 +1638,6 @@ AIBrain = Class(StandardBrain) { for _, v in bCs do if not v.LookupNumber[index] then local found = false - if v[3][1] == "default_brain" then - TableRemove(v[3], 1) - end for num, bcData in self.PBM.BuildConditionsTable do if bcData[1] == v[1] and bcData[2] == v[2] and TableGetn(bcData[3]) == TableGetn(v[3]) then From df15911e82376fa19ed847ea331070f509d79a0e Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Thu, 18 Dec 2025 11:51:24 +0100 Subject: [PATCH 10/17] Cleanup white character when creating merged platoon This has no functional change. The name of the platoon is not used in anyway here and empty string is a valid value. --- lua/aibrains/campaign-ai.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/aibrains/campaign-ai.lua b/lua/aibrains/campaign-ai.lua index ff8a2d3f3f..a6382c10ce 100644 --- a/lua/aibrains/campaign-ai.lua +++ b/lua/aibrains/campaign-ai.lua @@ -1706,9 +1706,9 @@ AIBrain = Class(StandardBrain) { local squadTypes = {'Unassigned', 'Attack', 'Artillery', 'Support', 'Scout', 'Guard'} local returnPlatoon if not ai then - returnPlatoon = self:MakePlatoon(' ', 'None') + returnPlatoon = self:MakePlatoon('', 'None') else - returnPlatoon = self:MakePlatoon(' ', ai) + returnPlatoon = self:MakePlatoon('', ai) end for k, platoon in platoonList do From f818cec3edb1506dad3343918f9c0fe2945198df Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Thu, 18 Dec 2025 11:52:07 +0100 Subject: [PATCH 11/17] Change annotation of returned value from table.getsize to int --- lua/system/utils.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/system/utils.lua b/lua/system/utils.lua index 79a808cdf6..90c6dd7b0b 100644 --- a/lua/system/utils.lua +++ b/lua/system/utils.lua @@ -78,7 +78,7 @@ if not rawget(table, 'getsize') then --- Returns actual size of a table, including string keys ---@param t table - ---@return number + ---@return integer function table.getsize(t) if type(t) ~= 'table' then return 0 end local size = 0 From 1bb161271ff2078a29844df64b91c280251a44e0 Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Sat, 20 Dec 2025 22:40:45 +0100 Subject: [PATCH 12/17] Increate number of scouts per platoon in campaign Instead of building just single scout, build as many as there are factories. --- lua/AI/OpAI/BaseManager.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/AI/OpAI/BaseManager.lua b/lua/AI/OpAI/BaseManager.lua index b6ee7a7f1c..677a5a6cad 100644 --- a/lua/AI/OpAI/BaseManager.lua +++ b/lua/AI/OpAI/BaseManager.lua @@ -2081,7 +2081,7 @@ BaseManager = ClassSimple { local template = { 'LandScoutTemplate', 'NoPlan', - { 'uel0101', 1, 1, 'Scout', 'None' }, + { 'uel0101', -1, 1, 'Scout', 'None' }, } template = ScenarioUtils.FactionConvert(template, faction) @@ -2096,7 +2096,7 @@ BaseManager = ClassSimple { local template = { 'AirScoutTemplate', 'NoPlan', - { 'uea', 1, 1, 'Scout', 'None' }, + { 'uea', -1, 1, 'Scout', 'None' }, } if techLevel == 3 then From dcae5b38c0b7f2e62bdd8f2b23b11a2fbc915dd3 Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Sat, 20 Dec 2025 22:57:32 +0100 Subject: [PATCH 13/17] Fix removal of invalid squad templates When the platoon template is process, some squad units can end up with quantity 0 and those should be removed. table.remove shift all remaining values down, which the old code didnt consider and it was skipping the more squads the more got removed. The fix iterates the table from the back which makes table.remove safe to use --- lua/aibrains/campaign-ai.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lua/aibrains/campaign-ai.lua b/lua/aibrains/campaign-ai.lua index a6382c10ce..88763c4e3d 100644 --- a/lua/aibrains/campaign-ai.lua +++ b/lua/aibrains/campaign-ai.lua @@ -1509,8 +1509,9 @@ AIBrain = Class(StandardBrain) { end -- Remove any IDs with 0 as a build quantity. - for i = 1, TableGetn(retTemplate) do - if i >= 3 then + local size = TableGetn(retTemplate) + if size >= 3 then + for i = size, 3, -1 do if retTemplate[i][3] == 0 then TableRemove(retTemplate, i) end From b816b5e3da5ac8150c53fd78fe715f7efac581be Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Sun, 21 Dec 2025 10:44:04 +0100 Subject: [PATCH 14/17] Remove 'default_brain' from platoon build conditions When the platoon builder is loaded `default_brain` is always just deleted from the build conditions. since the army's brain is automatically added to call the build condition as a first param. --- lua/AI/OpAI/AirAttacks_save.lua | 596 +++++++++++------------ lua/AI/OpAI/AirScout_save.lua | 16 +- lua/AI/OpAI/BasicLandAttack_save.lua | 600 +++++++++++------------ lua/AI/OpAI/BomberEscort_save.lua | 104 ++-- lua/AI/OpAI/EngineerAttack_save.lua | 108 ++--- lua/AI/OpAI/GenerateNaval.lua | 20 +- lua/AI/OpAI/HeavyLandAttack_save.lua | 136 +++--- lua/AI/OpAI/LandAssault_save.lua | 200 ++++---- lua/AI/OpAI/LeftoverCleanup_save.lua | 4 +- lua/AI/OpAI/NavalAttacks_save.lua | 700 +++++++++++++-------------- lua/AI/OpAI/NavalFleet_save.lua | 52 +- lua/AI/OpAI/lightairattack_save.lua | 76 +-- 12 files changed, 1306 insertions(+), 1306 deletions(-) diff --git a/lua/AI/OpAI/AirAttacks_save.lua b/lua/AI/OpAI/AirAttacks_save.lua index 3dde1924d1..42f6904d27 100644 --- a/lua/AI/OpAI/AirAttacks_save.lua +++ b/lua/AI/OpAI/AirAttacks_save.lua @@ -370,12 +370,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -399,12 +399,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -431,16 +431,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, }, PlatoonData = { @@ -464,16 +464,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, }, PlatoonData = { @@ -497,16 +497,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, }, PlatoonData = { @@ -530,16 +530,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, }, PlatoonData = { @@ -567,16 +567,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, }, PlatoonData = { @@ -600,16 +600,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, }, PlatoonData = { @@ -638,16 +638,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -671,16 +671,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -704,16 +704,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -737,16 +737,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -770,20 +770,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 0 }, - {'default_brain','1','0'} + { 1 , 0 }, + {'1','0'} }, }, PlatoonData = { @@ -808,20 +808,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 0 }, - {'default_brain','1','0'} + { 1 , 0 }, + {'1','0'} }, }, PlatoonData = { @@ -846,16 +846,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, }, PlatoonData = { @@ -879,16 +879,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, }, PlatoonData = { @@ -917,16 +917,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -951,16 +951,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -985,20 +985,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 2, 3 }, - {'default_brain','1', '2', '3'} + { 1, 2, 3 }, + {'1', '2', '3'} }, }, PlatoonData = { @@ -1035,20 +1035,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 2 , 3 }, - {'default_brain', '1', '2','3' } + { 1, 2 , 3 }, + { '1', '2','3' } }, }, PlatoonData = { @@ -1072,20 +1072,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 2 , 3 }, - {'default_brain', '1', '2','3' } + { 1, 2 , 3 }, + { '1', '2','3' } }, }, PlatoonData = { @@ -1109,20 +1109,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'}, + {'default_builder_name', 1 }, + {'default_builder_name','1'}, }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 2, 3 }, - {'default_brain', '1', '2', '3' } + { 1, 2, 3 }, + { '1', '2', '3' } }, }, PlatoonData = { @@ -1146,20 +1146,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 2, 3 }, - {'default_brain', '1', '2','3' } + { 1, 2, 3 }, + { '1', '2','3' } }, }, PlatoonData = { @@ -1187,20 +1187,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain',4, 0 }, - {'default_brain', '4','0' } + {4, 0 }, + { '4','0' } }, }, PlatoonData = { @@ -1224,20 +1224,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 4, 0 }, - {'default_brain', '4','0' } + { 4, 0 }, + { '4','0' } }, }, PlatoonData = { @@ -1261,20 +1261,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 4, 0 }, - {'default_brain', '4','0' } + { 4, 0 }, + { '4','0' } }, }, PlatoonData = { @@ -1301,20 +1301,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1','0' } + { 1, 0 }, + { '1','0' } }, }, PlatoonData = { @@ -1338,20 +1338,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1','0' } + { 1, 0 }, + { '1','0' } }, }, PlatoonData = { @@ -1375,20 +1375,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1','0' } + { 1, 0 }, + { '1','0' } }, }, PlatoonData = { @@ -1417,20 +1417,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2','0' } + { 2, 0 }, + { '2','0' } }, }, PlatoonData = { @@ -1454,20 +1454,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2','0' } + { 2, 0 }, + { '2','0' } }, }, PlatoonData = { @@ -1491,20 +1491,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2','0' } + { 2, 0 }, + { '2','0' } }, }, PlatoonData = { @@ -1528,20 +1528,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2','0' } + { 2, 0 }, + { '2','0' } }, }, PlatoonData = { @@ -1566,20 +1566,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2','0' } + { 2, 0 }, + { '2','0' } }, }, PlatoonData = { @@ -1603,20 +1603,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2','0' } + { 2, 0 }, + { '2','0' } }, }, PlatoonData = { @@ -1643,16 +1643,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3, 0 }, - {'default_brain', '3','0' } + { 3, 0 }, + { '3','0' } }, }, PlatoonData = { @@ -1676,16 +1676,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3, 0 }, - {'default_brain', '3','0' } + { 3, 0 }, + { '3','0' } }, }, PlatoonData = { @@ -1709,16 +1709,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3, 0 }, - {'default_brain', '3','0' } + { 3, 0 }, + { '3','0' } }, }, PlatoonData = { @@ -1742,16 +1742,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3, 0 }, - {'default_brain', '3','0' } + { 3, 0 }, + { '3','0' } }, }, PlatoonData = { @@ -1777,20 +1777,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3, 0 }, - {'default_brain', '3','0' } + { 3, 0 }, + { '3','0' } }, }, PlatoonData = { @@ -1814,20 +1814,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3, 0 }, - {'default_brain', '3','0' } + { 3, 0 }, + { '3','0' } }, }, PlatoonData = { @@ -1851,20 +1851,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3, 0 }, - {'default_brain', '3','0' } + { 3, 0 }, + { '3','0' } }, }, PlatoonData = { @@ -1894,18 +1894,18 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/airattacks_editorfunctions.lua', 'AirAttackMasterCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonBuildCallbacks = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMUnlockPlatoon', - {'default_brain','default_platoon'}, - {'default_brain','default_platoon'} + {'default_platoon'}, + {'default_platoon'} }, }, PlatoonAddFunctions = { diff --git a/lua/AI/OpAI/AirScout_save.lua b/lua/AI/OpAI/AirScout_save.lua index 2d1c1a610f..71efbd5ac3 100644 --- a/lua/AI/OpAI/AirScout_save.lua +++ b/lua/AI/OpAI/AirScout_save.lua @@ -106,14 +106,14 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','OSB_Master_AirScout'}, - {'default_brain','OSB_Master_AirScout'} + {'OSB_Master_AirScout'}, + {'OSB_Master_AirScout'} }, }, PlatoonBuildCallbacks = { {'/lua/ai/opai/airscout_editorfunctions.lua', 'AirScoutDeath', - {'default_brain','default_platoon'}, - {'default_brain','default_platoon'} + {'default_platoon'}, + {'default_platoon'} }, }, PlatoonAddFunctions = { @@ -137,8 +137,8 @@ Scenario = { RequiresConstruction = true, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -157,8 +157,8 @@ Scenario = { RequiresConstruction = true, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { diff --git a/lua/AI/OpAI/BasicLandAttack_save.lua b/lua/AI/OpAI/BasicLandAttack_save.lua index 615543aea2..ec86f4c497 100644 --- a/lua/AI/OpAI/BasicLandAttack_save.lua +++ b/lua/AI/OpAI/BasicLandAttack_save.lua @@ -464,12 +464,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -492,16 +492,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3 , 0 }, - {'default_brain','3','0'} + { 3 , 0 }, + {'3','0'} }, }, PlatoonData = { @@ -524,16 +524,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2, 4 }, - {'default_brain','1','2','4'} + { 1 , 2, 4 }, + {'1','2','4'} }, }, PlatoonData = { @@ -556,16 +556,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2, 4 }, - {'default_brain','1','2','4'} + { 1 , 2, 4 }, + {'1','2','4'} }, }, PlatoonData = { @@ -588,16 +588,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3 , 0 }, - {'default_brain','3','0'} + { 3 , 0 }, + {'3','0'} }, }, PlatoonData = { @@ -620,16 +620,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2, 4 }, - {'default_brain','1','2','4'} + { 1 , 2, 4 }, + {'1','2','4'} }, }, PlatoonData = { @@ -652,12 +652,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -680,16 +680,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3 , 0 }, - {'default_brain','3','0'} + { 3 , 0 }, + {'3','0'} }, }, PlatoonData = { @@ -712,16 +712,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2, 4 }, - {'default_brain','1','2','4'} + { 1 , 2, 4 }, + {'1','2','4'} }, }, PlatoonData = { @@ -744,16 +744,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2, 4 }, - {'default_brain','1','2','4'} + { 1 , 2, 4 }, + {'1','2','4'} }, }, PlatoonData = { @@ -781,12 +781,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -809,16 +809,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2, 4 }, - {'default_brain','1','2','4'} + { 1 , 2, 4 }, + {'1','2','4'} }, }, PlatoonData = { @@ -841,16 +841,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3 , 0 }, - {'default_brain','3','0'} + { 3 , 0 }, + {'3','0'} }, }, PlatoonData = { @@ -873,16 +873,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2, 4 }, - {'default_brain','1','2','4'} + { 1 , 2, 4 }, + {'1','2','4'} }, }, PlatoonData = { @@ -905,16 +905,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3 , 0 }, - {'default_brain','3','0'} + { 3 , 0 }, + {'3','0'} }, }, PlatoonData = { @@ -937,12 +937,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -965,12 +965,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -993,12 +993,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1021,12 +1021,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1049,16 +1049,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2, 4 }, - {'default_brain','1','2','4'} + { 1 , 2, 4 }, + {'1','2','4'} }, }, PlatoonData = { @@ -1081,16 +1081,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3 , 0 }, - {'default_brain','3','0'} + { 3 , 0 }, + {'3','0'} }, }, PlatoonData = { @@ -1113,16 +1113,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2, 4 }, - {'default_brain','1','2','4'} + { 1 , 2, 4 }, + {'1','2','4'} }, }, PlatoonData = { @@ -1145,16 +1145,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3 , 0 }, - {'default_brain','3','0'} + { 3 , 0 }, + {'3','0'} }, }, PlatoonData = { @@ -1182,16 +1182,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3 , 0 }, - {'default_brain','3','0'} + { 3 , 0 }, + {'3','0'} }, }, PlatoonData = { @@ -1214,16 +1214,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2, 4 }, - {'default_brain','1','2','4'} + { 1 , 2, 4 }, + {'1','2','4'} }, }, PlatoonData = { @@ -1246,12 +1246,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1274,12 +1274,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1302,12 +1302,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1338,17 +1338,17 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, --[[ {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 3, 4 }, - {'default_brain','1','3','4'} + { 1 , 3, 4 }, + {'1','3','4'} }, ]]-- }, @@ -1372,12 +1372,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1400,12 +1400,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1428,12 +1428,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1456,16 +1456,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2, 4 }, - {'default_brain','1','2','4'} + { 1 , 2, 4 }, + {'1','2','4'} }, }, PlatoonData = { @@ -1488,16 +1488,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3 , 0 }, - {'default_brain','3','0'} + { 3 , 0 }, + {'3','0'} }, }, PlatoonData = { @@ -1525,12 +1525,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1553,12 +1553,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1581,12 +1581,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1611,16 +1611,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0}, - {'default_brain','2','0'} + { 2, 0}, + {'2','0'} }, }, PlatoonData = { @@ -1646,12 +1646,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1674,12 +1674,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1702,12 +1702,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1730,16 +1730,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2, 4}, - {'default_brain', '1', '2', '4'} + { 1 , 2, 4}, + { '1', '2', '4'} }, }, PlatoonData = { @@ -1762,16 +1762,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2, 4}, - {'default_brain', '1', '2', '4'} + { 1 , 2, 4}, + { '1', '2', '4'} }, }, PlatoonData = { @@ -1794,16 +1794,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 4, 0}, - {'default_brain','2','4','0'} + { 2, 4, 0}, + {'2','4','0'} }, }, PlatoonData = { @@ -1826,16 +1826,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 4, 0}, - {'default_brain','2','4','0'} + { 2, 4, 0}, + {'2','4','0'} }, }, PlatoonData = { @@ -1858,16 +1858,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 4, 0}, - {'default_brain','2','4','0'} + { 2, 4, 0}, + {'2','4','0'} }, }, PlatoonData = { @@ -1890,16 +1890,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 3, 0}, - {'default_brain','1','3','0'} + { 1, 3, 0}, + {'1','3','0'} }, }, PlatoonData = { @@ -1922,16 +1922,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 3, 0}, - {'default_brain','1','3','0'} + { 1, 3, 0}, + {'1','3','0'} }, }, PlatoonData = { @@ -1954,16 +1954,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 3, 0}, - {'default_brain','1','3','0'} + { 1, 3, 0}, + {'1','3','0'} }, }, PlatoonData = { @@ -1987,16 +1987,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3, 0}, - {'default_brain', '3', '0'} + { 3, 0}, + { '3', '0'} }, }, PlatoonData = { @@ -2019,16 +2019,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3, 0}, - {'default_brain', '3', '0'} + { 3, 0}, + { '3', '0'} }, }, PlatoonData = { @@ -2051,16 +2051,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3, 0}, - {'default_brain', '3', '0'} + { 3, 0}, + { '3', '0'} }, }, PlatoonData = { @@ -2085,16 +2085,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1', '0'} + { 1, 0 }, + { '1', '0'} }, }, PlatoonData = { @@ -2117,16 +2117,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0}, - {'default_brain', '1', '0'}, + { 1, 0}, + { '1', '0'}, }, }, PlatoonData = { @@ -2150,12 +2150,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/BasicLandAttack_editorfunctions.lua', 'NeedTransports', - {'default_brain','default_master','default_location_type'}, - {'default_brain','default_master','default_location_type'} + {'default_master','default_location_type'}, + {'default_master','default_location_type'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain','1', '0'} + { 1, 0 }, + {'1', '0'} }, }, PlatoonData = { @@ -2175,8 +2175,8 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/BasicLandAttack_editorfunctions.lua', 'NeedTransports', - {'default_brain','default_master','default_location_type'}, - {'default_brain','default_master','default_location_type'} + {'default_master','default_location_type'}, + {'default_master','default_location_type'} }, }, PlatoonData = { @@ -2196,8 +2196,8 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/BasicLandAttack_editorfunctions.lua', 'NeedTransports', - {'default_brain','default_master','default_location_type'}, - {'default_brain','default_master','default_location_type'} + {'default_master','default_location_type'}, + {'default_master','default_location_type'} }, }, PlatoonData = { @@ -2225,18 +2225,18 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/basiclandattack_editorfunctions.lua', 'BasicLandAttackMasterCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonBuildCallbacks = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMUnlockPlatoon', - {'default_brain','default_platoon'}, - {'default_brain','default_platoon'} + {'default_platoon'}, + {'default_platoon'} }, }, PlatoonAddFunctions = { diff --git a/lua/AI/OpAI/BomberEscort_save.lua b/lua/AI/OpAI/BomberEscort_save.lua index a9f68c2f8a..0801b30b33 100644 --- a/lua/AI/OpAI/BomberEscort_save.lua +++ b/lua/AI/OpAI/BomberEscort_save.lua @@ -131,16 +131,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/bomberescort_editorfunctions.lua', 'BomberEscortChildBomberCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, }, PlatoonData = { @@ -164,20 +164,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/bomberescort_editorfunctions.lua', 'BomberEscortChildBomberCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 0 }, - {'default_brain','1','0'} + { 1 , 0 }, + {'1','0'} }, }, PlatoonData = { @@ -201,16 +201,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/bomberescort_editorfunctions.lua', 'BomberEscortChildEscortCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, }, PlatoonData = { @@ -234,16 +234,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/bomberescort_editorfunctions.lua', 'BomberEscortChildBomberCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -267,18 +267,18 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/bomberescort_editorfunctions.lua', 'BomberEscortMasterCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonBuildCallbacks = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMUnlockPlatoon', - {'default_brain','default_platoon'}, - {'default_brain','default_platoon'} + {'default_platoon'}, + {'default_platoon'} }, }, PlatoonAddFunctions = { @@ -306,16 +306,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/bomberescort_editorfunctions.lua', 'BomberEscortChildBomberCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, }, PlatoonData = { @@ -339,20 +339,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/bomberescort_editorfunctions.lua', 'BomberEscortChildBomberCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, {'/lua/editor/otherarmyunitcountbuildconditions.lua', 'BrainGreaterThanNumCategory', - {'default_brain','Player', 5 , categories.NAVAL * categories.MOBILE }, - {'default_brain','Player','5','categories.NAVAL * categories.MOBILE'} + {'Player', 5 , categories.NAVAL * categories.MOBILE }, + {'Player','5','categories.NAVAL * categories.MOBILE'} }, }, PlatoonData = { @@ -376,16 +376,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/bomberescort_editorfunctions.lua', 'BomberEscortChildEscortCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 2 }, - {'default_brain','default_builder_name','2'} + {'default_builder_name', 2 }, + {'default_builder_name','2'} }, }, PlatoonData = { diff --git a/lua/AI/OpAI/EngineerAttack_save.lua b/lua/AI/OpAI/EngineerAttack_save.lua index 390c2ab054..2cfc68cbcf 100644 --- a/lua/AI/OpAI/EngineerAttack_save.lua +++ b/lua/AI/OpAI/EngineerAttack_save.lua @@ -114,13 +114,13 @@ Scenario = { BuildConditions = { {'/lua/ai/opai/EngineerAttack_save.lua', 'NeedEngineerTransports', - {'default_brain','default_master','default_location_type'}, - {'default_brain','default_master','default_location_type'} + {'default_master','default_location_type'}, + {'default_master','default_location_type'} }, { '/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 }, - {'default_brain','1'} + { 1 }, + {'1'} }, }, PlatoonData = @@ -146,13 +146,13 @@ Scenario = { BuildConditions = { {'/lua/ai/opai/EngineerAttack_save.lua', 'NeedEngineerTransports', - {'default_brain','default_master','default_location_type'}, - {'default_brain','default_master','default_location_type'} + {'default_master','default_location_type'}, + {'default_master','default_location_type'} }, { '/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 2, 3 }, - {'default_brain', '1', '2', '3'} + { 1, 2, 3 }, + { '1', '2', '3'} }, }, PlatoonData = @@ -178,13 +178,13 @@ Scenario = { BuildConditions = { {'/lua/ai/opai/EngineerAttack_save.lua', 'NeedEngineerTransports', - {'default_brain','default_master','default_location_type'}, - {'default_brain','default_master','default_location_type'} + {'default_master','default_location_type'}, + {'default_master','default_location_type'} }, { '/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 4 }, - {'default_brain','4'} + { 4 }, + {'4'} }, }, PlatoonData = @@ -210,8 +210,8 @@ Scenario = { BuildConditions = { {'/lua/ai/opai/EngineerAttack_save.lua', 'NeedEngineerTransports', - {'default_brain','default_master','default_location_type'}, - {'default_brain','default_master','default_location_type'} + {'default_master','default_location_type'}, + {'default_master','default_location_type'} }, }, PlatoonData = @@ -240,17 +240,17 @@ Scenario = { BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/EngineerAttack_save.lua', 'EngineerAttackChildCount', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, { '/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 }, - {'default_brain','1'} + { 1 }, + {'1'} }, }, PlatoonData = @@ -289,17 +289,17 @@ Scenario = { { { '/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/EngineerAttack_save.lua', 'EngineerAttackChildCount', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, { '/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 2, 3 }, - {'default_brain', '1', '2', '3'} + { 1, 2, 3 }, + { '1', '2', '3'} }, }, PlatoonData = @@ -338,17 +338,17 @@ Scenario = { { { '/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/EngineerAttack_save.lua', 'EngineerAttackChildCount', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, { '/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 }, - {'default_brain', '1'} + { 1 }, + { '1'} }, }, PlatoonData = @@ -387,17 +387,17 @@ Scenario = { { { '/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/EngineerAttack_save.lua', 'EngineerAttackChildCount', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, { '/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 4 }, - {'default_brain','4'} + { 4 }, + {'4'} }, }, PlatoonData = @@ -436,12 +436,12 @@ Scenario = { { { '/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/EngineerAttack_save.lua', 'EngineerAttackChildCount', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = @@ -480,17 +480,17 @@ Scenario = { { { '/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/EngineerAttack_save.lua', 'EngineerAttackChildCount', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, { '/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 4 }, - {'default_brain','4'} + { 4 }, + {'4'} }, }, PlatoonData = @@ -532,19 +532,19 @@ Scenario = { { { '/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/EngineerAttack_save.lua', 'EngineerAttackMasterCount', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonBuildCallbacks = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMUnlockPlatoon', - {'default_brain','default_platoon'}, - {'default_brain','default_platoon'}}, + {'default_platoon'}, + {'default_platoon'}}, }, PlatoonAddFunctions = { diff --git a/lua/AI/OpAI/GenerateNaval.lua b/lua/AI/OpAI/GenerateNaval.lua index 0286e93d87..49f2dec59a 100644 --- a/lua/AI/OpAI/GenerateNaval.lua +++ b/lua/AI/OpAI/GenerateNaval.lua @@ -238,13 +238,13 @@ function GenerateNavalOSB(name, levelsPerTier, minFrigates, maxFrigates, faction BuildConditions = { { '/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, { '/lua/ai/opai/GenerateNaval.lua', 'ChildShouldBuild', - {'default_brain','default_master'}, - {'default_brain','default_master'}, + {'default_master'}, + {'default_master'}, }, }, PlatoonData = { @@ -282,20 +282,20 @@ function GenerateNavalOSB(name, levelsPerTier, minFrigates, maxFrigates, faction BuildConditions = { { '/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, { '/lua/ai/opai/GenerateNaval.lua', 'FleetIsBuilt', - {'default_brain','default_master'}, - {'default_brain','default_master'}, + {'default_master'}, + {'default_master'}, }, }, PlatoonBuildCallbacks = { { '/lua/editor/amplatoonhelperfunctions.lua', 'AMUnlockPlatoon', - {'default_brain','default_platoon'}, - {'default_brain','default_platoon'} + {'default_platoon'}, + {'default_platoon'} }, }, PlatoonAddFunctions = { diff --git a/lua/AI/OpAI/HeavyLandAttack_save.lua b/lua/AI/OpAI/HeavyLandAttack_save.lua index acf943a305..8fc20ecc80 100644 --- a/lua/AI/OpAI/HeavyLandAttack_save.lua +++ b/lua/AI/OpAI/HeavyLandAttack_save.lua @@ -166,12 +166,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackChildArtillery', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -195,16 +195,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackChildDirectFire', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2 }, - {'default_brain','1','2'} + { 1 , 2 }, + {'1','2'} }, }, PlatoonData = { @@ -228,12 +228,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackChildArtillery', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -257,12 +257,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackChildDirectFire', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -286,12 +286,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackChildDirectFire', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -315,16 +315,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackChildDirectFire', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 3 }, - {'default_brain','1','3'} + { 1 , 3 }, + {'1','3'} }, }, PlatoonData = { @@ -348,12 +348,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackChildDirectFire', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -377,12 +377,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackChildAntiAir', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -406,12 +406,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackChildArtillery', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -435,12 +435,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackChildAntiAir', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -464,16 +464,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackChildDefensive', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3 , 0 }, - {'default_brain','3','0'} + { 3 , 0 }, + {'3','0'} }, }, PlatoonData = { @@ -497,18 +497,18 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackMasterCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonBuildCallbacks = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMUnlockPlatoon', - {'default_brain','default_platoon'}, - {'default_brain','default_platoon'} + {'default_platoon'}, + {'default_platoon'} }, }, PlatoonAddFunctions = { @@ -536,16 +536,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackChildDefensive', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2 }, - {'default_brain','1','2'} + { 1 , 2 }, + {'1','2'} }, }, PlatoonData = { @@ -569,16 +569,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/heavylandattack_editorfunctions.lua', 'HeavyLandAttackChildDirectFire', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3 , 0 }, - {'default_brain','3','0'} + { 3 , 0 }, + {'3','0'} }, }, PlatoonData = { diff --git a/lua/AI/OpAI/LandAssault_save.lua b/lua/AI/OpAI/LandAssault_save.lua index cd8a137787..828c00844b 100644 --- a/lua/AI/OpAI/LandAssault_save.lua +++ b/lua/AI/OpAI/LandAssault_save.lua @@ -176,16 +176,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -208,16 +208,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -240,12 +240,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -268,20 +268,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3 , 0 }, - {'default_brain','3','0'} + { 3 , 0 }, + {'3','0'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -304,24 +304,24 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2 }, - {'default_brain','1','2'} + { 1 , 2 }, + {'1','2'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, {'/lua/editor/miscbuildconditions.lua', 'DifficultyGreaterOrEqual', - {'default_brain', 2 }, - {'default_brain','2'} + { 2 }, + {'2'} }, }, PlatoonData = { @@ -344,18 +344,18 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultMasterCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonBuildCallbacks = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMUnlockPlatoon', - {'default_brain','default_platoon'}, - {'default_brain','default_platoon'} + {'default_platoon'}, + {'default_platoon'} }, }, PlatoonAddFunctions = { @@ -383,16 +383,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -415,20 +415,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 3 }, - {'default_brain','1','3'} + { 1 , 3 }, + {'1','3'} }, }, PlatoonData = { @@ -451,16 +451,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -483,16 +483,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -515,16 +515,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -547,8 +547,8 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultTransport', - {'default_brain','default_transport_count'}, - {'default_brain','default_transport_count'} + {'default_transport_count'}, + {'default_transport_count'} }, }, PlatoonData = { @@ -568,16 +568,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -600,24 +600,24 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3 , 0 }, - {'default_brain','3','0'} + { 3 , 0 }, + {'3','0'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, {'/lua/editor/miscbuildconditions.lua', 'DifficultyGreaterOrEqual', - {'default_brain', 2 }, - {'default_brain','2'} + { 2 }, + {'2'} }, }, PlatoonData = { @@ -640,20 +640,20 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 2 }, - {'default_brain','1','2'} + { 1 , 2 }, + {'1','2'} }, {'/lua/editor/platooncountbuildconditions.lua', 'NumBuildersLessThanOSCounter', - {'default_brain','default_builder_name', 1 }, - {'default_brain','default_builder_name','1'} + {'default_builder_name', 1 }, + {'default_builder_name','1'} }, }, PlatoonData = { @@ -676,8 +676,8 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/landassault_editorfunctions.lua', 'LandAssaultTransport', - {'default_brain','default_transport_count'}, - {'default_brain','default_transport_count'} + {'default_transport_count'}, + {'default_transport_count'} }, }, PlatoonData = { diff --git a/lua/AI/OpAI/LeftoverCleanup_save.lua b/lua/AI/OpAI/LeftoverCleanup_save.lua index 478bb34a80..11fdd86b0f 100644 --- a/lua/AI/OpAI/LeftoverCleanup_save.lua +++ b/lua/AI/OpAI/LeftoverCleanup_save.lua @@ -96,8 +96,8 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/leftovercleanup_editorfunctions.lua', 'LeftoverCleanupBC', - {'default_brain','default_location_type'}, - {'default_brain','default_location_type'} + {'default_location_type'}, + {'default_location_type'} }, }, PlatoonData = { diff --git a/lua/AI/OpAI/NavalAttacks_save.lua b/lua/AI/OpAI/NavalAttacks_save.lua index 3c9dd46340..8db411ca57 100644 --- a/lua/AI/OpAI/NavalAttacks_save.lua +++ b/lua/AI/OpAI/NavalAttacks_save.lua @@ -532,12 +532,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -560,12 +560,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -588,12 +588,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -616,12 +616,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -644,12 +644,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -672,12 +672,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -700,12 +700,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -728,12 +728,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -756,12 +756,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -784,12 +784,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -812,12 +812,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -840,12 +840,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -868,12 +868,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -896,12 +896,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -924,12 +924,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -952,12 +952,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -980,12 +980,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1008,12 +1008,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1036,12 +1036,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1064,12 +1064,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1092,12 +1092,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1120,12 +1120,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1148,12 +1148,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1176,12 +1176,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1204,12 +1204,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1232,12 +1232,12 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -1264,16 +1264,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 3, 0 }, - {'default_brain', '2','3', 0 } + { 2, 3, 0 }, + { '2','3', 0 } }, }, PlatoonData = { @@ -1296,16 +1296,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 3, 0 }, - {'default_brain', '2','3', 0 } + { 2, 3, 0 }, + { '2','3', 0 } }, }, PlatoonData = { @@ -1328,16 +1328,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 3, 0 }, - {'default_brain', '1','3', 0 } + { 1, 3, 0 }, + { '1','3', 0 } }, }, PlatoonData = { @@ -1360,16 +1360,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 3, 4 }, - {'default_brain', '2','3','4' } + { 2, 3, 4 }, + { '2','3','4' } }, }, PlatoonData = { @@ -1392,16 +1392,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 2, 3 }, - {'default_brain', '1','2','3' } + { 1, 2, 3 }, + { '1','2','3' } }, }, PlatoonData = { @@ -1424,16 +1424,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 3, 0 }, - {'default_brain', '2','3', 0 } + { 2, 3, 0 }, + { '2','3', 0 } }, }, PlatoonData = { @@ -1456,16 +1456,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 3, 0 }, - {'default_brain', '2','3', 0 } + { 2, 3, 0 }, + { '2','3', 0 } }, }, PlatoonData = { @@ -1488,16 +1488,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 3, 0 }, - {'default_brain', '2','3', 0 } + { 2, 3, 0 }, + { '2','3', 0 } }, }, PlatoonData = { @@ -1520,16 +1520,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 3, 0 }, - {'default_brain', '1','3', 0 } + { 1, 3, 0 }, + { '1','3', 0 } }, }, PlatoonData = { @@ -1552,16 +1552,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 3, 0 }, - {'default_brain', '1','3', 0 } + { 1, 3, 0 }, + { '1','3', 0 } }, }, PlatoonData = { @@ -1584,16 +1584,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 3, 0 }, - {'default_brain', '1','3', 0 } + { 1, 3, 0 }, + { '1','3', 0 } }, }, PlatoonData = { @@ -1616,16 +1616,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 3, 4, 0 }, - {'default_brain', '2','3','4','0' } + { 2, 3, 4, 0 }, + { '2','3','4','0' } }, }, PlatoonData = { @@ -1648,16 +1648,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 3, 4, 0 }, - {'default_brain', '2','3','4','0' } + { 2, 3, 4, 0 }, + { '2','3','4','0' } }, }, PlatoonData = { @@ -1684,16 +1684,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2', '0' } + { 2, 0 }, + { '2', '0' } }, }, PlatoonData = { @@ -1716,16 +1716,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2', '0' } + { 2, 0 }, + { '2', '0' } }, }, PlatoonData = { @@ -1748,16 +1748,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2', '0' } + { 2, 0 }, + { '2', '0' } }, }, PlatoonData = { @@ -1780,16 +1780,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2', '0' } + { 2, 0 }, + { '2', '0' } }, }, PlatoonData = { @@ -1812,16 +1812,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2', '0' } + { 2, 0 }, + { '2', '0' } }, }, PlatoonData = { @@ -1844,16 +1844,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2', '0' } + { 2, 0 }, + { '2', '0' } }, }, PlatoonData = { @@ -1876,16 +1876,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2', '0' } + { 2, 0 }, + { '2', '0' } }, }, PlatoonData = { @@ -1908,16 +1908,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2', '0' } + { 2, 0 }, + { '2', '0' } }, }, PlatoonData = { @@ -1940,16 +1940,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2', '0' } + { 2, 0 }, + { '2', '0' } }, }, PlatoonData = { @@ -1972,16 +1972,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 2, 0 }, - {'default_brain', '2', '0' } + { 2, 0 }, + { '2', '0' } }, }, PlatoonData = { @@ -2008,16 +2008,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 3, 0 }, - {'default_brain', '3', '0' } + { 3, 0 }, + { '3', '0' } }, }, PlatoonData = { @@ -2043,16 +2043,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 4, 0 }, - {'default_brain', '4', '0' } + { 4, 0 }, + { '4', '0' } }, }, PlatoonData = { @@ -2075,16 +2075,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 4, 0 }, - {'default_brain', '4', '0' } + { 4, 0 }, + { '4', '0' } }, }, PlatoonData = { @@ -2107,16 +2107,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 4, 0 }, - {'default_brain', '4', '0' } + { 4, 0 }, + { '4', '0' } }, }, PlatoonData = { @@ -2139,16 +2139,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 4, 0 }, - {'default_brain', '4', '0' } + { 4, 0 }, + { '4', '0' } }, }, PlatoonData = { @@ -2175,16 +2175,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1', '0' } + { 1, 0 }, + { '1', '0' } }, }, PlatoonData = { @@ -2207,16 +2207,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1', '0' } + { 1, 0 }, + { '1', '0' } }, }, PlatoonData = { @@ -2239,16 +2239,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1', '0' } + { 1, 0 }, + { '1', '0' } }, }, PlatoonData = { @@ -2271,16 +2271,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1', '0' } + { 1, 0 }, + { '1', '0' } }, }, PlatoonData = { @@ -2303,16 +2303,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1', '0' } + { 1, 0 }, + { '1', '0' } }, }, PlatoonData = { @@ -2335,16 +2335,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1', '0' } + { 1, 0 }, + { '1', '0' } }, }, PlatoonData = { @@ -2367,16 +2367,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1', '0' } + { 1, 0 }, + { '1', '0' } }, }, PlatoonData = { @@ -2399,16 +2399,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1', '0' } + { 1, 0 }, + { '1', '0' } }, }, PlatoonData = { @@ -2431,16 +2431,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1', '0' } + { 1, 0 }, + { '1', '0' } }, }, PlatoonData = { @@ -2463,16 +2463,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1', '0' } + { 1, 0 }, + { '1', '0' } }, }, PlatoonData = { @@ -2495,16 +2495,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1', '0' } + { 1, 0 }, + { '1', '0' } }, }, PlatoonData = { @@ -2527,16 +2527,16 @@ Scenario = { }, BuildConditions = { {'/lua/ai/opai/navalattacks_editorfunctions.lua', 'NavalAttacksChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1, 0 }, - {'default_brain', '1', '0' } + { 1, 0 }, + { '1', '0' } }, }, PlatoonData = { @@ -2563,18 +2563,18 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/NavalAttacks_editorfunctions.lua', 'NavalAttacksMasterCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonBuildCallbacks = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMUnlockPlatoon', - {'default_brain','default_platoon'}, - {'default_brain','default_platoon'} + {'default_platoon'}, + {'default_platoon'} }, }, PlatoonAddFunctions = { diff --git a/lua/AI/OpAI/NavalFleet_save.lua b/lua/AI/OpAI/NavalFleet_save.lua index e3d46a2e70..587cd96061 100644 --- a/lua/AI/OpAI/NavalFleet_save.lua +++ b/lua/AI/OpAI/NavalFleet_save.lua @@ -123,12 +123,12 @@ Scenario = { RequiresConstruction = true, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/navalfleet_editorfunctions.lua', 'NavalFleetChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -149,12 +149,12 @@ Scenario = { RequiresConstruction = true, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/navalfleet_editorfunctions.lua', 'NavalFleetChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -175,12 +175,12 @@ Scenario = { RequiresConstruction = true, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/navalfleet_editorfunctions.lua', 'NavalFleetChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -205,18 +205,18 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/navalfleet_editorfunctions.lua', 'NavalFleetMasterCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonBuildCallbacks = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMUnlockPlatoon', - {'default_brain','default_platoon'}, - {'default_brain','default_platoon'} + {'default_platoon'}, + {'default_platoon'} }, }, PlatoonAddFunctions = { @@ -240,12 +240,12 @@ Scenario = { RequiresConstruction = true, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/navalfleet_editorfunctions.lua', 'NavalFleetChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -266,12 +266,12 @@ Scenario = { RequiresConstruction = true, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, {'/lua/ai/opai/navalfleet_editorfunctions.lua', 'NavalSubChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { diff --git a/lua/AI/OpAI/lightairattack_save.lua b/lua/AI/OpAI/lightairattack_save.lua index 2f3082ea08..97e1d665e0 100644 --- a/lua/AI/OpAI/lightairattack_save.lua +++ b/lua/AI/OpAI/lightairattack_save.lua @@ -131,16 +131,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','OSB_Master_LightAirAttack'}, - {'default_brain','OSB_Master_LightAirAttack'} + {'OSB_Master_LightAirAttack'}, + {'OSB_Master_LightAirAttack'} }, {'/lua/editor/miscbuildconditions.lua', 'FactionIndex', - {'default_brain', 1 , 0 }, - {'default_brain','1','0'} + { 1 , 0 }, + {'1','0'} }, {'/lua/ai/opai/lightairattack_editorfunctions.lua', 'LightAirChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -163,12 +163,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','OSB_Master_LightAirAttack'}, - {'default_brain','OSB_Master_LightAirAttack'} + {'OSB_Master_LightAirAttack'}, + {'OSB_Master_LightAirAttack'} }, {'/lua/ai/opai/lightairattack_editorfunctions.lua', 'LightAirChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -191,12 +191,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','OSB_Master_LightAirAttack'}, - {'default_brain','OSB_Master_LightAirAttack'} + {'OSB_Master_LightAirAttack'}, + {'OSB_Master_LightAirAttack'} }, {'/lua/ai/opai/lightairattack_editorfunctions.lua', 'LightAirChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -219,12 +219,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','OSB_Master_LightAirAttack'}, - {'default_brain','OSB_Master_LightAirAttack'} + {'OSB_Master_LightAirAttack'}, + {'OSB_Master_LightAirAttack'} }, {'/lua/ai/opai/lightairattack_editorfunctions.lua', 'LightAirChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -247,18 +247,18 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','OSB_Master_LightAirAttack'}, - {'default_brain','OSB_Master_LightAirAttack'} + {'OSB_Master_LightAirAttack'}, + {'OSB_Master_LightAirAttack'} }, {'/lua/ai/opai/lightairattack_editorfunctions.lua', 'LightAirMasterCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonBuildCallbacks = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMUnlockPlatoon', - {'default_brain','default_platoon'}, - {'default_brain','default_platoon'} + {'default_platoon'}, + {'default_platoon'} }, }, PlatoonAddFunctions = { @@ -286,12 +286,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','OSB_Master_LightAirAttack'}, - {'default_brain','OSB_Master_LightAirAttack'} + {'OSB_Master_LightAirAttack'}, + {'OSB_Master_LightAirAttack'} }, {'/lua/ai/opai/lightairattack_editorfunctions.lua', 'LightAirChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -314,16 +314,16 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','OSB_Master_LightAirAttack'}, - {'default_brain','OSB_Master_LightAirAttack'} + {'OSB_Master_LightAirAttack'}, + {'OSB_Master_LightAirAttack'} }, {'/lua/editor/otherarmyunitcountbuildconditions.lua', 'BrainGreaterThanNumCategory', - {'default_brain','Player', 5 , categories.NAVAL }, - {'default_brain','Player','5','categories.NAVAL'} + {'Player', 5 , categories.NAVAL }, + {'Player','5','categories.NAVAL'} }, {'/lua/ai/opai/lightairattack_editorfunctions.lua', 'LightAirChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { @@ -346,12 +346,12 @@ Scenario = { }, BuildConditions = { {'/lua/editor/amplatoonhelperfunctions.lua', 'AMCheckPlatoonLock', - {'default_brain','OSB_Master_LightAirAttack'}, - {'default_brain','OSB_Master_LightAirAttack'} + {'OSB_Master_LightAirAttack'}, + {'OSB_Master_LightAirAttack'} }, {'/lua/ai/opai/lightairattack_editorfunctions.lua', 'LightAirChildCountDifficulty', - {'default_brain','default_master'}, - {'default_brain','default_master'} + {'default_master'}, + {'default_master'} }, }, PlatoonData = { From 24f15b6e8c5b18d5370481b7e8f1932d88d975c6 Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Mon, 22 Dec 2025 00:03:34 +0100 Subject: [PATCH 15/17] Adjust UEF civ truck - Added missing UEF tag - Increased turn rate --- units/UEC0001/UEC0001_unit.bp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/units/UEC0001/UEC0001_unit.bp b/units/UEC0001/UEC0001_unit.bp index 22ec1b021f..051afa5bb5 100644 --- a/units/UEC0001/UEC0001_unit.bp +++ b/units/UEC0001/UEC0001_unit.bp @@ -27,13 +27,14 @@ UnitBlueprint { }, }, Categories = { - 'SELECTABLE', + 'LAND', + 'MOBILE', 'OPERATION', + 'RECLAIMABLE', + 'SELECTABLE', 'TECH1', + 'UEF', 'VISIBLETORECON', - 'RECLAIMABLE', - 'LAND', - 'MOBILE', }, Defense = { ArmorType = 'Normal', @@ -134,7 +135,7 @@ UnitBlueprint { MaxSteerForce = 10, MotionType = 'RULEUMT_Land', TurnRadius = 0, - TurnRate = 60, + TurnRate = 80, }, SelectionSizeX = 0.35, SelectionSizeZ = 0.65, From d00603c2220361d7983f0c0c2306d6eb3e0636d5 Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Mon, 22 Dec 2025 09:57:21 +0100 Subject: [PATCH 16/17] Fix unit dead check UI doesn't have .Dead There's an error spam when selected ACU or Nuke is killed / deleted, which triggers cinematics --- lua/ui/game/orders.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lua/ui/game/orders.lua b/lua/ui/game/orders.lua index 1b69418379..97955510cb 100644 --- a/lua/ui/game/orders.lua +++ b/lua/ui/game/orders.lua @@ -891,7 +891,7 @@ local function disPauseFunc() end local function NukeBtnText(button) - if not currentSelection[1] or currentSelection[1].Dead then return '' end + if not currentSelection[1] or IsDestroyed(currentSelection[1]) then return '' end if table.getsize(currentSelection) > 1 then button.buttonText:SetColor('fffff600') return '?' @@ -907,7 +907,7 @@ local function NukeBtnText(button) end local function TacticalBtnText(button) - if not currentSelection[1] or currentSelection[1].Dead then return '' end + if not currentSelection[1] or IsDestroyed(currentSelection[1]) then return '' end if table.getsize(currentSelection) > 1 then button.buttonText:SetColor('fffff600') return '?' @@ -999,7 +999,7 @@ end function EnterOverchargeMode() local unit = currentSelection[1] - if not unit or unit.Dead or unit:IsOverchargePaused() then return end + if not unit or IsDestroyed(unit) or unit:IsOverchargePaused() then return end local bp = unit:GetBlueprint() local weapon = FindOCWeapon(unit:GetBlueprint()) if not weapon then return end @@ -1012,7 +1012,7 @@ end local function OverchargeFrame(self, deltaTime) local unit = currentSelection[1] - if not unit or unit.Dead then return end + if not unit or IsDestroyed(unit) then return end local weapon = FindOCWeapon(unit:GetBlueprint()) if not weapon then self:SetNeedsFrameUpdate(false) From 2d6cc8c541162582c62671f4f3a8122af447ce93 Mon Sep 17 00:00:00 2001 From: speed2CZ Date: Mon, 22 Dec 2025 11:38:28 +0100 Subject: [PATCH 17/17] Fix engineer builder name typo --- lua/AI/OpAI/BaseManager.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/AI/OpAI/BaseManager.lua b/lua/AI/OpAI/BaseManager.lua index 677a5a6cad..81c6308bd5 100644 --- a/lua/AI/OpAI/BaseManager.lua +++ b/lua/AI/OpAI/BaseManager.lua @@ -1798,7 +1798,7 @@ BaseManager = ClassSimple { -- The Engineer AI Thread for i = 1, 3 do defaultBuilder = { - BuilderName = 'T' .. i .. 'BaseManaqer_EngineersWork_' .. self.BaseName, + BuilderName = 'T' .. i .. 'BaseManager_EngineersWork_' .. self.BaseName, PlatoonTemplate = self:CreateEngineerPlatoonTemplate(i), Priority = 1, PlatoonAIFunction = { '/lua/ai/opai/BaseManagerPlatoonThreads.lua', 'BaseManagerEngineerPlatoonSplit' },