HackyAI dissolve update rule and yaml updates

This commit is contained in:
reaperrr
2018-11-14 16:02:02 +01:00
committed by Paul Chote
parent 54c2894b4e
commit d179f6eaae
6 changed files with 570 additions and 439 deletions

View File

@@ -67,7 +67,6 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules
"BuildingFractions",
};
// Fields that should (for now) only be copied instead of moved, for backwards-compatibility reasons
readonly string[] copyBaseBuilderFields =
{
"MinBaseRadius",
@@ -84,6 +83,50 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules
"CapturableStances",
};
readonly string[] squadManagerFields =
{
"SquadSize",
"SquadSizeRandomBonus",
"AssignRolesInterval",
"RushInterval",
"AttackForceInterval",
"MinimumAttackForceDelay",
"RushAttackScanRadius",
"ProtectUnitScanRadius",
"MaxBaseRadius",
"MaximumDefenseRadius",
"IdleScanRadius",
"DangerScanRadius",
"AttackScanRadius",
"ProtectionScanRadius",
"UnitsCommonNames",
"BuildingCommonNames",
};
readonly string[] squadManagerCommonNames =
{
"ConstructionYard",
"NavalProduction",
};
readonly string[] unitBuilderFields =
{
"IdleBaseUnitsMaximum",
"UnitQueues",
"UnitsToBuild",
"UnitLimits",
};
readonly string[] mcvManagerFields =
{
"AssignRolesInterval",
"MinBaseRadius",
"MaxBaseRadius",
"RestrictMCVDeploymentFallbackToBase",
"UnitsCommonNames",
"BuildingCommonNames",
};
public override IEnumerable<string> AfterUpdate(ModData modData)
{
if (!messageShown)
@@ -106,6 +149,14 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules
if (actorNode.Key != "Player")
yield break;
var dummyAIs = actorNode.ChildrenMatching("DummyAI");
foreach (var dummyAINode in dummyAIs)
dummyAINode.RenameKey("DummyBot");
var hackyAIRemovals = actorNode.ChildrenMatching("-HackyAI");
foreach (var hackyAIRemovalNode in hackyAIRemovals)
hackyAIRemovalNode.RenameKey("-ModularBot");
var hackyAIs = actorNode.ChildrenMatching("HackyAI", includeRemovals: false);
if (!hackyAIs.Any())
yield break;
@@ -270,6 +321,118 @@ namespace OpenRA.Mods.Common.UpdateRules.Rules
addNodes.Add(node);
}
if (squadManagerFields.Any(f => hackyAINode.ChildrenMatching(f).Any()))
{
var node = new MiniYamlNode("SquadManagerBotModule@" + aiType, "");
node.AddNode(new MiniYamlNode("RequiresCondition", conditionString));
foreach (var field in squadManagerFields)
{
var fieldNode = hackyAINode.LastChildMatching(field);
if (fieldNode != null)
{
if (fieldNode.KeyMatches("UnitsCommonNames", includeRemovals: false))
{
var mcvNode = fieldNode.LastChildMatching("Mcv");
var excludeNode = fieldNode.LastChildMatching("ExcludeFromSquads");
var navalUnitsNode = fieldNode.LastChildMatching("NavalUnits");
// In the old code, actors listed under Mcv were also excluded from squads.
// However, Mcv[Types] is moved to McvManagerBotModule now, so we need to add them under ExcludeFromSquads as well.
if (excludeNode == null && mcvNode != null)
node.AddNode("ExcludeFromSquadsTypes", mcvNode.Value.Value);
else if (excludeNode != null && mcvNode != null)
{
var mcvValue = mcvNode.NodeValue<string>();
var excludeValue = excludeNode.NodeValue<string>();
node.AddNode("ExcludeFromSquadsTypes", excludeValue + ", " + mcvValue);
}
if (navalUnitsNode != null)
node.AddNode("NavalUnitsTypes", navalUnitsNode.Value.Value);
}
else if (fieldNode.KeyMatches("BuildingCommonNames", includeRemovals: false))
{
foreach (var b in fieldNode.Value.Nodes)
if (squadManagerCommonNames.Any(f => f == b.Key))
node.AddNode(b.Key + "Types", b.Value.Value);
}
else if (fieldNode.KeyMatches("AssignRolesInterval") || fieldNode.KeyMatches("MaxBaseRadius"))
node.AddNode(fieldNode.Key, fieldNode.Value.Value);
else
fieldNode.MoveNode(hackyAINode, node);
}
}
addNodes.Add(node);
}
if (unitBuilderFields.Any(f => hackyAINode.ChildrenMatching(f).Any()))
{
var node = new MiniYamlNode("UnitBuilderBotModule@" + aiType, "");
node.AddNode(new MiniYamlNode("RequiresCondition", conditionString));
foreach (var field in unitBuilderFields)
{
var fieldNode = hackyAINode.LastChildMatching(field);
if (fieldNode != null)
{
if (fieldNode.KeyMatches("UnitsToBuild", includeRemovals: false))
{
var unitNodes = fieldNode.Value.Nodes;
foreach (var n in unitNodes)
ConvertFractionToInteger(n);
}
fieldNode.MoveNode(hackyAINode, node);
}
}
addNodes.Add(node);
}
if (mcvManagerFields.Any(f => hackyAINode.ChildrenMatching(f).Any()))
{
var node = new MiniYamlNode("McvManagerBotModule@" + aiType, "");
node.AddNode(new MiniYamlNode("RequiresCondition", conditionString));
foreach (var field in mcvManagerFields)
{
var fieldNode = hackyAINode.LastChildMatching(field);
if (fieldNode != null)
{
if (fieldNode.KeyMatches("UnitsCommonNames", includeRemovals: false))
{
var mcvNode = fieldNode.LastChildMatching("Mcv");
if (mcvNode != null)
mcvNode.MoveAndRenameNode(hackyAINode, node, "McvTypes");
// Nothing left that needs UnitCommonNames, so we can finally remove it
hackyAINode.RemoveNode(fieldNode);
}
else if (fieldNode.KeyMatches("BuildingCommonNames", includeRemovals: false))
{
foreach (var n in fieldNode.Value.Nodes)
{
if (n.KeyMatches("VehiclesFactory"))
node.AddNode("McvFactoryTypes", n.Value.Value);
else if (n.KeyMatches("ConstructionYard"))
node.AddNode("ConstructionYardTypes", n.Value.Value);
}
// Nothing left that needs BuildingCommonNames, so we can finally remove it
hackyAINode.RemoveNode(fieldNode);
}
else
fieldNode.MoveNode(hackyAINode, node);
}
}
addNodes.Add(node);
}
hackyAINode.RenameKey("ModularBot");
}
// Only add module if any bot is using/enabling it.

