Move SupportPowerDecisions to a single parent node.

This is required before we can force all trait
properties to match a TraitInfo-defined field.
This commit is contained in:
Paul Chote
2018-06-14 15:37:15 +00:00
committed by reaperrr
parent f82674cfef
commit cce9b06a40
8 changed files with 559 additions and 490 deletions

View File

@@ -37,7 +37,7 @@ namespace OpenRA.Mods.Common.AI
player = p;
frozenLayer = p.PlayerActor.Trait<FrozenActorLayer>();
supportPowerManager = p.PlayerActor.TraitOrDefault<SupportPowerManager>();
foreach (var decision in ai.Info.PowerDecisions)
foreach (var decision in ai.Info.SupportPowerDecisions)
powerDecisions.Add(decision.OrderName, decision);
}

View File

@@ -195,7 +195,7 @@ namespace OpenRA.Mods.Common.AI
// TODO Update OpenRA.Utility/Command.cs#L300 to first handle lists and also read nested ones
[Desc("Tells the AI how to use its support powers.")]
[FieldLoader.LoadUsing("LoadDecisions")]
public readonly List<SupportPowerDecision> PowerDecisions = new List<SupportPowerDecision>();
public readonly List<SupportPowerDecision> SupportPowerDecisions = new List<SupportPowerDecision>();
[Desc("Actor types that can capture other actors (via `Captures` or `ExternalCaptures`).",
"Leave this empty to disable capturing.")]
@@ -233,8 +233,9 @@ namespace OpenRA.Mods.Common.AI
static object LoadDecisions(MiniYaml yaml)
{
var ret = new List<SupportPowerDecision>();
foreach (var d in yaml.Nodes)
if (d.Key.Split('@')[0] == "SupportPowerDecision")
var decisions = yaml.Nodes.FirstOrDefault(n => n.Key == "SupportPowerDecisions");
if (decisions != null)
foreach (var d in decisions.Value.Nodes)
ret.Add(new SupportPowerDecision(d.Value));
return ret;

View File

@@ -883,6 +883,7 @@
<Compile Include="Traits\Render\WithBuildingRepairDecoration.cs" />
<Compile Include="UpdateRules\Rules\SplitRepairDecoration.cs" />
<Compile Include="ModCredits.cs" />
<Compile Include="UpdateRules\Rules\MoveHackyAISupportPowerDecisions.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="AfterBuild">

View File

@@ -0,0 +1,56 @@
#region Copyright & License Information
/*
* Copyright 2007-2018 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version. For more
* information, see COPYING.
*/
#endregion
using System.Collections.Generic;
using System.Linq;
namespace OpenRA.Mods.Common.UpdateRules.Rules
{
public class MoveHackyAISupportPowerDecisions : UpdateRule
{
public override string Name { get { return "Move HackyAI SupportPowerDecisions to a trait property"; } }
public override string Description
{
get
{
return "The SupportPowerDefinitions on HackyAI are moved from top-level trait properties\n" +
"to children of a single SupportPowerDecisions property.";
}
}
public override IEnumerable<string> UpdateActorNode(ModData modData, MiniYamlNode actorNode)
{
foreach (var hackyAINode in actorNode.ChildrenMatching("HackyAI"))
{
var children = hackyAINode.ChildrenMatching("SupportPowerDecision");
if (!children.Any())
continue;
var parent = hackyAINode.LastChildMatching("SupportPowerDecisions");
if (parent == null)
{
parent = new MiniYamlNode("SupportPowerDecisions", "");
hackyAINode.AddNode(parent);
}
foreach (var child in children.ToList())
{
var split = child.Key.Split('@');
child.Key = split.Length > 1 ? split[1] : "Default";
parent.AddNode(child);
hackyAINode.RemoveNode(child);
}
}
yield break;
}
}
}

View File

@@ -54,6 +54,7 @@ namespace OpenRA.Mods.Common.UpdateRules
new DefineOwnerLostAction(),
new RenameEmitInfantryOnSell(),
new SplitRepairDecoration(),
new MoveHackyAISupportPowerDecisions(),
})
};

View File

