XCOM 2
Raider Faction: Global Occult Coalition
Darkling 7 Mar, 2023 @ 2:13am
Bug reports
The AI has conflicts with vanilla AI which affects the decision to target injured opponents and the sectopods lightning field. Renaming the behaviour to have custom names starting from the existing behaviours ScoreIfTarget_LowHP and TryProxystunField should correct that
+Behaviors=(BehaviorName=ScoreIfTarget_LowHP, NodeType=Sequence, Child[0]=TargetHasLowHPGOC, Child[1]=AddToTargetScore_20) ; bump a Low health target to the next aim tier with a bonus +Behaviors=(BehaviorName=TargetHasLowHPGOC, NodeType=TargetStatCondition, Param[0]=eStat_HP, Param[1]="<", Param[2]="50%") +Behaviors=(BehaviorName=TryProxystunField, NodeType=Sequence, Child[0]=IsAbilityAvailable-proxystunField, Child[1]=HasAnyLightningFieldTargetsGOC, Child[2]=SelectAbility-proxystunField) +Behaviors=(BehaviorName=HasAnyLightningFieldTargetsGOC, NodeType=StatCondition, Param[0]=AbilityTargetUnitCount-proxystunField, Param[1]=">", Param[2]=1); >1 because it always sets itself as the primary target. +Behaviors=(BehaviorName=TryMoveForLightningFieldGOC, NodeType=Sequence, Child[0]=DidntJustMove, Child[1]=SafeToMove, Child[2]=IsAbilityReady-proxystunField, Child[3]=MoveStandardIfFirstAbility-LightningFieldGOC, Child[4]=MoveMeleeFANATICUnsafe) +Behaviors=(BehaviorName=GOCSectopodFirstActionSelector, NodeType=Selector,\\ Child[0]=SectopodCannonCharging, \\ Child[1]=TryStandUp,\\ Child[2]=TryproxystunField, \\ Child[3]=TryEnergyShieldOnMultipleTargets, \\ Child[4]=TryFirstMoveTowardVisibleEnemies50GOC, \\ Child[5]=ShootIfAvailable, \\ Child[6]=TryWrathCannonS166, \\ Child[7]=TryMoveForLightningFieldGOC, \\ Child[8]=MoveNoCover, \\ Child[9]=TryShootOrReloadOrOverwatch, \\ Child[10]=HuntEnemy) +Behaviors=(BehaviorName=GOCSectopodSecondActionSelector, NodeType=Selector,\\ Child[0]=SectopodCannonCharging, \\ Child[1]=TryStandUp,\\ Child[2]=TryEnergyShieldOnMultipleTargets, \\ Child[3]=TryEnergyShieldOnanyTarget, \\ Child[4]=TryProxyStunField, \\ Child[5]=TryMoveTowardVisibleEnemies50GOC, \\ Child[6]=TryWrathCannonS166, \\ Child[7]=TryMoveForLightningFieldGOC, \\ Child[8]=MoveNoCoverIfNotMoved, \\ Child[9]=TryShootOrReloadOrOverwatch, \\ Child[10]=HuntEnemy) +Behaviors=(BehaviorName=TryMoveForLightningField50GOC, NodeType=RandFilter, Child[0]=TryMoveForLightningFieldGOC, Param[0]=50) +Behaviors=(BehaviorName=TryFirstMoveTowardVisibleEnemies50GOC, NodeType=Sequence, Child[0]=AnyLivingEnemyVisible, Child[1]=TryMoveForLightningField50GOC) +Behaviors=(BehaviorName=TryMoveTowardVisibleEnemies50GOC, NodeType=Sequence, Child[0]=AnyLivingEnemyVisible, Child[1]=DidntJustMove, Child[2]=TryMoveForLightningField50GOC) +Behaviors=(BehaviorName=MoveStandardIfFirstAbility-LightningFieldGOC, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindLightningFieldDestinationGOC, Child[3]=SelectAbility-StandardMove) +Behaviors=(BehaviorName=FindLightningFieldDestinationGOC, NodeType=Sequence, Child[0]=SelectTargetForLightningField, Child[1]=ResetDestinationSearch, Child[2]=RestrictToAbilityRange-proxystunField, Child[3]=RestrictToEnemyLoS, Child[4]=FindRestrictedDestination-MWP_Standard)