View File

@@ -1,117 +1,13 @@
Player:
HackyAI@Cabal:
ModularBot@Cabal:
Name: Cabal
Type: cabal
BuildingCommonNames:
ConstructionYard: fact
Refinery: proc
Power: nuke,nuk2
Barracks: pyle,hand
VehiclesFactory: weap,afld
Production: pyle,hand,weap,afld,hpad
Silo: silo
UnitsCommonNames:
Mcv: mcv
ExcludeFromSquads: harv
UnitQueues: Vehicle.Nod, Vehicle.GDI, Infantry.Nod, Infantry.GDI, Aircraft.Nod, Aircraft.GDI
UnitsToBuild:
e1: 65%
e2: 25%
e3: 40%
e4: 15%
e5: 15%
harv: 10%
bggy: 5%
bike: 40%
ltnk: 25%
ftnk: 10%
arty: 60%
stnk: 40%
jeep: 5%
mtnk: 20%
msam: 40%
htnk: 50%
heli: 5%
orca: 5%
UnitLimits:
harv: 8
SquadSize: 15
HackyAI@Watson:
ModularBot@Watson:
Name: Watson
Type: watson
BuildingCommonNames:
ConstructionYard: fact
Refinery: proc
Power: nuke,nuk2
Barracks: pyle,hand
VehiclesFactory: weap,afld
Production: pyle,hand,weap,afld,hpad
Silo: silo
UnitsCommonNames:
Mcv: mcv
ExcludeFromSquads: harv
UnitQueues: Vehicle.Nod, Vehicle.GDI, Infantry.Nod, Infantry.GDI, Aircraft.Nod, Aircraft.GDI
UnitsToBuild:
e1: 65%
e2: 30%
e3: 40%
e4: 30%
e5: 30%
harv: 10%
bggy: 10%
ftnk: 10%
arty: 40%
bike: 10%
heli: 10%
ltnk: 40%
stnk: 40%
orca: 10%
msam: 50%
htnk: 50%
jeep: 20%
mtnk: 50%
UnitLimits:
harv: 8
SquadSize: 15
HackyAI@HAL9001:
ModularBot@HAL9001:
Name: HAL 9001
Type: hal9001
BuildingCommonNames:
ConstructionYard: fact
Refinery: proc
Power: nuke,nuk2
Barracks: pyle,hand
VehiclesFactory: weap,afld
Production: pyle,hand,weap,afld,hpad
Silo: silo
UnitsCommonNames:
Mcv: mcv
ExcludeFromSquads: harv
UnitQueues: Vehicle.Nod, Vehicle.GDI, Infantry.Nod, Infantry.GDI, Aircraft.Nod, Aircraft.GDI
UnitsToBuild:
e1: 65%
e2: 30%
e3: 40%
e4: 50%
e5: 50%
harv: 16%
bggy: 10%
bike: 10%
ltnk: 40%
arty: 20%
ftnk: 5%
stnk: 40%
mlrs: 5%
heli: 10%
jeep: 20%
apc: 10%
mtnk: 50%
msam: 50%
htnk: 50%
orca: 10%
UnitLimits:
harv: 8
SquadSize: 8
SupportPowerBotModule:
RequiresCondition: enable-cabal-ai || enable-watson-ai || enable-hal9001-ai
Decisions:
@@ -315,3 +211,97 @@ Player:
fix: 1
BuildingRepairBotModule:
RequiresCondition: enable-cabal-ai || enable-watson-ai || enable-hal9001-ai
SquadManagerBotModule@cabal:
RequiresCondition: enable-cabal-ai
SquadSize: 15
ExcludeFromSquadsTypes: harv, mcv
ConstructionYardTypes: fact
UnitBuilderBotModule@cabal:
RequiresCondition: enable-cabal-ai
UnitQueues: Vehicle.Nod, Vehicle.GDI, Infantry.Nod, Infantry.GDI, Aircraft.Nod, Aircraft.GDI
UnitsToBuild:
e1: 65
e2: 25
e3: 40
e4: 15
e5: 15
harv: 10
bggy: 5
bike: 40
ltnk: 25
ftnk: 10
arty: 60
stnk: 40
jeep: 5
mtnk: 20
msam: 40
htnk: 50
heli: 5
orca: 5
UnitLimits:
harv: 8
McvManagerBotModule:
RequiresCondition: enable-cabal-ai || enable-watson-ai || enable-hal9001-ai
McvTypes: mcv
ConstructionYardTypes: fact
McvFactoryTypes: weap,afld
SquadManagerBotModule@watson:
RequiresCondition: enable-watson-ai
SquadSize: 15
ExcludeFromSquadsTypes: harv, mcv
ConstructionYardTypes: fact
UnitBuilderBotModule@watson:
RequiresCondition: enable-watson-ai
UnitQueues: Vehicle.Nod, Vehicle.GDI, Infantry.Nod, Infantry.GDI, Aircraft.Nod, Aircraft.GDI
UnitsToBuild:
e1: 65
e2: 30
e3: 40
e4: 30
e5: 30
harv: 10
bggy: 10
ftnk: 10
arty: 40
bike: 10
heli: 10
ltnk: 40
stnk: 40
orca: 10
msam: 50
htnk: 50
jeep: 20
mtnk: 50
UnitLimits:
harv: 8
SquadManagerBotModule@hal9001:
RequiresCondition: enable-hal9001-ai
SquadSize: 8
ExcludeFromSquadsTypes: harv, mcv
ConstructionYardTypes: fact
UnitBuilderBotModule@hal9001:
RequiresCondition: enable-hal9001-ai
UnitQueues: Vehicle.Nod, Vehicle.GDI, Infantry.Nod, Infantry.GDI, Aircraft.Nod, Aircraft.GDI
UnitsToBuild:
e1: 65
e2: 30
e3: 40
e4: 50
e5: 50
harv: 16
bggy: 10
bike: 10
ltnk: 40
arty: 20
ftnk: 5
stnk: 40
mlrs: 5
heli: 10
jeep: 20
apc: 10
mtnk: 50
msam: 50
htnk: 50
orca: 10
UnitLimits:
harv: 8