@@ -71,64 +71,65 @@ Player:
UnitLimits:
harv: 8
SquadSize: 15
SupportPowerDecision@Airstrike:
OrderName: AirstrikePowerInfoOrder
MinimumAttractiveness: 2000
Consideration@1:
Against: Enemy
Types: Vehicle, Infantry
Attractiveness: 3
TargetMetric: Value
CheckRadius: 2c0
Consideration@2:
Against: Ally
Types: Ground, Water
Attractiveness: -20
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
SupportPowerDecision@IonCannonPower:
OrderName: IonCannonPowerInfoOrder
MinimumAttractiveness: 1000
FineScanRadius: 2
Consideration@1:
Against: Enemy
Types: Air, Tank, Vehicle, Infantry, Water
Attractiveness: 2
TargetMetric: Value
CheckRadius: 2c0
Consideration@2:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Ally
Types: Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 3c0
SupportPowerDecision@NukePower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
SupportPowerDecisions:
Airstrike:
OrderName: AirstrikePowerInfoOrder
MinimumAttractiveness: 2000
Consideration@1:
Against: Enemy
Types: Vehicle, Infantry
Attractiveness: 3
TargetMetric: Value
CheckRadius: 2c0
Consideration@2:
Against: Ally
Types: Ground, Water
Attractiveness: -20
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
IonCannonPower:
OrderName: IonCannonPowerInfoOrder
MinimumAttractiveness: 1000
FineScanRadius: 2
Consideration@1:
Against: Enemy
Types: Air, Tank, Vehicle, Infantry, Water
Attractiveness: 2
TargetMetric: Value
CheckRadius: 2c0
Consideration@2:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Ally
Types: Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 3c0
NukePower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
HackyAI@Watson:
Name: Watson
Type: watson
@@ -201,64 +202,65 @@ Player:
UnitLimits:
harv: 8
SquadSize: 15
SupportPowerDecision@Airstrike:
OrderName: AirstrikePowerInfoOrder
MinimumAttractiveness: 2000
Consideration@1:
Against: Enemy
Types: Vehicle, Infantry
Attractiveness: 3
TargetMetric: Value
CheckRadius: 2c0
Consideration@2:
Against: Ally
Types: Ground, Water
Attractiveness: -20
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
SupportPowerDecision@IonCannonPower:
OrderName: IonCannonPowerInfoOrder
MinimumAttractiveness: 1000
FineScanRadius: 2
Consideration@1:
Against: Enemy
Types: Air, Tank, Vehicle, Infantry, Water
Attractiveness: 2
TargetMetric: Value
CheckRadius: 2c0
Consideration@2:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Ally
Types: Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 3c0
SupportPowerDecision@NukePower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
SupportPowerDecisions:
Airstrike:
OrderName: AirstrikePowerInfoOrder
MinimumAttractiveness: 2000
Consideration@1:
Against: Enemy
Types: Vehicle, Infantry
Attractiveness: 3
TargetMetric: Value
CheckRadius: 2c0
Consideration@2:
Against: Ally
Types: Ground, Water
Attractiveness: -20
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
IonCannonPower:
OrderName: IonCannonPowerInfoOrder
MinimumAttractiveness: 1000
FineScanRadius: 2
Consideration@1:
Against: Enemy
Types: Air, Tank, Vehicle, Infantry, Water
Attractiveness: 2
TargetMetric: Value
CheckRadius: 2c0
Consideration@2:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Ally
Types: Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 3c0
NukePower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
HackyAI@HAL9001:
Name: HAL 9001
Type: hal9001
@@ -333,61 +335,62 @@ Player:
UnitLimits:
harv: 8
SquadSize: 8
SupportPowerDecision@Airstrike:
OrderName: AirstrikePowerInfoOrder
MinimumAttractiveness: 2000
Consideration@1:
Against: Enemy
Types: Vehicle, Infantry
Attractiveness: 3
TargetMetric: Value
CheckRadius: 2c0
Consideration@2:
Against: Ally
Types: Ground, Water
Attractiveness: -20
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
SupportPowerDecision@IonCannonPower:
OrderName: IonCannonPowerInfoOrder
MinimumAttractiveness: 1000
FineScanRadius: 2
Consideration@1:
Against: Enemy
Types: Air, Tank, Vehicle, Infantry, Water
Attractiveness: 2
TargetMetric: Value
CheckRadius: 2c0
Consideration@2:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Ally
Types: Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 3c0
SupportPowerDecision@NukePower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
SupportPowerDecisions:
Airstrike:
OrderName: AirstrikePowerInfoOrder
MinimumAttractiveness: 2000
Consideration@1:
Against: Enemy
Types: Vehicle, Infantry
Attractiveness: 3
TargetMetric: Value
CheckRadius: 2c0
Consideration@2:
Against: Ally
Types: Ground, Water
Attractiveness: -20
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
IonCannonPower:
OrderName: IonCannonPowerInfoOrder
MinimumAttractiveness: 1000
FineScanRadius: 2
Consideration@1:
Against: Enemy
Types: Air, Tank, Vehicle, Infantry, Water
Attractiveness: 2
TargetMetric: Value
CheckRadius: 2c0
Consideration@2:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Ally
Types: Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 3c0
NukePower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0