View File

@@ -1,139 +1,13 @@
Player:
HackyAI@Omnius:
ModularBot@Omnius:
Name: Omnius
Type: omnius
UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft
BuildingCommonNames:
ConstructionYard: construction_yard
Refinery: refinery
Power: wind_trap
VehiclesFactory: light_factory, heavy_factory, starport
Production: light_factory, heavy_factory, barracks, starport
Silo: silo
UnitsCommonNames:
Mcv: mcv
ExcludeFromSquads: harvester
UnitsToBuild:
carryall: 1%
light_inf: 65%
trooper: 40%
mpsardaukar: 20%
grenadier: 20%
harvester: 1%
trike.starport: 5%
quad.starport: 7.5%
siege_tank.starport: 5%
missile_tank.starport: 7.5%
combat_tank_a.starport: 15%
combat_tank_h.starport: 15%
combat_tank_o.starport: 15%
sonic_tank: 10%
devastator: 10%
deviator: 7.5%
trike: 10%
raider: 10%
quad: 15%
siege_tank: 10%
missile_tank: 15%
stealth_raider: 5%
combat_tank_a: 100%
combat_tank_h: 100%
combat_tank_o: 100%
UnitLimits:
harvester: 8
carryall: 4
SquadSize: 8
MaxBaseRadius: 40
HackyAI@Vidius:
ModularBot@Vidius:
Name: Vidious
Type: vidious
UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft
BuildingCommonNames:
ConstructionYard: construction_yard
Refinery: refinery
Power: wind_trap
VehiclesFactory: light_factory, heavy_factory, starport
Production: light_factory, heavy_factory, barracks, starport
Silo: silo
UnitsCommonNames:
Mcv: mcv
ExcludeFromSquads: harvester
UnitsToBuild:
carryall: 1%
light_inf: 65%
trooper: 40%
mpsardaukar: 20%
grenadier: 20%
harvester: 1%
trike.starport: 7.5%
quad.starport: 12.5%
siege_tank.starport: 5%
missile_tank.starport: 7.5%
combat_tank_a.starport: 15%
combat_tank_h.starport: 15%
combat_tank_o.starport: 15%
sonic_tank: 50%
devastator: 40%
deviator: 5%
trike: 15%
raider: 15%
quad: 25%
siege_tank: 10%
missile_tank: 15%
stealth_raider: 5%
combat_tank_a: 100%
combat_tank_h: 100%
combat_tank_o: 100%
UnitLimits:
harvester: 8
carryall: 4
SquadSize: 6
MaxBaseRadius: 40
HackyAI@Gladius:
ModularBot@Gladius:
Name: Gladius
Type: gladius
UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft
BuildingCommonNames:
ConstructionYard: construction_yard
Refinery: refinery
Power: wind_trap
VehiclesFactory: light_factory, heavy_factory, starport
Production: light_factory, heavy_factory, barracks, starport
Silo: silo
UnitsCommonNames:
Mcv: mcv
ExcludeFromSquads: harvester
UnitsToBuild:
carryall: 1%
light_inf: 65%
trooper: 40%
mpsardaukar: 20%
grenadier: 20%
harvester: 1%
trike.starport: 5%
quad.starport: 7.5%
siege_tank.starport: 5%
missile_tank.starport: 7.5%
combat_tank_a.starport: 15%
combat_tank_h.starport: 15%
combat_tank_o.starport: 15%
sonic_tank: 10%
devastator: 10%
deviator: 7.5%
trike: 10%
raider: 10%
quad: 15%
siege_tank: 10%
missile_tank: 15%
stealth_raider: 7.5%
combat_tank_a: 100%
combat_tank_h: 100%
combat_tank_o: 100%
UnitLimits:
harvester: 8
carryall: 4
SquadSize: 10
MaxBaseRadius: 40
SupportPowerBotModule:
RequiresCondition: enable-omnius-ai || enable-vidious-ai || enable-gladius-ai
Decisions:
@@ -333,3 +207,122 @@ Player:
upgrade.hightech: 1
BuildingRepairBotModule:
RequiresCondition: enable-omnius-ai || enable-vidious-ai || enable-gladius-ai
SquadManagerBotModule@omnius:
RequiresCondition: enable-omnius-ai
SquadSize: 8
MaxBaseRadius: 40
ExcludeFromSquadsTypes: harvester, mcv
ConstructionYardTypes: construction_yard
UnitBuilderBotModule@omnius:
RequiresCondition: enable-omnius-ai
UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft
UnitsToBuild:
carryall: 1
light_inf: 65
trooper: 40
mpsardaukar: 20
grenadier: 20
harvester: 1
trike.starport: 5
quad.starport: 7
siege_tank.starport: 5
missile_tank.starport: 7
combat_tank_a.starport: 15
combat_tank_h.starport: 15
combat_tank_o.starport: 15
sonic_tank: 10
devastator: 10
deviator: 7
trike: 10
raider: 10
quad: 15
siege_tank: 10
missile_tank: 15
stealth_raider: 5
combat_tank_a: 100
combat_tank_h: 100
combat_tank_o: 100
UnitLimits:
harvester: 8
carryall: 4
McvManagerBotModule:
RequiresCondition: enable-omnius-ai || enable-vidious-ai || enable-gladius-ai
McvTypes: mcv
ConstructionYardTypes: construction_yard
McvFactoryTypes: heavy_factory, starport
SquadManagerBotModule@vidious:
RequiresCondition: enable-vidious-ai
SquadSize: 6
MaxBaseRadius: 40
ExcludeFromSquadsTypes: harvester, mcv
ConstructionYardTypes: construction_yard
UnitBuilderBotModule@vidious:
RequiresCondition: enable-vidious-ai
UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft
UnitsToBuild:
carryall: 1
light_inf: 65
trooper: 40
mpsardaukar: 20
grenadier: 20
harvester: 1
trike.starport: 7
quad.starport: 12
siege_tank.starport: 5
missile_tank.starport: 7
combat_tank_a.starport: 15
combat_tank_h.starport: 15
combat_tank_o.starport: 15
sonic_tank: 50
devastator: 40
deviator: 5
trike: 15
raider: 15
quad: 25
siege_tank: 10
missile_tank: 15
stealth_raider: 5
combat_tank_a: 100
combat_tank_h: 100
combat_tank_o: 100
UnitLimits:
harvester: 8
carryall: 4
SquadManagerBotModule@gladius:
RequiresCondition: enable-gladius-ai
SquadSize: 10
MaxBaseRadius: 40
ExcludeFromSquadsTypes: harvester, mcv
ConstructionYardTypes: construction_yard
UnitBuilderBotModule@gladius:
RequiresCondition: enable-gladius-ai
UnitQueues: Infantry, Vehicle, Armor, Starport, Aircraft
UnitsToBuild:
carryall: 1
light_inf: 65
trooper: 40
mpsardaukar: 20
grenadier: 20
harvester: 1
trike.starport: 5
quad.starport: 7
siege_tank.starport: 5
missile_tank.starport: 7
combat_tank_a.starport: 15
combat_tank_h.starport: 15
combat_tank_o.starport: 15
sonic_tank: 10
devastator: 10
deviator: 7
trike: 10
raider: 10
quad: 15
siege_tank: 10
missile_tank: 15
stealth_raider: 7
combat_tank_a: 100
combat_tank_h: 100
combat_tank_o: 100
UnitLimits:
harvester: 8
carryall: 4

View File

@@ -105,11 +105,11 @@ Player:
DefaultCashDropdownLocked: True
DefaultCashDropdownVisible: False
DefaultCash: 50
-HackyAI@RushAI:
-HackyAI@NormalAI:
-HackyAI@NavalAI:
-HackyAI@TurtleAI:
DummyAI@LonestarAI:
-ModularBot@RushAI:
-ModularBot@NormalAI:
-ModularBot@NavalAI:
-ModularBot@TurtleAI:
DummyBot@LonestarAI:
Name: Lonestar AI
Type: lonestar
LobbyPrerequisiteCheckbox@GLOBALFACTUNDEPLOY:

View File

@@ -1,174 +1,16 @@
Player:
HackyAI@RushAI:
ModularBot@RushAI:
Name: Rush AI
Type: rush
BuildingCommonNames:
ConstructionYard: fact
Refinery: proc
Power: powr,apwr
Barracks: barr,tent
VehiclesFactory: weap
Production: barr,tent,weap
Silo: silo
UnitsCommonNames:
Mcv: mcv
ExcludeFromSquads: harv
NavalUnits: ss,msub,dd,ca,lst,pt
UnitsToBuild:
e1: 65%
e2: 15%
e3: 30%
e4: 15%
dog: 15%
shok: 15%
harv: 10%
apc: 30%
jeep: 20%
arty: 15%
v2rl: 40%
ftrk: 30%
1tnk: 50%
2tnk: 50%
3tnk: 50%
4tnk: 25%
ttnk: 25%
stnk: 5%
UnitLimits:
dog: 4
harv: 8
jeep: 4
ftrk: 4
SquadSize: 20
HackyAI@NormalAI:
ModularBot@NormalAI:
Name: Normal AI
Type: normal
BuildingCommonNames:
ConstructionYard: fact
Refinery: proc
Power: powr,apwr
Barracks: barr,tent
VehiclesFactory: weap
Production: barr,tent,weap,afld,hpad
NavalProduction: spen,syrd
Silo: silo
UnitsCommonNames:
Mcv: mcv
ExcludeFromSquads: harv
NavalUnits: ss,msub,dd,ca,lst,pt
UnitsToBuild:
e1: 65%
e2: 15%
e3: 30%
e4: 15%
dog: 15%
shok: 15%
harv: 15%
apc: 30%
jeep: 20%
arty: 15%
v2rl: 40%
ftrk: 30%
1tnk: 40%
2tnk: 50%
3tnk: 50%
4tnk: 25%
ttnk: 25%
stnk: 5%
heli: 30%
hind: 30%
mig: 30%
yak: 30%
ss: 10%
msub: 10%
dd: 10%
ca: 10%
pt: 10%
UnitLimits:
dog: 4
harv: 8
jeep: 4
ftrk: 4
SquadSize: 40
HackyAI@TurtleAI:
ModularBot@TurtleAI:
Name: Turtle AI
Type: turtle
BuildingCommonNames:
ConstructionYard: fact
Refinery: proc
Power: powr,apwr
Barracks: barr,tent
VehiclesFactory: weap
Production: barr,tent,weap,afld,hpad
NavalProduction: spen,syrd
Silo: silo
UnitsCommonNames:
Mcv: mcv
ExcludeFromSquads: harv
NavalUnits: ss,msub,dd,ca,lst,pt
UnitsToBuild:
e1: 65%
e2: 15%
e3: 30%
e4: 15%
dog: 15%
shok: 15%
harv: 15%
apc: 30%
jeep: 20%
arty: 15%
v2rl: 40%
ftrk: 50%
1tnk: 50%
2tnk: 50%
3tnk: 50%
4tnk: 25%
ttnk: 25%
stnk: 10%
heli: 30%
hind: 30%
mig: 30%
yak: 30%
ss: 10%
msub: 10%
dd: 10%
ca: 10%
pt: 10%
UnitLimits:
dog: 4
harv: 8
jeep: 4
ftrk: 4
SquadSize: 10
HackyAI@NavalAI:
ModularBot@NavalAI:
Name: Naval AI
Type: naval
BuildingCommonNames:
ConstructionYard: fact
Refinery: proc
Power: powr,apwr
Barracks: barr,tent
VehiclesFactory: weap
Production: barr,tent,weap,afld,hpad
NavalProduction: spen,syrd
Silo: silo
UnitsCommonNames:
Mcv: mcv
ExcludeFromSquads: harv
NavalUnits: ss,msub,dd,ca,lst,pt
UnitsToBuild:
harv: 1%
heli: 30%
hind: 30%
mig: 30%
yak: 30%
ss: 10%
msub: 30%
dd: 30%
ca: 20%
pt: 10%
UnitLimits:
harv: 8
SquadSize: 1
SupportPowerBotModule:
RequiresCondition: enable-rush-ai || enable-normal-ai || enable-turtle-ai || enable-naval-ai
Decisions:
@@ -427,3 +269,146 @@ Player:
mslo: 1
BuildingRepairBotModule:
RequiresCondition: enable-rush-ai || enable-normal-ai || enable-turtle-ai || enable-naval-ai
SquadManagerBotModule@rush:
RequiresCondition: enable-rush-ai
SquadSize: 20
ExcludeFromSquadsTypes: harv, mcv
NavalUnitsTypes: ss,msub,dd,ca,lst,pt
ConstructionYardTypes: fact
McvManagerBotModule:
RequiresCondition: enable-rush-ai || enable-normal-ai || enable-turtle-ai || enable-naval-ai
McvTypes: mcv
ConstructionYardTypes: fact
McvFactoryTypes: weap
UnitBuilderBotModule@rush:
RequiresCondition: enable-rush-ai
UnitsToBuild:
e1: 65
e2: 15
e3: 30
e4: 15
dog: 15
shok: 15
harv: 10
apc: 30
jeep: 20
arty: 15
v2rl: 40
ftrk: 30
1tnk: 50
2tnk: 50
3tnk: 50
4tnk: 25
ttnk: 25
stnk: 5
UnitLimits:
dog: 4
harv: 8
jeep: 4
ftrk: 4
SquadManagerBotModule@normal:
RequiresCondition: enable-normal-ai
SquadSize: 40
ExcludeFromSquadsTypes: harv, mcv
NavalUnitsTypes: ss,msub,dd,ca,lst,pt
ConstructionYardTypes: fact
NavalProductionTypes: spen,syrd
UnitBuilderBotModule@normal:
RequiresCondition: enable-normal-ai
UnitsToBuild:
e1: 65
e2: 15
e3: 30
e4: 15
dog: 15
shok: 15
harv: 15
apc: 30
jeep: 20
arty: 15
v2rl: 40
ftrk: 30
1tnk: 40
2tnk: 50
3tnk: 50
4tnk: 25
ttnk: 25
stnk: 5
heli: 30
hind: 30
mig: 30
yak: 30
ss: 10
msub: 10
dd: 10
ca: 10
pt: 10
UnitLimits:
dog: 4
harv: 8
jeep: 4
ftrk: 4
SquadManagerBotModule@turtle:
RequiresCondition: enable-turtle-ai
SquadSize: 10
ExcludeFromSquadsTypes: harv, mcv
NavalUnitsTypes: ss,msub,dd,ca,lst,pt
ConstructionYardTypes: fact
NavalProductionTypes: spen,syrd
UnitBuilderBotModule@turtle:
RequiresCondition: enable-turtle-ai
UnitsToBuild:
e1: 65
e2: 15
e3: 30
e4: 15
dog: 15
shok: 15
harv: 15
apc: 30
jeep: 20
arty: 15
v2rl: 40
ftrk: 50
1tnk: 50
2tnk: 50
3tnk: 50
4tnk: 25
ttnk: 25
stnk: 10
heli: 30
hind: 30
mig: 30
yak: 30
ss: 10
msub: 10
dd: 10
ca: 10
pt: 10
UnitLimits:
dog: 4
harv: 8
jeep: 4
ftrk: 4
SquadManagerBotModule@naval:
RequiresCondition: enable-naval-ai
SquadSize: 1
ExcludeFromSquadsTypes: harv, mcv
NavalUnitsTypes: ss,msub,dd,ca,lst,pt
ConstructionYardTypes: fact
NavalProductionTypes: spen,syrd
UnitBuilderBotModule@naval:
RequiresCondition: enable-naval-ai
UnitsToBuild:
harv: 1
heli: 30
hind: 30
mig: 30
yak: 30
ss: 10
msub: 30
dd: 30
ca: 20
pt: 10
UnitLimits:
harv: 8