View File

@@ -81,46 +81,47 @@ Player:
carryall: 4
SquadSize: 8
MaxBaseRadius: 40
SupportPowerDecision@Airstrike:
OrderName: AirstrikePowerInfoOrder
MinimumAttractiveness: 2000
Consideration@1:
Against: Enemy
Types: Vehicle, Tank, Infantry
Attractiveness: 2
TargetMetric: Value
CheckRadius: 3c0
Consideration@2:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Ally
Types: Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 4c0
SupportPowerDecision@NukePower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
SupportPowerDecision@Fremen:
OrderName: ProduceActorPower.Fremen
Consideration@1:
Against: Ally
SupportPowerDecisions:
Airstrike:
OrderName: AirstrikePowerInfoOrder
MinimumAttractiveness: 2000
Consideration@1:
Against: Enemy
Types: Vehicle, Tank, Infantry
Attractiveness: 2
TargetMetric: Value
CheckRadius: 3c0
Consideration@2:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Ally
Types: Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 4c0
NukePower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
Fremen:
OrderName: ProduceActorPower.Fremen
Consideration@1:
Against: Ally
HackyAI@Vidius:
Name: Vidious
Type: vidious
@@ -205,46 +206,47 @@ Player:
carryall: 4
SquadSize: 6
MaxBaseRadius: 40
SupportPowerDecision@Airstrike:
OrderName: AirstrikePowerInfoOrder
MinimumAttractiveness: 2000
Consideration@1:
Against: Enemy
Types: Vehicle, Tank, Infantry
Attractiveness: 2
TargetMetric: Value
CheckRadius: 3c0
Consideration@2:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Ally
Types: Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 4c0
SupportPowerDecision@NukePower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
SupportPowerDecision@Fremen:
OrderName: ProduceActorPower.Fremen
Consideration@1:
Against: Ally
SupportPowerDecisions:
Airstrike:
OrderName: AirstrikePowerInfoOrder
MinimumAttractiveness: 2000
Consideration@1:
Against: Enemy
Types: Vehicle, Tank, Infantry
Attractiveness: 2
TargetMetric: Value
CheckRadius: 3c0
Consideration@2:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Ally
Types: Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 4c0
NukePower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
Fremen:
OrderName: ProduceActorPower.Fremen
Consideration@1:
Against: Ally
HackyAI@Gladius:
Name: Gladius
Type: gladius
@@ -328,43 +330,44 @@ Player:
carryall: 4
SquadSize: 10
MaxBaseRadius: 40
SupportPowerDecision@Airstrike:
OrderName: AirstrikePowerInfoOrder
MinimumAttractiveness: 2000
Consideration@1:
Against: Enemy
Types: Vehicle, Tank, Infantry
Attractiveness: 2
TargetMetric: Value
CheckRadius: 3c0
Consideration@2:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Ally
Types: Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 4c0
SupportPowerDecision@NukePower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
SupportPowerDecision@Fremen:
OrderName: ProduceActorPower.Fremen
Consideration@1:
Against: Ally
SupportPowerDecisions:
Airstrike:
OrderName: AirstrikePowerInfoOrder
MinimumAttractiveness: 2000
Consideration@1:
Against: Enemy
Types: Vehicle, Tank, Infantry
Attractiveness: 2
TargetMetric: Value
CheckRadius: 3c0
Consideration@2:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 2c0
Consideration@3:
Against: Ally
Types: Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 4c0
NukePower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
Fremen:
OrderName: ProduceActorPower.Fremen
Consideration@1:
Against: Ally

View File