View File

@@ -1,41 +1,7 @@
Player:
HackyAI@TestAI:
ModularBot@TestAI:
Name: Test AI
Type: test
BuildingCommonNames:
ConstructionYard: gacnst
Refinery: proc
Power: gapowr, napowr, naapwr
Barracks: gapile, nahand
VehiclesFactory: gaweap, naweap
Production: gapile, nahand, gaweap, naweap
Silo: gasilo
UnitsCommonNames:
Mcv: mcv
ExcludeFromSquads: harv
UnitsToBuild:
e1: 80%
e2: 25%
e3: 25%
cyborg: 15%
jumpjet: 15%
repair: 2%
medic: 2%
harv: 10%
mmch: 15%
ttnk: 15%
smech: 25%
bggy: 25%
hvr: 20%
bike: 20%
subtank: 10%
sonic: 10%
stnk: 8%
UnitLimits:
harv: 12
medic: 3
repair: 3
SquadSize: 20
GrantConditionOnBotOwner@test:
Condition: enable-test-ai
Bots: test
@@ -93,3 +59,37 @@ Player:
naobel: 3
BuildingRepairBotModule:
RequiresCondition: enable-test-ai
SquadManagerBotModule@test:
RequiresCondition: enable-test-ai
SquadSize: 20
ExcludeFromSquadsTypes: harv, mcv
ConstructionYardTypes: gacnst
UnitBuilderBotModule@test:
RequiresCondition: enable-test-ai
UnitsToBuild:
e1: 80
e2: 25
e3: 25
cyborg: 15
jumpjet: 15
repair: 2
medic: 2
harv: 10
mmch: 15
ttnk: 15
smech: 25
bggy: 25
hvr: 20
bike: 20
subtank: 10
sonic: 10
stnk: 8
UnitLimits:
harv: 12
medic: 3
repair: 3
McvManagerBotModule@test:
RequiresCondition: enable-test-ai
McvTypes: mcv
ConstructionYardTypes: gacnst
McvFactoryTypes: gaweap, naweap