@@ -68,54 +68,55 @@ Player:
dog: 4
harv: 8
SquadSize: 20
SupportPowerDecision@spyplane:
OrderName: SovietSpyPlane
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
SupportPowerDecision@paratroopers:
OrderName: SovietParatroopers
MinimumAttractiveness: 5
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 8c0
Consideration@2:
Against: Enemy
Types: Water
Attractiveness: -5
TargetMetric: None
CheckRadius: 8c0
SupportPowerDecision@parabombs:
OrderName: UkraineParabombs
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
SupportPowerDecision@nukepower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
SupportPowerDecisions:
spyplane:
OrderName: SovietSpyPlane
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
paratroopers:
OrderName: SovietParatroopers
MinimumAttractiveness: 5
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 8c0
Consideration@2:
Against: Enemy
Types: Water
Attractiveness: -5
TargetMetric: None
CheckRadius: 8c0
parabombs:
OrderName: UkraineParabombs
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
nukepower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
HackyAI@NormalAI:
Name: Normal AI
Type: normal
@@ -203,54 +204,55 @@ Player:
dog: 4
harv: 8
SquadSize: 40
SupportPowerDecision@spyplane:
OrderName: SovietSpyPlane
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
SupportPowerDecision@paratroopers:
OrderName: SovietParatroopers
MinimumAttractiveness: 5
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 8c0
Consideration@2:
Against: Enemy
Types: Water
Attractiveness: -5
TargetMetric: None
CheckRadius: 8c0
SupportPowerDecision@parabombs:
OrderName: UkraineParabombs
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
SupportPowerDecision@nukepower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
SupportPowerDecisions:
spyplane:
OrderName: SovietSpyPlane
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
paratroopers:
OrderName: SovietParatroopers
MinimumAttractiveness: 5
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 8c0
Consideration@2:
Against: Enemy
Types: Water
Attractiveness: -5
TargetMetric: None
CheckRadius: 8c0
parabombs:
OrderName: UkraineParabombs
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
nukepower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
HackyAI@TurtleAI:
Name: Turtle AI
Type: turtle
@@ -338,54 +340,55 @@ Player:
dog: 4
harv: 8
SquadSize: 10
SupportPowerDecision@spyplane:
OrderName: SovietSpyPlane
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
SupportPowerDecision@paratroopers:
OrderName: SovietParatroopers
MinimumAttractiveness: 5
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 8c0
Consideration@2:
Against: Enemy
Types: Water
Attractiveness: -5
TargetMetric: None
CheckRadius: 8c0
SupportPowerDecision@parabombs:
OrderName: UkraineParabombs
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
SupportPowerDecision@nukepower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
SupportPowerDecisions:
spyplane:
OrderName: SovietSpyPlane
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
paratroopers:
OrderName: SovietParatroopers
MinimumAttractiveness: 5
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 8c0
Consideration@2:
Against: Enemy
Types: Water
Attractiveness: -5
TargetMetric: None
CheckRadius: 8c0
parabombs:
OrderName: UkraineParabombs
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
nukepower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
HackyAI@NavalAI:
Name: Naval AI
Type: naval
@@ -451,51 +454,52 @@ Player:
UnitLimits:
harv: 8
SquadSize: 1
SupportPowerDecision@spyplane:
OrderName: SovietSpyPlane
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
SupportPowerDecision@paratroopers:
OrderName: SovietParatroopers
MinimumAttractiveness: 5
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 8c0
Consideration@2:
Against: Enemy
Types: Water
Attractiveness: -5
TargetMetric: None
CheckRadius: 8c0
SupportPowerDecision@parabombs:
OrderName: UkraineParabombs
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
SupportPowerDecision@nukepower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0
SupportPowerDecisions:
spyplane:
OrderName: SovietSpyPlane
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
paratroopers:
OrderName: SovietParatroopers
MinimumAttractiveness: 5
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 8c0
Consideration@2:
Against: Enemy
Types: Water
Attractiveness: -5
TargetMetric: None
CheckRadius: 8c0
parabombs:
OrderName: UkraineParabombs
MinimumAttractiveness: 1
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: None
CheckRadius: 5c0
nukepower:
OrderName: NukePowerInfoOrder
MinimumAttractiveness: 3000
Consideration@1:
Against: Enemy
Types: Structure
Attractiveness: 1
TargetMetric: Value
CheckRadius: 5c0
Consideration@2:
Against: Ally
Types: Air, Ground, Water
Attractiveness: -10
TargetMetric: Value
CheckRadius: 7c0