Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [XComGame.XComGameState_AIPlayerData]
- DownThrottleUnitCount=4 ; Number of enemies engaged to activate Down Throttling.
- UpThrottleTurnCount=2 ; Number of turns to pass before activating Up Throttling.
- DownThrottleGroupRange=50; Distance (meters) in which any non-engaged groups will be steered away as part of the Down Throttling effects.
- RetreatCap=-1 ; Max number of units that can fall back to the objective area (or nearest guard group). -1 == no limit.
- MaxEngagedEnemies[0]=4 ; Rookie
- MaxEngagedEnemies[1]=6 ; Veteran
- MaxEngagedEnemies[2]=6 ; Commander
- MaxEngagedEnemies[3]=99 ; Legend
- YellCooldownDuration[0]=4 ; Rookie
- YellCooldownDuration[1]=3 ; Veteran
- YellCooldownDuration[2]=3 ; Commander
- YellCooldownDuration[3]=2 ; Legend
- [XComGame.XComGameState_AIGroup]
- SURPRISED_SCAMPER_CHANCE=0.0 ; 0/3 of units should do surprised scamper
- DESTINATION_REACHED_SIZE_SQ=300000 ; find new destinations once the group average is within this many UUs of its target destination
- MAX_TURNS_BETWEEN_DESTINATIONS=2
- FallbackExclusionList=Berserker
- FallbackExclusionList=Chryssalid
- FallbackExclusionList=PsiZombie
- FallbackExclusionList=PsiZombieHuman
- FallbackExclusionList=Sectopod
- FallbackExclusionList=AdvStunLancerM1
- FallbackExclusionList=AdvStunLancerM2
- FallbackExclusionList=AdvStunLancerM3
- FallbackExclusionList=Faceless
- FallbackExclusionList=TheLost
- FallbackExclusionList=ChosenAssassin
- FallbackExclusionList=ChosenSniper
- FallbackExclusionList=ChosenWarlock
- FallbackExclusionList=SpectreM1
- FallbackExclusionList=SpectreM2
- FallbackChance=0.5f ; Chance to fall back to mission objective when unit is the last remaining unit in a multi-unit group
- UnitInFallbackRangeMeters=5 ; 1) the Unit is in fallback range, as defined by this config value (dist from fallback location)
- [XComGame.XComGameState_AIUnitData]
- RemoveAlertDataOlderThanAge=10
- [XComGame.XGAIPlayer]
- LastResortTargetEffects=(EffectName="Bind")
- LastResortTargetEffects=(EffectName="Panicked")
- LastResortTargetEffects=(EffectName="Berserk")
- LastResortTargetEffects=(EffectName="Obsessed")
- LastResortTargetEffects=(EffectName="Shattered")
- LastResortTargetEffects=(EffectName="MindControl", ApplyToAlliesOnly=1) ;Enemies that are mind-controlled should be attacked like anyone else.
- LastResortTargetEffects=(EffectName="Dazed")
- LastResortTargetEffects=(EffectName="Stasis")
- [XComGame.XGAIPlayer_TheLost]
- DistributionPercentToXCom=70 ;Remainder percent is set to attack Advent or Aliens.
- [XComGame.XGAIBehavior]
- DefaultIdealRange=10.0f
- CALC_RANGE_NUMERATOR=10 ; CurrentTileScore value = CALC_RANGE_NUMERATOR / (| DTE - IR |*CALC_RANGE_DENOM_FACTOR + CALC_RANGE_DENOM_ADDEND).
- CALC_RANGE_DENOM_ADDEND=10 ; CurrentTileScore value = CALC_RANGE_NUMERATOR / (| DTE - IR |*CALC_RANGE_DENOM_FACTOR + CALC_RANGE_DENOM_ADDEND).
- CALC_RANGE_DENOM_FACTOR=1; CurrentTileScore value = CALC_RANGE_NUMERATOR / (| DTE - IR |*CALC_RANGE_DENOM_FACTOR + CALC_RANGE_DENOM_ADDEND).
- bCALC_RANGE_LINEAR=true; // If true, use linear distance scoring instead of inverse. Score= (1 - |DTE-IR|/CALC_RANGE_LINEAR_DENOM.)
- CALC_RANGE_LINEAR_DENOM=16 ; CurrentTileScore value = (1 - |DTE-IR|/CALC_RANGE_LINEAR_DENOM).
- CURR_TILE_LINGER_PENALTY=0.75; Multiplier on current location distance score to lower the value of the current tile and promote movement.
- CALC_NO_COVER_FACTOR=-4.0f ; Used in weighting each cover location. One location can have different cover values
- CALC_MID_COVER_FACTOR=1.0f ; depending on multiple enemy positions around that location. On one side it can have full
- CALC_FULL_COVER_FACTOR=1.1f ; cover to one enemy, another side can have no cover. CoverScore= avg of all cover values per known enemy.
- CALC_FULL_COVER_FACTOR_POD_LEADER=2.5f; Leaders of groups will prioritize full cover to a greater degree.
- DEFAULT_AI_MIN_SPREAD_DISTANCE=6.0f ; default distance (meters) from teammates to prefer to stay away. Should be about double an AoE radius.
- DEFAULT_AI_SPREAD_WEIGHT_MULTIPLIER=0.2f ;destination scores get multiplied by this value for tile locations adjacent to teammates.
- MIN_SURPRISED_SCAMPER_PATH_LENGTH=2 ; Scamper paths will never be cut short less than this number of tiles.
- MAX_SURPRISED_SCAMPER_PATH_LENGTH=6 ; Scamper paths longer than this number of tiles will be cut to this number of tiles.
- AoERepeatAttackExclusionList=ScythingClaws
- AoERepeatAttackExclusionList=AdvPurifierFlamethrower
- MIN_HEIGHT_RANGE=3 ;Ignore any height differences less than N tiles high, along the Z axis, when computing destination scores for height advantages.
- AoEProfiles=( Profile=GrenadeProfile, Ability=ThrowGrenade, bUsePrecomputePath=1, bFailOnFriendlyFire=1)
- AoEProfiles=( Profile=GrenadeAggressiveProfile, Ability=ThrowGrenade, bUsePrecomputePath=1)
- AoEProfiles=( Profile=GrenadePanickedProfile, Ability=ThrowGrenade, bTargetAllies=1, bTargetCivilians=1, bUsePrecomputePath=1, MinTargets=1, bRequirePotentialTarget=1)
- AoEProfiles=( Profile=GrenadeMindControlledProfile, Ability=ThrowGrenade, bTargetSelf=1, bUsePrecomputePath=1)
- AoEProfiles=( Profile=BlazingPinionsBasicProfile, Ability=BlazingPinionsStage1, bRequiresOutdoor=1)
- AoEProfiles=( Profile=AcidBlobProfile, Ability=AcidBlob, bFailOnFriendlyFire=1, bIgnoreSelfDamage=1)
- AoEProfiles=( Profile=PoisonSpitProfile, Ability=PoisonSpit, bIgnoreSelfDamage=1)
- AoEProfiles=( Profile=PoisonSpitSingleProfile, Ability=PoisonSpit, bIgnoreSelfDamage=1, MinTargets=1)
- AoEProfiles=( Profile=MicroMissilesProfile, bUsePrecomputePath=1, Ability=MicroMissiles)
- AoEProfiles=( Profile=MicroMissilesProfileMk2, bUsePrecomputePath=1, Ability=MicroMissiles, MinTargets=1)
- AoEProfiles=( Profile=PsiRiftProfile, Ability=PsiDimensionalRiftStage1, MinTargets=3, bFailOnFriendlyFire=1, bFailOnObjectiveFire=False)
- AoEProfiles=( Profile=BlazingPinionsProfile, Ability=BlazingPinionsStage1, MinTargets=3, bFailOnObjectiveFire=False)
- AoEProfiles=( Profile=AnimaInversionCorpseProfile, Ability=AnimaInversion, bTargetEnemy=0, bTargetCivilians=0, bTargetCorpses=1, bFailOnObjectiveFire=0, bFailOnFriendlyFire=0)
- AoEProfiles=( Profile=AnimaInversionMixedProfile, Ability=AnimaInversion, bTargetEnemy=1, bTargetCivilians=1, bTargetCorpses=1, bFailOnObjectiveFire=0, bFailOnFriendlyFire=0, MinTargets=3)
- AoEProfiles=( Profile=ScythingClawsPrefTargetProfile, Ability=ScythingClaws, bIgnoreSelfDamage=True, MinTargets=1, bRequirePotentialTarget=True)
- AoEProfiles=( Profile=ScythingClawsProfile, Ability=ScythingClaws, bIgnoreSelfDamage=True, MinTargets=1)
- AoEProfiles=( Profile=WrathCannonProfile, Ability=WrathCannon, bIgnoreSelfDamage=True, MinTargets=1)
- AoEProfiles=( Profile=WrathCannonS1Profile, Ability=WrathCannonStage1, bIgnoreSelfDamage=True, MinTargets=1)
- AoEProfiles=( Profile=PsiBombProfile, Ability=PsiBombStage1, bIgnoreSelfDamage=False, MinTargets=1)
- AoEProfiles=( Profile=NullLanceProfile, Ability=NullLance, MinTargets=1, bRequirePotentialTarget=1)
- AoEProfiles=( Profile=NullLanceValidateProfile, Ability=NullLance, bTestLocationValidity=1, MinTargets=1)
- AoEProfiles=( Profile=HarborWavePrefTargetProfile, Ability=HarborWave, bIgnoreSelfDamage=True, bFailOnObjectiveFire=false, MinTargets=2, bTestTargetEffectsApply=true)
- AoEProfiles=( Profile=HarborWaveProfile, Ability=HarborWave, bIgnoreSelfDamage=True, bFailOnObjectiveFire=false, bTargetTheLost=1, MinTargets=1, bTestTargetEffectsApply=true)
- AoEProfiles=( Profile=FlameThrowerLostTargetProfile, Ability=AdvPurifierFlamethrower, bIgnoreSelfDamage=True, bFailOnObjectiveFire=true, bFailOnFriendlyFire=true, bTargetTheLost=1, bTargetEnemy=0, MinTargets=1, bAreaSearchSpace=1, bRequireLoS=1, bIgnoreRepeatAttackList=1)
- AoEProfiles=( Profile=FlameThrowerMultiProfile, Ability=AdvPurifierFlamethrower, bIgnoreSelfDamage=True, bFailOnObjectiveFire=true, bFailOnFriendlyFire=true, MinTargets=2, bAreaSearchSpace=1, bRequireLoS=1, bIgnoreRepeatAttackList=1)
- AoEProfiles=( Profile=FlameThrowerProfile, Ability=AdvPurifierFlamethrower, bIgnoreSelfDamage=True, bFailOnObjectiveFire=true, bFailOnFriendlyFire=true, MinTargets=1, bAreaSearchSpace=1, bRequireLoS=1, bIgnoreRepeatAttackList=1)
- AoEProfiles=( Profile=FlameThrowerAdjacent, Ability=AdvPurifierFlamethrower, bIgnoreSelfDamage=True, bFailOnObjectiveFire=true, bFailOnFriendlyFire=true, MinTargets=1, bAreaSearchSpace=1, bRequireLoS=1, bCountAdjacentAsHits=1, bIgnoreRepeatAttackList=1)
- AoEProfiles=( Profile=FlameThrowerIgnoreFF, Ability=AdvPurifierFlamethrower, bIgnoreSelfDamage=True, bFailOnObjectiveFire=true, bFailOnFriendlyFire=false, MinTargets=1, bAreaSearchSpace=1, bRequireLoS=1, bCountAdjacentAsHits=1, bIgnoreRepeatAttackList=1)
- AoEProfiles=( Profile=FlameThrowerMimicBeacon, Ability=AdvPurifierFlamethrower, bIgnoreSelfDamage=True, bFailOnObjectiveFire=true, bFailOnFriendlyFire=false, MinTargets=1, bTargetEnemy=0, bAreaSearchSpace=1, bRequireLoS=1, bRequirePotentialTarget=1, bIgnoreRepeatAttackList=1)
- AoEProfiles=( Profile=FlameThrowerMimicBeaconAdjacent, Ability=AdvPurifierFlamethrower, bIgnoreSelfDamage=True, bFailOnObjectiveFire=true, bFailOnFriendlyFire=false, MinTargets=1, bTargetEnemy=0, bAreaSearchSpace=1, bRequireLoS=1, bCountAdjacentAsHits=1, bRequirePotentialTarget=1, bIgnoreRepeatAttackList=1)
- AoEProfiles=( Profile=MountainMistPreferred, Ability=ThrowGrenade, bFailOnObjectiveFire=false, bUsePrecomputePath=1)
- AoEProfiles=( Profile=MountainMistAny, Ability=ThrowGrenade, bUsePrecomputePath=1, bFailOnObjectiveFire=false, MinTargets=1)
- AoEProfiles=( Profile=GrenadeProfileAny, Ability=ThrowGrenade, bUsePrecomputePath=1, bFailOnFriendlyFire=1, MinTargets=1)
- AoEProfiles=( Profile=PsiSelfDestructProfilePreferred, Ability=TriggerPsiSelfDestruct, bIgnoreSelfDamage=True, bFailOnObjectiveFire=false, bPathToTarget=true, MinTargets=1)
- AoEProfiles=( Profile=PsiSelfDestructProfileAny, Ability=TriggerPsiSelfDestruct, bIgnoreSelfDamage=True, bFailOnObjectiveFire=false, bPathToTarget=true, MinTargets=1)
- m_arrMoveWeightProfile=(Profile=MWP_Fallback, fCoverWeight=3.0f, fDistanceWeight=0.0f, fFlankingWeight=0.0f, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=2.0, fAllyVisWeight=1.0f, fCloseModifier=0.9f, fFarModifier=1.1f)
- m_arrMoveWeightProfile=(Profile=MWP_Defensive, fCoverWeight=2.0f, fDistanceWeight=2.0f, fFlankingWeight=0.5f, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=2.0, fAllyVisWeight=4.0f, fCloseModifier=1.0f, fFarModifier=1.0f)
- m_arrMoveWeightProfile=(Profile=MWP_Standard, fCoverWeight=1.8f, fDistanceWeight=4.0f, fFlankingWeight=1.0f, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=1.0, fAllyVisWeight=1.0f, fCloseModifier=1.0f, fFarModifier=1.0f)
- m_arrMoveWeightProfile=(Profile=MWP_Aggressive, fCoverWeight=1.7f, fDistanceWeight=5.0f, fFlankingWeight=2.0f, fEnemyVisWeight=1.0f, fEnemyVisWeightPeak1=0.0, fAllyVisWeight=1.0f, fCloseModifier=1.1f, fFarModifier=0.9f)
- m_arrMoveWeightProfile=(Profile=MWP_Fanatic, fCoverWeight=0.0f, fDistanceWeight=5.0f, fFlankingWeight=2.0f, fEnemyVisWeight=1.0f, fEnemyVisWeightPeak1=0.0, fAllyVisWeight=0.0f, fCloseModifier=1.1f, fFarModifier=0.9f)
- m_arrMoveWeightProfile=(Profile=MWP_Hunting, fCoverWeight=2.0f, fDistanceWeight=4.0f, fFlankingWeight=2.0f, fEnemyVisWeight=6.0f, fEnemyVisWeightPeak1=0.0, fAllyVisWeight=1.0f, fCloseModifier=1.0f, fFarModifier=1.0f)
- m_arrMoveWeightProfile=(Profile=MWP_AdvanceCover, fCoverWeight=2.0f, fDistanceWeight=5.0f, fFlankingWeight=2.0f, fEnemyVisWeight=0.5f, fEnemyVisWeightPeak1=1.5, fAllyVisWeight=1.0f, fCloseModifier=1.1f, fFarModifier=0.9f)
- m_arrMoveWeightProfile=(Profile=MWP_Flanking, fCoverWeight=1.0f, fDistanceWeight=1.0f, fFlankingWeight=10.0f, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=3.0, fAllyVisWeight=1.0f, fCloseModifier=0.9f, fFarModifier=1.1f)
- m_arrMoveWeightProfile=(Profile=MWP_Melee, fCoverWeight=0.1f, fDistanceWeight=1.0f, fFlankingWeight=1.0f, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=1.0, fAllyVisWeight=1.0f, fCloseModifier=1.1f, fFarModifier=0.9f, fPriorityDistWeight=1.0f, bPrioritizeClosest=1, bIsMelee=1)
- m_arrMoveWeightProfile=(Profile=MWP_MeleeDefensive, fCoverWeight=0.2f, fDistanceWeight=1.0f, fFlankingWeight=0.0f, fEnemyVisWeight=-0.5f, fEnemyVisWeightPeak1=2.0, fAllyVisWeight=1.0f, fCloseModifier=1.1f, fFarModifier=0.9f,fPriorityDistWeight=1.0f, bPrioritizeClosest=1, bIsMelee=1)
- m_arrMoveWeightProfile=(Profile=MWP_MeleeAggressive, fCoverWeight=0.1f, fDistanceWeight=2.0f, fFlankingWeight=2.0f, fEnemyVisWeight=1.0f, fEnemyVisWeightPeak1=1.0, fAllyVisWeight=0.5f, fCloseModifier=1.1f, fFarModifier=0.9f,fPriorityDistWeight=1.0f, bPrioritizeClosest=1, bIsMelee=1)
- m_arrMoveWeightProfile=(Profile=MWP_MeleeFanatic, fCoverWeight=0.0f, fDistanceWeight=1.0f, fFlankingWeight=1.0f, fEnemyVisWeight=2.0f, fEnemyVisWeightPeak1=0.0, fAllyVisWeight=0.0f, fCloseModifier=1.1f, fFarModifier=0.9f,fPriorityDistWeight=1.0f, bPrioritizeClosest=1, bIsMelee=1)
- m_arrMoveWeightProfile=(Profile=MWP_CivilianGreen, fCoverWeight=1.0f, fDistanceWeight=0.0f, fFlankingWeight=0.0f, fEnemyVisWeight=0.1f, fEnemyVisWeightPeak1=0f, fAllyVisWeight=0.0f, fRandWeight=7.0f)
- m_arrMoveWeightProfile=(Profile=MWP_CivilianRed, fCoverWeight=10.0f, fDistanceWeight=1.0f, fFlankingWeight=0.0f, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=0f, fAllyVisWeight=0.0f, fCloseModifier=0.1f, fFarModifier=1.5f)
- m_arrMoveWeightProfile=(Profile=MWP_RandomNoCover, fCoverWeight=0.0f, fDistanceWeight=0.5f, fFlankingWeight=0.0f, fEnemyVisWeight=1.0f, fEnemyVisWeightPeak1=0f, fHeightWeight=1.0f, fAllyVisWeight=0.5f, fRandWeight=0.5f)
- m_arrMoveWeightProfile=(Profile=MWP_Teleport, fCoverWeight=2.0f, fDistanceWeight=1.0f, fFlankingWeight=1.0f, fEnemyVisWeight=1.0f, fEnemyVisWeightPeak1=0f, fAllyVisWeight=0, fCloseModifier=0.5f, fFarModifier=1.5f, MinimumTileDist=5.0f)
- m_arrMoveWeightProfile=(Profile=MWP_IsoTeleport, fCoverWeight=2.0f, fDistanceWeight=1.0f, fFlankingWeight=1.0f, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=0.75f, fAllyVisWeight=-0.2, fCloseModifier=0.5f, fFarModifier=1.5f, MinimumTileDist=5.0f)
- m_arrMoveWeightProfile=(Profile=MWP_MimicBeacon, fCoverWeight=0.5f, fDistanceWeight=1.0f, fFlankingWeight=0.5f, fEnemyVisWeight=0.2f, fEnemyVisWeightPeak1=0.0, fAllyVisWeight=0.2f, fPriorityDistWeight=5.0f, fCloseModifier=2.0f, fFarModifier=0.5f)
- m_arrMoveWeightProfile=(Profile=MWP_PriorityTarget, fCoverWeight=0.1f, fDistanceWeight=0.1f, fFlankingWeight=0.1f, fEnemyVisWeight=0.1f, fEnemyVisWeightPeak1=0.0, fAllyVisWeight=0.1f, fPriorityDistWeight=5.0f, fCloseModifier=1.0f, fFarModifier=1.0f)
- m_arrMoveWeightProfile=(Profile=MWP_Burrow, fRandWeight=1.0f)
- m_arrMoveWeightProfile=(Profile=MWP_IsoStealth, fCoverWeight=1.0f, fDistanceWeight=0.5f, fFlankingWeight=1.0f, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=2.0f, fAllyVisWeight=-0.2, fCloseModifier=0.5f, fFarModifier=1.5f, MinimumTileDist=5.0f)
- m_arrMoveWeightProfile=(Profile=MWP_Grapple, fCoverWeight=0.2f, fDistanceWeight=0.5f, fFlankingWeight=0.1f, fEnemyVisWeight=1.0f, fEnemyVisWeightPeak1=0.5f, fAllyVisWeight=0, fHeightWeight=0.5f, fCloseModifier=1.0f, fFarModifier=1.0f)
- m_arrMoveWeightProfile=(Profile=MWP_GrappleDefense, fCoverWeight=2.0f, fDistanceWeight=0.5f, fFlankingWeight=1.0f, fEnemyVisWeight=0.1f, fEnemyVisWeightPeak1=1.0f, fAllyVisWeight=0, fHeightWeight=0.5f, fCloseModifier=1.0f, fFarModifier=1.0f)
- m_arrMoveWeightProfile=(Profile=MWP_GrappleOffense, fCoverWeight=0.5f, fDistanceWeight=2.0f, fFlankingWeight=1.0f, fEnemyVisWeight=1.0f, fEnemyVisWeightPeak1=1.0f, fAllyVisWeight=0, fHeightWeight=1.0f, fCloseModifier=1.0f, fFarModifier=1.0f)
- m_arrMoveWeightProfile=(Profile=MWP_GrappleExtract, fCoverWeight=0.0f, fDistanceWeight=3.0f, fFlankingWeight=0, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=0.0f, fAllyVisWeight=0, fHeightWeight=0.0f, fCloseModifier=2.0f, fFarModifier=1.0f)
- m_arrMoveWeightProfile=(Profile=MWP_PanicObsessed, fCoverWeight=1.0f, fDistanceWeight=2.0f, fFlankingWeight=10.0f, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=1.0, fAllyVisWeight=0.0f, fCloseModifier=1.5f, fFarModifier=1.0f)
- m_arrMoveWeightProfile=(Profile=MWP_TeleportAlly, fCoverWeight=0.3f, fDistanceWeight=0.5f, fFlankingWeight=1.5f, fEnemyVisWeight=1.0f, fEnemyVisWeightPeak1=0.5f, fAllyVisWeight=0, fCloseModifier=2.5f, fFarModifier=1.0f, MinimumTileDist=3.0f)
- m_arrMoveWeightProfile=(Profile=MWP_TeleportAllyNoCover, fCoverWeight=0.0f, fDistanceWeight=0.5f, fFlankingWeight=1.5f, fEnemyVisWeight=1.0f, fEnemyVisWeightPeak1=0.5f, fAllyVisWeight=0, fCloseModifier=2.5f, fFarModifier=1.0f, MinimumTileDist=3.0f)
- m_arrMoveWeightProfile=(Profile=MWP_TeleportAllyMelee, fCoverWeight=0.0f, fDistanceWeight=0.5f, fFlankingWeight=0.0f, fEnemyVisWeight=1.0f, fEnemyVisWeightPeak1=0.5f, fAllyVisWeight=0, fCloseModifier=2.5f, fFarModifier=1.0f, bIsMelee=1)
- m_arrMoveWeightProfile=(Profile=MWP_BendingReed, fCoverWeight=0.5f, fDistanceWeight=0.5f, fFlankingWeight=0.0f, fEnemyVisWeight=-1.5f, fEnemyVisWeightPeak1=0.7f, fAllyVisWeight=0, fCloseModifier=0.1f, fFarModifier=2.5f, MinimumTileDist=6.0f)
- m_arrMoveWeightProfile=(Profile=MWP_HolyWarrior, fCoverWeight=1.0f, fDistanceWeight=3.0f, fFlankingWeight=0.2f, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=0.3f, fAllyVisWeight=0.2f, fCloseModifier=0.8f, fFarModifier=1.2f, MinimumTileDist=3.0f)
- m_arrMoveWeightProfile=(Profile=MWP_StandardHeight, fCoverWeight=1.8f, fDistanceWeight=4.0f, fFlankingWeight=1.0f, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=1.0, fAllyVisWeight=1.0f, fHeightWeight=1.0f, fCloseModifier=2.0f, fFarModifier=0.5f)
- m_arrMoveWeightProfile=(Profile=MWP_ChosenHunter, fCoverWeight=1.8f, fDistanceWeight=4.0f, fFlankingWeight=1.0f, fEnemyVisWeight=1.0f, fEnemyVisWeightPeak1=0.0, fAllyVisWeight=0.0f, fHeightWeight=1.0f, fCloseModifier=2.0f, fFarModifier=0.5f)
- m_arrMoveWeightProfile=(Profile=MWP_AdvanceCoverHeight, fCoverWeight=2.0f, fDistanceWeight=5.0f, fFlankingWeight=2.0f, fEnemyVisWeight=0.5f, fEnemyVisWeightPeak1=0, fAllyVisWeight=0.0f, fHeightWeight=1.0f, fCloseModifier=1.1f, fFarModifier=0.9f)
- m_arrMoveWeightProfile=(Profile=MWP_FallbackHeight, fCoverWeight=3.0f, fDistanceWeight=0.0f, fFlankingWeight=0.0f, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=2.0, fAllyVisWeight=1.0f, fHeightWeight=1.0f, fCloseModifier=0.9f, fFarModifier=1.1f)
- m_arrMoveWeightProfile=(Profile=MWP_DefensiveHeight, fCoverWeight=2.0f, fDistanceWeight=2.0f, fFlankingWeight=0.5f, fEnemyVisWeight=0.0f, fEnemyVisWeightPeak1=2.0, fAllyVisWeight=4.0f, fHeightWeight=1.0f, fCloseModifier=1.0f, fFarModifier=1.0f)
- m_arrMoveWeightProfile=(Profile=MWP_AgileRandom, fCoverWeight=0.1f, fFlankingWeight=-1.0f, fRandWeight=5.0)
- m_arrMoveWeightProfile=(Profile=MWP_AdvanceToTarget, fCoverWeight=0.2f, fDistanceWeight=10.0f, fFlankingWeight=1.0f, fEnemyVisWeight=0f, fEnemyVisWeightPeak1=1, fAllyVisWeight=0.0f, fHeightWeight=0.0f, fCloseModifier=1.1f, fFarModifier=0.9f)
- m_arrMoveWeightProfile=(Profile=MWP_RandomCover, fCoverWeight=0.5f, fRandWeight=5.0)
- [XComGame.X2AIBTBehaviorTree]
- EquivalentAbilities=( KeyName=StandardShot, EquivalentAbilityName[0]=PistolStandardShot, EquivalentAbilityName[1]=AnimaGate, EquivalentAbilityName[2]=BlasterDuringCannon, EquivalentAbilityName[3]=StandardShot_NoEnd, EquivalentAbilityName[4]=Blaster, EquivalentAbilityName[5]=SniperStandardFire)
- EquivalentAbilities=( KeyName=ThrowGrenade, EquivalentAbilityName[0]=LaunchGrenade); EquivalentAbilityName[1]=PoisonSpit, EquivalentAbilityName[2]=AcidBlob) // Abilities with different effects are not equivalent.
- EquivalentAbilities=( KeyName=StandardMelee, EquivalentAbilityName[0]=BigDamnPunch, EquivalentAbilityName[1]=DevastatingPunch, EquivalentAbilityName[2]=ChryssalidSlash, EquivalentAbilityName[3]=Bayonet, EquivalentAbilityName[4]=SwordSlice, EquivalentAbilityName[5]=Reaper, EquivalentAbilityName[6]=StunLance, EquivalentAbilityName[7]=AnimaConsume, EquivalentAbilityName[8]=ScythingClaws, EquivalentAbilityName[9]=Bind, EquivalentAbilityName[10]=ChryssalidSlashMP, EquivalentAbilityName[11]=SkirmisherMelee)
- EquivalentAbilities=( KeyName=EnergyShield, EquivalentAbilityName[0]=EnergyShield, EquivalentAbilityName[1]=EnergyShieldMk3)
- EquivalentAbilities=( KeyName=PsiDimensionalRiftStage1, EquivalentAbilityName[0]=VoidRift )
- EquivalentAbilities=( KeyName=Overwatch, EquivalentAbilityName[0]=SniperRifleOverwatch )
- EquivalentAbilities=( KeyName=VanishingWind, EquivalentAbilityName[0]=Vanish )
- EquivalentAbilities=( KeyName=HolyWarrior, EquivalentAbilityName[0]=HolyWarriorM1, EquivalentAbilityName[1]=HolyWarriorM2, EquivalentAbilityName[2]=HolyWarriorM3 )
- EquivalentAbilities=( KeyName=StunLance, EquivalentAbilityName[0]=SpectralStunLance)
- EquivalentAbilities=( KeyName=Stasis, EquivalentAbilityName[0]=PriestStasis )
- EquivalentAbilities=( KeyName=Shadowbind, EquivalentAbilityName[0]=ShadowbindM2)
- EquivalentAbilities=( KeyName=Corress, EquivalentAbilityName[0]=CorressM2, EquivalentAbilityName[1]=CorressM3, EquivalentAbilityName[2]=CorressM4)
- EquivalentAbilities=( KeyName=SpectralArmy, EquivalentAbilityName[0]=SpectralArmyM2, EquivalentAbilityName[1]=SpectralArmyM3, EquivalentAbilityName[2]=SpectralArmyM4)
- EquivalentAbilities=( KeyName=PsiMindControl, EquivalentAbilityName[0]=PriestPsiMindControl)
- Behaviors=(BehaviorName=GenericAIRoot, NodeType=Selector, Child[0]=TryNonAggressiveBehavior, Child[1]=TryMindControlledRoot, Child[2]="::CharacterRoot", Child[3]=SkipMove)
- Behaviors=(BehaviorName=TryNonAggressiveBehavior, NodeType=Sequence, Child[0]=HasHitAttackLimit, Child[1]=NonAggressiveBehavior)
- Behaviors=(BehaviorName=HasHitAttackLimit, NodeType=Condition) ; Uses values defined above for MaxEngagedEnemies, per difficulty level.
- Behaviors=(BehaviorName=NonAggressiveBehavior, NodeType=Selector, Child[0]=TryNonAggressiveBehaviorFirstAction, Child[1]=MoveFlanking, Child[2]=SkipMove)
- Behaviors=(BehaviorName=TryNonAggressiveBehaviorFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=NonAggressiveBehaviorFirstAction)
- Behaviors=(BehaviorName=NonAggressiveBehaviorFirstAction, NodeType=RandSelector, Child[0]=TryOverwatch, Param[0]=33, Child[1]=MoveFlankingOrDefensive, Param[1]=67)
- Behaviors=(BehaviorName=MoveFlankingOrDefensive, NodeType=Selector, Child[0]=MoveFlanking, Child[1]=MoveDefensive, Child[2]=SkipMove)
- Behaviors=(BehaviorName=TryMindControlledRoot, NodeType=Sequence, Child[0]=AffectedByEffect-MindControl, Child[1]=MindControlledRoot)
- Behaviors=(BehaviorName=NotRedAlert, NodeType=Inverter, Child[0]=IsRedAlert)
- Behaviors=(BehaviorName=IsInFirstCombatTurn, NodeType=Condition)
- Behaviors=(BehaviorName=IsFlanked, NodeType=Condition)
- Behaviors=(BehaviorName=NotFlanked, NodeType=Inverter, Child[0]=IsFlanked)
- Behaviors=(BehaviorName=IsVisibleToPlayer, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsVisibleToPlayer, NodeType=Condition)
- Behaviors=(BehaviorName=DidNotMoveLastTurn, NodeType=Condition)
- Behaviors=(BehaviorName=HighPopularSupport, NodeType=Condition, Param[0]="PopularSupport", Param[1]=">", Param[2]="50%")
- Behaviors=(BehaviorName=LowPopularSupport, NodeType=Inverter, Child[0]=HighPopularSupport)
- Behaviors=(BehaviorName=IsGroupLeader, NodeType=Condition)
- Behaviors=(BehaviorName=IsFollower, NodeType=Inverter, Child[0]=IsGroupLeader)
- Behaviors=(BehaviorName=HasAmmo, NodeType=Condition)
- Behaviors=(BehaviorName=OutOfAmmo, NodeType=Inverter, Child[0]=HasAmmo)
- Behaviors=(BehaviorName=IsLastActionPoint, NodeType=StatCondition, Param[0]=ActionPoints, Param[1]="==", Param[2]=1)
- Behaviors=(BehaviorName=NotLastActionPoint, NodeType=StatCondition, Param[0]=ActionPoints, Param[1]=">", Param[2]=1)
- Behaviors=(BehaviorName=HasThreeActionPoints, NodeType=StatCondition, Param[0]=ActionPoints, Param[1]="==", Param[2]=3)
- Behaviors=(BehaviorName=HasGoodShotTarget, NodeType=Condition)
- Behaviors=(BehaviorName=IsInDangerousArea, NodeType=Condition)
- Behaviors=(BehaviorName=NotInDangerousArea, NodeType=Inverter, Child[0]=IsInDangerousArea)
- Behaviors=(BehaviorName=HasKillShot, NodeType=Condition); only functional for StandardShot
- Behaviors=(BehaviorName=HasNoKillShot, NodeType=Inverter, Child[0]=HasKillShot)
- Behaviors=(BehaviorName=TargetIsVulnerable, NodeType=Selector, Child[0]=TargetIsKillable, Child[1]=TargetHasLowHP)
- Behaviors=(BehaviorName=HasHighHP, NodeType=StatCondition, Param[0]=eStat_HP, Param[1]=">=", Param[2]="70%")
- Behaviors=(BehaviorName=HasLowHP, NodeType=StatCondition, Param[0]=eStat_HP, Param[1]="<=", Param[2]="30%")
- Behaviors=(BehaviorName=NotLowHP, NodeType=StatCondition, Param[0]=eStat_HP, Param[1]=">", Param[2]="30%")
- Behaviors=(BehaviorName=IsBloodied, NodeType=StatCondition, Param[0]=eStat_HP, Param[1]="<=", Param[2]="50%")
- Behaviors=(BehaviorName=HasWounds, NodeType=StatCondition, Param[0]=eStat_HP, Param[1]="<", Param[2]="100%")
- Behaviors=(BehaviorName=IsRedAlert, NodeType=StatCondition, Param[0]=eStat_AlertLevel, Param[1]="==", Param[2]="2")
- Behaviors=(BehaviorName=IsOrangeAlert, NodeType=Condition)
- Behaviors=(BehaviorName=IsYellowAlert, NodeType=StatCondition, Param[0]=eStat_AlertLevel, Param[1]="==", Param[2]="1")
- Behaviors=(BehaviorName=IsGreenAlert, NodeType=StatCondition, Param[0]=eStat_AlertLevel, Param[1]="==", Param[2]="0")
- Behaviors=(BehaviorName=HasRevealed, NodeType=Condition )
- Behaviors=(BehaviorName=TargetHasRevealed, NodeType=Condition )
- Behaviors=(BehaviorName=NotYetRevealed, NodeType=Inverter, Child[0]=HasRevealed )
- Behaviors=(BehaviorName=HasCombatOccured, NodeType=StatCondition, Param[0]=CombatCount, Param[1]=">", Param[2]="0")
- Behaviors=(BehaviorName=HasMoreThanOneOverwatcher, NodeType=StatCondition, Param[0]=OverwatcherCount, Param[1]=">", Param[2]="1")
- Behaviors=(BehaviorName=NoOverwatchingTeammates, NodeType=StatCondition, Param[0]=OverwatcherCount, Param[1]="==", Param[2]="0", Param[3]="1")
- Behaviors=(BehaviorName=OneOverwatchingTeammate, NodeType=StatCondition, Param[0]=OverwatcherCount, Param[1]="==", Param[2]="1", Param[3]="1")
- Behaviors=(BehaviorName=MultipleOverwatchingTeammates, NodeType=StatCondition, Param[0]=OverwatcherCount, Param[1]=">", Param[2]="1", Param[3]="1")
- Behaviors=(BehaviorName=TargetHasBeenAttackedTwice, NodeType=StatCondition, Param[0]=TargetSelectedThisTurnCount, Param[1]=">=", Param[2]="2")
- Behaviors=(BehaviorName=TargetHasBeenAttackedOnce, NodeType=StatCondition, Param[0]=TargetSelectedThisTurnCount, Param[1]="=", Param[2]="1")
- Behaviors=(BehaviorName=TargetHasNotBeenAttacked, NodeType=StatCondition, Param[0]=TargetSelectedThisTurnCount, Param[1]="=", Param[2]="0")
- Behaviors=(BehaviorName=NoVisibleOverwatchers, NodeType=StatCondition, Param[0]=OverwatcherCount, Param[1]="==", Param[2]="0")
- Behaviors=(BehaviorName=NoVisibleSuppressors, NodeType=StatCondition, Param[0]=SuppressorCount, Param[1]="==", Param[2]="0")
- Behaviors=(BehaviorName=HasBTVar-SafeToMove, NodeType=Condition)
- Behaviors=(BehaviorName=SetSafeToMoveTrue, NodeType=Action, Param[0]=SetBTVar, Param[1]="SafeToMove", Param[2]="1")
- Behaviors=(BehaviorName=SetSafeToMoveFalse, NodeType=Action, Param[0]=SetBTVar, Param[1]="SafeToMove", Param[2]="0")
- Behaviors=(BehaviorName=IsSafeToMove, NodeType=StatCondition, Param[0]=BTVar, Param[1]="!=", Param[2]="0", Param[3]="SafeToMove")
- Behaviors=(BehaviorName=InitSafeToMoveVar, NodeType=Selector, Child[0]=HasBTVar-SafeToMove, Child[1]=UpdateSafeToMoveVar)
- Behaviors=(BehaviorName=UpdateSafeToMoveVar, NodeType=Selector, Child[0]=TrySetSafeToMoveTrue, Child[1]=SetSafeToMoveFalse)
- Behaviors=(BehaviorName=TrySetSafeToMoveTrue, NodeType=Sequence, Child[0]=AreConditionsSafeForMove, Child[1]=SetSafeToMoveTrue)
- Behaviors=(BehaviorName=AreConditionsSafeForMove, NodeType=Selector, Child[0]=IsFlanked, Child[1]=PassesOverwatchSuppressMoveChecks)
- Behaviors=(BehaviorName=PassesOverwatchSuppressMoveChecks, NodeType=Sequence, Child[0]=PassesSuppressMoveChecks, Child[1]=PassesOverwatchMoveChecks)
- Behaviors=(BehaviorName=PassesOverwatchMoveChecks, NodeType=Selector, Child[0]=NoVisibleOverwatchers, Child[1]=RollToNotMoveAgainstOverwatchersFails)
- Behaviors=(BehaviorName=PassesSuppressMoveChecks, NodeType=Selector, Child[0]=NoVisibleSuppressors, Child[1]=RollToNotMoveAgainstSuppressorsFails)
- Behaviors=(BehaviorName=RollToNotMoveAgainstOverwatchersFails, NodeType=Sequence, Child[0]=SetNoMoveFalse, Child[1]=SetOverwatcherStack, Child[2]=RepeatRollNoMoveOnOverwatcherUntilPass, Child[3]=RollToNotMoveFailed)
- Behaviors=(BehaviorName=RollToNotMoveAgainstSuppressorsFails, NodeType=Sequence, Child[0]=SetNoMoveFalse, Child[1]=SetSuppressorStack, Child[2]=RepeatRollNoMoveOnSuppressorUntilPass, Child[3]=RollToNotMoveFailed)
- Behaviors=(BehaviorName=RepeatRollNoMoveOnOverwatcherUntilPass, NodeType=RepeatUntilFail, Child[0]=IterateRollOnNoMoveToOverwatcher)
- Behaviors=(BehaviorName=RepeatRollNoMoveOnSuppressorUntilPass, NodeType=RepeatUntilFail, Child[0]=IterateRollOnNoMoveToSuppressor)
- Behaviors=(BehaviorName=IterateRollOnNoMoveToOverwatcher, NodeType=Sequence, Child[0]=SetNextOverwatcher, Child[1]=Roll50ToNotMove, Child[2]=RollToNotMoveFailed) ; If RollToNotMove failed, keep rolling until it passes or we run out of overwatchers.
- Behaviors=(BehaviorName=IterateRollOnNoMoveToSuppressor, NodeType=Sequence, Child[0]=SetNextSuppressor, Child[1]=Roll75ToNotMove, Child[2]=RollToNotMoveFailed) ; If RollToNotMove failed, keep rolling until it passes or we run out of suppressors.
- Behaviors=(BehaviorName=SetNextOverwatcher, NodeType=Action)
- Behaviors=(BehaviorName=SetOverwatcherStack, NodeType=Action)
- Behaviors=(BehaviorName=SetNextSuppressor, NodeType=Action)
- Behaviors=(BehaviorName=SetSuppressorStack, NodeType=Action)
- Behaviors=(BehaviorName=Roll50ToNotMove, NodeType=RandSelector, Child[0]=SetNoMoveTrue, Param[0]=50, Child[1]=SetNoMoveFalse, Param[1]=50)
- Behaviors=(BehaviorName=Roll75ToNotMove, NodeType=RandSelector, Child[0]=SetNoMoveTrue, Param[0]=75, Child[1]=SetNoMoveFalse, Param[1]=25)
- Behaviors=(BehaviorName=SetNoMoveTrue, NodeType=Action, Param[0]=SetBTVar, Param[1]="NoMove", Param[2]="1")
- Behaviors=(BehaviorName=SetNoMoveFalse, NodeType=Action, Param[0]=SetBTVar, Param[1]="NoMove", Param[2]="0")
- Behaviors=(BehaviorName=RollToNotMoveFailed, NodeType=StatCondition, Param[0]=BTVar, Param[1]="==", Param[2]="0", Param[3]="NoMove")
- Behaviors=(BehaviorName=RollToNotMovePassed, NodeType=StatCondition, Param[0]=BTVar, Param[1]="!=", Param[2]="0", Param[3]="NoMove")
- Behaviors=(BehaviorName=SafeToMove, NodeType=Sequence, Child[0]=InitSafeToMoveVar, Child[1]=IsSafeToMove)
- Behaviors=(BehaviorName=IsDifficultyEasy, NodeType=StatCondition, Param[0]=Difficulty, Param[1]="==", Param[2]="0")
- Behaviors=(BehaviorName=IsDifficultyNormal, NodeType=StatCondition, Param[0]=Difficulty, Param[1]="==", Param[2]="1")
- Behaviors=(BehaviorName=IsDifficultyHard, NodeType=StatCondition, Param[0]=Difficulty, Param[1]="==", Param[2]="2")
- Behaviors=(BehaviorName=IsDifficultyClassic, NodeType=StatCondition, Param[0]=Difficulty, Param[1]="==", Param[2]="3")
- Behaviors=(BehaviorName=IsDifficultyAboveNormal, NodeType=StatCondition, Param[0]=Difficulty, Param[1]=">", Param[2]="1")
- Behaviors=(BehaviorName=IsDifficultyLow, NodeType=StatCondition, Param[0]=Difficulty, Param[1]="<=", Param[2]="1")
- Behaviors=(BehaviorName=UseDashMovement, NodeType=Action)
- Behaviors=(BehaviorName=SetCiviliansAsEnemiesInMoveCalculation, NodeType=Action)
- Behaviors=(BehaviorName=SetNoCoverMovement, NodeType=Action)
- Behaviors=(BehaviorName=HasPriorityTargetUnit, NodeType=Condition)
- Behaviors=(BehaviorName=HasPriorityTargetObject, NodeType=Condition)
- Behaviors=(BehaviorName=HasPriorityTarget, NodeType=Selector, Child[0]=HasPriorityTargetUnit, Child[1]=HasValidProtectDeviceTarget)
- Behaviors=(BehaviorName=SetPriorityTargetFromKismet, NodeType=Action)
- Behaviors=(BehaviorName=MoveTowardPriorityTarget, NodeType=Sequence, Child[0]=SetPriorityTargetFromKismet, Child[1]=SelectMoveTowardPriorityTarget)
- Behaviors=(BehaviorName=SelectMoveTowardPriorityTarget, NodeType=Selector, Child[0]=TryMeleeMoveTowardPriorityTarget, Child[1]=TryStandardMoveTowardPriorityTarget)
- Behaviors=(BehaviorName=TryStandardMoveTowardPriorityTarget, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=FindDestinationTowardPriorityTarget, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindDestinationTowardPriorityTarget, NodeType=Selector, Child[0]=FindPriorityTargetDestWithStandardShot, Child[1]=SelectFindPriorityTargetMeleeOrStandardShot); Not all units have a standard shot ability.
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_PriorityTarget, NodeType=Action)
- Behaviors=(BehaviorName=FindPriorityTargetDestWithStandardShot, NodeType=Sequence, Child[0]=IsAbilityReady-StandardShot, Child[1]=RestrictToAbilityRange-StandardShot, Child[2]=OverrideIdealRange-3, Child[3]=FindRestrictedDestination-MWP_PriorityTarget)
- Behaviors=(BehaviorName=IsAbilityReady-StandardShot, NodeType=Condition)
- Behaviors=(BehaviorName=SelectFindPriorityTargetMeleeOrStandardShot, NodeType=Selector, Child[0]=IfMeleeFindClosestPointToTarget, Child[1]=FindRestrictedDestination-MWP_PriorityTarget)
- Behaviors=(BehaviorName=TryMeleeMoveTowardPriorityTarget, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=RestrictToPotentialTargetRange-StandardMelee, Child[2]=FindRestrictedDestination-MWP_MeleeFanatic, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=HasValidProtectDeviceTarget, NodeType=Sequence, Child[0]=HasPriorityTargetObject, Child[1]=PriorityTargetNotAttackedThisTurn )
- Behaviors=(BehaviorName=PriorityTargetNotAttackedThisTurn, NodeType=StatCondition, Param[0]=PriorityObjectAttackCount, Param[1]="==", Param[2]="0")
- Behaviors=(BehaviorName=HasEnemyVIP, NodeType=Condition) ; Slightly different from HasPriorityTargetUnit in that the Enemy VIP is not always the priority target.
- Behaviors=(BehaviorName=TargetIsPriorityUnit, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsPriorityObject, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsEnemyVIP, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsNotEnemyVIP, NodeType=Inverter, Child[0]=TargetIsEnemyVIP)
- Behaviors=(BehaviorName=AffectedByEffect-MindControl, NodeType=Condition)
- Behaviors=(BehaviorName=AffectedByEffect-RageTriggered, NodeType=Condition)
- Behaviors=(BehaviorName=AffectedByEffect-PsychosisTriggered, NodeType=Condition)
- Behaviors=(BehaviorName=AffectedByEffect-GatekeeperClosedEffect, NodeType=Condition)
- Behaviors=(BehaviorName=AffectedByEffect-WrathCannonStage1Effect, NodeType=Condition)
- Behaviors=(BehaviorName=AffectedByEffect-FrenzyEffect, NodeType=Condition)
- Behaviors=(BehaviorName=AffectedByEffect-Burrowed, NodeType=Condition)
- Behaviors=(BehaviorName=TargetAffectedByEffect-MarkedTarget, NodeType=Condition)
- Behaviors=(BehaviorName=AffectedByEffect-Poisoned, NodeType=Condition)
- Behaviors=(BehaviorName=TargetAffectedByEffect-Disoriented, NodeType=Condition)
- Behaviors=(BehaviorName=TargetAffectedByEffect-Confused, NodeType=Condition)
- Behaviors=(BehaviorName=TargetAffectedByEffect-Panicked, NodeType=Condition)
- Behaviors=(BehaviorName=TargetAffectedByEffect-Suppression, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsApplyingEffect-Suppression, NodeType=Condition)
- Behaviors=(BehaviorName=TargetWillWeakened, NodeType=Selector, Child[0]=TargetAffectedByEffect-Disoriented, Child[1]=TargetAffectedByEffect-Confused, Child[2]=TargetAffectedByEffect-Panicked);, Child[3]=TargetNotAffectedByDominated)
- Behaviors=(BehaviorName=TargetWillunWeakened, NodeType=Inverter, Child[0]=TargetWillWeakened)
- Behaviors=(BehaviorName=IsMissionOfType-Terror, NodeType=Condition)
- Behaviors=(BehaviorName=IsMissionOfType-ChosenRetaliation, NodeType=Condition)
- Behaviors=(BehaviorName=IsAIInCivilianRadius, NodeType=Condition)
- Behaviors=(BehaviorName=HasMultipleEnergyShieldTargets, NodeType=StatCondition, Param[0]=AbilityTargetUnitCount-EnergyShield, Param[1]=">=", Param[2]=3) ; Param[2] count includes self.
- Behaviors=(BehaviorName=HasAnyEnergyShieldTargets, NodeType=StatCondition, Param[0]=AbilityTargetUnitCount-EnergyShield, Param[1]=">=", Param[2]=2)
- Behaviors=(BehaviorName=TargetHasLowHP, NodeType=TargetStatCondition, Param[0]=eStat_HP, Param[1]="<=", Param[2]="40%")
- Behaviors=(BehaviorName=TargetHasHighHP, NodeType=TargetStatCondition, Param[0]=eStat_HP, Param[1]=">=", Param[2]="75%")
- Behaviors=(BehaviorName=TargetHasMaxHP, NodeType=TargetStatCondition, Param[0]=eStat_HP, Param[1]=">=", Param[2]="100%")
- Behaviors=(BehaviorName=TargetWounded, NodeType=Inverter, Child[0]=TargetHasMaxHP)
- Behaviors=(BehaviorName=TargetIsKillable, NodeType=Condition)
- Behaviors=(BehaviorName=TargetHitChanceLow, NodeType=Condition)
- Behaviors=(BehaviorName=TargetHitChanceHigh, NodeType=Condition)
- Behaviors=(BehaviorName=IsFlankingTarget, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsCivilian, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsNotCivilian, NodeType=Inverter, Child[0]=TargetIsCivilian)
- Behaviors=(BehaviorName=TargetIsEnemy, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsAlly, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsAdvent, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsAlien, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsNotAlien, NodeType=Inverter, Child[0]=TargetIsAlien)
- Behaviors=(BehaviorName=TargetIsRobotic, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsClosestValidTarget, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsNotAttackable, NodeType=Condition) ; Dead, or incapacitated.
- Behaviors=(BehaviorName=TargetIsChosen, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsEngagedChosen, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsNotEngagedChosen, NodeType=Inverter, Child[0]=TargetIsEngagedChosen)
- Behaviors=(BehaviorName=FindDestination-MWP_FallBack, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_Defensive, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_Standard, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_Aggressive, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_Fanatic, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_AdvanceCover, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_Flanking, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_Hunting, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_Melee, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_MeleeDefensive, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_MeleeAggressive, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_MeleeFanatic, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_CivilianGreen, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_CivilianRed, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_RandomNoCover, NodeType=Action)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_Teleport, NodeType=Action)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_IsoTeleport, NodeType=Action)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_FallBack, NodeType=Action)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_Defensive, NodeType=Action)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_Standard, NodeType=Action)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_Aggressive, NodeType=Action)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_Fanatic, NodeType=Action)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_AdvanceCover, NodeType=Action)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_Flanking, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_FallBack, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_Defensive, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_Standard, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_Aggressive, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_Fanatic, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_Flanking, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_AdvanceCover, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_Melee, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_MeleeDefensive, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_MeleeFanatic, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_Teleport, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_IsoTeleport, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_MimicBeacon, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_Burrow, NodeType=Action)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_StandardHeight, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_StandardHeight, NodeType=Action)
- Behaviors=(BehaviorName=ResetDestinationSearch, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToEnemyLoS, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToAllyLoS, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToFlanking, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToNonFlanking, NodeType=Action) ; Force all destinations are not flanking the enemy.
- Behaviors=(BehaviorName=RestrictToUnflanked, NodeType=Action) ; Force all destinations are not flanked by any visible enemy.
- Behaviors=(BehaviorName=RestrictToAbilityRange-ThrowGrenade, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToAbilityRange-PoisonSpit, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToAbilityRange-AcidBlob, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToAbilityRange-MicroMissiles, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToAbilityRange-BlazingPinionsStage1, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToAbilityRange-PsiDimensionalRiftStage1, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToAbilityRange-NullLance, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToAbilityRange-PsiMindControl, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToAbilityRange-AnimaInversion, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToAbilityRange-PsiBombStage1, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToAbilityRange-StandardShot, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToAbilityRange-Suppression, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToPotentialTargetRange-EnergyShield, NodeType=Action); Requires a potential target. Used for finding a destination to shield our 'best' unit.
- Behaviors=(BehaviorName=RestrictToAlliedAbilityRange-EnergyShield, NodeType=Action, Param[0]=2) ;Param[0] is the minimum number of Allied Targets in range for each tile to be considered.
- Behaviors=(BehaviorName=RestrictToPotentialTargetRange-StandardMelee, NodeType=Action); StandardMelee has aliases in equivalentAbilities list.
- Behaviors=(BehaviorName=RestrictToPotentialTargetRange-NullLance, NodeType=Action)
- Behaviors=(BehaviorName=AddAbilityRangeWeight-EnergyShield, NodeType=Action, Param[0]="5.5")
- Behaviors=(BehaviorName=FindGrenadeDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-ThrowGrenade, Child[2]=RestrictToEnemyLoS, Child[3]=FindRestrictedDestination-MWP_Standard)
- Behaviors=(BehaviorName=FindPoisonSpitDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-PoisonSpit, Child[2]=RestrictToEnemyLoS, Child[3]=FindRestrictedDestination-MWP_Standard)
- Behaviors=(BehaviorName=FindAcidBlobDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-AcidBlob, Child[2]=RestrictToEnemyLoS, Child[3]=FindRestrictedDestination-MWP_Standard)
- Behaviors=(BehaviorName=FindMicroMissilesDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-MicroMissiles, Child[2]=RestrictToEnemyLoS, Child[3]=FindRestrictedDestination-MWP_Fanatic)
- Behaviors=(BehaviorName=FindBlazingPinionsDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-BlazingPinionsStage1, Child[2]=RestrictToEnemyLoS, Child[3]=FindRestrictedDestination-MWP_Fanatic)
- Behaviors=(BehaviorName=FindShieldDestinationDefensive, NodeType=Selector, Child[0]=FindShieldDestinationDefensive_MultipleUnits, Child[1]=FindShieldDestinationDefensive_BestUnit)
- Behaviors=(BehaviorName=FindShieldDestinationDefensive_MultipleUnits, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAlliedAbilityRange-EnergyShield, Child[2]=AddAbilityRangeWeight-EnergyShield, Child[3]=FindRestrictedDestination-MWP_Defensive)
- Behaviors=(BehaviorName=FindShieldDestinationDefensive_BestUnit, NodeType=Sequence, Child[0]=SelectPotentialTargetForEnergyShield, Child[1]=ResetDestinationSearch, Child[2]=RestrictToPotentialTargetRange-EnergyShield, Child[3]=FindRestrictedDestination-MWP_Defensive)
- Behaviors=(BehaviorName=FindDimensionalRiftDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-PsiDimensionalRiftStage1, Child[2]=RestrictToEnemyLoS, Child[3]=FindRestrictedDestination-MWP_Defensive)
- Behaviors=(BehaviorName=FindMindControlDestinationDefensive, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-PsiMindControl, Child[2]=RestrictToEnemyLoS, Child[3]=FindRestrictedDestination-MWP_Defensive)
- Behaviors=(BehaviorName=FindAnimaInversionDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-AnimaInversion, Child[2]=RestrictToEnemyLoS, Child[3]=FindRestrictedDestination-MWP_Fanatic)
- Behaviors=(BehaviorName=FindPsiBombDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-PsiBombStage1, Child[2]=RestrictToEnemyLoS, Child[3]=FindRestrictedDestination-MWP_Standard)
- Behaviors=(BehaviorName=FindNullLanceDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-NullLance, Child[2]=RestrictToEnemyLoS, Child[3]=FindRestrictedDestination-MWP_Standard)
- Behaviors=(BehaviorName=FindPsiBombTeleportDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-PsiBombStage1, Child[2]=RestrictToEnemyLoS, Child[3]=UseDashMovement, Child[4]=FindRestrictedDestination-MWP_Teleport)
- Behaviors=(BehaviorName=FindPsiMindControlTeleportDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-PsiMindControl, Child[2]=RestrictToEnemyLoS, Child[3]=UseDashMovement, Child[4]=FindRestrictedDestination-MWP_Teleport)
- Behaviors=(BehaviorName=FindPsiDimensionalRiftTeleportDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-PsiDimensionalRiftStage1, Child[2]=RestrictToEnemyLoS, Child[3]=UseDashMovement, Child[4]=FindRestrictedDestination-MWP_Teleport)
- Behaviors=(BehaviorName=FindNullLanceTeleportDestination, NodeType=Sequence, Child[0]=RestrictToPotentialTargetRange-NullLance, Child[1]=UseDashMovement, Child[2]=FindRestrictedDestination-MWP_Teleport)
- Behaviors=(BehaviorName=FindSuppressionDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-Suppression, Child[2]=RestrictToEnemyLoS, Child[3]=FindRestrictedDestination-MWP_Standard)
- Behaviors=(BehaviorName=SkipMove, NodeType=Action)
- Behaviors=(BehaviorName=SelectMoveStandard, NodeType=Selector, Child[0]=SelectMoveProfileByJob, Child[1]=MoveStandard)
- Behaviors=(BehaviorName=SelectMove_JobOrDefensive, NodeType=Selector, Child[0]=SelectMoveProfileByJob, Child[1]=MoveDefensive)
- Behaviors=(BehaviorName=SelectMove_JobOrAggressive, NodeType=Selector, Child[0]=SelectMoveProfileByJob, Child[1]=MoveAggressive)
- Behaviors=(BehaviorName=SelectNCMove_JobOrFanatic, NodeType=Selector, Child[0]=SelectNCMoveProfileByJob, Child[1]=MoveNoCover)
- Behaviors=(BehaviorName=SelectMove_JobOrHunter, NodeType=Selector, Child[0]=SelectMoveProfileByJob, Child[1]=MoveHunting)
- Behaviors=(BehaviorName=SelectMove_JobOrFlanking, NodeType=Selector, Child[0]=SelectMoveProfileByJob, Child[1]=MoveFlanking)
- Behaviors=(BehaviorName=SelectMove_JobOrMelee, NodeType=Selector, Child[0]=SelectMoveProfileByJob, Child[1]=MoveMelee)
- Behaviors=(BehaviorName=SelectUnsafeMove_JobOrMelee, NodeType=Selector, Child[0]=SelectMoveProfileByJobUnsafe, Child[1]=MoveMeleeUnsafe)
- Behaviors=(BehaviorName=FallBack, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=FallBackUnsafe)
- Behaviors=(BehaviorName=FallBackUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindBestFallbackDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindBestFallbackDestination, NodeType=Selector, Child[0]=FindDestinationWithLoS-MWP_Defensive, Child[1]=FindDestinationWithLoS-MWP_FallBack, Child[2]=FindDestination-MWP_Defensive, Child[3]=FindDestination-MWP_FallBack)
- Behaviors=(BehaviorName=FallBackWithLoS, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=FallBackWithLoSUnsafe)
- Behaviors=(BehaviorName=FallBackWithLoSUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindDestinationWithLoS-MWP_FallBack, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=NCFallBackWithLoS, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=NCFallBackWithLoSUnsafe)
- Behaviors=(BehaviorName=NCFallBackWithLoSUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=SetNoCoverMovement, Child[3]=FindDestinationWithLoS-MWP_FallBack, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindFriendlyFallbackDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAllyLoS, Child[2]=FindRestrictedDestination-MWP_FallBack)
- Behaviors=(BehaviorName=FallBackIfFirstAbility, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=FallBack)
- Behaviors=(BehaviorName=FallBackIfFirstAbilityUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=FallBackUnsafe)
- Behaviors=(BehaviorName=FallBackWithLoSIfFirstAbility, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=FallBackWithLoS)
- Behaviors=(BehaviorName=FallBackWithLoSIfFirstAbilityUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=FallBackWithLoSUnsafe)
- Behaviors=(BehaviorName=MoveDefensive, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveDefensiveUnsafe)
- Behaviors=(BehaviorName=MoveDefensiveUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindDestination-MWP_Defensive, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=NCMoveDefensive, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=NCMoveDefensiveUnsafe)
- Behaviors=(BehaviorName=NCMoveDefensiveUnsafe, NodeType=Selector, Child[0]=NCMoveDefensiveUnsafe_LoS, Child[1]=NCMoveDefensiveUnsafe_Any)
- Behaviors=(BehaviorName=NCMoveDefensiveUnsafe_LoS, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=SetNoCoverMovement, Child[3]=FindDestinationWithLoS-MWP_Defensive, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=NCMoveDefensiveUnsafe_Any, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=SetNoCoverMovement, Child[3]=FindDestination-MWP_Defensive, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveDefensiveIfFirstAbility, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveDefensive)
- Behaviors=(BehaviorName=MoveDefensiveIfFirstAbilityUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveDefensiveUnsafe)
- Behaviors=(BehaviorName=MoveDefensiveWithLoS, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveDefensiveWithLoSUnsafe)
- Behaviors=(BehaviorName=MoveDefensiveWithLoSUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=RestrictToUnflanked, Child[3]=FindDestinationWithLoS-MWP_Defensive, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveDefensiveWithLoSIfFirstAbility, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveDefensiveWithLoS)
- Behaviors=(BehaviorName=MoveDefensiveWithLoSIfFirstAbilityUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveDefensiveWithLoSUnsafe)
- Behaviors=(BehaviorName=MoveStandard, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveStandardUnsafe)
- Behaviors=(BehaviorName=MoveStandardUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=FindDestination-MWP_Standard, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveStandard)
- Behaviors=(BehaviorName=MoveStandardWithLoS, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveStandardWithLoSUnsafe)
- Behaviors=(BehaviorName=MoveStandardWithLoSUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindDestinationWithLoS-MWP_Standard, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardWithLoSIfFirstAbility, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveStandardWithLoS)
- Behaviors=(BehaviorName=MoveStandardWithLoSIfFirstAbilityUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveStandardWithLoSUnsafe)
- Behaviors=(BehaviorName=MoveAggressiveUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindDestinationWithLoS-MWP_Aggressive, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveAggressive, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveAggressiveUnsafe)
- Behaviors=(BehaviorName=MoveAggressiveIfFirstAbility, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveAggressive)
- Behaviors=(BehaviorName=MoveAggressiveIfFirstAbilityUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveAggressiveUnsafe)
- Behaviors=(BehaviorName=NCMoveAggressiveUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=SetNoCoverMovement, Child[3]=FindDestinationWithLoS-MWP_Aggressive, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=NCMoveAggressive, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=NCMoveAggressiveUnsafe)
- Behaviors=(BehaviorName=MoveNoCoverUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=SetNoCoverMovement, Child[3]=FindDestination-MWP_Fanatic, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveNoCover, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveNoCoverUnsafe)
- Behaviors=(BehaviorName=MoveNoCoverIfFirstAbility, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveNoCover)
- Behaviors=(BehaviorName=MoveNoCoverIfFirstAbilityUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveNoCoverUnsafe)
- Behaviors=(BehaviorName=MoveHuntingUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=FindDestinationForHunter, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveHunting, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveHuntingUnsafe)
- Behaviors=(BehaviorName=FindDestinationForHunter, NodeType=Selector, Child[0]=HuntWithLoS, Child[1]=BestHuntDestinationWithoutLoS)
- Behaviors=(BehaviorName=HuntWithLoS, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToEnemyLoS, Child[2]=FindDestination-MWP_Hunting)
- Behaviors=(BehaviorName=BestHuntDestinationWithoutLoS, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=FindDestination-MWP_Hunting)
- Behaviors=(BehaviorName=MoveAdvanceToCover, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveAdvanceToCoverUnsafe)
- Behaviors=(BehaviorName=MoveAdvanceToCoverUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindDestination-MWP_AdvanceCover, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveAdvanceToCoverLoSUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindDestinationWithLoS-MWP_AdvanceCover, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=NCMoveAdvanceToCover, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=NCMoveAdvanceToCoverUnsafe)
- Behaviors=(BehaviorName=NCMoveAdvanceToCoverUnsafe, NodeType=Selector, Child[0]=NCMoveAdvanceToCoverUnsafe_LoS, Child[1]=NCMoveAdvanceToCoverUnsafe_Any)
- Behaviors=(BehaviorName=NCMoveAdvanceToCoverUnsafe_LoS, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=SetNoCoverMovement, Child[3]=FindDestinationWithLoS-MWP_AdvanceCover, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=NCMoveAdvanceToCoverUnsafe_Any, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=SetNoCoverMovement, Child[3]=FindDestination-MWP_AdvanceCover, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveFlanking, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveFlankingUnsafe)
- Behaviors=(BehaviorName=MoveFlankingUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindDestinationWithLoS-MWP_Flanking, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveFlankingIfFirstAbility, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveFlanking)
- Behaviors=(BehaviorName=MoveFlankingIfFirstAbilityUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveFlankingUnsafe)
- Behaviors=(BehaviorName=NCMoveFlanking, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=NCMoveFlankingUnsafe)
- Behaviors=(BehaviorName=NCMoveFlankingUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=SetNoCoverMovement, Child[3]=FindDestinationWithLoS-MWP_Flanking, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveMelee, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveMeleeUnsafe)
- Behaviors=(BehaviorName=MoveMeleeUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindMeleeDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveMeleeDefensive, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveMeleeDefensiveUnsafe)
- Behaviors=(BehaviorName=MoveMeleeDefensiveUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindMeleeDestinationDefensive, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveMeleeFANATIC, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveMeleeFANATICUnsafe)
- Behaviors=(BehaviorName=MoveMeleeFANATICUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindMeleeDestinationFANATIC, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveToPotentialMeleeFANATIC, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveToPotentialMeleeFANATICUnsafe)
- Behaviors=(BehaviorName=MoveToPotentialMeleeFANATICUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=FindPotentialMeleeDestinationFANATIC, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveMeleeIfFirstAbility, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveMelee)
- Behaviors=(BehaviorName=MoveMeleeDefensiveIfFirstAbility, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveMeleeDefensive)
- Behaviors=(BehaviorName=MoveMeleeIfFirstAbilityFANATIC, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveMeleeFANATIC)
- Behaviors=(BehaviorName=MoveToPotentialMeleeIfFirstAbilityFANATIC, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=IncludeAlliesAsMeleeTargets, Child[2]=MoveToPotentialMeleeFANATIC)
- Behaviors=(BehaviorName=MoveMeleeIfFirstAbilityUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveMeleeUnsafe)
- Behaviors=(BehaviorName=MoveMeleeDefensiveIfFirstAbilityUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveMeleeDefensiveUnsafe)
- Behaviors=(BehaviorName=MoveMeleeIfFirstAbilityFANATICUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveMeleeFANATICUnsafe)
- Behaviors=(BehaviorName=MoveMeleeDash, NodeType=Selector, Child[0]=IfFirstActionMoveMeleeDash, Child[1]=MoveMelee)
- Behaviors=(BehaviorName=MoveMeleeDashUnsafe, NodeType=Selector, Child[0]=IfFirstActionMoveMeleeDashUnsafe, Child[1]=MoveMeleeUnsafe)
- Behaviors=(BehaviorName=IfFirstActionMoveMeleeDash, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=AttemptMoveMeleeDash)
- Behaviors=(BehaviorName=IfFirstActionMoveMeleeDashUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=AttemptMoveMeleeDashUnsafe)
- Behaviors=(BehaviorName=AttemptMoveMeleeDash, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=AttemptMoveMeleeDashUnsafe)
- Behaviors=(BehaviorName=AttemptMoveMeleeDashUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=UseDashMovement, Child[3]=FindMeleeDestination, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveMeleeDashFANATIC, NodeType=Selector, Child[0]=IfFirstActionMoveMeleeDashFANATIC, Child[1]=MoveMeleeFANATIC)
- Behaviors=(BehaviorName=MoveMeleeDashFANATICUnsafe, NodeType=Selector, Child[0]=IfFirstActionMoveMeleeDashFANATICUnsafe, Child[1]=MoveMeleeFANATICUnsafe)
- Behaviors=(BehaviorName=IfFirstActionMoveMeleeDashFANATIC, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=AttemptMoveMeleeDashFANATIC)
- Behaviors=(BehaviorName=IfFirstActionMoveMeleeDashFANATICUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=AttemptMoveMeleeDashFANATICUnsafe)
- Behaviors=(BehaviorName=AttemptMoveMeleeDashFANATIC, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=AttemptMoveMeleeDashFANATICUnsafe)
- Behaviors=(BehaviorName=AttemptMoveMeleeDashFANATICUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=UseDashMovement, Child[3]=FindMeleeDestinationFANATIC, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveMeleePriorityTarget, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveMeleePriorityTargetUnsafe)
- Behaviors=(BehaviorName=MoveMeleePriorityTargetUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=UseDashMovement, Child[3]=FindPriorityMeleeDestination, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindMeleeDestination, NodeType=Sequence, Child[0]=IncludeCiviliansIfTerrorist, Child[1]=SelectPotentialMeleeTarget, Child[2]=RestrictToPotentialTargetRange-StandardMelee, Child[3]=FindRestrictedDestination-MWP_Melee)
- Behaviors=(BehaviorName=FindMeleeDestinationDefensive, NodeType=Sequence, Child[0]=IncludeCiviliansIfTerrorist, Child[1]=SelectPotentialMeleeTarget, Child[2]=RestrictToPotentialTargetRange-StandardMelee, Child[3]=FindRestrictedDestination-MWP_MeleeDefensive)
- Behaviors=(BehaviorName=FindMeleeDestinationFANATIC, NodeType=Sequence, Child[0]=IncludeCiviliansIfTerrorist, Child[1]=SelectPotentialMeleeTarget, Child[2]=RestrictToPotentialTargetRange-StandardMelee, Child[3]=FindRestrictedDestination-MWP_MeleeFanatic)
- Behaviors=(BehaviorName=FindPriorityMeleeDestination, NodeType=Sequence, Child[0]=SelectPotentialMeleePriorityTarget, Child[1]=RestrictToPotentialTargetRange-StandardMelee, Child[2]=FindRestrictedDestination-MWP_MeleeFanatic)
- Behaviors=(BehaviorName=FindPotentialMeleeDestinationFANATIC, NodeType=Sequence, Child[0]=IncludeCiviliansIfTerrorist, Child[1]=RestrictToPotentialTargetRange-StandardMelee, Child[2]=FindRestrictedDestination-MWP_MeleeFanatic)
- Behaviors=(BehaviorName=TryTerroristMoveMeleeFANATICUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=IncludeCiviliansIfTerrorist, Child[3]=FindMeleeDestinationFANATIC, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=TryTerroristMoveMeleeFANATIC, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=TryTerroristMoveMeleeFANATICUnsafe)
- Behaviors=(BehaviorName=MoveRandomUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=RestrictToUnflanked, Child[3]=FindRestrictedDestination-MWP_RandomNoCover, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveRandom, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveRandomUnsafe)
- Behaviors=(BehaviorName=MoveRandomCover, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindDestination-MWP_RandomCover, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindDestination-MWP_RandomCover, NodeType=Action)
- Behaviors=(BehaviorName=MoveStandardWithDestination, NodeType=Selector, Child[0]=MoveStandardWithDestinationUnsafe, Child[1]=DeleteTopAlertAndHeatSeek)
- Behaviors=(BehaviorName=MoveStandardWithDestinationUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=HasValidAlertDataLocation, Child[2]=FindAlertDataMovementDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=DeleteTopAlertAndHeatSeek, NodeType=Sequence, Child[0]=SSDeleteAlertDataIfValid, Child[1]=SelectHeatSeekMove)
- Behaviors=(BehaviorName=SSDeleteAlertDataIfValid, NodeType=Successor, Child[0]=DeleteAlertDataIfValid)
- Behaviors=(BehaviorName=DeleteAlertDataIfValid, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=HasValidAlertDataLocation, Child[2]=DeleteCurrentAlertData)
- Behaviors=(BehaviorName=HeatSeekNearestUnconcealed, NodeType=Action)
- Behaviors=(BehaviorName=SelectHeatSeekMove, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=UseDashMovement, Child[2]=HeatSeekNearestUnconcealed, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardHeight, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveStandardHeightUnsafe)
- Behaviors=(BehaviorName=MoveStandardHeightUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindDestination-MWP_StandardHeight, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardHeightIfFirstAbility, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveStandardHeight)
- Behaviors=(BehaviorName=MoveStandardHeightWithLoS, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveStandardHeightWithLoSUnsafe)
- Behaviors=(BehaviorName=MoveStandardHeightWithLoSUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindDestinationWithLoS-MWP_StandardHeight, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardHeightWithLoSIfFirstAbility, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveStandardHeightWithLoS)
- Behaviors=(BehaviorName=MoveStandardHeightWithLoSIfFirstAbilityUnsafe, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveStandardHeightWithLoSUnsafe)
- Behaviors=(BehaviorName=MoveAdvanceToCoverHeightLoSUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindDestinationWithLoS-MWP_AdvanceCoverHeight, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_AdvanceCoverHeight, NodeType=Action)
- Behaviors=(BehaviorName=MoveAdvanceToCoverHeight, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveAdvanceToCoverHeightUnsafe)
- Behaviors=(BehaviorName=MoveAdvanceToCoverHeightUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindDestination-MWP_AdvanceCoverHeight, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindDestination-MWP_AdvanceCoverHeight, NodeType=Action)
- Behaviors=(BehaviorName=FallbackHeight, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=FallbackHeightUnsafe)
- Behaviors=(BehaviorName=FallbackHeightUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=FindBestFallbackHeightDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindBestFallbackHeightDestination, NodeType=Selector, Child[0]=FindDestination-MWP_DefensiveHeight, Child[1]=FindDestination-MWP_FallbackHeight)
- Behaviors=(BehaviorName=FindDestination-MWP_DefensiveHeight, NodeType=Action)
- Behaviors=(BehaviorName=FindDestination-MWP_FallbackHeight, NodeType=Action)
- Behaviors=(BehaviorName=SetAlertDataStack, NodeType=Action)
- Behaviors=(BehaviorName=SetNextAlertData, NodeType=Action)
- Behaviors=(BehaviorName=DeleteCurrentAlertData, NodeType=Action)
- Behaviors=(BehaviorName=UpdateBestAlertData, NodeType=Action)
- Behaviors=(BehaviorName=AlertDataMovementUseCover, NodeType=Action)
- Behaviors=(BehaviorName=AlertDataMovementIgnoreCover, NodeType=Action)
- Behaviors=(BehaviorName=FindAlertDataMovementDestination, NodeType=Action)
- Behaviors=(BehaviorName=DisableGreenAlertMovement, NodeType=Action) ; Disables Green Alert movement when we want to force a unit to move to an Alert Data destination.
- Behaviors=(BehaviorName=AlertDataIsAbsoluteKnowledge, NodeType=Condition)
- Behaviors=(BehaviorName=AlertDataWasSoundMade, NodeType=Condition)
- Behaviors=(BehaviorName=AlertDataWasEnemyThere, NodeType=Condition)
- Behaviors=(BehaviorName=AlertDataIsCorpseThere, NodeType=Condition)
- Behaviors=(BehaviorName=AlertDataIsAggressive, NodeType=Condition)
- Behaviors=(BehaviorName=AlertDataTileIsVisible, NodeType=Condition)
- Behaviors=(BehaviorName=AlertDataTileNotVisible, NodeType=Inverter, Child[0]=AlertDataTileIsVisible)
- Behaviors=(BehaviorName=AlertDataHasTag-Defend, NodeType=Condition)
- Behaviors=(BehaviorName=AlertDataHasTag-Advance, NodeType=Condition)
- Behaviors=(BehaviorName=AlertDataHasTag-Rendezvous, NodeType=Condition)
- Behaviors=(BehaviorName=AlertDataHasTag-StrikePointOne, NodeType=Condition)
- Behaviors=(BehaviorName=AlertDataHasTag-StrikePointTwo, NodeType=Condition)
- Behaviors=(BehaviorName=AlertDataHasTag-StrikePointThree, NodeType=Condition)
- Behaviors=(BehaviorName=AlertDataIsType-SeesSpottedUnit, NodeType=Condition) ; red alert trigger
- Behaviors=(BehaviorName=AlertDataIsType-ThrottlingBeacon, NodeType=Condition) ; group-specific trigger to influence activity-balancing from the FightManager.
- Behaviors=(BehaviorName=AlertDataIsType-MapwideAlert, NodeType=Condition) ; Red alert trigger, kicked off by Kismet, with lower priority than visible enemies.
- Behaviors=(BehaviorName=AlertDataIsType-TookDamage, NodeType=Condition) ; Conditional red alert trigger (with LOS to damage instigator)
- Behaviors=(BehaviorName=AlertDataIsType-TakingFire, NodeType=Condition) ; Conditional red alert trigger (with LOS to shot instigator and within sound range)
- Behaviors=(BehaviorName=AlertDataIsType-DetectedNewCorpse, NodeType=Condition) ; Yellow alert ...
- Behaviors=(BehaviorName=AlertDataIsType-DetectedAllyTakingDamage, NodeType=Condition) ; Yellow alert ...
- Behaviors=(BehaviorName=AlertDataIsType-DetectedSound, NodeType=Condition) ; Yellow alert ...
- Behaviors=(BehaviorName=AlertDataIsType-AlertedByYell, NodeType=Condition) ;
- Behaviors=(BehaviorName=AlertDataIsType-AlertedByCommLink, NodeType=Condition) ;
- Behaviors=(BehaviorName=AlertDataIsType-CivilianRaisedAlarm, NodeType=Condition) ;
- Behaviors=(BehaviorName=AlertDataIsType-XCOMAchievedObjective, NodeType=Condition) ;
- Behaviors=(BehaviorName=AlertDataIsType-SeesExplosion, NodeType=Condition) ;
- Behaviors=(BehaviorName=AlertDataIsType-SeesSmoke, NodeType=Condition) ;
- Behaviors=(BehaviorName=AlertDataIsType-SeesFire, NodeType=Condition) ;
- Behaviors=(BehaviorName=AlertDataIsType-SeesAlertedAllies, NodeType=Condition) ;
- Behaviors=(BehaviorName=AlertDataWasSoundScary, NodeType=StatCondition, Param[0]=AlertDataRadius, Param[1]=">=", Param[2]="10")
- Behaviors=(BehaviorName=IsAlertDataKismet, NodeType=Selector, Child[0]=AlertDataHasTag-Defend, Child[1]=AlertDataHasTag-Advance)
- Behaviors=(BehaviorName=IsAlertDataNotKismet, NodeType=Inverter, Child[0]=IsAlertDataKismet)
- Behaviors=(BehaviorName=IsAlertDataScary, NodeType=Selector, Child[0]=AlertDataIsType-TakingFire, Child[1]=AlertDataIsType-DetectedAllyTakingDamage, Child[2]=AlertDataIsType-SeesExplosion, Child[3]=AlertDataIsType-SeesAlertedAllies)
- Behaviors=(BehaviorName=IsAlertDataNOTScary, NodeType=Inverter, Child[0]=IsAlertDataScary)
- Behaviors=(BehaviorName=IfAlertDataIsScary, NodeType=Selector, Child[0]=ScoreIfAlertDataScary, Child[1]=AddToAlertDataScore_0)
- Behaviors=(BehaviorName=ScoreIfAlertDataScary, NodeType=Sequence, Child[0]=IsAlertDataScary, Child[1]=AddToAlertDataScore_50)
- Behaviors=(BehaviorName=PurgeAlertDataIfNotScary, NodeType=Sequence, Child[0]=IsAlertDataNOTScary, Child[1]=DeleteCurrentAlertData)
- Behaviors=(BehaviorName=HasValidAlertDataLocation, NodeType=Condition)
- Behaviors=(BehaviorName=IterateAlertDataForVisibility, NodeType=RepeatUntilFail, Child[0]=CheckVisibilityOnAlert)
- Behaviors=(BehaviorName=CheckVisibilityOnAlert, NodeType=Sequence, Child[0]=SetNextAlertData, Child[1]=SSScoreAlertDataVisibility, Child[2]=UpdateBestAlertData, Child[3]=EarlyExitIfFoundValidAlert)
- Behaviors=(BehaviorName=SSScoreAlertDataVisibility, NodeType=Successor, Child[0]=ScoreAlertDataVisibility)
- Behaviors=(BehaviorName=ScoreAlertDataVisibility, NodeType=Sequence, Child[0]=AlertDataTileIsVisible, Child[1]=AddToAlertDataScore_100)
- Behaviors=(BehaviorName=EarlyExitIfFoundValidAlert, NodeType=Inverter, Child[0]=HasValidAlertDataLocation) ; return false if we have a alert data score > 0.
- Behaviors=(BehaviorName=GenericAlertHandler, NodeType=Selector, Child[0]=GenericOrangeMovement, Child[1]=GenericYellowMovement, Child[2]=SelectHeatSeekMove)
- Behaviors=(BehaviorName=GenericOrangeMovement, NodeType=Sequence, Child[0]=IsOrangeAlert, Child[1]=TrySelectOrangeAlertAction)
- Behaviors=(BehaviorName=GenericYellowMovement, NodeType=Sequence, Child[0]=IsYellowAlert, Child[1]=TrySelectYellowAlertAction)
- Behaviors=(BehaviorName=NoEnemySpotted, NodeType=Inverter, Child[0]=AlertDataIsAbsoluteKnowledge)
- Behaviors=(BehaviorName=IsEnemySpotted, NodeType=Selector, Child[0]=IsRedAlert, Child[1]=IsOrangeAlert)
- Behaviors=(BehaviorName=TrySelectOrangeAlertAction, NodeType=Sequence, Child[0]=SelectAlertData, Child[1]=HandleAlertData)
- Behaviors=(BehaviorName=SelectAlertData, NodeType=Sequence, Child[0]=SetAlertDataStack, Child[1]=GenericSelectBestAlert, Child[2]=HasValidAlertDataLocation)
- Behaviors=(BehaviorName=HandleAlertData, NodeType=Selector, Child[0]=TryAttackPriorityTarget, Child[1]=MoveToAlertData)
- Behaviors=(BehaviorName=MoveToAlertData, NodeType=Sequence, Child[0]=SetAlertDataStack, Child[1]=GenericSelectBestAlert, Child[2]=HasValidAlertDataLocation, Child[3]=AlertDataMovementUseCover, Child[4]=MoveStandardWithDestination)
- Behaviors=(BehaviorName=TrySelectYellowAlertAction, NodeType=Selector, Child[0]=TryAttackPriorityTarget, Child[1]=YellowAlertMove)
- Behaviors=(BehaviorName=YellowAlertMove, NodeType=Sequence, Child[0]=SetAlertDataStack, Child[1]=GenericSelectBestAlert, Child[2]=HasValidAlertDataLocation, Child[3]=MoveStandardWithDestination)
- Behaviors=(BehaviorName=HuntEnemy, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=SetAlertDataStack, Child[2]=GenericSelectBestAlert, Child[3]=HasValidAlertDataLocation, Child[4]=MoveStandardWithDestination)
- Behaviors=(BehaviorName=HuntEnemyWithCover, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=SetAlertDataStack, Child[2]=GenericSelectBestAlert, Child[3]=HasValidAlertDataLocation, Child[4]=AlertDataMovementUseCover, Child[5]=MoveStandardWithDestination)
- Behaviors=(BehaviorName=HuntEnemyUnsafe, NodeType=Sequence, Child[0]=SetAlertDataStack, Child[1]=GenericSelectBestAlert, Child[2]=HasValidAlertDataLocation, Child[3]=MoveStandardWithDestinationUnsafe)
- Behaviors=(BehaviorName=MoveToAlertIfNotVisible, NodeType=Sequence, Child[0]=HasValidAlertDataLocation, Child[1]=AlertDataTileNotVisible, Child[2]=AlertDataMovementUseCover, Child[3]=MoveStandardWithDestination)
- Behaviors=(BehaviorName=MoveToAlert, NodeType=Selector, Child[0]=TryAlertMoveWithCover, Child[1]=TakeAlertMoveWithoutCover)
- Behaviors=(BehaviorName=TryAlertMoveWithCover, NodeType=Sequence, Child[0]=AlertDataMovementUseCover, Child[1]=MoveStandardWithDestination)
- Behaviors=(BehaviorName=TakeAlertMoveWithoutCover, NodeType=Sequence, Child[0]=AlertDataMovementIgnoreCover, Child[1]=MoveStandardWithDestination)
- Behaviors=(BehaviorName=MoveToAlertUnsafe, NodeType=Selector, Child[0]=TryAlertMoveWithCoverUnsafe, Child[1]=TakeAlertMoveWithoutCoverUnsafe)
- Behaviors=(BehaviorName=TryAlertMoveWithCoverUnsafe, NodeType=Sequence, Child[0]=AlertDataMovementUseCover, Child[1]=MoveStandardWithDestinationUnsafe)
- Behaviors=(BehaviorName=TakeAlertMoveWithoutCoverUnsafe, NodeType=Sequence, Child[0]=AlertDataMovementIgnoreCover, Child[1]=MoveStandardWithDestinationUnsafe)
- Behaviors=(BehaviorName=GenericSelectBestAlert, NodeType=RepeatUntilFail, Child[0]=GenericEvaluateAlertData)
- Behaviors=(BehaviorName=GenericEvaluateAlertData, NodeType=Sequence, Child[0]=SetNextAlertData, Child[1]=GenericScoreAlertData, Child[2]=UpdateBestAlertData)
- Behaviors=(BehaviorName=GenericScoreAlertData, NodeType=Sequence, Child[0]=SSScoreInvalidAlertData, Child[1]=IfAlertIsSpottedTarget, Child[2]=IfAlertDataIsScary, Child[3]=IfAlertIsSpottedCorpse, Child[4]=IfAlertIsHeardNoise, Child[5]=IfAlertIsDangerous, Child[6]=ScoreAlertDataAge, Child[7]=ScoreAlertDataDistance)
- Behaviors=(BehaviorName=IfAlertIsSpottedTarget, NodeType=Selector, Child[0]=ScoreAlert_AbsoluteKnowledge, Child[1]=ScoreAlert_FormerKnowledge, Child[2]=AddToAlertDataScore_0)
- Behaviors=(BehaviorName=ScoreAlert_AbsoluteKnowledge, NodeType=Sequence, Child[0]=AlertDataIsAbsoluteKnowledge, Child[1]=AddToAlertDataScore_100)
- Behaviors=(BehaviorName=ScoreAlert_FormerKnowledge, NodeType=Sequence, Child[0]=AlertDataWasEnemyThere, Child[1]=AddToAlertDataScore_50)
- Behaviors=(BehaviorName=IfAlertIsSpottedCorpse, NodeType=Selector, Child[0]=ScoreAlert_SpottedCorpse, Child[1]=AddToAlertDataScore_0)
- Behaviors=(BehaviorName=ScoreAlert_SpottedCorpse, NodeType=Sequence, Child[0]=AlertDataIsCorpseThere, Child[1]=AddToAlertDataScore_30)
- Behaviors=(BehaviorName=IfAlertIsHeardNoise, NodeType=Selector, Child[0]=ScoreAlert_HeardNoise, Child[1]=AddToAlertDataScore_0)
- Behaviors=(BehaviorName=ScoreAlert_HeardNoise, NodeType=Sequence, Child[0]=AlertDataWasSoundMade, Child[1]=AddToAlertDataScore_15, Child[2]=IfAlertNoiseIsScary)
- Behaviors=(BehaviorName=IfAlertNoiseIsScary, NodeType=Selector, Child[0]=ScoreAlert_NoiseScary, Child[1]=AddToAlertDataScore_0)
- Behaviors=(BehaviorName=ScoreAlert_NoiseScary, NodeType=Sequence, Child[0]=AlertDataWasSoundScary, Child[1]=AddToAlertDataScore_10)
- Behaviors=(BehaviorName=IfAlertIsDangerous, NodeType=Selector, Child[0]=ScoreAlert_Dangerous, Child[1]=AddToAlertDataScore_0)
- Behaviors=(BehaviorName=ScoreAlert_Dangerous, NodeType=Sequence, Child[0]=AlertDataIsAggressive, Child[1]=AddToAlertDataScore_25)
- Behaviors=(BehaviorName=ScoreAlertDataAge, NodeType=Selector, Child[0]=IsAlertDataKismet, Child[1]=IfAlertDataOld, Child[2]=IfAlertDataStale, Child[3]=IfAlertDataRecent, Child[4]=IfAlertDataFresh, Child[5]=AddToAlertDataScore_0)
- Behaviors=(BehaviorName=IfAlertDataFresh, NodeType=Sequence, Child[0]=IsAlertDataFresh, Child[1]=AddToAlertDataScore_-5)
- Behaviors=(BehaviorName=IsAlertDataFresh, NodeType=StatCondition, Param[0]=AlertDataAge, Param[1]=">=", Param[2]="1")
- Behaviors=(BehaviorName=IfAlertDataRecent, NodeType=Sequence, Child[0]=IsAlertDataRecent, Child[1]=AddToAlertDataScore_-10)
- Behaviors=(BehaviorName=IsAlertDataRecent, NodeType=StatCondition, Param[0]=AlertDataAge, Param[1]=">=", Param[2]="2")
- Behaviors=(BehaviorName=IfAlertDataStale, NodeType=Sequence, Child[0]=IsAlertDataStale, Child[1]=PurgeAlertDataIfNotScary, Child[2]=AddToAlertDataScore_-15)
- Behaviors=(BehaviorName=IsAlertDataStale, NodeType=StatCondition, Param[0]=AlertDataAge, Param[1]=">=", Param[2]="4")
- Behaviors=(BehaviorName=IfAlertDataOld, NodeType=Sequence, Child[0]=IsAlertDataOld, Child[1]=DeleteCurrentAlertData, Child[2]=AddToAlertDataScore_-100)
- Behaviors=(BehaviorName=IsAlertDataOld, NodeType=StatCondition, Param[0]=AlertDataAge, Param[1]=">=", Param[2]="6")
- Behaviors=(BehaviorName=SSScoreInvalidAlertData, NodeType=Successor, Child[0]=ScoreInvalidAlertData)
- Behaviors=(BehaviorName=ScoreInvalidAlertData, NodeType=Sequence, Child[0]=IsAlertNotValidTarget, Child[1]=AddToAlertDataScore_-500)
- Behaviors=(BehaviorName=IsAlertNotValidTarget, NodeType=Selector, Child[0]=IsAlertNotValidTarget_UnitIsNotAttackable, Child[1]=IsAlertNotValidTarget_LastResortUnit)
- Behaviors=(BehaviorName=IsAlertNotValidTarget_UnitIsNotAttackable, NodeType=Sequence, Child[0]=TargetIsNotAttackable, Child[1]=DeleteCurrentAlertData)
- Behaviors=(BehaviorName=IsAlertNotValidTarget_LastResortUnit, NodeType=Sequence, Child[0]=HasNonLastResortEnemies, Child[1]=IsLastResortTarget)
- Behaviors=(BehaviorName=ScoreAlertDataDistance, NodeType=Selector, Child[0]=IfAlertDataFar, Child[1]=IfAlertDataThreeMoves, Child[2]=IfAlertDataTwoMoves, Child[3]=AddToAlertDataScore_20)
- Behaviors=(BehaviorName=IfAlertDataTwoMoves, NodeType=Sequence, Child[0]=IsAlertDataTwoMoves, Child[1]=AddToAlertDataScore_15)
- Behaviors=(BehaviorName=IsAlertDataTwoMoves, NodeType=StatCondition, Param[0]=AlertDataDistance, Param[1]=">", Param[2]="12")
- Behaviors=(BehaviorName=IfAlertDataThreeMoves, NodeType=Sequence, Child[0]=IsAlertDataThreeMoves, Child[1]=AddToAlertDataScore_10)
- Behaviors=(BehaviorName=IsAlertDataThreeMoves, NodeType=StatCondition, Param[0]=AlertDataDistance, Param[1]=">", Param[2]="24")
- Behaviors=(BehaviorName=IfAlertDataFar, NodeType=Sequence, Child[0]=IsAlertDataFar, Child[1]=AddToAlertDataScore_5)
- Behaviors=(BehaviorName=IsAlertDataFar, NodeType=StatCondition, Param[0]=AlertDataDistance, Param[1]=">", Param[2]="36")
- Behaviors=(BehaviorName=AlertScoreRandom, NodeType=RandSelector, Child[0]=AddToAlertDataScore_10, Child[1]=AddToAlertDataScore_20, Child[2]=AddToAlertDataScore_30, Child[3]=AddToAlertDataScore_40, Child[4]=AddToAlertDataScore_50, Child[5]=AddToAlertDataScore_60 )
- Behaviors=(BehaviorName=ScoreAlertFor_Defend, NodeType=Selector, Child[0]=ScoreAlertIfDefend, Child[1]=AddToAlertDataScore_0)
- Behaviors=(BehaviorName=ScoreAlertIfDefend, NodeType=Sequence, Child[0]=AlertDataHasTag-Defend, Child[1]=AddToAlertDataScore_50)
- Behaviors=(BehaviorName=ScoreAlertFor_Advance, NodeType=Selector, Child[0]=ScoreAlertIfAdvance, Child[1]=AddToAlertDataScore_0)
- Behaviors=(BehaviorName=ScoreAlertIfAdvance, NodeType=Sequence, Child[0]=AlertDataHasTag-Advance, Child[1]=AddToAlertDataScore_50)
- Behaviors=(BehaviorName=SetNextTarget, NodeType=Action)
- Behaviors=(BehaviorName=HasUnconcealedEnemies, NodeType=Condition)
- Behaviors=(BehaviorName=UpdateBestTarget, NodeType=Action)
- Behaviors=(BehaviorName=TargetHasHighestShotHitChance, NodeType=Condition)
- Behaviors=(BehaviorName=GenericSelectBestTarget, NodeType=RepeatUntilFail, Child[0]=GenericEvaluateTarget)
- Behaviors=(BehaviorName=GenericEvaluateTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=GenericTargetEvaluations, Child[2]=UpdateBestTarget);
- Behaviors=(BehaviorName=GenericTargetEvaluations, NodeType=Sequence, Child[0]=TargetScoreHitChance, Child[1]=TargetScoreHealth, Child[2]=TargetScoreFlanking, Child[3]=TargetScoreMarked, Child[4]=ApplyDifficultyModifiers, Child[5]=TargetScoreCivilian, Child[6]=AvoidBoundAndPanickedTargets)
- Behaviors=(BehaviorName=SelectPriorityTarget, NodeType=RepeatUntilFail, Child[0]=EvaluatePriorityTarget)
- Behaviors=(BehaviorName=EvaluatePriorityTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=ScoreIfTarget_HighestShotHitChance, Child[2]=TargetScorePriority, Child[3]=TargetScoreCivilian, Child[4]=UpdateBestTarget)
- Behaviors=(BehaviorName=SelectTarget_Favorable, NodeType=RepeatUntilFail, Child[0]=EvaluateTargetFavorable)
- Behaviors=(BehaviorName=EvaluateTargetFavorable, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreHitChanceFavorable, Child[2]=TargetScoreHealth, Child[3]=ApplyDifficultyModifiers, Child[4]=TargetScoreCivilian, Child[5]=UpdateBestTarget)
- Behaviors=(BehaviorName=SelectTarget_FavorableNonCivilianOrVIP, NodeType=RepeatUntilFail, Child[0]=EvaluateTargetFavorableNonCivilianOrVIP)
- Behaviors=(BehaviorName=EvaluateTargetFavorableNonCivilianOrVIP, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreHitChanceFavorable, Child[2]=TargetScoreHealth, Child[3]=ApplyDifficultyModifiers, Child[4]=SSScoreTargetOutIfCivilian, Child[5]=SSScoreTargetOutIfEnemyVIP, Child[6]="TargetScoreByScaledDistance-1+10", Child[7]=AvoidBoundAndPanickedTargets, Child[8]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreTargetOutIfCivilian, NodeType=Successor, Child[0]=ScoreTargetOutIfCivilian)
- Behaviors=(BehaviorName=SSScoreTargetOutIfEnemyVIP, NodeType=Successor, Child[0]=ScoreTargetOutIfEnemyVIP)
- Behaviors=(BehaviorName=ScoreTargetOutIfEnemyVIP, NodeType=Sequence, Child[0]=TargetIsEnemyVIP, Child[1]=AddToTargetScore_-1000)
- Behaviors=(BehaviorName=SelectTarget_FavorableNonLostCivilianOrVIP, NodeType=RepeatUntilFail, Child[0]=EvaluateTargetFavorableNonLostCivilianOrVIP)
- Behaviors=(BehaviorName=EvaluateTargetFavorableNonLostCivilianOrVIP, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreHitChanceFavorable, Child[2]=TargetScoreHealth, Child[3]=ApplyDifficultyModifiers, Child[4]=SSScoreTargetOutIfCivilian, Child[5]=SSScoreTargetOutIfEnemyVIP, Child[6]=SSScoreTargetOutIfLost, Child[7]="TargetScoreByScaledDistance-1+10", Child[8]=AvoidBoundAndPanickedTargets, Child[9]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreTargetOutIfLost, NodeType=Successor, Child[0]=ScoreTargetOutIfLost)
- Behaviors=(BehaviorName=ScoreTargetOutIfLost, NodeType=Sequence, Child[0]=IsTargetTeam-eTeam_TheLost, Child[1]=AddToTargetScore_-1000)
- Behaviors=(BehaviorName=SelectTarget_Opportunist, NodeType=RepeatUntilFail, Child[0]=EvaluateTargetOPPORTUNIST)
- Behaviors=(BehaviorName=EvaluateTargetOPPORTUNIST, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreHitChanceOPPORTUNIST, Child[2]=TargetScoreHealth, Child[3]=TargetScoreFlanking, Child[4]=ApplyDifficultyModifiers, Child[5]=TargetScoreCivilian, Child[6]=UpdateBestTarget)
- Behaviors=(BehaviorName=GenericSelectTargetSomewhatRandomly, NodeType=RepeatUntilFail, Child[0]=EvaluateTargetSomewhatRandomly)
- Behaviors=(BehaviorName=EvaluateTargetSomewhatRandomly, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=GenericScoreTargetRandomly, Child[2]=TargetScoreMarked, Child[3]=ApplyDifficultyModifiers, Child[4]=UpdateBestTarget)
- Behaviors=(BehaviorName=GenericSelectTargetRandomly, NodeType=RepeatUntilFail, Child[0]=EvaluateTargetRandomly)
- Behaviors=(BehaviorName=EvaluateTargetRandomly, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=GenericScoreTargetRandomly, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=GenericScoreTargetRandomly, NodeType=Successor, Child[0]=GenericScoreTargetRandomlySequence )
- Behaviors=(BehaviorName=GenericScoreTargetRandomlySequence, NodeType=RandSelector, Child[0]=AddToTargetScore_1, Child[1]=AddToTargetScore_10, Child[2]=AddToTargetScore_20, Child[3]=AddToTargetScore_30, Child[4]=AddToTargetScore_40, Child[5]=AddToTargetScore_50 )
- Behaviors=(BehaviorName=SelectAnyTargetRandomly_PreferEnemies, NodeType=RepeatUntilFail, Child[0]=EvaluateTargetRandomly_PreferEnemies)
- Behaviors=(BehaviorName=EvaluateTargetRandomly_PreferEnemies, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=GenericScoreTargetRandomly, Child[2]=TargetScorePreferEnemies, Child[3]=TargetScoreFlanking, Child[4]=UpdateBestTarget)
- Behaviors=(BehaviorName=TargetScorePreferEnemies, NodeType=Selector, Child[0]=ScoreIfEnemy, Child[1]=AddToTargetScore_0)
- Behaviors=(BehaviorName=ScoreIfEnemy, NodeType=Sequence, Child[0]=TargetIsEnemy, Child[1]=AddToTargetScore_10)
- Behaviors=(BehaviorName=NoTargetsAvailable, NodeType=Inverter, Child[0]=HaveAnyTargets)
- Behaviors=(BehaviorName=HaveAnyTargets, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=FindAnyTarget, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=FindAnyTarget, NodeType=RepeatUntilFail, Child[0]=SimpleEvaluateTarget)
- Behaviors=(BehaviorName=SimpleEvaluateTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScorePreferEnemies, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=IsTargetValidBasedOnLastResortEffects, NodeType=Condition)
- Behaviors=(BehaviorName=HasNonLastResortEnemies, NodeType=Condition)
- Behaviors=(BehaviorName=IsTargetLastResortWithOtherOptionsAvailable, NodeType=Sequence, Child[0]=IsLastResortTarget, Child[1]=HasNonLastResortEnemies)
- Behaviors=(BehaviorName=IsLastResortTarget, NodeType=Condition)
- Behaviors=(BehaviorName=SelectBestSuppressionTarget, NodeType=RepeatUntilFail, Child[0]=EvaluateSuppressionTarget)
- Behaviors=(BehaviorName=EvaluateSuppressionTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreUnsuppressedByClosestDistance, Child[2]=TargetScoreInvalidateCivilians, Child[3]=UpdateBestTarget)
- Behaviors=(BehaviorName=SelectClosestPotentialSuppressionTarget, NodeType=Sequence, Child[0]=SetPotentialTargetStack, Child[1]=SelectClosestUnsuppressedTarget, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SelectClosestUnsuppressedTarget, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialSuppressionTarget)
- Behaviors=(BehaviorName=EvaluatePotentialSuppressionTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreUnsuppressedByClosestDistance, Child[2]=AvoidBoundAndPanickedTargets, Child[3]=TargetScoreInvalidateCivilians, Child[4]=UpdateBestTarget)
- Behaviors=(BehaviorName=TargetScoreUnsuppressedByClosestDistance, NodeType=Successor, Child[0]=ScoreUnsuppressedByClosestDistance)
- Behaviors=(BehaviorName=ScoreUnsuppressedByClosestDistance, NodeType=Sequence, Child[0]=TargetIsNotSuppressed, Child[1]=TargetIsEnemy, Child[2]=TargetScoreByScaledDistance-1, Child[3]=AvoidBoundAndPanickedTargets, Child[4]=AddToTargetScore_100)
- Behaviors=(BehaviorName=TargetIsNotSuppressed, NodeType=Inverter, Child[0]=TargetAffectedByEffect-Suppression)
- Behaviors=(BehaviorName=TargetScoreByScaledDistance-1, NodeType=Action, Param[0]="-1"); Distance in Meters, Negated to favor closer units.
- Behaviors=(BehaviorName="TargetScoreByScaledDistance-1+10", NodeType=Action, Param[0]="-1", Param[1]=10); Distance in Meters, Negated to favor closer units, + 10.
- Behaviors=(BehaviorName=ShootOrSuppressIfNoGoodShot, NodeType=Selector, Child[0]=ConsiderSuppression, Child[1]=TryShootOrReloadOrOverwatch)
- Behaviors=(BehaviorName=ConsiderSuppression, NodeType=Sequence, Child[0]=AllShotPercentagesBelow50, Child[1]=SuppressIfAvailable)
- Behaviors=(BehaviorName=PsiEvaluateTargetsGeneric, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScorePsiAttack, Child[2]=TargetScoreHighestSoldierRank, Child[3]=TargetScoreHealth_HighFirst, Child[4]=SometimesRandomizeTarget, Child[5]=ApplyDifficultyModifiers, Child[6]=AvoidBoundAndPanickedTargets, Child[7]=TargetScoreInvalidateCivilians, Child[8]=UpdateBestTarget)
- Behaviors=(BehaviorName=PsiEvaluateTargetsMindControl, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreMindControl, Child[2]=TargetScoreHighestSoldierRank, Child[3]=TargetScoreHealth_HighFirst, Child[4]=TargetScoreInvalidateCivilians, Child[5]=AvoidBoundAndPanickedTargets, Child[6]=UpdateBestTarget)
- Behaviors=(BehaviorName=TargetScorePsiAttack, NodeType=Selector, Child[0]=ScoreIfConfused, Child[1]=ScoreIfPanicked, Child[2]=ScoreIfDisoriented, Child[3]=AddToTargetScore_0)
- Behaviors=(BehaviorName=ScoreIfConfused, NodeType=Sequence, Child[0]=TargetAffectedByEffect-Confused, Child[1]=AddToTargetScore_30)
- Behaviors=(BehaviorName=ScoreIfPanicked, NodeType=Sequence, Child[0]=TargetAffectedByEffect-Panicked, Child[1]=AddToTargetScore_20)
- Behaviors=(BehaviorName=ScoreIfDisoriented, NodeType=Sequence, Child[0]=TargetAffectedByEffect-Disoriented, Child[1]=AddToTargetScore_10)
- Behaviors=(BehaviorName=TargetScoreMindControl, NodeType=Selector, Child[0]=ScoreIfTargetWillWeakened, Child[1]=AddToTargetScore_-10)
- Behaviors=(BehaviorName=ScoreIfTargetWillWeakened, NodeType=Sequence, Child[0]=TargetWillWeakened, Child[1]=AddToTargetScore_50)
- Behaviors=(BehaviorName=SometimesRandomizeTarget, NodeType=RandSelector, Child[0]=AddToTargetScore_0, Param[0]=1, Child[1]=AddToTargetScore_10, Param[1]=2, Child[2]=AddToTargetScore_20, Param[2]=6, Child[3]=AddToTargetScore_30, Param[3]=2, Child[4]=AddToTargetScore_40, Param[4]=1 )
- Behaviors=(BehaviorName=TargetScoreByHitChanceValue-1, NodeType=Action, Param[0]=1, Param[1]=StandardShot )
- Behaviors=(BehaviorName=TargetScoreHitChance, NodeType=Selector, Child[0]=TargetScoreHitChanceUnlikely, Child[1]=TargetScoreHitChanceProbable, Child[2]=AddToTargetScore_40)
- Behaviors=(BehaviorName=TargetScoreHitChanceUnlikely, NodeType=Sequence, Child[0]=TargetHitChanceLow, Child[1]=AddToTargetScore_10) ; 30 points under mid rank shot
- Behaviors=(BehaviorName=TargetScoreHitChanceProbable, NodeType=Sequence, Child[0]=TargetHitChanceHigh, Child[1]=AddToTargetScore_70) ; 30 points over mid rank shot
- Behaviors=(BehaviorName=TargetScoreHitChanceOPPORTUNIST, NodeType=Selector, Child[0]=TargetScoreHitChanceUnlikelyOPPORTUNIST, Child[1]=TargetScoreHitChanceProbableOPPORTUNIST, Child[2]=AddToTargetScore_-20)
- Behaviors=(BehaviorName=TargetScoreHitChanceUnlikelyOPPORTUNIST, NodeType=Sequence, Child[0]=TargetHitChanceLow, Child[1]=AddToTargetScore_-100)
- Behaviors=(BehaviorName=TargetScoreHitChanceProbableOPPORTUNIST, NodeType=Sequence, Child[0]=TargetHitChanceHigh, Child[1]=AddToTargetScore_0) ; valid shot if any other paramater is positive.
- Behaviors=(BehaviorName=TargetScoreHitChanceFavorable, NodeType=Selector, Child[0]=TargetScoreHitChanceUnlikelyFavorable, Child[1]=TargetScoreHitChanceProbableFavorable, Child[2]=AddToTargetScore_40)
- Behaviors=(BehaviorName=TargetScoreHitChanceUnlikelyFavorable, NodeType=Sequence, Child[0]=TargetHitChanceLow, Child[1]=AddToTargetScore_-10) ; 50 points under mid rank shot, negative
- Behaviors=(BehaviorName=TargetScoreHitChanceProbableFavorable, NodeType=Sequence, Child[0]=TargetHitChanceHigh, Child[1]=AddToTargetScore_70) ; 30 points over mid rank shot
- Behaviors=(BehaviorName=TargetScoreHealth, NodeType=Selector, Child[0]=ScoreIfKillShot, Child[1]=ScoreIfTargetLowHP, Child[2]=ScoreIfTargetWounded, Child[3]=AddToTargetScore_0)
- Behaviors=(BehaviorName=ScoreIfKillShot, NodeType=Sequence, Child[0]=TargetIsKillable, Child[1]=AddToTargetScore_15, ) ; bump a kill shot up to the next aim tier with a bonus`
- Behaviors=(BehaviorName=ScoreIfTargetLowHP, NodeType=Sequence, Child[0]=TargetHasLowHP, Child[1]=AddToTargetScore_10) ; low hp but not kill shot is valued target, but not more than much better hit chance
- Behaviors=(BehaviorName=ScoreIfTargetWounded, NodeType=Sequence, Child[0]=TargetWounded, Child[1]=AddToTargetScore_5) ; in case of aim quality tie, shoot wounded target
- Behaviors=(BehaviorName=ApplyDifficultyModifiers, NodeType=Successor, Child[0]=CompositedTargetModifiers)
- Behaviors=(BehaviorName=CompositedTargetModifiers, NodeType=Sequence, Child[0]=SSTeamSpecificModifiers, Child[1]=ApplyDifficultyModifiersBase)
- Behaviors=(BehaviorName=SSTeamSpecificModifiers, NodeType=Successor, Child[0]=TeamSpecificModifiers)
- Behaviors=(BehaviorName=TeamSpecificModifiers, NodeType=Selector, Child[0]=XComSpecificModifiers, Child[1]=AISpecificModifiers, Child[2]=OtherTeamModifiers)
- Behaviors=(BehaviorName=XComSpecificModifiers, NodeType=Sequence, Child[0]=IsTeam-eTeam_XCom, Child[1]=TargetScoreMindControlledAlly, Child[2]=PrioritizeEnemyByTemplateNames)
- Behaviors=(BehaviorName=OtherTeamModifiers, NodeType=Sequence, Child[0]=NotTeamXCom, Child[1]=NotTeamAlien, Child[2]=AdjustScoreForOtherTeamPriorities)
- Behaviors=(BehaviorName=AdjustScoreForOtherTeamPriorities, NodeType=Sequence, Child[0]=TargetIsChosen, Child[1]=TargetIsNotEngagedChosen, Child[2]=AddToTargetScore_-1000)
- Behaviors=(BehaviorName=AISpecificModifiers, NodeType=Sequence, Child[0]=IsTeam-eTeam_Alien, Child[1]=IsTargetTeam-eTeam_TheLost, Child[2]=AdjustScoreForLostPriority)
- Behaviors=(BehaviorName=PrioritizeEnemyByTemplateNames, NodeType=Selector, Child[0]=ScorePriorityEnemies, Child[1]=AddToTargetScore_0)
- Behaviors=(BehaviorName=ScorePriorityEnemies, NodeType=Selector, Child[0]=ScoreSectoidPriority, Child[1]=ScoreMutonPriority, Child[2]=ScoreStunLancerPriority)
- Behaviors=(BehaviorName=ScoreSectoidPriority, NodeType=Sequence, Child[0]=TargetTemplateNameIs-Sectoid, Child[1]=AddToTargetScore_50)
- Behaviors=(BehaviorName=ScoreMutonPriority, NodeType=Sequence, Child[0]=TargetTemplateNameIs-Muton, Child[1]=AddToTargetScore_35)
- Behaviors=(BehaviorName=ScoreStunLancerPriority, NodeType=Sequence, Child[0]=IsTargetStunLancer, Child[1]=AddToTargetScore_20)
- Behaviors=(BehaviorName=ApplyDifficultyModifiersBase, NodeType=Sequence, Child[0]=IsDifficultyLow, Child[1]=AddToTargetScore_20, Child[2]="::DistributeAttacks")
- Behaviors=(BehaviorName=AvoidBoundAndPanickedTargets, NodeType=Selector, Child[0]=ScoreIfTargetBoundOrPanicked, Child[1]=AddToTargetScore_1)
- Behaviors=(BehaviorName=ScoreIfTargetBoundOrPanicked, NodeType=Sequence, Child[0]=IsTargetLastResortWithOtherOptionsAvailable, Child[1]=AddToTargetScore_-1000)
- Behaviors=(BehaviorName="::DistributeAttacks", NodeType=Selector, Child[0]=ScoreTargetIfMarked, Child[1]=AddToTargetScore_20);ScoreIfTargetHasBeenAttackedTwice, Child[2]=ScoreIfTargetHasBeenAttackedOnce, Child[3]=AddToTargetScore_30)
- Behaviors=(BehaviorName="Sectopod::DistributeAttacks", NodeType=Selector, Child[0]=ScoreIfTargetHasBeenAttackedTwice, Child[1]=ScoreIfTargetHasBeenAttackedOnce, Child[2]=AddToTargetScore_30)
- Behaviors=(BehaviorName=ScoreIfTargetHasBeenAttackedTwice, NodeType=Sequence, Child[0]=TargetHasBeenAttackedTwice, Child[1]=AddToTargetScore_0);
- Behaviors=(BehaviorName=ScoreIfTargetHasBeenAttackedOnce, NodeType=Sequence, Child[0]=TargetHasBeenAttackedOnce, Child[1]=AddToTargetScore_5);
- Behaviors=(BehaviorName=TargetScoreHealth_HighFirst, NodeType=Selector, Child[0]=PenalizeIfKillShot, Child[1]=ScoreIfTarget_MaxHP, Child[2]=ScoreIfTarget_HighHP, Child[3]=AddToTargetScore_5)
- Behaviors=(BehaviorName=PenalizeIfKillShot, NodeType=Sequence, Child[0]=TargetIsKillable, Child[1]=AddToTargetScore_0) ; If the attack would kill the target, deemphasize (but don't ignore)
- Behaviors=(BehaviorName=ScoreIfTarget_MaxHP, NodeType=Sequence, Child[0]=TargetHasMaxHP, Child[1]=AddToTargetScore_20) ; bump a max health target to the next aim tier with a bonus
- Behaviors=(BehaviorName=ScoreIfTarget_HighHP, NodeType=Sequence, Child[0]=TargetHasHighHP, Child[1]=AddToTargetScore_10) ; high hp is valued target, but not more than much better hit chance
- Behaviors=(BehaviorName=TargetScoreFlanking, NodeType=Selector, Child[0]=ScoreTargetIfFlanked, Child[1]=AddToTargetScore_0)
- Behaviors=(BehaviorName=ScoreTargetIfFlanked, NodeType=Sequence, Child[0]=IsFlankingTarget, Child[1]=TargetIsEnemy, Child[2]=AddToTargetScore_50)
- Behaviors=(BehaviorName=TargetScoreHighestSoldierRank, NodeType=Selector, Child[0]=ScoreIfTarget_HasHighestRank, Child[1]=AddToTargetScore_0)
- Behaviors=(BehaviorName=ScoreIfTarget_HasHighestRank, NodeType=Sequence, Child[0]=TargetHasHighestSoldierRank, Child[1]=AddToTargetScore_5) ; Just a tie breaker
- Behaviors=(BehaviorName=TargetHasHighestSoldierRank, NodeType=Condition)
- Behaviors=(BehaviorName=TargetScoreHighestShotHitChance, NodeType=Successor, Child[0]=ScoreIfTarget_HighestShotHitChance)
- Behaviors=(BehaviorName=ScoreIfTarget_HighestShotHitChance, NodeType=Sequence, Child[0]=TargetHasHighestShotHitChance, Child[1]=AddToTargetScore_10) ; tie breaker
- Behaviors=(BehaviorName=TargetScoreHighestShotHitChance_50, NodeType=Successor, Child[0]=ScoreIfTarget_HighestShotHitChance_50)
- Behaviors=(BehaviorName=ScoreIfTarget_HighestShotHitChance_50, NodeType=Sequence, Child[0]=TargetHasHighestShotHitChance, Child[1]=AddToTargetScore_50)
- Behaviors=(BehaviorName=TargetScoreMarked, NodeType=Selector, Child[0]=ScoreTargetIfMarked, Child[1]=AddToTargetScore_0)
- Behaviors=(BehaviorName=ScoreTargetIfMarked, NodeType=Sequence, Child[0]=TargetAffectedByEffect-MarkedTarget, Child[1]=AddToTargetScore_45) ; bump a marked target up to the next aim tier with a bonus, over even a killshot
- Behaviors=(BehaviorName=TargetScorePriority, NodeType=Selector, Child[0]=ScoreTargetIfPriority, Child[1]=AddToTargetScore_0) ; If I'm looking for a priority target, then if the target isn't priority, it should be very negative.
- Behaviors=(BehaviorName=ScoreTargetIfPriority, NodeType=Sequence, Child[0]=TargetIsPriorityUnit, Child[1]=AddToTargetScore_60) ; set a priority target for very high
- Behaviors=(BehaviorName=TargetScoreCivilian, NodeType=Successor, Child[0]=ScoreTargetIfCivilianByJob)
- Behaviors=(BehaviorName=TargetScoreInvalidateCivilians, NodeType=Selector, Child[0]=ScoreTargetOutIfCivilian, Child[1]=AddToTargetScore_0)
- Behaviors=(BehaviorName=TargetScoreFilterCiviliansForJob, NodeType=Selector, Child[0]=ScoreTargetIfCivilianByJob, Child[1]=ScoreTargetOutIfCivilian, Child[2]=AddToTargetScore_0)
- Behaviors=(BehaviorName=ScoreTargetOutIfCivilian, NodeType=Sequence, Child[0]=TargetIsCivilian, Child[1]=AddToTargetScore_-1000)
- Behaviors=(BehaviorName=ScoreTargetIfCivilianByJob, NodeType=Sequence, Child[0]=TargetIsCivilian, Child[1]=TargetNotTeamResistance, Child[2]=ScoreCivilianByJob)
- Behaviors=(BehaviorName=ScoreCivilianByJob, NodeType=Selector, Child[0]=ScoreCivilianIfExecutioner, Child[1]=ScoreCivilianIfLimitHit, Child[2]=ScoreCivilianIfActuallyFaceless, Child[3]=ScoreCivilianIfTerrorist)
- Behaviors=(BehaviorName=ScoreCivilianIfActuallyFaceless, NodeType=Sequence, Child[0]=TargetIsAlien, Child[1]=AddToTargetScore_-1000)
- Behaviors=(BehaviorName=ScoreCivilianIfTerrorist, NodeType=Sequence, Child[0]=IsMyJob-Terrorist, Child[1]=AddToTargetScore_40)
- Behaviors=(BehaviorName=ScoreCivilianIfLimitHit, NodeType=Sequence, Child[0]=CivilianKillLimitReached, Child[1]=AddToTargetScore_-1000)
- Behaviors=(BehaviorName=CivilianKillLimitReached, NodeType=Inverter, Child[0]=NumKilledCiviliansIsLessThanTurnCount)
- Behaviors=(BehaviorName=SecondWaveOptionEnabled-BetaStrike, NodeType=Condition)
- Behaviors=(BehaviorName=LimitCivilianKillsForBetaStrike, NodeType=Sequence, Child[0]=SecondWaveOptionEnabled-BetaStrike, Child[1]=ScoreCivilianIfLimitHit)
- Behaviors=(BehaviorName=TargetScoreKillAdventNotAliens, NodeType=Selector, Child[0]=ScoreTargetIfAllyAndAdvent, Child[1]=ScoreTargetIfAllyAndNotAdvent, Child[2]=AddToTargetScore_0)
- Behaviors=(BehaviorName=ScoreTargetIfAllyAndAdvent, NodeType=Sequence, Child[0]=TargetIsAlly, Child[1]=TargetIsAdvent, Child[2]=AddToTargetScore_1)
- Behaviors=(BehaviorName=ScoreTargetIfAllyAndNotAdvent, NodeType=Sequence, Child[0]=TargetIsAlly, Child[1]=AddToTargetScore_-100)
- Behaviors=(BehaviorName=TargetScoreTeamVisibility, NodeType=Selector, Child[0]=ScoreIfTarget_HasHighestVisibility, Child[1]=AddToTargetScore_0)
- Behaviors=(BehaviorName=ScoreIfTarget_HasHighestVisibility, NodeType=Sequence, Child[0]=TargetHasHighestTeamVisibility, Child[1]=AddToTargetScore_5) ; tie breaker
- Behaviors=(BehaviorName=TargetHasHighestTeamVisibility, NodeType=Condition)
- Behaviors=(BehaviorName=TargetScoreReachableForMelee, NodeType=Selector, Child[0]=ScoreUnReachable, Child[1]=AddToTargetScore_1)
- Behaviors=(BehaviorName=TargetIsNotAlly, NodeType=Inverter, Child[0]=TargetIsAlly)
- Behaviors=(BehaviorName=TargetCanBecomeZombie, NodeType=Condition)
- Behaviors=(BehaviorName=TargetCanNotBecomeZombie, NodeType=Inverter, Child[0]=TargetCanBecomeZombie)
- Behaviors=(BehaviorName=TargetScoreReachableAllyAnimaConsume, NodeType=Selector, Child[0]=TargetIsNotAlly, Child[1]=TargetCanNotBecomeZombie, Child[2]=TargetIsVisibleToPlayer, Child[3]=ScoreForAnimaConsumeAlly)
- Behaviors=(BehaviorName=ScoreForAnimaConsumeAlly, NodeType=Sequence, Child[0]=ScoreAnimaConsumeForRange, Child[1]=ScoreIfTargetLowHP, Child[2]=AddToTargetScore_1)
- Behaviors=(BehaviorName=ScoreAnimaConsumeForRange, NodeType=Selector, Child[0]=ScoreInAttackRange, Child[1]=ScoreUnreachable, Child[2]=AddToTargetScore_1)
- Behaviors=(BehaviorName=ScoreInAttackRange, NodeType=Sequence, Child[0]=IsTargetInAttackRange-StandardMelee, Child[1]=AddToTargetScore_100)
- Behaviors=(BehaviorName=ScoreUnReachable, NodeType=Sequence, Child[0]=TargetNotInMovementRange, Child[1]=AddToTargetScore_-100)
- Behaviors=(BehaviorName=TargetScoreClosestIfInRange, NodeType=Successor, Child[0]=ScoreClosestIfInRange)
- Behaviors=(BehaviorName=ScoreClosestIfInRange, NodeType=Sequence, Child[0]=TargetIsClosestValidTarget, Child[1]=IsTargetInMovementRange-StandardMelee, Child[2]=AddToTargetScore_100)
- Behaviors=(BehaviorName=SelectScoreHitChanceByJob, NodeType=Selector, Child[0]=ScoreHitIfSoldier, Child[1]=ScoreHitIfFlanker, Child[2]=ScoreHitIfLeader, Child[3]=ScoreHitIfSupport, Child[4]=TargetScoreHitChance)
- Behaviors=(BehaviorName=ScoreHitIfSoldier, NodeType=Sequence, Child[0]=IsMyJob-Soldier, Child[1]=TargetScoreHitChanceUnlikely)
- Behaviors=(BehaviorName=ScoreHitIfFlanker, NodeType=Sequence, Child[0]=IsMyJob-Flanker, Child[1]=TargetScoreHitChanceOPPORTUNIST)
- Behaviors=(BehaviorName=ScoreHitIfLeader, NodeType=Sequence, Child[0]=IsMyJob-Leader, Child[1]=TargetScoreHitChance)
- Behaviors=(BehaviorName=ScoreHitIfSupport, NodeType=Sequence, Child[0]=IsMyJob-Support, Child[1]=TargetScoreHitChanceProbable)
- Behaviors=(BehaviorName=IsAbilityAvailable-Reload, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-StandardShot, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-StandardMove, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-Overwatch, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-ThrowGrenade, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-FragGrenade, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-Yell, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-CallReinforcements, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-Suppression, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-HunkerDown, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-StandardMelee, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-Evac, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-StandardMelee, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-Reload, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-StandardShot, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-StandardMove, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-Overwatch, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-ThrowGrenade, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-Yell, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-CallReinforcements, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-StandardMelee, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-Suppression, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-HunkerDown, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-Evac, NodeType=Action)
- Behaviors=(BehaviorName=ShouldPatrol, NodeType=Selector, Child[0]=IsGreenAlert, Child[1]=NotYetRevealed)
- Behaviors=(BehaviorName=GenericGreenMovement, NodeType=Sequence, Child[0]=ShouldPatrol, Child[1]=GreenAlertActionSelector)
- Behaviors=(BehaviorName=GreenAlertActionSelector, NodeType=Selector, Child[0]=TryAttackPriorityTarget, Child[1]=SSSelectGreenAlertAction)
- Behaviors=(BehaviorName=SSSelectGreenAlertAction, NodeType=Successor, Child[0]=SelectGreenAlertAction )
- Behaviors=(BehaviorName=SelectGreenAlertAction, NodeType=Action)
- Behaviors=(BehaviorName=IgnoreHazards, NodeType=Action)
- Behaviors=(BehaviorName=SkipTurnifGreenAlert, NodeType=Sequence, Child[0]=IsGreenAlert, Child[1]=SkipMove)
- Behaviors=(BehaviorName=DoCower, NodeType=Sequence, Child[0]=IsAbilityAvailable-HunkerDown, Child[1]=SelectAbility-HunkerDown)
- Behaviors=(BehaviorName=MoveBackWithLOSIfFlanked, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=IsFlanked, Child[2]=IsAbilityAvailable-StandardMove, Child[3]=FindDestinationWithLoS-MWP_Defensive, Child[4]=SelectAbility-StandardMove);
- Behaviors=(BehaviorName=MoveBackWithLOSIfFlankedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=IsFlanked, Child[2]=IsAbilityAvailable-StandardMove, Child[3]=FindDestinationWithLoS-MWP_Defensive, Child[4]=SelectAbility-StandardMove);
- Behaviors=(BehaviorName=MoveForwardWithLOSIfFlanked, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=IsFlanked, Child[2]=IsAbilityAvailable-StandardMove, Child[3]=FindDestinationWithLoS-MWP_AdvanceCover, Child[4]=SelectAbility-StandardMove);
- Behaviors=(BehaviorName=MoveForwardWithLOSIfFlankedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=IsFlanked, Child[2]=IsAbilityAvailable-StandardMove, Child[3]=FindDestinationWithLoS-MWP_AdvanceCover, Child[4]=SelectAbility-StandardMove);
- Behaviors=(BehaviorName=DoIfFlankedMove, NodeType=Sequence, Child[0]=CheckIfNeedToMove, Child[1]=FlankedMoveSelector)
- Behaviors=(BehaviorName=CheckIfNeedToMove, NodeType=Selector, Child[0]=IsFlanked, Child[1]=IsInDangerousArea)
- Behaviors=(BehaviorName=CheckIfInDanger, NodeType=Selector, Child[0]=IsFlanked, Child[1]=HasMoreThanOneOverwatcher, Child[2]=IsInDangerousArea)
- Behaviors=(BehaviorName=CheckNotInDanger, NodeType=Inverter, Child[0]=CheckIfInDanger)
- Behaviors=(BehaviorName=FlankedMoveSelector, NodeType=Selector, Child[0]=MoveAdvanceToCoverLoSUnsafe, Child[1]=MoveAdvanceToCoverUnsafe, Child[2]=FallBack)
- Behaviors=(BehaviorName=DoIfFlankedMoveHeightPref, NodeType=Sequence, Child[0]=CheckIfNeedToMove, Child[1]=FlankedMoveSelectorHeight)
- Behaviors=(BehaviorName=DoIfOnDangerousGround, NodeType=Sequence, Child[0]=IsInDangerousArea, Child[1]=FlankedMoveSelector)
- Behaviors=(BehaviorName=LastActionAndFlanked, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=IsFlanked, Child[2]=ShootIfIdeal_OtherwiseMove)
- Behaviors=(BehaviorName=DoNoiseAlert, NodeType=Action)
- Behaviors=(BehaviorName=NeedsReload, NodeType=Sequence, Child[0]=IsAbilityAvailable-Reload, Child[1]=OutOfAmmo, Child[2]=SelectAbility-Reload)
- Behaviors=(BehaviorName=TryShootOrReload, NodeType=Selector, Child[0]=ShootIfAvailable, Child[1]=NeedsReload)
- Behaviors=(BehaviorName=TryShootOrReloadOrOverwatch, NodeType=Selector, Child[0]=ConsiderTakingOverwatch, Child[1]=ShootIfAvailable, Child[2]=NeedsReload)
- Behaviors=(BehaviorName=ConsiderTakingOverwatch, NodeType=Selector, Child[0]=TryTwoTurnAttackSupport, Child[1]=ConsiderTakingOverwatchAllUnits, Child[2]=ConsiderTakingOverwatchVIP, Child[3]=ConsiderTakingOverwatchEvac)
- Behaviors=(BehaviorName=ConsiderTakingOverwatchAllUnits, NodeType=Sequence, Child[0]=AllShotPercentagesBelow50, Child[1]=NoOverwatchingTeammates, Child[2]=RandFilter25Overwatch)
- Behaviors=(BehaviorName=AllShotPercentagesBelow50, NodeType=StatCondition, Param[0]=TopHitChance, Param[1]="<", Param[2]="50")
- Behaviors=(BehaviorName=AllShotPercentagesAtOrBelow50, NodeType=StatCondition, Param[0]=TopHitChance, Param[1]="<=", Param[2]="50")
- Behaviors=(BehaviorName=RandFilter25Overwatch, NodeType=RandFilter, Child[0]=TryOverwatch, Param[0]=25)
- Behaviors=(BehaviorName=ConsiderTakingOverwatchVIP, NodeType=Sequence, Child[0]=VIPVisible, Child[1]=RandOverwatch75_15)
- Behaviors=(BehaviorName=ConsiderTakingOverwatchEvac, NodeType=Sequence, Child[0]=EvacInRangeAndEnemyVisible, Child[1]=RandOverwatch100_75)
- Behaviors=(BehaviorName=VIPVisible, NodeType=Sequence, Child[0]=HasEnemyVIP, Child[1]=CanSeeLivingVIPOrCarriedVIP)
- Behaviors=(BehaviorName=CanSeeLivingVIPOrCarriedVIP, NodeType=Condition)
- Behaviors=(BehaviorName=EvacInRangeAndEnemyVisible, NodeType=Sequence, Child[0]=EvacWithinVisRange, Child[1]=AnyLivingEnemyVisible)
- Behaviors=(BehaviorName=NoVisibleEnemies, NodeType=StatCondition, Param[0]=VisibleEnemyCount, Param[1]="==", Param[2]=0)
- Behaviors=(BehaviorName=AnyLivingEnemyVisible, NodeType=StatCondition, Param[0]=VisibleEnemyCount, Param[1]=">", Param[2]=0)
- Behaviors=(BehaviorName=MultipleEnemiesVisible, NodeType=StatCondition, Param[0]=VisibleEnemyCount, Param[1]=">", Param[2]=1)
- Behaviors=(BehaviorName=AnyAlliesVisible, NodeType=StatCondition, Param[0]=VisibleAllyCount, Param[1]=">", Param[2]=0)
- Behaviors=(BehaviorName=NoAlliesVisible, NodeType=StatCondition, Param[0]=VisibleAllyCount, Param[1]="==", Param[2]=0)
- Behaviors=(BehaviorName=EvacWithinVisRange, NodeType=Condition)
- Behaviors=(BehaviorName=RandOverwatch100_75, NodeType=Selector, Child[0]=FirstOverwatch100, Child[1]=RandSecondOverwatch75)
- Behaviors=(BehaviorName=RandOverwatch75_15, NodeType=Selector, Child[0]=RandFirstOverwatch75, Child[1]=RandSecondOverwatch15)
- Behaviors=(BehaviorName=RandOverwatch75, NodeType=RandFilter, Child[0]=TryOverwatch, Param[0]=75)
- Behaviors=(BehaviorName=RandOverwatch15, NodeType=RandFilter, Child[0]=TryOverwatch, Param[0]=15)
- Behaviors=(BehaviorName=RandOverwatch50, NodeType=RandFilter, Child[0]=TryOverwatch, Param[0]=50)
- Behaviors=(BehaviorName=RandOverwatch100_50, NodeType=Selector, Child[0]=FirstOverwatch100, Child[1]=RandOverwatch50)
- Behaviors=(BehaviorName=FirstOverwatch100, NodeType=Sequence, Child[0]=NoOverwatchingTeammates, Child[1]=TryOverwatch)
- Behaviors=(BehaviorName=RandFirstOverwatch75, NodeType=Sequence, Child[0]=NoOverwatchingTeammates, Child[1]=RandOverwatch75)
- Behaviors=(BehaviorName=RandSecondOverwatch75, NodeType=Sequence, Child[0]=OneOverwatchingTeammate, Child[1]=RandOverwatch75)
- Behaviors=(BehaviorName=RandSecondOverwatch15, NodeType=Sequence, Child[0]=OneOverwatchingTeammate, Child[1]=RandOverwatch15)
- Behaviors=(BehaviorName=TryTwoTurnAttackSupportIfSafe, NodeType=Sequence, Child[0]=NotInDangerousArea, Child[1]=TryTwoTurnAttackSupport)
- Behaviors=(BehaviorName=TryTwoTurnAttackSupport, NodeType=Sequence, Child[0]=HasTwoTurnAttackTargets, Child[1]=TryOverwatchTwoTurnTarget)
- Behaviors=(BehaviorName=HasTwoTurnAttackTargets, NodeType=Condition)
- Behaviors=(BehaviorName=IsTargetInTwoTurnAttackArea, NodeType=Condition)
- Behaviors=(BehaviorName=TryOverwatchTwoTurnTarget, NodeType=Sequence, Child[0]=IsAbilityAvailable-Overwatch, Child[1]=RandOverwatch100_50)
- Behaviors=(BehaviorName=TryMeleeOrShoot, NodeType=Selector, Child[0]=ShootIfAvailable, Child[1]=StandardMeleeAttack)
- Behaviors=(BehaviorName=ShootIfAvailable, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SelectTargetForStandardShot, Child[2]=SelectAbility-StandardShot)
- Behaviors=(BehaviorName=ShootIfIdeal, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SelectTargetForStandardShot_Ideal, Child[2]=SelectAbility-StandardShot)
- Behaviors=(BehaviorName=ShootIfIdeal_OtherwiseMove, NodeType=Selector, Child[0]=ShootIfIdeal, Child[1]=MoveDefensiveWithLoS, Child[2]=MoveStandard)
- Behaviors=(BehaviorName=AttackIfFavorable, NodeType=Selector, Child[0]=TryGrenade, Child[1]=ShootIfAvailable_Favorable)
- Behaviors=(BehaviorName=ShootIfAvailable_Favorable, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SelectTargetForStandardShot_Favorable, Child[2]=SelectAbility-StandardShot)
- Behaviors=(BehaviorName=AttackIfIdeal, NodeType=Selector, Child[0]=TryMoveThenGrenade, Child[1]=ShootIfAvailable_Opportunist)
- Behaviors=(BehaviorName=ShootIfAvailable_Opportunist, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SelectTargetForStandardShot_Ideal, Child[2]=SelectAbility-StandardShot)
- Behaviors=(BehaviorName=TryOverwatch, NodeType=Sequence, Child[0]=IsAbilityAvailable-Overwatch, Child[1]=SelectAbility-Overwatch)
- Behaviors=(BehaviorName=OverwatchIfTargetAvailable, NodeType=Sequence, Child[0]=IsAbilityAvailable-Overwatch, Child[1]=IsOverwatchTargetAvailable, Child[2]=SelectAbility-Overwatch)
- Behaviors=(BehaviorName=IsOverwatchTargetAvailable, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=SelectOverwatchTarget, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=SelectOverwatchTarget, NodeType=RepeatUntilFail, Child[0]=EvaluateOverwatchTarget)
- Behaviors=(BehaviorName=EvaluateOverwatchTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreHitChance, Child[2]=ApplyDifficultyModifiers, Child[3]=TargetScoreInvalidateCivilians, Child[4]=UpdateBestTarget)
- Behaviors=(BehaviorName=TryOverwatchIfLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=ConsiderTakingOverwatch)
- Behaviors=(BehaviorName=HasValidTarget-StandardShot, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-StandardShot, NodeType=Action)
- Behaviors=(BehaviorName=SelectTargetForStandardShot, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=GenericSelectBestTarget, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=SelectTargetForStandardShot_Ideal, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=SelectTarget_Opportunist, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=SelectTargetForStandardShot_Favorable, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=SelectTarget_Favorable, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=TryShootPriorityTarget, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SelectPriorityTargetForStandardShot, Child[2]=SelectAbility-StandardShot)
- Behaviors=(BehaviorName=SelectPriorityTargetForStandardShot, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=SelectPriorityTarget, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=TryAttackPriorityTarget, NodeType=Sequence, Child[0]=HasPriorityTarget, Child[1]=AttackPriorityTarget)
- Behaviors=(BehaviorName=AttackPriorityTarget, NodeType=Selector, Child[0]=TryShootPriorityTarget, Child[1]=TryMeleeAttackPriorityTarget, Child[2]=NeedsReload)
- Behaviors=(BehaviorName=HasValidTarget-Suppression, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-Suppression, NodeType=Action)
- Behaviors=(BehaviorName=SuppressIfAvailable, NodeType=Sequence, Child[0]=IsAbilityAvailable-Suppression, Child[1]=SelectTargetForSuppressionByAim, Child[2]=SelectAbility-Suppression)
- Behaviors=(BehaviorName=SelectTargetForSuppressionByAim, NodeType=Sequence, Child[0]=SetTargetStack-Suppression, Child[1]=SelectBestSuppressionTargetByAim, Child[2]=HasValidTarget-Suppression)
- Behaviors=(BehaviorName=SelectBestSuppressionTargetByAim, NodeType=RepeatUntilFail, Child[0]=EvaluateSuppressionTargetByAim)
- Behaviors=(BehaviorName=EvaluateSuppressionTargetByAim, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreUnsuppressedByHitChanceValue, Child[2]=TargetScoreInvalidateCivilians, Child[3]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreUnsuppressedByHitChanceValue, NodeType=Successor, Child[0]=ScoreUnsuppressedByHitChanceValue)
- Behaviors=(BehaviorName=ScoreUnsuppressedByHitChanceValue, NodeType=Sequence, Child[0]=TargetIsNotSuppressed, Child[1]=AvoidBoundAndPanickedTargets, Child[2]=TargetScoreByHitChanceValue-1)
- Behaviors=(BehaviorName=HasValidTarget-StandardMelee, NodeType=Condition)
- Behaviors=(BehaviorName=HasValidTarget-Potential, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-StandardMelee, NodeType=Action)
- Behaviors=(BehaviorName=SetPotentialTargetStack, NodeType=Action)
- Behaviors=(BehaviorName=SetVisiblePotentialTargetStack, NodeType=Action)
- Behaviors=(BehaviorName=SetPotentialAllyTargetStack, NodeType=Action)
- Behaviors=(BehaviorName=SetPotentialAnyTeamTargetStack, NodeType=Action) ;Include allies, civilians, enemies - any team.
- Behaviors=(BehaviorName=IsTargetInMovementRange-StandardMelee, NodeType=Condition)
- Behaviors=(BehaviorName=IsTargetInMovementRange-EnergyShield, NodeType=Condition)
- Behaviors=(BehaviorName=TargetNotInMovementRange, NodeType=Inverter, Child[0]=IsTargetInMovementRange-StandardMelee)
- Behaviors=(BehaviorName=IsTargetInAttackRange-StandardMelee, NodeType=Condition)
- Behaviors=(BehaviorName=TryStandardMelee, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=StandardMeleeStepSelector)
- Behaviors=(BehaviorName=TryStandardMeleeUnsafe, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=StandardMeleeStepSelectorUnsafe)
- Behaviors=(BehaviorName=StandardMeleeStepSelector, NodeType=Selector, Child[0]=StandardMeleeAttack, Child[1]=MoveMeleeIfFirstAbility)
- Behaviors=(BehaviorName=StandardMeleeStepSelectorUnsafe, NodeType=Selector, Child[0]=StandardMeleeAttack, Child[1]=MoveMeleeIfFirstAbilityUnsafe)
- Behaviors=(BehaviorName=StandardMeleeAttack, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMelee, Child[1]=SelectTargetForStandardMelee, Child[2]=SelectAbility-StandardMelee)
- Behaviors=(BehaviorName=TryStandardMeleeFANATIC, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=StandardMeleeStepSelectorFANATIC)
- Behaviors=(BehaviorName=TryStandardMeleeFANATICUnsafe, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=StandardMeleeStepSelectorFANATICUnsafe)
- Behaviors=(BehaviorName=StandardMeleeStepSelectorFANATIC, NodeType=Selector, Child[0]=StandardMeleeAttack, Child[1]=MoveMeleeIfFirstAbilityFANATIC)
- Behaviors=(BehaviorName=StandardMeleeStepSelectorFANATICUnsafe, NodeType=Selector, Child[0]=StandardMeleeAttack, Child[1]=MoveMeleeIfFirstAbilityFANATICUnsafe)
- Behaviors=(BehaviorName=TryStandardMeleeDash, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=StandardMeleeDashStepSelector)
- Behaviors=(BehaviorName=TryStandardMeleeDashUnsafe, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=StandardMeleeDashStepSelectorUnsafe)
- Behaviors=(BehaviorName=StandardMeleeDashStepSelector, NodeType=Selector, Child[0]=StandardMeleeAttack, Child[1]=MoveMeleeDash)
- Behaviors=(BehaviorName=StandardMeleeDashStepSelectorUnsafe, NodeType=Selector, Child[0]=StandardMeleeAttack, Child[1]=MoveMeleeDashUnsafe)
- Behaviors=(BehaviorName=TryStandardMeleeDashFANATIC, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=StandardMeleeDashFANATICStepSelector)
- Behaviors=(BehaviorName=TryStandardMeleeDashFANATICUnsafe, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=StandardMeleeDashFANATICStepSelectorUnsafe)
- Behaviors=(BehaviorName=StandardMeleeDashFANATICStepSelector, NodeType=Selector, Child[0]=StandardMeleeAttack, Child[1]=MoveMeleeDashFANATIC)
- Behaviors=(BehaviorName=StandardMeleeDashFANATICStepSelectorUnsafe, NodeType=Selector, Child[0]=StandardMeleeAttack, Child[1]=MoveMeleeDashFANATICUnsafe)
- Behaviors=(BehaviorName=SelectTargetForStandardMelee, NodeType=Sequence, Child[0]=SetTargetStack-StandardMelee, Child[1]=SelectBestTargetForStandardMelee, Child[2]=HasValidTarget-StandardMelee)
- Behaviors=(BehaviorName=SelectBestTargetForStandardMelee, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialMeleeTarget)
- Behaviors=(BehaviorName=TryMeleeAttackPriorityTarget, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=MeleeAttackPriorityTargetStepSelector)
- Behaviors=(BehaviorName=MeleeAttackPriorityTargetStepSelector, NodeType=Selector, Child[0]=MeleeAttackPriorityTarget, Child[1]=MoveMeleePriorityTargetUnsafe)
- Behaviors=(BehaviorName=MeleeAttackPriorityTarget, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMelee, Child[1]=SetTargetStack-StandardMelee, Child[2]=SelectPriorityTarget, Child[3]=HasValidTarget-StandardMelee, Child[4]=SelectAbility-StandardMelee)
- Behaviors=(BehaviorName=SelectPotentialMeleeTarget, NodeType=Sequence, Child[0]=SetPotentialTargetStack, Child[1]=SelectBestPotentialTargetForMelee, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SelectBestPotentialTargetForMelee, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialMeleeTarget)
- Behaviors=(BehaviorName=EvaluatePotentialMeleeTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreClosestIfInRange, Child[2]=AvoidBoundAndPanickedTargets, Child[3]=TargetScoreCivilian, Child[4]=SSCustomMeleeTargetScore, Child[5]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSCustomMeleeTargetScore, NodeType=Successor, Child[0]="::CustomMeleeTargetScore")
- Behaviors=(BehaviorName="::CustomMeleeTargetScore", NodeType=Sequence, Child[0]=AddToTargetScore_0) ;Overwrite option for melee abilities that are restricted.
- Behaviors=(BehaviorName=SelectPotentialMeleePriorityTarget, NodeType=Sequence, Child[0]=SetPotentialTargetStack, Child[1]=SelectPotentialPriorityTargetForMelee, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SelectPotentialPriorityTargetForMelee, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialPriorityTarget)
- Behaviors=(BehaviorName=EvaluatePotentialPriorityTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreReachableForMelee, Child[2]=TargetScorePriority, Child[3]=AvoidBoundAndPanickedTargets, Child[4]=TargetScoreCivilian, Child[5]=UpdateBestTarget)
- Behaviors=(BehaviorName=DoesGrenadeCauseDamage, NodeType=Condition) ;Added to prevent Mind Controlled units from throwing smoke grenades.
- Behaviors=(BehaviorName=TryMoveThenGrenade, NodeType=Selector, Child[0]=TryMoveForGrenade, Child[1]=TryGrenade)
- Behaviors=(BehaviorName=TryMoveForGrenade, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-ThrowGrenade, Child[2]=FindPotentialAoETargets-GrenadeProfile, Child[3]=MoveStandardIfFirstAbility-Grenade, Child[4]=SSSetPreselectedAbility-GrenadeProfile)
- Behaviors=(BehaviorName=TryGrenade, NodeType=Sequence, Child[0]=IsAbilityAvailable-ThrowGrenade, Child[1]=FindPotentialAoETargets-GrenadeProfile, Child[2]=SelectAoETarget-GrenadeProfile, Child[3]=SelectAbility-ThrowGrenade)
- Behaviors=(BehaviorName=SSSetPreselectedAbility-GrenadeProfile, NodeType=Successor, Child[0]=SetPreselectedAbility-GrenadeProfile)
- Behaviors=(BehaviorName=SetPreselectedAbility-GrenadeProfile, NodeType=Action)
- Behaviors=(BehaviorName=TryMoveThenGrenadeAny, NodeType=Selector, Child[0]=TryMoveForGrenadeAny, Child[1]=TryGrenadeAny)
- Behaviors=(BehaviorName=TryMoveForGrenadeAny, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-ThrowGrenade, Child[2]=FindPotentialAoETargets-GrenadeProfileAny, Child[3]=MoveStandardIfFirstAbility-Grenade)
- Behaviors=(BehaviorName=TryGrenadeAny, NodeType=Sequence, Child[0]=IsAbilityAvailable-ThrowGrenade, Child[1]=FindPotentialAoETargets-GrenadeProfileAny, Child[2]=SelectAoETarget-GrenadeProfileAny, Child[3]=SelectAbility-ThrowGrenade)
- Behaviors=(BehaviorName=TryPanickedGrenadeToss, NodeType=Sequence, Child[0]=IsAbilityAvailable-ThrowGrenade, Child[1]=SelectPotentialGrenadeTargetRandomly, Child[2]=FindPotentialAoETargets-GrenadePanickedProfile, Child[3]=SelectAoETarget-GrenadePanickedProfile, Child[4]=SelectAbility-ThrowGrenade)
- Behaviors=(BehaviorName=SelectPotentialGrenadeTargetRandomly, NodeType=Sequence, Child[0]=SetPotentialAnyTeamTargetStack, Child[1]=SelectRandomGrenadeTargetIterator, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SelectRandomGrenadeTargetIterator, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialRandomGrenadeTarget)
- Behaviors=(BehaviorName=EvaluatePotentialRandomGrenadeTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreValidGrenadeTargetRandomly, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreValidGrenadeTargetRandomly, NodeType=Successor, Child[0]=ScoreValidGrenadeTargetRandomly)
- Behaviors=(BehaviorName=ScoreValidGrenadeTargetRandomly, NodeType=Sequence, Child[0]=IsTargetInAttackRange-ThrowGrenade, Child[1]=TargetHasNotBeenAttacked, Child[2]=GenericScoreTargetRandomlySequence)
- Behaviors=(BehaviorName=IsAbilityAvailable-MarkTarget, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-TriggerRage, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-PsiReanimation, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-MindSpin, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-GetOverHere, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-PoisonSpit, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-EnergyShield, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-AcidBlob, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-DelayedExecute, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-MicroMissiles, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-PsiWitchConfuse, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-PsiMindControl, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-TriggerDamagedTeleport, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-PsiDimensionalRiftStage1, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-NullLance, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-ChryssalidBurrow, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-ChryssalidUnburrow, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-BurrowedAttack, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-FrenzyTrigger, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-BlazingPinionsStage1, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-AnimaInversion, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-MindProbe, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-AnimaGate, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-AnimaConsume, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-GatekeeperOpen, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-GatekeeperClose, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-Retract, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-PsiBombStage1, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-Teleport, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-TriggerSuperposition, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-WrathCannon, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-WrathCannonStage1, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-SpawnChryssalid, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-ScythingClaws, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-Bayonet, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-Bind, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-StunLance, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-Bind, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-DevastatingPunch, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-AnimaConsume, NodeType=Condition, Param[0]="AA_ValueCheckFailed", Param[1]="AA_GatekeeperClosed"); Added ValueCheckFailed as a valid 'ready' failure, for not being in Open state.
- Behaviors=(BehaviorName=IsAbilityReady-AnimaInversion, NodeType=Condition, Param[0]="AA_ValueCheckFailed", Param[1]="AA_GatekeeperClosed"); Added ValueCheckFailed as a valid 'ready' failure, for not being in Open state.
- Behaviors=(BehaviorName=IsAbilityReady-ScythingClaws, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-Bayonet, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-PsiBombStage1, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-ThrowGrenade, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-PoisonSpit, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-AcidBlob, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-MicroMissiles, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-BlazingPinionsStage1, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-PsiDimensionalRiftStage1, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-NullLance, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-EnergyShield, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-Suppression, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-MarkTarget, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-StunLance, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-TriggerRage, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-PsiReanimation, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-MindSpin, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-GetOverHere, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-Bind, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-PoisonSpit, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-AcidBlob, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-EnergyShield, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-DevastatingPunch, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-DelayedExecute, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-Bayonet, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-MicroMissiles, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-PsiMindControl, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-TriggerDamagedTeleport, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-PsiDimensionalRiftStage1, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-ChryssalidBurrow, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-ChryssalidUnburrow, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-BurrowedAttack, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-FrenzyTrigger, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-BlazingPinionsStage1, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-AnimaInversion, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-AnimaConsume, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-AnimaGate, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-MindProbe, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-GatekeeperOpen, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-GatekeeperClose, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-Retract, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-PsiBombStage1, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-Teleport, NodeType=Action, param[0]=UseDestination)
- Behaviors=(BehaviorName=SelectAbility-TriggerSuperposition, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-ScythingClaws, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-WrathCannon, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-WrathCannonStage1, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-SpawnChryssalid, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-NullLance, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-GrenadeProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-GrenadeProfileAny, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-GrenadeAggressiveProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-GrenadePanickedProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-GrenadeMindControlledProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-BlazingPinionsBasicProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-AcidBlobProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-PoisonSpitProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-PoisonSpitSingleProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-MicroMissilesProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-MicroMissilesProfileMk2, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-PsiRiftProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-AnimaInversionCorpseProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-AnimaInversionMixedProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-PsiBombProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-ScythingClawsProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-ScythingClawsPrefTargetProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-WrathCannonProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-WrathCannonS1Profile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-NullLanceProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-NullLanceValidateProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-HarborWaveProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-HarborWavePrefTargetProfile, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-FlameThrowerProfile, NodeType=Action, Param[0]=Burning)
- Behaviors=(BehaviorName=FindPotentialAoETargets-FlameThrowerAdjacent, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-FlameThrowerIgnoreFF, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-FlameThrowerMultiProfile, NodeType=Action, Param[0]=Burning)
- Behaviors=(BehaviorName=FindPotentialAoETargets-FlameThrowerLostTargetProfile, NodeType=Action, Param[0]=Burning)
- Behaviors=(BehaviorName=FindPotentialAoETargets-FlameThrowerMimicBeacon, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-FlameThrowerMimicBeaconAdjacent, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-GrenadeProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-GrenadeAggressiveProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-GrenadePanickedProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-GrenadeMindControlledProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-BlazingPinionsBasicProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-AcidBlobProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-PoisonSpitProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-PoisonSpitSingleProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-MicroMissilesProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-MicroMissilesProfileMk2, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-PsiRiftProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-AnimaInversionCorpseProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-AnimaInversionMixedProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-PsiBombProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-ScythingClawsProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-ScythingClawsPrefTargetProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-WrathCannonProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-WrathCannonS1Profile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-NullLanceProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-NullLanceValidateProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-HarborWaveProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-HarborWavePrefTargetProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-FlameThrowerProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-FlameThrowerMultiProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-FlameThrowerLostTargetProfile, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-FlameThrowerAdjacent, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-FlameThrowerIgnoreFF, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-FlameThrowerMimicBeacon, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-FlameThrowerMimicBeaconAdjacent, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-GrenadeProfileAny, NodeType=Action)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility-Grenade, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindGrenadeDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility-PoisonSpit, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindPoisonSpitDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility-AcidBlob, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindAcidBlobDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility-MicroMissiles, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindMicroMissilesDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility-BlazingPinions, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindBlazingPinionsDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility-PsiDimensionalRiftStage1, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindDimensionalRiftDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility-EnergyShield, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindShieldDestinationDefensive, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility-PsiMindControl, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindMindControlDestinationDefensive, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility-AnimaInversion, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindAnimaInversionDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility-PsiBombStage1, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindPsiBombDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility-NullLance, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindNullLanceDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility-Suppression, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindSuppressionDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=TeleportForPsiBombTarget, NodeType=Sequence, Child[0]=IsAbilityAvailable-Teleport, Child[1]=FindPsiBombTeleportDestination, Child[2]=SelectAbility-Teleport)
- Behaviors=(BehaviorName=TeleportForPsiMindControl, NodeType=Sequence, Child[0]=IsAbilityAvailable-Teleport, Child[1]=FindPsiMindControlTeleportDestination, Child[2]=SelectAbility-Teleport)
- Behaviors=(BehaviorName=TeleportForPsiDimensionalRiftTarget, NodeType=Sequence, Child[0]=IsAbilityAvailable-Teleport, Child[1]=FindPsiDimensionalRiftTeleportDestination, Child[2]=SelectAbility-Teleport)
- Behaviors=(BehaviorName=TeleportForNullLanceTarget, NodeType=Sequence, Child[0]=IsAbilityAvailable-Teleport, Child[1]=FindNullLanceTeleportDestination, Child[2]=SelectAbility-Teleport)
- Behaviors=(BehaviorName=HasValidTarget-StunLance, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-StunLance, NodeType=Action)
- Behaviors=(BehaviorName=TryStunLance, NodeType=Sequence, Child[0]=IsAbilityReady-StunLance, Child[1]=StunLanceStepSelector)
- Behaviors=(BehaviorName=StunLanceStepSelector, NodeType=Selector, Child[0]=StunLanceAttack, Child[1]=MoveMeleeIfFirstAbilityFANATIC)
- Behaviors=(BehaviorName=StunLanceAttack, NodeType=Sequence, Child[0]=SelectTargetForStunLance, Child[1]=SelectAbility-StunLance)
- Behaviors=(BehaviorName=SelectTargetForStunLance, NodeType=Sequence, Child[0]=SetTargetStack-StunLance, Child[1]=SelectBestTargetForStunLance, Child[2]=HasValidTarget-StunLance)
- Behaviors=(BehaviorName=SelectBestTargetForStunLance, NodeType=RepeatUntilFail, Child[0]=TargetSelectIterationForStunLance)
- Behaviors=(BehaviorName=TargetSelectIterationForStunLance, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=EvaluateTargetForStunLance, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=EvaluateTargetForStunLance, NodeType=Sequence, Child[0]=TargetScoreHitChance, Child[1]=TargetScoreHealth_HighFirst, Child[2]=TargetScoreMarked, Child[3]=AvoidBoundAndPanickedTargets, Child[4]=TargetScoreCivilian, Child[5]=SSTeamSpecificModifiers)
- Behaviors=(BehaviorName=TryMarkTargetOption, NodeType=Sequence, Child[0]=IsAbilityAvailable-MarkTarget, Child[1]=AnyAlliesVisible, Child[2]=MultipleEnemiesVisible, Child[3]=NoUnitsMarked, Child[4]=SelectTargetForMarkTarget, Child[5]=SelectAbility-MarkTarget, Intent="Marking a target: GETTIM!")
- Behaviors=(BehaviorName=SelectTargetForMarkTarget, NodeType=Sequence, Child[0]=SetTargetStack-MarkTarget, Child[1]=ScoreAllTargets_MarkTarget, Child[2]=HasValidTarget-MarkTarget)
- Behaviors=(BehaviorName=ScoreAllTargets_MarkTarget, NodeType=RepeatUntilFail, Child[0]=ScoreTarget_MarkTargetLoop)
- Behaviors=(BehaviorName=ScoreTarget_MarkTargetLoop, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=ScoreTarget_MarkTargetScoring, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=ScoreTarget_MarkTargetScoring, NodeType=Successor, Child[0]=ScoreMarkTargetOption)
- Behaviors=(BehaviorName=ScoreMarkTargetOption, NodeType=Sequence, Child[0]=TargetIsEnemy, Child[1]=TargetIsNotCivilian, Child[2]=ScoreByHP, Child[3]=TargetScoreHealth_HighFirst, Child[4]=TargetScoreHighestSoldierRank, Child[5]=TargetScoreTeamVisibility, Child[6]=SometimesRandomizeTarget, Child[7]=AvoidBoundAndPanickedTargets, Child[8]=SSTeamSpecificModifiers)
- Behaviors=(BehaviorName=SetTargetStack-MarkTarget, NodeType=Action)
- Behaviors=(BehaviorName=HasValidTarget-MarkTarget, NodeType=Condition)
- Behaviors=(BehaviorName=NoUnitsMarked, NodeType=Inverter, Child[0]=HaveAnyMarkedTargets)
- Behaviors=(BehaviorName=HaveAnyMarkedTargets, NodeType=Sequence, Child[0]=SetPotentialTargetStack, Child[1]=FindAnyMarkedTarget, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=FindAnyMarkedTarget, NodeType=RepeatUntilFail, Child[0]=EvaluateTargetIsMarked)
- Behaviors=(BehaviorName=EvaluateTargetIsMarked, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreIfMarked, Child[2]=UpdateBestTarget, Child[3]=BreakOnAnyValidTarget-Potential)
- Behaviors=(BehaviorName=SSScoreIfMarked, NodeType=Successor, Child[0]=ScoreTargetIfMarked)
- Behaviors=(BehaviorName=BreakOnAnyValidTarget-Potential, NodeType=Inverter, Child[0]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=TryEnergyShieldOnMultipleTargets, NodeType=Sequence, Child[0]=IsAbilityAvailable-EnergyShield, Child[1]=HasMultipleEnergyShieldTargets, Child[2]=SelectAbility-EnergyShield)
- Behaviors=(BehaviorName=TryEnergyShieldOnAnyTarget, NodeType=Sequence, Child[0]=IsAbilityAvailable-EnergyShield, Child[1]=HasAnyEnergyShieldTargets, Child[2]=SelectAbility-EnergyShield)
- Behaviors=(BehaviorName=SelectPotentialTargetForEnergyShield, NodeType=Sequence, Child[0]=SetPotentialAllyTargetStack, Child[1]=SelectBestAllyTargetForEnergyShield, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SelectBestAllyTargetForEnergyShield, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialEnergyShieldTarget)
- Behaviors=(BehaviorName=EvaluatePotentialEnergyShieldTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=ScoreBestTargetForEnergyShield, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=ScoreBestTargetForEnergyShield, NodeType=Successor, Child[0]=TargetScoreReachableForEnergyShield)
- Behaviors=(BehaviorName=TargetScoreReachableForEnergyShield, NodeType=Sequence, Child[0]=IsTargetInMovementRange-EnergyShield, Child[1]=AvoidBoundAndPanickedTargets, Child[2]=ScoreByHP)
- Behaviors=(BehaviorName=ScoreByHP, NodeType=Sequence, Child[0]=TargetScoreByScaledMaxStat-eStat_HP, Child[1]=TargetScoreByScaledCurrStat-eStat_HP)
- Behaviors=(BehaviorName=TargetScoreByScaledMaxStat-eStat_HP, NodeType=Action, Param[0]=10)
- Behaviors=(BehaviorName=TargetScoreByScaledCurrStat-eStat_HP, NodeType=Action, Param[0]=1)
- Behaviors=(BehaviorName=TryMoveThenMicroMissiles, NodeType=Selector, Child[0]=TryMoveForMicroMissiles, Child[1]=TryMicroMissiles)
- Behaviors=(BehaviorName=TryMoveForMicroMissiles, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-MicroMissiles, Child[2]=FindPotentialAoETargets-MicroMissilesProfile, Child[3]=MoveStandardIfFirstAbility-MicroMissiles)
- Behaviors=(BehaviorName=TryMicroMissiles, NodeType=Sequence, Child[0]=IsAbilityAvailable-MicroMissiles, Child[1]=FindPotentialAoETargets-MicroMissilesProfile, Child[2]=SelectAoETarget-MicroMissilesProfile, Child[3]=SelectAbility-MicroMissiles)
- Behaviors=(BehaviorName=TryMoveThenMicroMissilesMk2, NodeType=Selector, Child[0]=TryMoveForMicroMissilesMk2, Child[1]=TryMicroMissilesMk2)
- Behaviors=(BehaviorName=TryMoveForMicroMissilesMk2, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-MicroMissiles, Child[2]=FindPotentialAoETargets-MicroMissilesProfileMk2, Child[3]=MoveStandardIfFirstAbility-MicroMissiles)
- Behaviors=(BehaviorName=TryMicroMissilesMk2, NodeType=Sequence, Child[0]=IsAbilityAvailable-MicroMissiles, Child[1]=FindPotentialAoETargets-MicroMissilesProfileMk2, Child[2]=SelectAoETarget-MicroMissilesProfileMk2, Child[3]=SelectAbility-MicroMissiles)
- Behaviors=(BehaviorName=TryMoveThenAcidBlob, NodeType=Selector, Child[0]=TryMoveForAcidBlob, Child[1]=TryAcidBlob)
- Behaviors=(BehaviorName=TryMoveForAcidBlob, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-AcidBlob, Child[2]=FindPotentialAoETargets-AcidBlobProfile, Child[3]=MoveStandardIfFirstAbility-AcidBlob)
- Behaviors=(BehaviorName=TryAcidBlob, NodeType=Sequence, Child[0]=IsAbilityAvailable-AcidBlob, Child[1]=FindPotentialAoETargets-AcidBlobProfile, Child[2]=SelectAoETarget-AcidBlobProfile, Child[3]=SelectAbility-AcidBlob)
- Behaviors=(BehaviorName=HasValidTarget-Bayonet, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-Bayonet, NodeType=Action)
- Behaviors=(BehaviorName=TryBayonet, NodeType=Sequence, Child[0]=IsAbilityReady-Bayonet, Child[1]=BayonetStepSelector)
- Behaviors=(BehaviorName=BayonetStepSelector, NodeType=Selector, Child[0]=BayonetAttack, Child[1]=MoveMeleeDefensiveIfFirstAbility)
- Behaviors=(BehaviorName=BayonetAttack, NodeType=Sequence, Child[0]=IsAbilityAvailable-Bayonet, Child[1]=SelectTargetForBayonet, Child[2]=SelectAbility-Bayonet)
- Behaviors=(BehaviorName=SelectTargetForBayonet, NodeType=Sequence, Child[0]=SetTargetStack-Bayonet, Child[1]=SelectBestTargetForStandardMelee, Child[2]=HasValidTarget-Bayonet)
- Behaviors=(BehaviorName=SelectBestTargetForBayonet, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialMeleeTarget)
- Behaviors=(BehaviorName=HasValidTarget-DevastatingPunch, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-DevastatingPunch, NodeType=Action)
- Behaviors=(BehaviorName=TryBerserkerMelee, NodeType=Sequence, Child[0]=IsAbilityReady-DevastatingPunch, Child[1]=MoveMeleeOrDevastatingPunchAttack)
- Behaviors=(BehaviorName=MoveMeleeOrDevastatingPunchAttack, NodeType=Selector, Child[0]=TryDevastatingPunchAttack, Child[1]=MoveToDevastatingPunchTargetIfFirstAbility)
- Behaviors=(BehaviorName=TryDevastatingPunchAttack, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMelee, Child[1]=SelectTargetForDevastatingPunch, Child[2]=SelectAbility-StandardMelee)
- Behaviors=(BehaviorName=MoveToDevastatingPunchTargetIfFirstAbility, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=ResetDestinationSearch, Child[3]=IncludeCiviliansIfTerrorist, Child[4]=FindBerserkerMeleeDestination, Child[5]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindBerserkerMeleeDestination, NodeType=Sequence, Child[0]=SelectPotentialTargetForDevastatingPunch, Child[1]=RestrictToPotentialTargetRange-StandardMelee, Child[2]=FindRestrictedDestination-MWP_Melee)
- Behaviors=(BehaviorName=SelectTargetForDevastatingPunch, NodeType=Sequence, Child[0]=SetTargetStack-DevastatingPunch, Child[1]=SelectBestTargetForDevastatingPunch, Child[2]=HasValidTarget-DevastatingPunch)
- Behaviors=(BehaviorName=SelectPotentialTargetForDevastatingPunch, NodeType=Sequence, Child[0]=SetPotentialTargetStack, Child[1]=SelectBestTargetForDevastatingPunch, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SelectBestTargetForDevastatingPunch, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialDevastatingPunchTarget)
- Behaviors=(BehaviorName=EvaluatePotentialDevastatingPunchTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreClosestVisibleAllyIfEnraged, Child[2]=TargetScoreClosestEnemyIfInRange, Child[3]=TargetScoreFilterCiviliansForJob, Child[4]=UpdateBestTarget)
- Behaviors=(BehaviorName=TargetScoreClosestVisibleAllyIfEnraged, NodeType=Successor, Child[0]=ScoreClosestVisibleAllyIfEnraged)
- Behaviors=(BehaviorName=ScoreClosestVisibleAllyIfEnraged, NodeType=Sequence, Child[0]=AffectedByEffect-RageTriggered, Child[1]=IsVisibleToPlayer, Child[2]=TargetIsAlly, Child[3]=TargetIsAdvent, Child[4]=TargetIsVisibleToPlayer, Child[5]=IsTargetInMovementRange-StandardMelee, Child[6]=TargetScoreByScaledDistance-1, Child[7]=AddToTargetScore_100)
- Behaviors=(BehaviorName=TargetScoreClosestEnemyIfInRange, NodeType=Successor, Child[0]=ScoreClosestEnemyIfInRange)
- Behaviors=(BehaviorName=ScoreClosestEnemyIfInRange, NodeType=Sequence, Child[0]=TargetIsEnemy, Child[1]=TargetIsNotFacelessCivilian, Child[2]=IsTargetInMovementRange-StandardMelee, Child[3]=TargetScoreByScaledDistance-1, Child[4]=AddToTargetScore_100, Child[5]=AvoidBoundAndPanickedTargets)
- Behaviors=(BehaviorName=TargetIsNotFacelessCivilian, NodeType=Inverter, Child[0]=TargetIsFacelessCivilian)
- Behaviors=(BehaviorName=TargetIsFacelessCivilian, NodeType=Sequence, Child[0]=TargetIsCivilian, Child[1]=TargetIsAlien)
- Behaviors=(BehaviorName=TryTriggerRage, NodeType=Sequence, Child[0]=IsAbilityAvailable-TriggerRage, Child[1]=SelectAbility-TriggerRage)
- Behaviors=(BehaviorName=HasValidTarget-MindSpin, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-MindSpin, NodeType=Action)
- Behaviors=(BehaviorName=SelectTargetForMindSpin, NodeType=Sequence, Child[0]=SetTargetStack-MindSpin, Child[1]=SelectBestTargetForMindSpin, Child[2]=HasValidTarget-MindSpin)
- Behaviors=(BehaviorName=SelectBestTargetForMindSpin, NodeType=RepeatUntilFail, Child[0]=PsiEvaluateTargetsGeneric)
- Behaviors=(BehaviorName=HasValidTarget-PsiReanimation, NodeType=Condition)
- Behaviors=(BehaviorName=TryPsiReanimation, NodeType=Sequence, Child[0]=IsAbilityAvailable-PsiReanimation, Child[1]=SelectTargetForPsiReanimation, Child[2]=SelectAbility-PsiReanimation)
- Behaviors=(BehaviorName=SelectTargetForPsiReanimation, NodeType=Sequence, Child[0]=SetTargetStack-PsiReanimation, Child[1]=GenericSelectTargetSomewhatRandomly, Child[2]=HasValidTarget-PsiReanimation)
- Behaviors=(BehaviorName=SetTargetStack-PsiReanimation, NodeType=Action)
- Behaviors=(BehaviorName=HasValidTarget-GetOverHere, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-GetOverHere, NodeType=Action)
- Behaviors=(BehaviorName=TryGetOverHere, NodeType=Sequence, Child[0]=IsAbilityAvailable-GetOverHere, Child[1]=HasBindableNeighborTile, Child[2]=SelectTargetForGetOverHere, Child[3]=SelectAbility-GetOverHere)
- Behaviors=(BehaviorName=SelectTargetForGetOverHere, NodeType=Sequence, Child[0]=SetTargetStack-GetOverHere, Child[1]=SelectBestTargetForGetOverHere, Child[2]=HasValidTarget-GetOverHere)
- Behaviors=(BehaviorName=SelectBestTargetForGetOverHere, NodeType=RepeatUntilFail, Child[0]=TargetSelectIterationForGetOverHere)
- Behaviors=(BehaviorName=TargetSelectIterationForGetOverHere, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=GenericTargetEvaluations, Child[2]=TargetScoreInvalidateCivilians, Child[3]=SSTargetScoreInvalidTonguePullTargets, Child[4]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSTargetScoreInvalidTonguePullTargets, NodeType=Successor, Child[0]=TargetScoreInvalidTonguePullTargets)
- Behaviors=(BehaviorName=TargetScoreInvalidTonguePullTargets, NodeType=Sequence, Child[0]=IsInvalidTonguePullTarget, Child[1]=AddToTargetScore_-1000)
- Behaviors=(BehaviorName=IsInvalidTonguePullTarget, NodeType=Selector, Child[0]=TargetAffectedByEffect-Suppression, Child[1]=TargetIsApplyingEffect-Suppression);
- Behaviors=(BehaviorName=IsValidTonguePullTarget, NodeType=Inverter, Child[0]=IsInvalidTonguePullTarget)
- Behaviors=(BehaviorName=HasBindableNeighborTile, NodeType=Condition)
- Behaviors=(BehaviorName=TryMoveThenPoisonSpit, NodeType=Selector, Child[0]=TryMoveForPoisonSpit, Child[1]=TryPoisonSpit)
- Behaviors=(BehaviorName=TryMoveForPoisonSpit, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-PoisonSpit, Child[2]=FindPotentialAoETargets-PoisonSpitProfile, Child[3]=MoveStandardIfFirstAbility-PoisonSpit)
- Behaviors=(BehaviorName=TryPoisonSpit, NodeType=Sequence, Child[0]=IsAbilityAvailable-PoisonSpit, Child[1]=FindPotentialAoETargets-PoisonSpitProfile, Child[2]=SelectAoETarget-PoisonSpitProfile, Child[3]=SelectAbility-PoisonSpit)
- Behaviors=(BehaviorName=TryMoveThenPoisonSpitSingle, NodeType=Selector, Child[0]=TryMoveForPoisonSpitSingle, Child[1]=TryPoisonSpitSingle)
- Behaviors=(BehaviorName=TryMoveForPoisonSpitSingle, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-PoisonSpit, Child[2]=FindPotentialAoETargets-PoisonSpitSingleProfile, Child[3]=MoveStandardIfFirstAbility-PoisonSpit)
- Behaviors=(BehaviorName=TryPoisonSpitSingle, NodeType=Sequence, Child[0]=IsAbilityAvailable-PoisonSpit, Child[1]=FindPotentialAoETargets-PoisonSpitSingleProfile, Child[2]=SelectAoETarget-PoisonSpitSingleProfile, Child[3]=SelectAbility-PoisonSpit)
- Behaviors=(BehaviorName=HasValidTarget-Bind, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-Bind, NodeType=Action)
- Behaviors=(BehaviorName=TryBind, NodeType=Sequence, Child[0]=IsAbilityReady-Bind, Child[1]=MoveMeleeOrBindAttack)
- Behaviors=(BehaviorName=MoveMeleeOrBindAttack, NodeType=Selector, Child[0]=BindAttack, Child[1]=MoveForBindIfFirstAbility)
- Behaviors=(BehaviorName=BindAttack, NodeType=Sequence, Child[0]=IsAbilityAvailable-Bind, Child[1]=SelectTargetForBind, Child[2]=SelectAbility-Bind)
- Behaviors=(BehaviorName=MoveForBindIfFirstAbility, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=MoveForBindIfFirstAbilityUnsafe)
- Behaviors=(BehaviorName=MoveForBindIfFirstAbilityUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=ResetDestinationSearch, Child[3]=IncludeCiviliansIfTerrorist, Child[4]=FindViperMeleeDestination, Child[5]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindViperMeleeDestination, NodeType=Sequence, Child[0]=SelectPotentialTargetForBind, Child[1]=RestrictToPotentialTargetRange-StandardMelee, Child[2]=FindRestrictedDestination-MWP_Melee)
- Behaviors=(BehaviorName=SelectTargetForBind, NodeType=Sequence, Child[0]=SetTargetStack-Bind, Child[1]=SelectBestTargetForBind, Child[2]=HasValidTarget-Bind)
- Behaviors=(BehaviorName=SelectPotentialTargetForBind, NodeType=Sequence, Child[0]=SetPotentialTargetStack, Child[1]=SelectBestTargetForBind, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SelectBestTargetForBind, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialMeleeTarget)
- Behaviors=(BehaviorName=HasValidTarget-PsiMindControl, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-PsiMindControl, NodeType=Action)
- Behaviors=(BehaviorName=TryPsiMindControl, NodeType=Sequence, Child[0]=IsAbilityAvailable-PsiMindControl, Child[1]=SelectTargetForPsiMindControl, Child[2]=SelectAbility-PsiMindControl)
- Behaviors=(BehaviorName=SelectTargetForPsiMindControl, NodeType=Sequence, Child[0]=SetTargetStack-PsiMindControl, Child[1]=SelectBestTargetForPsiMindControl, Child[2]=HasValidTarget-PsiMindControl)
- Behaviors=(BehaviorName=SelectBestTargetForPsiMindControl, NodeType=RepeatUntilFail, Child[0]=PsiEvaluateTargetsMindControl)
- Behaviors=(BehaviorName=TryMoveForPsiMindControl, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityAvailable-PsiMindControl, Child[2]=SelectTargetForPsiMindControl, Child[3]=MoveStandardIfFirstAbility-PsiMindControl)
- Behaviors=(BehaviorName=TryMoveThenPsiMindControl, NodeType=Selector, Child[0]=TryMoveForPsiMindControl, Child[1]=TryPsiMindControl)
- Behaviors=(BehaviorName=TryDimensionalRift, NodeType=Sequence, Child[0]=IsAbilityAvailable-PsiDimensionalRiftStage1, Child[1]=FindPotentialAoETargets-PsiRiftProfile, Child[2]=SelectAoETarget-PsiRiftProfile, Child[3]=SelectAbility-PsiDimensionalRiftStage1)
- Behaviors=(BehaviorName=TryMoveThenDimensionalRift, NodeType=Selector, Child[0]=TryMoveForDimensionalRift, Child[1]=TryDimensionalRift)
- Behaviors=(BehaviorName=TryMoveForDimensionalRift, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-PsiDimensionalRiftStage1, Child[2]=FindPotentialAoETargets-PsiRiftProfile, Child[3]=MoveStandardIfFirstAbility-PsiDimensionalRiftStage1)
- Behaviors=(BehaviorName=TryNullLance, NodeType=Sequence, Child[0]=IsAbilityAvailable-NullLance, Child[1]=FindPotentialAoETargets-NullLanceValidateProfile, Child[2]=SelectAoETarget-NullLanceValidateProfile, Child[3]=SelectAbility-NullLance)
- Behaviors=(BehaviorName=TryMoveThenNullLance, NodeType=Selector, Child[0]=TryMoveForNullLance, Child[1]=TryNullLance)
- Behaviors=(BehaviorName=TryMoveForNullLance, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-NullLance, Child[2]=NotLastActionPoint, Child[3]=SelectPotentialMeleeTarget, Child[4]=FindPotentialAoETargets-NullLanceProfile, Child[5]=MoveStandardIfFirstAbility-NullLance)
- Behaviors=(BehaviorName=TryTriggerDamagedTeleport, NodeType=Sequence, Child[0]=IsAbilityAvailable-TriggerDamagedTeleport, Child[1]=SelectAbility-TriggerDamagedTeleport)
- Behaviors=(BehaviorName=TryBurrowIfNotOnJob, NodeType=Sequence, Child[0]=DoNotHaveAlwaysOnJob, Child[1]=BurrowIfOutOfView)
- Behaviors=(BehaviorName=TryBurrow, NodeType=Sequence, Child[0]=IsAbilityAvailable-ChryssalidBurrow, Child[1]=SelectAbility-ChryssalidBurrow, Child[2]=SetUnitValue-MeleeChance)
- Behaviors=(BehaviorName=TryUnBurrow, NodeType=Sequence, Child[0]=AffectedByEffect-Burrowed, Child[1]=IsAbilityAvailable-ChryssalidUnburrow, Child[2]=SelectAbility-ChryssalidUnburrow)
- Behaviors=(BehaviorName=TryUnBurrowSuccessor, NodeType=Successor, Child[0]=TryUnBurrow)
- Behaviors=(BehaviorName=ChryssalidBurrowedAttack, NodeType=Selector, Child[0]=TryUnBurrow, Child[1]=TryMeleeAttackPriorityTarget)
- Behaviors=(BehaviorName=TrySpawnChryssalid, NodeType=Sequence, Child[0]=IsAbilityAvailable-SpawnChryssalid, Child[1]=SelectAbility-SpawnChryssalid)
- Behaviors=(BehaviorName=TryFrenzyTrigger, NodeType=Sequence, Child[0]=IsAbilityAvailable-FrenzyTrigger, Child[1]=SelectAbility-FrenzyTrigger)
- Behaviors=(BehaviorName=TryBlazingPinions, NodeType=Sequence, Child[0]=IsAbilityAvailable-BlazingPinionsStage1, Child[1]=FindPotentialAoETargets-BlazingPinionsBasicProfile, Child[2]=SelectAoETarget-BlazingPinionsBasicProfile, Child[3]=SelectAbility-BlazingPinionsStage1)
- Behaviors=(BehaviorName=TryAnimaInversionCorpses, NodeType=Selector, Child[0]=TryAnimaInversionCorpseActivate, Child[1]=TryGatekeeperOpenIfAnimaInversionCorpseReady)
- Behaviors=(BehaviorName=TryAnimaInversionCorpseActivate, NodeType=Sequence, Child[0]=IsAbilityAvailable-AnimaInversion, Child[1]=FindPotentialAoETargets-AnimaInversionCorpseProfile, Child[2]=SelectAoETarget-AnimaInversionCorpseProfile, Child[3]=SelectAbility-AnimaInversion)
- Behaviors=(BehaviorName=TryGatekeeperOpenIfAnimaInversionCorpseReady, NodeType=Sequence, Child[0]=IsAbilityReady-AnimaInversion, Child[1]=FindPotentialAoETargets-AnimaInversionCorpseProfile, Child[2]=SelectAoETarget-AnimaInversionCorpseProfile, Child[3]=TryGatekeeperOpen)
- Behaviors=(BehaviorName=TryMoveThenAnimaInversionCorpse, NodeType=Selector, Child[0]=TryMoveForAnimaInversionCorpse, Child[1]=TryAnimaInversionCorpses)
- Behaviors=(BehaviorName=TryMoveForAnimaInversionCorpse, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-AnimaInversion, Child[2]=FindPotentialAoETargets-AnimaInversionCorpseProfile, Child[3]=MoveStandardIfFirstAbility-AnimaInversion)
- Behaviors=(BehaviorName=TryAnimaInversionMixed, NodeType=Selector, Child[0]=TryAnimaInversionMixedActivate, Child[1]=TryGatekeeperOpenIfAnimaInversionMixedReady)
- Behaviors=(BehaviorName=TryAnimaInversionMixedActivate, NodeType=Sequence, Child[0]=IsAbilityAvailable-AnimaInversion, Child[1]=FindPotentialAoETargets-AnimaInversionMixedProfile, Child[2]=SelectAoETarget-AnimaInversionMixedProfile, Child[3]=SelectAbility-AnimaInversion)
- Behaviors=(BehaviorName=TryGatekeeperOpenIfAnimaInversionMixedReady, NodeType=Sequence, Child[0]=IsAbilityReady-AnimaInversion, Child[1]=FindPotentialAoETargets-AnimaInversionMixedProfile, Child[2]=SelectAoETarget-AnimaInversionMixedProfile, Child[3]=TryGatekeeperOpen)
- Behaviors=(BehaviorName=TryMoveThenAnimaInversionMixed, NodeType=Selector, Child[0]=TryMoveForAnimaInversionMixed, Child[1]=TryAnimaInversionMixed)
- Behaviors=(BehaviorName=TryMoveForAnimaInversionMixed, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-AnimaInversion, Child[2]=FindPotentialAoETargets-AnimaInversionMixedProfile, Child[3]=MoveStandardIfFirstAbility-AnimaInversion)
- Behaviors=(BehaviorName=HasValidTarget-AnimaConsume, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-AnimaConsume, NodeType=Action)
- Behaviors=(BehaviorName=TryAnimaConsumeOnEnemy, NodeType=Sequence, Child[0]=HasWounds, Child[1]=IsAbilityReady-AnimaConsume, Child[2]=AnimaConsumeStepSelectorEnemy)
- Behaviors=(BehaviorName=AnimaConsumeStepSelectorEnemy, NodeType=Selector, Child[0]=AnimaConsumeAttackEnemy, Child[1]=AnimaConsumeAttackEnemyUnopened, Child[2]=MoveMeleeIfFirstAbilityFANATIC)
- Behaviors=(BehaviorName=TryAnimaConsumeOnAlly, NodeType=Sequence, Child[0]=IsBloodied, Child[1]=IsVisibleToPlayer, Child[2]=IsAbilityReady-AnimaConsume, Child[3]=AnimaConsumeStepSelectorAlly)
- Behaviors=(BehaviorName=AnimaConsumeStepSelectorAlly, NodeType=Selector, Child[0]=AnimaConsumeAttackAlly, Child[1]=AnimaConsumeAttackAllyUnopened, Child[2]=MoveToPotentialMeleeIfFirstAbilityFANATIC)
- Behaviors=(BehaviorName=AnimaConsumeNotAvailable, NodeType=Inverter, Child[0]=IsAbilityAvailable-AnimaConsume)
- Behaviors=(BehaviorName=IncludeAlliesAsMeleeTargets, NodeType=Action)
- Behaviors=(BehaviorName=AnimaConsumeAttackEnemy, NodeType=Sequence, Child[0]=IsAbilityAvailable-AnimaConsume, Child[1]=SelectEnemyTargetForAnimaConsume, Child[2]=SelectAbility-AnimaConsume)
- Behaviors=(BehaviorName=AnimaConsumeAttackEnemyUnopened, NodeType=Sequence, Child[0]=AnimaConsumeNotAvailable, Child[1]=SelectPotentialTargetForEnemyAnimaConsume, Child[2]=IsTargetInAttackRange-StandardMelee, Child[3]=TryGatekeeperOpen)
- Behaviors=(BehaviorName=SelectPotentialTargetForEnemyAnimaConsume, NodeType=Sequence, Child[0]=SetPotentialTargetStack, Child[1]=SelectBestEnemyTargetForAnimaConsume, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SelectEnemyTargetForAnimaConsume, NodeType=Sequence, Child[0]=SetTargetStack-AnimaConsume, Child[1]=SelectBestEnemyTargetForAnimaConsume, Child[2]=HasValidTarget-AnimaConsume)
- Behaviors=(BehaviorName=SelectBestEnemyTargetForAnimaConsume, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialMeleeTarget)
- Behaviors=(BehaviorName=AnimaConsumeAttackAlly, NodeType=Sequence, Child[0]=IsAbilityAvailable-AnimaConsume, Child[1]=SelectAllyTargetForAnimaConsume, Child[2]=SelectAbility-AnimaConsume)
- Behaviors=(BehaviorName=AnimaConsumeAttackAllyUnopened, NodeType=Sequence, Child[0]=AnimaConsumeNotAvailable, Child[1]=SelectPotentialTargetForAllyAnimaConsume, Child[2]=IsTargetInAttackRange-StandardMelee, Child[3]=TryGatekeeperOpen)
- Behaviors=(BehaviorName=SelectPotentialTargetForAllyAnimaConsume, NodeType=Sequence, Child[0]=SetPotentialAllyTargetStack, Child[1]=SelectBestAllyTargetForAnimaConsume, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SelectAllyTargetForAnimaConsume, NodeType=Sequence, Child[0]=SetTargetStack-AnimaConsume, Child[1]=SelectBestAllyTargetForAnimaConsume, Child[2]=HasValidTarget-AnimaConsume)
- Behaviors=(BehaviorName=SelectBestAllyTargetForAnimaConsume, NodeType=RepeatUntilFail, Child[0]=EvaluateAllyTargetForAnimaConsume)
- Behaviors=(BehaviorName=EvaluateAllyTargetForAnimaConsume, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreIfAllyWithinRangeAnimaConsume, Child[2]=UpdateBestTarget);
- Behaviors=(BehaviorName=TargetScoreIfAllyWithinRangeAnimaConsume, NodeType=Successor, Child[0]=TargetScoreReachableAllyAnimaConsume)
- Behaviors=(BehaviorName=HasValidTarget-AnimaGate, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-AnimaGate, NodeType=Action)
- Behaviors=(BehaviorName=GateKeeperShootIfAvailable, NodeType=Sequence, Child[0]=IsAbilityAvailable-AnimaGate, Child[1]=SetTargetStack-AnimaGate, Child[2]=SelectTargetForStandardShot, Child[3]=GatekeeperTryShootOrOpen)
- Behaviors=(BehaviorName=GatekeeperTryShootOrOpen, NodeType=Selector, Child[0]=GatekeeperShootIfTarget, Child[1]=TryGatekeeperOpen)
- Behaviors=(BehaviorName=GatekeeperShootIfTarget, NodeType=Sequence, Child[0]=HasValidTarget-AnimaGate, Child[1]=SelectAbility-AnimaGate)
- Behaviors=(BehaviorName=TryGatekeeperOpen, NodeType=Sequence, Child[0]=AffectedByEffect-GatekeeperClosedEffect, Child[1]=IsAbilityAvailable-GatekeeperOpen, Child[2]=SelectAbility-GatekeeperOpen)
- Behaviors=(BehaviorName=TryGatekeeperClose, NodeType=Sequence, Child[0]=IsAbilityAvailable-GatekeeperClose, Child[1]=SelectAbility-GatekeeperClose)
- Behaviors=(BehaviorName=IsOrCanOpen, NodeType=Selector, Child[0]=IsAbilityAvailable-GatekeeperOpen, Child[1]=AffectedByEffect-GatekeeperClosedEffect)
- Behaviors=(BehaviorName=TryRetract, NodeType=Sequence, Child[0]=IsAbilityAvailable-Retract, Child[1]=SelectAbility-Retract)
- Behaviors=(BehaviorName=TryPsiBomb, NodeType=Sequence, Child[0]=IsAbilityAvailable-PsiBombStage1, Child[1]=FindPotentialAoETargets-PsiBombProfile, Child[2]=SelectAoETarget-PsiBombProfile, Child[3]=SelectAbility-PsiBombStage1)
- Behaviors=(BehaviorName=TryTeleportDefensive, NodeType=Sequence, Child[0]=IsAbilityAvailable-Teleport, Child[1]=ResetDestinationSearch, Child[2]=UseDashMovement, Child[3]=FindDestinationWithLoS-MWP_IsoTeleport, Child[4]=SelectAbility-Teleport)
- Behaviors=(BehaviorName=TryTeleportOffensive, NodeType=Sequence, Child[0]=IsAbilityAvailable-Teleport, Child[1]=ResetDestinationSearch, Child[2]=RestrictToFlanking, Child[3]=UseDashMovement, Child[4]=FindDestinationWithLoS-MWP_Teleport, Child[5]=SelectAbility-Teleport)
- Behaviors=(BehaviorName=TryTriggerSuperposition, NodeType=Sequence, Child[0]=IsAbilityAvailable-TriggerSuperposition, Child[1]=SelectAbility-TriggerSuperposition)
- Behaviors=(BehaviorName=SetTargetStack-ScythingClaws, NodeType=Action)
- Behaviors=(BehaviorName=HasValidTarget-ScythingClaws, NodeType=Condition)
- Behaviors=(BehaviorName=TryScythingClaws, NodeType=Sequence, Child[0]=IsAbilityAvailable-ScythingClaws, Child[1]=SelectTargetForScythingClaws, Child[2]=SelectAbility-ScythingClaws)
- Behaviors=(BehaviorName=SelectTargetForScythingClaws, NodeType=Selector, Child[0]=ScythingClaws_HitIdealTarget, Child[1]=ScythingClaws_AnyTargetWillDo)
- Behaviors=(BehaviorName=ScythingClaws_HitIdealTarget, NodeType=Sequence, Child[0]=SelectPotentialMeleeTarget, Child[1]=FindPotentialAoETargets-ScythingClawsPrefTargetProfile, Child[2]=SelectAoETarget-ScythingClawsPrefTargetProfile)
- Behaviors=(BehaviorName=ScythingClaws_AnyTargetWillDo, NodeType=Sequence, Child[0]=FindPotentialAoETargets-ScythingClawsProfile, Child[1]=SelectAoETarget-ScythingClawsProfile)
- Behaviors=(BehaviorName=TryWrathCannon, NodeType=Failer, Child[0]=IsAbilityAvailable-WrathCannon)
- Behaviors=(BehaviorName=TryWrathCannon_TEMPDISABLED, NodeType=Sequence, Child[0]=IsAbilityAvailable-WrathCannon, Child[1]=FindPotentialAoETargets-WrathCannonProfile, Child[2]=SelectAoETarget-WrathCannonProfile, Child[3]=SelectAbility-WrathCannon)
- Behaviors=(BehaviorName=TryWrathCannonS1, NodeType=Sequence, Child[0]=IsAbilityAvailable-WrathCannonStage1, Child[1]=CannonNotCharging, Child[2]=FindPotentialAoETargets-WrathCannonS1Profile, Child[3]=SelectAoETarget-WrathCannonS1Profile, Child[4]=SelectAbility-WrathCannonStage1)
- Behaviors=(BehaviorName=CannonNotCharging, NodeType=Inverter, Child[0]=AffectedByEffect-WrathCannonStage1Effect)
- Behaviors=(BehaviorName=MimicBeaconBehavior, NodeType=Sequence, Child[0]=IsUnitTypeVisible-MimicBeacon, Child[1]=MoveOrAttackMimicBeacon)
- Behaviors=(BehaviorName=IsUnitTypeVisible-MimicBeacon, NodeType=Condition) ; currently this checks LoS to any Mimic Beacons.
- Behaviors=(BehaviorName=MoveOrAttackMimicBeacon, NodeType=Selector, Child[0]=MoveTowardMimicBeaconIfFirstAction, Child[1]="::AttackMimicBeacon", Child[2]="::MoveTowardMimicBeacon"); If attack fails, just try moving closer.
- Behaviors=(BehaviorName=MoveTowardMimicBeaconIfFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]="::MoveTowardMimicBeacon")
- Behaviors=(BehaviorName="::MoveTowardMimicBeacon", NodeType=Selector, Child[0]=TryMeleeMoveTowardMimicBeacon, Child[1]=TryStandardMoveTowardMimicBeacon)
- Behaviors=(BehaviorName=TryStandardMoveTowardMimicBeacon, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=FindDestinationTowardMimicBeacon, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindDestinationTowardMimicBeacon, NodeType=Selector, Child[0]=FindMimicBeaconDestWithStandardShot, Child[1]=FindPotentialMimicBeaconDest); Not all units have a standard shot ability.
- Behaviors=(BehaviorName=FindMimicBeaconDestWithStandardShot, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SelectMimicBeaconTargetForStandardShot, Child[2]=SetTargetAsPriority-StandardShot, Child[3]=RestrictToAbilityRange-StandardShot, Child[4]=FindRestrictedDestination-MWP_MimicBeacon)
- Behaviors=(BehaviorName=FindPotentialMimicBeaconDest, NodeType=Sequence, Child[0]=SelectPotentialMimicBeaconTarget, Child[1]=SetTargetAsPriority-Potential, Child[2]=SelectFindMimicBeaconMeleeOrStandardShot)
- Behaviors=(BehaviorName=SelectFindMimicBeaconMeleeOrStandardShot, NodeType=Selector, Child[0]=IfMeleeFindClosestPointToTarget, Child[1]=FindRestrictedDestination-MWP_MimicBeacon)
- Behaviors=(BehaviorName=IfMeleeFindClosestPointToTarget, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=FindClosestPointToTarget-Potential)
- Behaviors=(BehaviorName=TryMeleeMoveTowardMimicBeacon, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=SelectPotentialMimicBeaconTarget, Child[2]=RestrictToPotentialTargetRange-StandardMelee, Child[3]=FindRestrictedDestination-MWP_MeleeFanatic, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName="::AttackMimicBeacon", NodeType=Selector, Child[0]=TryStandardMeleeOnMimicBeacon, Child[1]=TryStandardShotOnMimicBeacon )
- Behaviors=(BehaviorName=FindClosestPointToTarget-Potential, NodeType=Action)
- Behaviors=(BehaviorName=SetTargetAsPriority-StandardShot, NodeType=Action)
- Behaviors=(BehaviorName=SetTargetAsPriority-Potential, NodeType=Action)
- Behaviors=(BehaviorName=TryStandardShotOnMimicBeacon, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SelectMimicBeaconTargetForStandardShot, Child[2]=SelectAbility-StandardShot)
- Behaviors=(BehaviorName=SelectMimicBeaconTargetForStandardShot, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=SelectMimicBeaconTarget, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=SelectMimicBeaconTarget, NodeType=RepeatUntilFail, Child[0]=EvaluateMimicBeaconTarget)
- Behaviors=(BehaviorName=EvaluateMimicBeaconTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSTargetScoreMimicBeacon, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSTargetScoreMimicBeacon, NodeType=Successor, Child[0]=TargetScoreMimicBeacon)
- Behaviors=(BehaviorName=TargetScoreMimicBeacon, NodeType=Sequence, Child[0]=TargetTemplateNameIs-MimicBeacon, Child[1]=AddToTargetScore_100, Child[2]=MultipleUnitsVisibleOfType-MimicBeacon, Child[3]=IsTargetClosestOfType-MimicBeacon, Child[4]=AddToTargetScore_10)
- Behaviors=(BehaviorName=TargetTemplateNameIs-MimicBeacon, NodeType=Condition)
- Behaviors=(BehaviorName=MultipleUnitsVisibleOfType-MimicBeacon, NodeType=Condition)
- Behaviors=(BehaviorName=IsTargetClosestOfType-MimicBeacon, NodeType=Condition)
- Behaviors=(BehaviorName=SelectPotentialMimicBeaconTarget, NodeType=Sequence, Child[0]=SetVisiblePotentialTargetStack, Child[1]=SelectMimicBeaconTarget, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=TryStandardMeleeOnMimicBeacon, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMelee, Child[1]=SelectMimicBeaconTargetForStandardMelee, Child[2]=SelectAbility-StandardMelee)
- Behaviors=(BehaviorName=SelectMimicBeaconTargetForStandardMelee, NodeType=Sequence, Child[0]=SetTargetStack-StandardMelee, Child[1]=SelectMimicBeaconTarget, Child[2]=HasValidTarget-StandardMelee)
- Behaviors=(BehaviorName=CivRoot, NodeType=Selector, Child[0]=CivCheckTerror, Child[1]=CivCheckChosenRetaliation, Child[2]=CivNormal)
- Behaviors=(BehaviorName=CivCheckTerror, NodeType=Sequence, Child[0]=IsMissionOfType-Terror, Child[1]=CivTerror)
- Behaviors=(BehaviorName=CivCheckChosenRetaliation, NodeType=Sequence, Child[0]=IsMissionOfType-ChosenRetaliation, Child[1]=SkipMove)
- Behaviors=(BehaviorName=CivTerror, NodeType=Selector, Child[0]=CivTerrorAI, Child[1]=SkipMove)
- Behaviors=(BehaviorName=CivTerrorAI, NodeType=Sequence, Child[0]=IsAIInCivilianRadius, Child[1]=FindDestination-MWP_CivilianRed, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=CivNormal, NodeType=Selector, Child[0]=CivHighSupportMove, Child[1]= CivLowSupportMove, Child[2]=SkipMove)
- Behaviors=(BehaviorName=CivHighSupportMove, NodeType=Sequence, Child[0]=HighPopularSupport, Child[1]=FindDestination-MWP_CivilianRed, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=CivLowSupportMove, NodeType=Sequence, Child[0]=LowPopularSupport, Child[1]=FindDestination-MWP_CivilianRed, Child[2]=DoNoiseAlert, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=HostileCivRoot, NodeType=Sequence, Child[0]=DoNoiseAlert, Child[1]=FindDestination-MWP_CivilianRed, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FacelessCivRoot, NodeType=Selector, Child[0]=FacelessCivCheckTerror)
- Behaviors=(BehaviorName=FacelessCivCheckTerror, NodeType=Sequence, Child[0]=IsMissionOfType-Terror, Child[1]=FacelessCivTerror)
- Behaviors=(BehaviorName=FacelessCivTerror, NodeType=Selector, Child[0]=CivTerrorAI, Child[1]=SkipMove)
- Behaviors=(BehaviorName=VIPRoot, NodeType=Selector, Child[0]=VIPCowardRoot, Child[1]=SkipMove))
- Behaviors=(BehaviorName=VIPCowardRoot, NodeType=Selector, Child[0]=PlayerControlledBranch, Child[1]=TryJob, Child[2]=SkipTurnifGreenAlert, Child[3]=VIPCowardRedAlert, Child[4]=GenericAlertHandler)
- Behaviors=(BehaviorName=PlayerControlledBranch, NodeType=Sequence, Child[0]=NotAIControlled, Child[1]=SoldierAutoRunTree)
- Behaviors=(BehaviorName=NotAIControlled, NodeType=Inverter, Child[0]=IsAIControlled)
- Behaviors=(BehaviorName=IsAIControlled, NodeType=Condition)
- Behaviors=(BehaviorName=VIPCowardRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=VIPPickMovement)
- Behaviors=(BehaviorName=VIPPickMovement, NodeType=Selector, Child[0]=IfWounded, Child[1]=MoveBackWithLOSIfFlanked, Child[2]=GenericRedAbilitySelector)
- Behaviors=(BehaviorName=IfWounded, NodeType=Sequence, Child[0]=HasWounds, Child[1]=FallBack)
- Behaviors=(BehaviorName=GenericCowardRoot, NodeType=Selector, Child[0]=GenericGreenMovement, Child[1]=CowardlyIfEnemySpotted, Child[2]=CowardlyIfEnemyNear)
- Behaviors=(BehaviorName=CowardlyIfEnemySpotted, NodeType=Sequence, Child[0]=IsEnemySpotted, Child[1]=TryCowardlyEnemySpottedAction)
- Behaviors=(BehaviorName=TryCowardlyEnemySpottedAction, NodeType=Selector, Child[0]=FallBackWithLoSIfFirstAbility, Child[1]=DoCower)
- Behaviors=(BehaviorName=CowardlyIfEnemyNear, NodeType=Sequence, Child[0]=IsYellowAlert, Child[1]=TryCowardYellowAction)
- Behaviors=(BehaviorName=TryCowardYellowAction, NodeType=Selector, Child[0]=MoveDefensiveIfFirstAbility, Child[1]=DoCower)
- Behaviors=(BehaviorName="::CharacterRoot", NodeType=Selector, Child[0]=DoRedScreenFailure-BTFailure, Child[1]=TryJob, Child[2]=GenericGreenMovement, Child[3]=GenericRedAlert, Child[4]=GenericAlertHandler)
- Behaviors=(BehaviorName=DoRedScreenFailure-BTFailure, NodeType=Action, Param[0]="RedScreen-Error On Behavior Tree! ::CharacterRoot not overridden! @acheng")
- Behaviors=(BehaviorName=DoRedScreenFailure-NotYetImplemented, NodeType=Action, Param[0]="RedScreen-Error On Behavior Tree! Current Node not yet implemented @acheng")
- Behaviors=(BehaviorName=GenericRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=GenericRedAbilitySelector)
- Behaviors=(BehaviorName=GenericRedAbilitySelector, NodeType=Selector, Child[0]=GenericAbilityRoot, Child[1]=GenericRedFirstAction, Child[2]=GenericRedLastAction)
- Behaviors=(BehaviorName=GenericRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=GenericRedFirstActionSelector)
- Behaviors=(BehaviorName=GenericRedFirstActionSelector, NodeType=Selector, Child[0]=DoIfFlankedMove, Child[1]=SelectMoveStandard, Child[2]=TryShootOrReloadOrOverwatch, Child[3]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=GenericRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=GenericRedLastActionSelector)
- Behaviors=(BehaviorName=GenericRedLastActionSelector, NodeType=Selector, Child[0]=TryGrenade, Child[1]=TryShootOrReloadOrOverwatch, Child[2]=TryStandardMelee, Child[3]=HuntEnemyWithCover, Child[4]=SelectMoveStandard)
- Behaviors=(BehaviorName=GenericEnemyRootAGGRESSIVE, NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=GenericRedAlertAGGRESSIVE, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=GenericRedAlertAGGRESSIVE, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=AggressiveRedAbilitySelector)
- Behaviors=(BehaviorName=AggressiveRedAbilitySelector, NodeType=Selector, Child[0]=AggressiveRedFirstAction, Child[1]=AggressiveRedLastAction)
- Behaviors=(BehaviorName=AggressiveRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=AggressiveRedFirstActionSelector)
- Behaviors=(BehaviorName=AggressiveRedFirstActionSelector, NodeType=Selector, Child[0]=AttackIfIdeal, Child[1]=DoIfFlankedMove, Child[2]=SelectMove_JobOrAggressive, Child[3]=TryShootOrReloadOrOverwatch, Child[4]=HuntEnemy)
- Behaviors=(BehaviorName=AggressiveRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=AggressiveRedLastActionSelector)
- Behaviors=(BehaviorName=AggressiveRedLastActionSelector, NodeType=Selector, Child[0]=AttackIfFavorable, Child[1]=TryShootOrReloadOrOverwatch, Child[2]=HuntEnemy, Child[3]=SelectMove_JobOrAggressive)
- Behaviors=(BehaviorName=GenericEnemyNoCover, NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=GenericNoCoverRedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=GenericNoCoverRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=GenericNoCoverRedAbilitySelector)
- Behaviors=(BehaviorName=GenericNoCoverRedAbilitySelector, NodeType=Selector, Child[0]=GenericNoCoverRedFirstAction, Child[1]=GenericNoCoverRedLastAction)
- Behaviors=(BehaviorName=GenericNoCoverRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=GenericNoCoverFirstActionSelector)
- Behaviors=(BehaviorName=GenericNoCoverFirstActionSelector, NodeType=Selector, Child[0]=SelectNCMove_JobOrFanatic, Child[1]=TryShootOrReloadOrOverwatch, Child[2]=HuntEnemy)
- Behaviors=(BehaviorName=GenericNoCoverRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=GenericNoCoverRedLastActionSelector)
- Behaviors=(BehaviorName=GenericNoCoverRedLastActionSelector, NodeType=Selector, Child[0]=TryGrenade, Child[1]=TryShootOrReloadOrOverwatch, Child[2]=HuntEnemy, Child[3]=SelectNCMove_JobOrFanatic)
- Behaviors=(BehaviorName=GenericEnemyMeleeRoot, NodeType=Selector, Child[0]=TryJobUnsafe, Child[1]=GenericGreenMovement, Child[2]=GenericMeleeRedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=GenericMeleeRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=GenericMeleeRedAbilitySelector)
- Behaviors=(BehaviorName=GenericMeleeRedAbilitySelector, NodeType=Selector, Child[0]=MeleeRedFirstAction, Child[1]=MeleeRedLastAction)
- Behaviors=(BehaviorName=MeleeRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MeleeRedFirstActionSelector)
- Behaviors=(BehaviorName=MeleeRedFirstActionSelector, NodeType=Selector, Child[0]=TryStandardMeleeUnsafe, Child[1]=DoIfFlankedMove, Child[2]=SelectUnsafeMove_JobOrMelee, Child[3]=TryMoveThenGrenade, Child[4]=TryShootOrReloadOrOverwatch, Child[5]=HuntEnemyUnsafe)
- Behaviors=(BehaviorName=MeleeRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=MeleeRedLastActionSelector)
- Behaviors=(BehaviorName=MeleeRedLastActionSelector, NodeType=Selector, Child[0]=TryStandardMeleeUnsafe, Child[1]=TryGrenade, Child[2]=TryShootOrReloadOrOverwatch, Child[3]=HuntEnemyUnsafe, Child[4]=SelectUnsafeMove_JobOrMelee)
- Behaviors=(BehaviorName=GenericEnemyMeleeRootFANATIC, NodeType=Selector, Child[0]=TryJobUnsafe, Child[1]=GenericGreenMovement, Child[2]=GenericMeleeRedAlertFANATIC, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=GenericMeleeRedAlertFANATIC, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=GenericMeleeFANATICRedAbilitySelector)
- Behaviors=(BehaviorName=GenericMeleeFANATICRedAbilitySelector, NodeType=Selector, Child[0]=TryStandardMeleeUnsafe, Child[1]=MoveMeleeFANATICUnsafe, Child[2]=TryShootOrReloadOrOverwatch, Child[3]=HuntEnemyUnsafe)
- Behaviors=(BehaviorName=MindControlledRoot, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=MindControlledMove, Child[2]=MCTryGrenadeOption, Child[3]=GenericAbilityRoot, Child[4]=TryStandardMeleeUnsafe, Child[5]=ShootIfAvailable, Child[6]=NeedsReload, Child[7]=TryOverwatch, Child[8]=SkipMove)
- Behaviors=(BehaviorName=MindControlledMove, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=ResetDestinationSearch, Child[3]=IgnoreHazards, Child[4]=SetNoCoverMovement, Child[5]=FindDestination-MWP_Fanatic, Child[6]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MCTryGrenadeOption, NodeType=Sequence, Child[0]=IsAbilityAvailable-ThrowGrenade, Child[1]=DoesGrenadeCauseDamage, Child[2]=FindPotentialAoETargets-GrenadeMindControlledProfile, Child[3]=MCSetUpAndSelectGrenade)
- Behaviors=(BehaviorName=MCSetUpAndSelectGrenade, NodeType=Sequence, Child[0]=SelectAoETarget-GrenadeMindControlledProfile, Child[1]=SelectAbility-ThrowGrenade)
- Behaviors=(BehaviorName=PanickedRoot, NodeType=Selector, Child[0]=Panicked_FirstAction, Child[1]=Panicked_LastAction, Child[2]=SkipMove)
- Behaviors=(BehaviorName=Panicked_FirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=Panicked_FirstAction_Selector);
- Behaviors=(BehaviorName=Panicked_FirstAction_Selector, NodeType=Selector, Child[0]=PanickedMove, Child[1]=PanickedAction, Child[2]=SkipMove)
- Behaviors=(BehaviorName=Panicked_LastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=Panicked_LastAction_Selector)
- Behaviors=(BehaviorName=Panicked_LastAction_Selector, NodeType=Selector, Child[0]=PanickedAction, Child[1]=PanickedMove, Child[2]=SkipMove)
- Behaviors=(BehaviorName=PanickedMove, NodeType=Selector, Child[0]=PanickedFallBackUnsafe, Child[1]=MoveDefensiveWithLoSUnsafe, Child[2]=MoveDefensiveUnsafe)
- Behaviors=(BehaviorName=PanickedAction, NodeType=RandSelector, Child[0]=ShootRandomEnemyForPanic, Param[0]=5, Child[1]=TryPanickedGrenadeToss, Param[1]=1, Child[2]=DoCower, Param[2]=2)
- Behaviors=(BehaviorName=ShootRandomEnemyForPanic, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SelectRandomEnemyForPanic, Child[2]=SelectAbility-StandardShot)
- Behaviors=(BehaviorName=SelectRandomEnemyForPanic, NodeType=Selector, Child[0]=IfTeamXComSelectAnyRandomEnemy, Child[1]=IfNotTeamXComSelectRandomTeammateTarget)
- Behaviors=(BehaviorName=IfTeamXComSelectAnyRandomEnemy, NodeType=Sequence, Child[0]=IsTeam-eTeam_XCom, Child[1]=SelectRandomEnemyTarget);Child[1]=SelectAnyRandomTarget)
- Behaviors=(BehaviorName=IfNotTeamXComSelectRandomTeammateTarget, NodeType=Sequence, Child[0]=NotTeamXCom, Child[1]=SelectRandomTeammateTarget)
- Behaviors=(BehaviorName=IsTeam-eTeam_XCom, NodeType=Condition)
- Behaviors=(BehaviorName=NotTeamXCom, NodeType=Inverter, Child[0]=IsTeam-eTeam_XCom)
- Behaviors=(BehaviorName=IsTargetTeam-eTeam_Resistance, NodeType=Condition)
- Behaviors=(BehaviorName=TargetNotTeamResistance, NodeType=Inverter, Child[0]=IsTargetTeam-eTeam_Resistance)
- Behaviors=(BehaviorName=SelectRandomEnemyTarget, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=SelectEnemyTargetRandomly, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=SelectEnemyTargetRandomly, NodeType=RepeatUntilFail, Child[0]=EvaluateEnemyTargetRandomly)
- Behaviors=(BehaviorName=EvaluateEnemyTargetRandomly, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreEnemyTargetRandomly, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreEnemyTargetRandomly, NodeType=Successor, Child[0]=ScoreEnemyTargetRandomly)
- Behaviors=(BehaviorName=ScoreEnemyTargetRandomly, NodeType=Sequence, Child[0]=TargetIsEnemy, Child[1]=GenericScoreTargetRandomlySequence)
- Behaviors=(BehaviorName=SelectRandomTeammateTarget, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=SelectTeammateTargetRandomly, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=SelectTeammateTargetRandomly, NodeType=RepeatUntilFail, Child[0]=EvaluateTeammateTargetRandomly)
- Behaviors=(BehaviorName=EvaluateTeammateTargetRandomly, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreTeammateTargetRandomly, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreTeammateTargetRandomly, NodeType=Successor, Child[0]=ScoreTeammateTargetRandomly)
- Behaviors=(BehaviorName=ScoreTeammateTargetRandomly, NodeType=Sequence, Child[0]=TargetIsAlly, Child[1]=GenericScoreTargetRandomlySequence)
- Behaviors=(BehaviorName=PanickedFallBackUnsafe, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=FindFriendlyFallbackDestination, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=SelectEnemyTargetRandomly_NonCivilianOrVIP, NodeType=RepeatUntilFail, Child[0]=EvaluateEnemyTargetRandomly_NonCivilianOrVIP)
- Behaviors=(BehaviorName=EvaluateEnemyTargetRandomly_NonCivilianOrVIP, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreEnemyTargetRandomly_NonCivilianOrVIP, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreEnemyTargetRandomly_NonCivilianOrVIP, NodeType=Successor, Child[0]=ScoreEnemyTargetRandomly_NonCivilianOrVIP)
- Behaviors=(BehaviorName=ScoreEnemyTargetRandomly_NonCivilianOrVIP, NodeType=Sequence, Child[0]=TargetIsEnemy, Child[1]=TargetIsNotCivilian, Child[2]=TargetNotTeamResistance, Child[3]=TargetIsNotEnemyVIP, Child[4]=GenericScoreTargetRandomly)
- Behaviors=(BehaviorName=GenericScamperRoot, NodeType=Selector, Child[0]=CounterBeaglerushManeuver, Child[1]=MoveStandardWithLoSUnsafe, Child[2]=MoveStandardUnsafe, Child[3]=SkipMove)
- Behaviors=(BehaviorName=ScamperRoot_Soldier, NodeType=Selector, Child[0]=CounterBeaglerushManeuver, Child[1]=MoveDefensiveWithLoSUnsafe, Child[2]=MoveStandardUnsafe, Child[3]=SkipMove)
- Behaviors=(BehaviorName=ScamperRoot_Flanker, NodeType=Selector, Child[0]=CounterBeaglerushManeuver, Child[1]=MoveFlankingUnsafe, Child[2]=MoveStandardWithLoSUnsafe, Child[3]=MoveStandardUnsafe, Child[4]=SkipMove)
- Behaviors=(BehaviorName=ScamperRoot_NoCover, NodeType=Selector, Child[0]=CounterBeaglerushManeuver, Child[1]=MoveNoCoverUnsafe, Child[2]=SkipMove)
- Behaviors=(BehaviorName=ScamperRoot_Overwatch, NodeType=Selector, Child[0]=CounterBeaglerushManeuver, Child[1]=OverwatchIfTargetAvailable, Child[2]=MoveNoCoverUnsafe, Child[3]=SkipMove)
- Behaviors=(BehaviorName=ScamperRoot_MeleeNoCover, NodeType=Selector, Child[0]=CounterBeaglerushManeuver, Child[1]=MoveMeleeFANATICUnsafe, Child[2]=MoveNoCoverUnsafe, Child[3]=SkipMove)
- Behaviors=(BehaviorName=ScamperRoot_NoShotChance, NodeType=Selector, Child[0]=MoveDefensiveWithLoSUnsafe, Child[1]=MoveStandardUnsafe, Child[2]=SkipMove)
- Behaviors=(BehaviorName=CounterBeaglerushManeuver, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SelectFlankedEnemyTarget, Child[2]=ShootTargetChance50)
- Behaviors=(BehaviorName=SelectFlankedEnemyTarget, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=EvaluateFlankedEnemyTargets, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=EvaluateFlankedEnemyTargets, NodeType=RepeatUntilFail, Child[0]=EvaluateFlankedEnemies)
- Behaviors=(BehaviorName=EvaluateFlankedEnemies, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreFlankedEnemy, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreFlankedEnemy, NodeType=Successor, Child[0]=ScoreFlankedEnemy)
- Behaviors=(BehaviorName=IsActiveTeam-eTeam_XCom, NodeType=Condition)
- Behaviors=(BehaviorName=NotActiveTeamXCom, NodeType=Inverter, Child[0]=IsActiveTeam-eTeam_XCom)
- Behaviors=(BehaviorName=ScoreFlankedEnemy, NodeType=Sequence, Child[0]=IsTargetScamperInstigator, Child[1]=WasTargetPreviouslyConcealed, Child[2]=NotActiveTeamXCom, Child[3]=IsFlankingTarget, Child[4]=TargetIsEnemy, Child[5]=TargetNotMindControlled, Child[6]=TargetNotBoundOrPanicked, Child[7]=GenericTargetEvaluations)
- Behaviors=(BehaviorName=TargetNotMindControlled, NodeType=Inverter, Child[0]=TargetAffectedByEffect-MindControl)
- Behaviors=(BehaviorName=TargetNotBoundOrPanicked, NodeType=Inverter, Child[0]=IsLastResortTarget)
- Behaviors=(BehaviorName=TargetAffectedByEffect-MindControl, NodeType=Condition)
- Behaviors=(BehaviorName=IsTargetScamperInstigator, NodeType=Condition)
- Behaviors=(BehaviorName=WasTargetPreviouslyConcealed, NodeType=Condition)
- Behaviors=(BehaviorName=ShootTargetChance50, NodeType=RandFilter, Child[0]=SelectAbility-StandardShot, Param[0]=50)
- Behaviors=(BehaviorName="AdventTrooper::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=AdvTrooper_RedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=AdvTrooper_RedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=AdvTrooper_RedAbilitySelector)
- Behaviors=(BehaviorName=AdvTrooper_RedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=DarkEventPriorityMoveThenGrenade, Child[2]=AdventRedFirstAction, Child[3]=AdventRedLastAction)
- Behaviors=(BehaviorName=AdventRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=AdventRedFirstActionSelector)
- Behaviors=(BehaviorName=AdventRedFirstActionSelector, NodeType=Selector, Child[0]=DoIfFlankedMove, Child[1]=SelectMove_JobOrAggressive, Child[2]=TryMoveThenGrenade, Child[3]=TryShootOrReloadOrOverwatch, Child[4]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=AdventRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=AdventRedLastActionSelector)
- Behaviors=(BehaviorName=AdventRedLastActionSelector, NodeType=Selector, Child[0]=TryGrenade, Child[1]=TryShootOrReloadOrOverwatch, Child[2]=HuntEnemyWithCover, Child[3]=SelectMove_JobOrAggressive)
- Behaviors=(BehaviorName=DarkEventPriorityMoveThenGrenade, NodeType=Sequence, Child[0]=DarkEventActive-DarkEvent_CollateralDamage, Child[1]=IsAbilityReady-ThrowGrenade, Child[2]=CheckCollateralDamageVar, Child[3]=TryMoveThenGrenadeAny)
- Behaviors=(BehaviorName=DarkEventActive-DarkEvent_CollateralDamage, NodeType=Condition)
- Behaviors=(BehaviorName=CheckCollateralDamageVar, NodeType=Sequence, Child[0]=InitSetCollateralDamageVar, Child[1]=ShouldUseCollateralDamage)
- Behaviors=(BehaviorName=ShouldUseCollateralDamage, NodeType=StatCondition, Param[0]=BTVar, Param[1]="!=", Param[2]="0", Param[3]="ShouldUseCollateralDamage")
- Behaviors=(BehaviorName=InitSetCollateralDamageVar, NodeType=Selector, Child[0]=HasBTVar-ShouldUseCollateralDamage, Child[1]=UpdateShouldUseCollateralDamageVar)
- Behaviors=(BehaviorName=HasBTVar-ShouldUseCollateralDamage, NodeType=Condition)
- Behaviors=(BehaviorName=UpdateShouldUseCollateralDamageVar, NodeType=RandSelector, Child[0]=SetShouldUseCollateralDamageTrue, Param[0]=50, Child[1]=SetShouldUseCollateralDamageFalse, Param[1]=50)
- Behaviors=(BehaviorName=SetShouldUseCollateralDamageTrue, NodeType=Action, Param[0]=SetBTVar, Param[1]="ShouldUseCollateralDamage", Param[2]="1")
- Behaviors=(BehaviorName=SetShouldUseCollateralDamageFalse, NodeType=Action, Param[0]=SetBTVar, Param[1]="ShouldUseCollateralDamage", Param[2]="0")
- Behaviors=(BehaviorName="AdventCaptain::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=AdvCaptain_RedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=AdvCaptain_RedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=AdvCaptain_RedAbilitySelector)
- Behaviors=(BehaviorName=AdvCaptain_RedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=AdvCaptain_RedFirstAction, Child[2]=AdvCaptain_RedLastAction)
- Behaviors=(BehaviorName=AdvCaptain_RedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=AdvCaptain_RedFirstActionSelector)
- Behaviors=(BehaviorName=AdvCaptain_RedFirstActionSelector, NodeType=Selector, Child[0]=DoIfFlankedMove, Child[1]=TryMarkTargetOption, Child[2]=SelectMove_JobOrDefensive, Child[3]=AdvCaptainTryMoveThenGrenade, Child[4]=TryShootOrReloadOrOverwatch, Child[5]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=AdvCaptain_RedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=AdvCaptain_RedLastActionSelector)
- Behaviors=(BehaviorName=AdvCaptain_RedLastActionSelector, NodeType=Selector, Child[0]=TryMarkTargetOption, Child[1]=AdvCaptainTryGrenade, Child[2]=TryShootOrReloadOrOverwatch, Child[3]=HuntEnemyWithCover, Child[4]=SelectMove_JobOrDefensive)
- Behaviors=(BehaviorName=AdvCaptainTryMoveThenGrenade, NodeType=Sequence, Child[0]=IsAdvCaptainQualifiedForGrenade, Child[1]=TryMoveThenGrenade)
- Behaviors=(BehaviorName=AdvCaptainTryGrenade, NodeType=Sequence, Child[0]=IsAdvCaptainQualifiedForGrenade, Child[1]=TryGrenade)
- Behaviors=(BehaviorName=IsAdvCaptainQualifiedForGrenade, NodeType=Selector, Child[0]=NotAdvCaptainM1, Child[1]=IsDifficultyAboveNormal)
- Behaviors=(BehaviorName=NotAdvCaptainM1, NodeType=Inverter, Child[0]=TemplateNameIs-AdvCaptainM1)
- Behaviors=(BehaviorName=TemplateNameIs-AdvCaptainM1, NodeType=Condition)
- Behaviors=(BehaviorName="SpectralStunLancer::CharacterRoot", NodeType=Selector, Child[0]=RestrictToOneMoveIfJustSpawned, Child[1]=MimicBeaconBehavior, Child[2]=TryStunLanceIfNotJustSpawned, Child[3]=MoveMeleeUnsafe, Child[4]=HuntEnemyWithCover, Child[5]=SelectHeatSeekMove)
- Behaviors=(BehaviorName=TryStunLanceIfNotJustSpawned, NodeType=Sequence, Child[0]=NotJustSpawnedThisTurn, Child[1]=TryStunLance)
- Behaviors=(BehaviorName=RestrictToOneMoveIfJustSpawned, NodeType=Sequence, Child[0]=JustSpawnedThisTurn, Child[1]=IsLastActionPoint, Child[2]=SkipMove)
- Behaviors=(BehaviorName="AdventStunLancer::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=AdventSL_RedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=AdventSL_RedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=AdventSL_RedAbilitySelector)
- Behaviors=(BehaviorName=AdventSL_RedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=AdventSLFirstAction, Child[2]=AdventSLLastAction)
- Behaviors=(BehaviorName=AdventSLFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=AdventSLFirstActionSelector)
- Behaviors=(BehaviorName=AdventSLFirstActionSelector, NodeType=Selector, Child[0]=TryStunLance, Child[1]=DoIfFlankedMove, Child[2]=SelectMove_JobOrMelee, Child[3]=TryMoveThenGrenade, Child[4]=TryShootOrReloadOrOverwatch, Child[5]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=AdventSLLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=AdventSLLastActionSelector)
- Behaviors=(BehaviorName=AdventSLLastActionSelector, NodeType=Selector, Child[0]=TryStunLance, Child[1]=TryBendingReedPostStunLance, Child[2]=TryGrenade, Child[3]=TryShootOrReloadOrOverwatch, Child[4]=HuntEnemyWithCover, Child[5]=SelectMove_JobOrMelee)
- Behaviors=(BehaviorName=TryBendingReedPostStunLance, NodeType=Sequence, Child[0]=WasLastAbility-StunLance, Child[1]=TryBendingReedMovement)
- Behaviors=(BehaviorName=WasLastAbility-StunLance, NodeType=Condition)
- Behaviors=(BehaviorName="AdventShieldBearer::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=AdvShieldBearer_RedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=AdvShieldBearer_RedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=AdvShieldBearer_RedAbilitySelector)
- Behaviors=(BehaviorName=AdvShieldBearer_RedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=ShieldBearerFirstAction, Child[2]=ShieldBearerLastAction)
- Behaviors=(BehaviorName=ShieldBearerFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=ShieldBearerFirstActionSelector)
- Behaviors=(BehaviorName=ShieldBearerFirstActionSelector, NodeType=Selector, Child[0]=TryMoveForEnergyShield, Child[1]=TryEnergyShieldOnMultipleTargets, Child[2]=DoIfFlankedMove, Child[3]=SelectMove_JobOrDefensive, Child[4]=HuntEnemyWithCover, Child[5]=TryShootOrReloadOrOverwatch)
- Behaviors=(BehaviorName=TryMoveForEnergyShield, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-EnergyShield, Child[2]=NotLastActionPoint, Child[3]=MoveStandardIfFirstAbility-EnergyShield)
- Behaviors=(BehaviorName=ShieldBearerLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=ShieldBearerLastActionSelector)
- Behaviors=(BehaviorName=ShieldBearerLastActionSelector, NodeType=Selector, Child[0]=TryEnergyShieldOnAnyTarget, Child[1]=TryShootOrReloadOrOverwatch, Child[2]=HuntEnemyWithCover, Child[3]=SelectMove_JobOrDefensive)
- Behaviors=(BehaviorName="AdventMEC::CharacterRoot", NodeType=Selector, Child[0]=MecMk1Branch, Child[1]=AdvMECMk2_Root)
- Behaviors=(BehaviorName=MecMk1Branch, NodeType=Sequence, Child[0]=TemplateNameIs-AdvMEC_M1, Child[1]=AdvMEC_Root)
- Behaviors=(BehaviorName=TemplateNameIs-AdvMEC_M1, NodeType=Condition)
- Behaviors=(BehaviorName=AdvMEC_Root, NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=MECRedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=MECRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=MECRedAbilitySelector)
- Behaviors=(BehaviorName=MECRedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=MECRedFirstAction, Child[2]=MECRedLastAction)
- Behaviors=(BehaviorName=MECRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MECFirstActionSelector)
- Behaviors=(BehaviorName=MECFirstActionSelector, NodeType=Selector, Child[0]=TryMoveThenMicroMissiles, Child[1]=SelectNCMove_JobOrFanatic, Child[2]=HuntEnemy, Child[3]=TryShootOrReloadOrOverwatch)
- Behaviors=(BehaviorName=MECRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=MECRedLastActionSelector)
- Behaviors=(BehaviorName=MECRedLastActionSelector, NodeType=Selector, Child[0]=TryMicroMissiles, Child[1]=ShootOrSuppressIfNoGoodShot, Child[2]=HuntEnemy, Child[3]=SelectNCMove_JobOrFanatic, Child[4]=TryShootOrReloadOrOverwatch)
- Behaviors=(BehaviorName=AdvMECMk2_Root, NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=MECMk2RedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=MECMk2RedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=MECMk2RedAbilitySelector)
- Behaviors=(BehaviorName=MECMk2RedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=MECMk2RedFirstAction, Child[2]=MECMk2RedLastAction)
- Behaviors=(BehaviorName=MECMk2RedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MECMk2FirstActionSelector)
- Behaviors=(BehaviorName=MECMk2FirstActionSelector, NodeType=Selector, Child[0]=TryMoveThenMicroMissilesMk2, Child[1]=SelectNCMove_JobOrFanatic, Child[2]=HuntEnemy, Child[3]=TryShootOrReloadOrOverwatch)
- Behaviors=(BehaviorName=MECMk2RedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=MECMk2RedLastActionSelector)
- Behaviors=(BehaviorName=MECMk2RedLastActionSelector, NodeType=Selector, Child[0]=TryMicroMissilesMk2, Child[1]=ShootOrSuppressIfNoGoodShot, Child[2]=HuntEnemy, Child[3]=SelectNCMove_JobOrFanatic, Child[4]=TryShootOrReloadOrOverwatch)
- Behaviors=(BehaviorName="AdventPsiWitch::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=PsiWitchRedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=PsiWitchRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=PsiWitchRedAbilitySelector)
- Behaviors=(BehaviorName=PsiWitchRedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=PsiWitchRedFirstAction, Child[2]=PsiWitchRedLastAction)
- Behaviors=(BehaviorName=PsiWitchRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=PsiWitchRedFirstActionSelector)
- Behaviors=(BehaviorName=PsiWitchRedFirstActionSelector, NodeType=Selector, Child[0]=TryMoveThenPsiMindControl, Child[1]=TryMoveThenDimensionalRift, Child[2]=TryMoveThenNullLance, Child[3]=DoIfFlankedMove, Child[4]=SelectMoveStandard, Child[5]=PsiWitchAttackSequencer, Child[6]=HuntEnemyWithCover, Child[7]=TryShootOrReloadOrOverwatch)
- Behaviors=(BehaviorName=PsiWitchRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=PsiWitchRedLastActionSelector)
- Behaviors=(BehaviorName=PsiWitchRedLastActionSelector, NodeType=Selector, Child[0]=PsiWitchAttackSequencer, Child[1]=SelectMoveStandard, Child[2]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=PsiWitchAttackSequencer, NodeType=Selector, Child[0]=TryPsiMindControl, Child[1]=TryDimensionalRift, Child[2]=TryNullLance, Child[3]=TryShootOrReloadOrOverwatch)
- Behaviors=(BehaviorName="AdventTurret::CharacterRoot", NodeType=Selector, Child[0]=Turret_RedAlert, Child[1]=SkipMove) ; , Child[1]=TryOverwatch)
- Behaviors=(BehaviorName=Turret_RedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=TurretRedAbilitySelector)
- Behaviors=(BehaviorName=TurretRedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=TurretRedFirstActionSelector, Child[2]=ConsiderTakingOverwatch)
- Behaviors=(BehaviorName=TurretRedFirstActionSelector, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=Turret_TryShootOrReload)
- Behaviors=(BehaviorName=Turret_TryShootOrReload, NodeType=Selector, Child[0]=Turret_ShootIfAvailable, Child[1]=NeedsReload)
- Behaviors=(BehaviorName=Turret_ShootIfAvailable, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=Turret_SelectTargetForStandardShot, Child[2]=SelectAbility-StandardShot)
- Behaviors=(BehaviorName=Turret_SelectTargetForStandardShot, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=TurretSelectBestTarget, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=TurretSelectBestTarget, NodeType=RepeatUntilFail, Child[0]=TurretEvaluateTarget)
- Behaviors=(BehaviorName=TurretEvaluateTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreHitChance, Child[2]=GenericScoreTargetRandomly, Child[3]=TargetScoreInvalidateCivilians, Child[4]=TargetScoreInvalidatePriorityObject, Child[5]=UpdateBestTarget)
- Behaviors=(BehaviorName=TargetScoreInvalidatePriorityObject, NodeType=Successor, Child[0]=ScoreTargetOutIfPriorityObject)
- Behaviors=(BehaviorName=ScoreTargetOutIfPriorityObject, NodeType=Sequence, Child[0]=TargetIsPriorityObject, Child[1]=AddToTargetScore_-1000)
- Behaviors=(BehaviorName="Andromedon::CharacterRoot", NodeType=Selector, Child[0]=AndromedonRobotBranch, Child[1]=AndromedonRoot)
- Behaviors=(BehaviorName=AndromedonRobotBranch, NodeType=Sequence, Child[0]=TemplateNameIs-AndromedonRobot, Child[1]=AndromedonRobotRoot)
- Behaviors=(BehaviorName=TemplateNameIs-AndromedonRobot, NodeType=Condition)
- Behaviors=(BehaviorName=AndromedonRoot, NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=AndromedonRedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=AndromedonRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=AndromedonRedAbilitySelector)
- Behaviors=(BehaviorName=AndromedonRedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=AndromedonRedFirstAction, Child[2]=AndromedonRedLastAction)
- Behaviors=(BehaviorName=AndromedonRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=AndromedonRedFirstActionSelector)
- Behaviors=(BehaviorName=AndromedonRedFirstActionSelector, NodeType=Selector, Child[0]=TryStandardMelee, Child[1]=TryMoveThenAcidBlob, Child[2]=DoIfFlankedMove, Child[3]=SelectMoveStandard, Child[4]=TryShootOrReloadOrOverwatch, Child[5]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=AndromedonRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=AndromedonRedLastActionSelector)
- Behaviors=(BehaviorName=AndromedonRedLastActionSelector, NodeType=Selector, Child[0]=TryStandardMelee, Child[1]=TryAcidBlob, Child[2]=TryShootOrReloadOrOverwatch, Child[3]=HuntEnemyWithCover, Child[4]=SelectMoveStandard)
- Behaviors=(BehaviorName="AndromedonRobot::CharacterRoot", NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=GenericEnemyMeleeRootFANATIC)
- Behaviors=(BehaviorName=AndromedonRobotRoot, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=GenericEnemyMeleeRootFANATIC)
- Behaviors=(BehaviorName="Archon::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=ArchonRedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=ArchonRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=ArchonRedAbilitySelector)
- Behaviors=(BehaviorName=ArchonRedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=ArchonRedFirstAction, Child[2]=ArchonRedLastAction)
- Behaviors=(BehaviorName=ArchonRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=ArchonFirstActionSelector)
- Behaviors=(BehaviorName=ArchonFirstActionSelector, NodeType=Selector, Child[0]=TryFrenziedMoveAndAttack, Child[1]=TryMoveThenBlazingPinions, Child[2]=TryStandardMelee, Child[3]=DoIfFlankedMove, Child[4]=SelectMoveStandard, Child[5]=TryShootOrReloadOrOverwatch, Child[6]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=TryMoveThenBlazingPinions, NodeType=Selector, Child[0]=TryMoveForBlazingPinions, Child[1]=TryBlazingPinions)
- Behaviors=(BehaviorName=TryMoveForBlazingPinions, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-BlazingPinionsStage1, Child[2]=FindPotentialAoETargets-BlazingPinionsBasicProfile, Child[3]=MoveStandardIfFirstAbility-BlazingPinions)
- Behaviors=(BehaviorName=ArchonRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=ArchonRedLastActionSelector)
- Behaviors=(BehaviorName=ArchonRedLastActionSelector, NodeType=Selector, Child[0]=TryFrenziedAttack, Child[1]=TryBlazingPinions, Child[2]=TryStandardMelee, Child[3]=TryShootOrReloadOrOverwatch, Child[4]=HuntEnemy, Child[5]=SelectMoveStandard)
- Behaviors=(BehaviorName=TryFrenziedAttack, NodeType=Sequence, Child[0]=AffectedByEffect-FrenzyEffect, Child[1]=TryStandardMelee)
- Behaviors=(BehaviorName=TryFrenziedMoveAndAttack, NodeType=Sequence, Child[0]=AffectedByEffect-FrenzyEffect, Child[1]=TryAttackOrDashAndAttack)
- Behaviors=(BehaviorName=TryAttackOrDashAndAttack, NodeType=Selector, Child[0]=TryStandardMelee, Child[1]=TryStandardMeleeDashFANATICUnsafe)
- Behaviors=(BehaviorName="Berserker::CharacterRoot", NodeType=Selector, Child[0]=TryJobUnsafe, Child[1]=GenericGreenMovement, Child[2]=BerserkerMeleeRedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=BerserkerMeleeRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=Berserker_RedAbilitySelector)
- Behaviors=(BehaviorName=Berserker_RedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=BerserkerRedFirstAction, Child[2]=BerserkerRedLastAction);
- Behaviors=(BehaviorName=BerserkerRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=BerserkerRedFirstActionSelector)
- Behaviors=(BehaviorName=BerserkerRedFirstActionSelector, NodeType=Selector, Child[0]=TryBerserkerMelee, Child[1]=MoveMeleeDashFANATICUnsafe, Child[2]=HuntEnemyUnsafe)
- Behaviors=(BehaviorName=BerserkerRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=BerserkerRedLastActionSelector)
- Behaviors=(BehaviorName=BerserkerRedLastActionSelector, NodeType=Selector, Child[0]=TryBerserkerMelee, Child[1]=MoveMeleeDashFANATICUnsafe, Child[2]=HuntEnemyUnsafe)
- Behaviors=(BehaviorName="Chryssalid::CharacterRoot", NodeType=Selector, Child[0]=ChryssalidCocoonBranch, Child[1]=ChryssalidRoot)
- Behaviors=(BehaviorName=ChryssalidCocoonBranch, NodeType=Sequence, Child[0]=IsChryssalidCocoon, Child[1]=CocoonRoot)
- Behaviors=(BehaviorName=IsChryssalidCocoon, NodeType=Selector, Child[0]=TemplateNameIs-ChryssalidCocoon, Child[1]=TemplateNameIs-ChryssalidCocoonHuman)
- Behaviors=(BehaviorName=TemplateNameIs-ChryssalidCocoon, NodeType=Condition)
- Behaviors=(BehaviorName=TemplateNameIs-ChryssalidCocoonHuman, NodeType=Condition)
- Behaviors=(BehaviorName=ChryssalidRoot, NodeType=Selector, Child[0]=ChryssalidHeatSeekProtocol, Child[1]=SkipIfBurrowed, Child[2]=TryJobTerrorist, Child[3]=TryJobChargerUnsafe, Child[4]=ChryssalidGreenAlert, Child[5]=ChryssalidRedAlert, Child[6]=ChryssalidYellowAlert)
- Behaviors=(BehaviorName=ChryssalidRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=ChryssalidRedAbilitySelector)
- Behaviors=(BehaviorName=ChryssalidRedAbilitySelector, NodeType=Selector, Child[0]=TryJobUnsafe, Child[1]=MimicBeaconBehavior, Child[2]=ChryssalidRedActionSelector)
- Behaviors=(BehaviorName=ChryssalidRedActionSelector, NodeType=Selector, Child[0]=TryMelee66, Child[1]=TryRunAndBurrow33)
- Behaviors=(BehaviorName=TryMelee66, NodeType=Sequence, Child[0]=SSSetMeleeValueIfUnset, Child[1]=CheckMeleeUnder67, Child[2]=ChryssalidMeleeSelector)
- Behaviors=(BehaviorName=SSSetMeleeValueIfUnset, NodeType=Successor, Child[0]=SetMeleeValueIfUnset)
- Behaviors=(BehaviorName=SetMeleeValueIfUnset, NodeType=Sequence, Child[0]=MeleeValueUnset, Child[1]=SetMeleeValue)
- Behaviors=(BehaviorName=MeleeValueUnset, NodeType=Inverter, Child[0]=HasUnitValue-MeleeChance)
- Behaviors=(BehaviorName=HasUnitValue-MeleeChance, NodeType=Condition)
- Behaviors=(BehaviorName=SetMeleeValue, NodeType=Selector, Child[0]=DisableBurrowChanceIfIneligible, Child[1]=SetRandUnitValue-MeleeChance)
- Behaviors=(BehaviorName=DisableBurrowChanceIfIneligible, NodeType=Sequence, Child[0]=BurrowOptionNotAvailable, Child[1]=SetUnitValue-MeleeChance)
- Behaviors=(BehaviorName=BurrowOptionNotAvailable, NodeType=Selector, Child[0]=IsAtEndOfAxisOfPlay, Child[1]=HasXComUnitsCloserToObjective)
- Behaviors=(BehaviorName=HasXComUnitsCloserToObjective, NodeType=Condition, Param[0]=10); True when any XCom unit is more than Param[0] meters closer to objective.
- Behaviors=(BehaviorName=IsAtEndOfAxisOfPlay, NodeType=StatCondition, Param[0]=ObjectiveDistance, Param[1]="<=", Param[2]=27) ;Check if within sight range of objective. If so, do not bother with burrowing.
- Behaviors=(BehaviorName=SetRandUnitValue-MeleeChance, NodeType=Action, Param[0]=100) ; Random chance to run away and burrow or fight. Param[1] DNE = Set once per mission.
- Behaviors=(BehaviorName=SetUnitValue-MeleeChance, NodeType=Action, Param[0]=1) ;Disable chance to burrow again.
- Behaviors=(BehaviorName=TryRunAndBurrow33, NodeType=Sequence, Child[0]=CheckMeleeOver67, Child[1]=ChryssalidRunAndBurrowSelector)
- Behaviors=(BehaviorName=CheckMeleeUnder67, NodeType=StatCondition, Param[0]=UnitValue-MeleeChance, Param[1]="<", Param[2]=67)
- Behaviors=(BehaviorName=CheckMeleeOver67, NodeType=StatCondition, Param[0]=UnitValue-MeleeChance, Param[1]=">=", Param[2]=67)
- Behaviors=(BehaviorName=ChryssalidRunAndBurrowSelector, NodeType=Selector, Child[0]=BurrowIfOutOfView, Child[1]=TryDashMoveForBurrow)
- Behaviors=(BehaviorName=BurrowIfOutOfView, NodeType=Sequence, Child[0]=NoVisibleEnemies, Child[1]=TryBurrow)
- Behaviors=(BehaviorName=ChryssalidMeleeSelector, NodeType=Selector, Child[0]=TryMeleeOnCivilian, Child[1]=TryStandardMeleeDashFANATICUnsafe, Child[2]=HuntEnemyUnsafe)
- Behaviors=(BehaviorName=TryMeleeOnCivilian, NodeType=Sequence, Child[0]=NumKilledCiviliansIsLessThanTurnCount, Child[1]=HasVisibleCivilianInMoveRange, Child[2]=Rand50AttackCivilian)
- Behaviors=(BehaviorName=HasVisibleCivilianInMoveRange, NodeType=Condition) ; Visible to both players, in move range to unit.
- Behaviors=(BehaviorName=Rand50AttackCivilian, NodeType=RandFilter, Child[0]=MeleeAttackNearestCivilian, Param[0]=50)
- Behaviors=(BehaviorName=MeleeAttackNearestCivilian, NodeType=Sequence, Child[0]=SelectClosestCivilianInRange, Child[1]=SelectAbility-StandardMelee)
- Behaviors=(BehaviorName=SelectClosestCivilianInRange, NodeType=Sequence, Child[0]=SetTargetStack-StandardMelee, Child[1]=SelectClosestCivilianForStandardMelee, Child[2]=HasValidTarget-StandardMelee)
- Behaviors=(BehaviorName=SelectClosestCivilianForStandardMelee, NodeType=RepeatUntilFail, Child[0]=EvaluateMeleeTargetForClosestCivilian)
- Behaviors=(BehaviorName=EvaluateMeleeTargetForClosestCivilian, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreClosestCivilianIfInRange, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=TargetScoreClosestCivilianIfInRange, NodeType=Successor, Child[0]=ScoreClosestCivilianIfInRange)
- Behaviors=(BehaviorName=ScoreClosestCivilianIfInRange, NodeType=Sequence, Child[0]=TargetIsCivilian, Child[1]=TargetIsNotAlien, Child[2]=IsTargetInMovementRange-StandardMelee, Child[3]=TargetScoreByScaledDistance-1, Child[4]=AddToTargetScore_100)
- Behaviors=(BehaviorName=ChryssalidYellowAlert, NodeType=Sequence, Child[0]=IsYellowAlert, Child[1]=ChryssalidYellowAbilitySelector)
- Behaviors=(BehaviorName=ChryssalidYellowAbilitySelector, NodeType=Selector, Child[0]=ChryssalidHeatSeekProtocol, Child[1]=ChryssalidUnburrowedProtocol, Child[2]=TryJobUnsafe, Child[3]=GenericAlertHandler, Child[4]=SkipMove)
- Behaviors=(BehaviorName=ChryssalidHeatSeekProtocol, NodeType=Sequence, Child[0]=ChryssalidShouldTriggerHeatSeek, Child[1]=AlertAndUnburrowOrHeatSeek)
- Behaviors=(BehaviorName=ChryssalidShouldTriggerHeatSeek, NodeType=Selector, Child[0]=BurrowedAndEncounterBandPassed, Child[1]=BurrowedandLastGroupRemaining, Child[2]=IsUnitTypeVisible-MimicBeacon)
- Behaviors=(BehaviorName=HasEncounterBandBeenPassed, NodeType=Condition)
- Behaviors=(BehaviorName=BurrowedAndEncounterBandPassed, NodeType=Sequence, Child[0]=AffectedByEffect-Burrowed, Child[1]=HasEncounterBandBeenPassed)
- Behaviors=(BehaviorName=BurrowedandLastGroupRemaining, NodeType=Sequence, Child[0]=AffectedByEffect-Burrowed, Child[1]=AreAllRemainingAlliesUnderEffect-Burrowed)
- Behaviors=(BehaviorName=AreAllRemainingAlliesUnderEffect-Burrowed, NodeType=Condition)
- Behaviors=(BehaviorName=AlertAndUnburrowOrHeatSeek, NodeType=Selector, Child[0]=TryAlert, Child[1]=TryUnburrow, Child[2]=MimicBeaconBehavior, Child[3]=SelectHeatSeekMove, Child[4]=GenericAlertHandler)
- Behaviors=(BehaviorName=TryAlert, NodeType=Sequence, Child[0]=IsGreenAlert, Child[1]=DisableGroupMove, Child[2]=SelectAnyYellowAlertTarget, Child[3]=SelectAbility-YellowAlert)
- Behaviors=(BehaviorName=SelectAnyYellowAlertTarget, NodeType=Sequence, Child[0]=SetTargetStack-YellowAlert, Child[1]=GenericSelectTargetRandomly, Child[2]=HasValidTarget-YellowAlert)
- Behaviors=(BehaviorName=SelectAbility-YellowAlert, NodeType=Action)
- Behaviors=(BehaviorName=SetTargetStack-YellowAlert, NodeType=Action)
- Behaviors=(Behaviorname=HasValidTarget-YellowAlert, NodeType=Condition)
- Behaviors=(BehaviorName=ChryssalidGreenAlert, NodeType=Sequence, Child[0]=ShouldPatrol, Child[1]=ChryssalidGreenAbilitySelector)
- Behaviors=(BehaviorName=ChryssalidGreenAbilitySelector, NodeType=Selector, Child[0]=ChryssalidUnburrowedProtocol, Child[1]=TryJobUnsafe, Child[2]=GenericGreenMovement)
- Behaviors=(BehaviorName=ChryssalidUnburrowedProtocol, NodeType=Sequence, Child[0]=IsUnburrowed, Child[1]=GroupSize1, Child[2]=ChryssalidMoveOrBurrow)
- Behaviors=(BehaviorName=ChryssalidMoveOrBurrow, NodeType=Selector, Child[0]=MoveForBurrowIfFirstAction, Child[1]=TryBurrowIfNotOnJob, Child[2]=TryDashMoveForBurrow)
- Behaviors=(BehaviorName=MoveForBurrowIfFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=TryBurrowMovement)
- Behaviors=(BehaviorName=TryBurrowMovement, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=FindBurrowDestination, Child[2]=DisableGroupMove, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=DisableGroupMove, NodeType=Action)
- Behaviors=(BehaviorName=TryDashMoveForBurrow, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=UseDashMovement, Child[2]=TryBurrowMovement)
- Behaviors=(BehaviorName=FindBurrowDestination, NodeType=Selector, Child[0]=FindLocalBurrowDestination, Child[1]=FindClosestPointToAxisGround)
- Behaviors=(BehaviorName=FindLocalBurrowDestination, NodeType=Sequence, Child[0]=SSRestrictToAxisLoSIfInRange, Child[1]=RestrictFromAlliesWithEffect-Burrowed, Child[2]=SSRestrictFromKnownEnemyLoS, Child[3]=SetNoCoverMovement, Child[4]=RestrictToGroundTiles, Child[5]=FindRestrictedDestination-MWP_Burrow)
- Behaviors=(BehaviorName=SSRestrictToAxisLoSIfInRange, NodeType=Successor, Child[0]=RestrictToAxisLoSIfInRange)
- Behaviors=(BehaviorName=SSRestrictFromKnownEnemyLoS, NodeType=Successor, Child[0]=RestrictFromKnownEnemyLoS)
- Behaviors=(BehaviorName=RestrictToAxisLoSIfInRange, NodeType=Sequence, Child[0]=IsInMovementRangeOfAxisOfPlay, Child[1]=RestrictToAxisLoS)
- Behaviors=(BehaviorName=RestrictToAxisLoS, NodeType=Action)
- Behaviors=(BehaviorName=RestrictFromKnownEnemyLoS, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToGroundTiles, NodeType=Action)
- Behaviors=(BehaviorName=FindClosestPointToAxisGround, NodeType=Action)
- Behaviors=(BehaviorName=IsInMovementRangeOfAxisOfPlay, NodeType=Condition)
- Behaviors=(BehaviorName=RestrictFromAlliesWithEffect-Burrowed, NodeType=Action, Param[0]="10.0f")
- Behaviors=(BehaviorName=GroupSize1, NodeType=StatCondition, Param[0]=GroupSize, Param[1]="<=", Param[2]=1)
- Behaviors=(BehaviorName=ChryssalidScamperRoot, NodeType=Selector, Child[0]=SkipIfBurrowed, Child[1]=MoveMeleeFANATICUnsafe, Child[2]=SelectHeatSeekMove)
- Behaviors=(BehaviorName=SkipIfBurrowed, NodeType=Sequence, Child[0]=AffectedByEffect-Burrowed, Child[1]=SkipMove)
- Behaviors=(BehaviorName=IsUnburrowed, NodeType=Inverter, Child[0]=AffectedByEffect-Burrowed)
- Behaviors=(BehaviorName=CocoonRoot, NodeType=Selector, Child[0]=TrySpawnChryssalid, Child[1]=SkipMove)
- Behaviors=(BehaviorName=TryMoveThenPsiBomb, NodeType=Selector, Child[0]=TryTeleportForPsiBomb, Child[1]=TryMoveForPsiBomb, Child[2]=TryPsiBomb)
- Behaviors=(BehaviorName=TryTeleportForPsiBomb, NodeType=Sequence, Child[0]=IsAbilityReady-PsiBombStage1, Child[1]=NotLastActionPoint, Child[2]=FindPotentialAoETargets-PsiBombProfile, Child[3]=TeleportForPsiBombTarget)
- Behaviors=(BehaviorName=TryMoveForPsiBomb, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-PsiBombStage1, Child[2]=NotLastActionPoint, Child[3]=FindPotentialAoETargets-PsiBombProfile, Child[4]=MoveStandardIfFirstAbility-PsiBombStage1)
- Behaviors=(BehaviorName="Cyberus::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=CodexRedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=CodexRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=CodexRedAbilitySelector)
- Behaviors=(BehaviorName=CodexRedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=CodexRedFirstAction, Child[2]=CodexRedLastAction)
- Behaviors=(BehaviorName=CodexRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=CodexRedFirstActionSelector)
- Behaviors=(BehaviorName=CodexRedFirstActionSelector, NodeType=Selector, Child[0]=TryMoveThenPsiBomb, Child[1]=DoIfFlankedMove_Teleport, Child[2]=TryTeleportDefensive, Child[3]=SelectMove_JobOrFlanking, Child[4]=TryShootOrReloadOrOverwatch, Child[5]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=CodexRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=CodexRedLastActionSelector)
- Behaviors=(BehaviorName=CodexRedLastActionSelector, NodeType=Selector, Child[0]=TryPsiBomb, Child[1]=TryShootOrReloadOrOverwatch, Child[2]=HuntEnemyWithCover, Child[3]=SelectMove_JobOrFlanking)
- Behaviors=(BehaviorName=CodexSometimesPsiBomb, NodeType=RandFilter, Child[0]=TryPsiBomb, Param[0]=33)
- Behaviors=(BehaviorName=DoIfFlankedMove_Teleport, NodeType=Sequence, Child[0]=CheckIfNeedToMove, Child[1]=FlankedMoveSelector_Teleport)
- Behaviors=(BehaviorName=FlankedMoveSelector_Teleport, NodeType=Selector, Child[0]=TryTeleportDefensive, Child[1]=MoveAdvanceToCoverUnsafe, Child[2]=FallBack)
- Behaviors=(BehaviorName="Cyberus::MoveTowardMimicBeacon", NodeType=Selector, Child[0]=TryTeleportTowardMimicBeacon, Child[1]=TryStandardMoveTowardMimicBeacon)
- Behaviors=(BehaviorName=TryTeleportTowardMimicBeacon, NodeType=Sequence, Child[0]=IsAbilityAvailable-Teleport, Child[1]=UseDashMovement, Child[2]=FindDestinationTowardMimicBeacon, Child[3]=SelectAbility-Teleport)
- Behaviors=(BehaviorName="Gatekeeper::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=GateKeeperRedAlert, Child[3]=GateKeeperNoEnemySightedMove)
- Behaviors=(BehaviorName=GateKeeperRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=GateKeeperRedAbilitySelector)
- Behaviors=(BehaviorName=GateKeeperRedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=GateKeeperRedFirstAction, Child[2]=GateKeeperRedLastAction)
- Behaviors=(BehaviorName=GateKeeperRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=GateKeeperRedFirstActionSelector)
- Behaviors=(BehaviorName=GateKeeperRedFirstActionSelector, NodeType=Selector, Child[0]=TryMoveThenAnimaInversionCorpse, Child[1]=TryMoveThenAnimaInversionMixed, Child[2]=TryAnimaConsumeOnEnemy, Child[3]=TryAnimaConsumeOnAlly, Child[4]=MoveNoCover, Child[5]=ShootIfAvailable, Child[6]=HuntEnemy)
- Behaviors=(BehaviorName=GateKeeperRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=GateKeeperRedLastActionSelector)
- Behaviors=(BehaviorName=GateKeeperRedLastActionSelector, NodeType=Selector, Child[0]=TryAnimaInversionCorpses, Child[1]=TryAnimaInversionMixed, Child[2]=TryAnimaConsumeOnEnemy, Child[3]=TryAnimaConsumeOnAlly, Child[4]=GateKeeperOpenOrClose, Child[5]=TryShootOrReloadOrOverwatch, Child[6]=MoveNoCover, Child[7]=HuntEnemy)
- Behaviors=(BehaviorName=GateKeeperNoEnemySightedMove, NodeType=Selector, Child[0]=TryAnimaInversionCorpses, Child[1]=TryAnimaInversionMixed, Child[2]=TryGatekeeperClose, Child[3]=GenericAlertHandler, Child[4]=GenericGreenMovement)
- Behaviors=(BehaviorName=GateKeeperOpenOrClose, NodeType=Selector, Child[0]=CloseIfInObviousDanger, Child[1]=DoIfFlankedMove, Child[2]=GateKeeperCheckOpen)
- Behaviors=(BehaviorName=CloseIfInObviousDanger, NodeType=Sequence, Child[0]=IsAbilityAvailable-GatekeeperClose, Child[1]=CheckIfInDanger, Child[2]=TryGatekeeperClose)
- Behaviors=(BehaviorName=GateKeeperCheckOpen, NodeType=Sequence, Child[0]=IsAbilityAvailable-GatekeeperOpen, Child[1]=NoTargetsAvailable, Child[2]=TryGatekeeperOpen) ; open if at high life
- Behaviors=(BehaviorName="Muton::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=MutonRedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=MutonRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=MutonRedAbilitySelector)
- Behaviors=(BehaviorName=MutonRedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=MutonRedFirstAction, Child[2]=MutonRedLastAction)
- Behaviors=(BehaviorName=MutonRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MutonRedFirstActionSelector)
- Behaviors=(BehaviorName=MutonRedFirstActionSelector, NodeType=Selector, Child[0]=TryBayonet, Child[1]=TryMoveThenGrenade, Child[2]=TryMoveToSuppressClosest, Child[3]=TryTwoTurnAttackSupportIfSafe, Child[4]=SelectMoveProfileByJob, Child[5]=TryShootOrReloadOrOverwatch, Child[6]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=MutonRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=MutonRedLastActionSelector)
- Behaviors=(BehaviorName=MutonRedLastActionSelector, NodeType=Selector, Child[0]=TryBayonet, Child[1]=TryGrenade, Child[2]=TrySuppressClosest, Child[3]=TryShootOrReloadOrOverwatch, Child[4]=HuntEnemyWithCover, Child[5]=SelectMove_JobOrAggressive)
- Behaviors=(BehaviorName=TrySuppressClosest, NodeType=Sequence, Child[0]=IsAbilityAvailable-Suppression, Child[1]=CheckShouldSuppressVar, Child[2]=SelectTargetForSuppression, Child[3]=SelectAbility-Suppression)
- Behaviors=(BehaviorName=SelectTargetForSuppression, NodeType=Sequence, Child[0]=SetTargetStack-Suppression, Child[1]=SelectBestSuppressionTarget, Child[2]=HasValidTarget-Suppression)
- Behaviors=(BehaviorName=TryMoveToSuppressClosest, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-Suppression, Child[2]=CheckShouldSuppressVar, Child[3]=SelectClosestPotentialSuppressionTarget, Child[4]=MoveStandardIfFirstAbility-Suppression)
- Behaviors=(BehaviorName=CheckShouldSuppressVar, NodeType=Sequence, Child[0]=InitSetSuppressVar, Child[1]=ShouldSuppress)
- Behaviors=(BehaviorName=ShouldSuppress, NodeType=StatCondition, Param[0]=BTVar, Param[1]="!=", Param[2]="0", Param[3]="ShouldSuppress")
- Behaviors=(BehaviorName=InitSetSuppressVar, NodeType=Selector, Child[0]=HasBTVar-ShouldSuppress, Child[1]=UpdateShouldSuppressVar)
- Behaviors=(BehaviorName=HasBTVar-ShouldSuppress, NodeType=Condition)
- Behaviors=(BehaviorName=UpdateShouldSuppressVar, NodeType=Selector, Child[0]=TrySetShouldSuppressTrue, Child[1]=SetShouldSuppressFalse)
- Behaviors=(BehaviorName=TrySetShouldSuppressTrue, NodeType=Sequence, Child[0]=AnyAlliesVisible, Child[1]=RollForSuppressionPerVisibleAlly, Child[2]=SetShouldSuppressTrue)
- Behaviors=(BehaviorName=SetShouldSuppressTrue, NodeType=Action, Param[0]=SetBTVar, Param[1]="ShouldSuppress", Param[2]="1")
- Behaviors=(BehaviorName=SetShouldSuppressFalse, NodeType=Action, Param[0]=SetBTVar, Param[1]="ShouldSuppress", Param[2]="0")
- Behaviors=(BehaviorName=RollForSuppressionPerVisibleAlly, NodeType=Condition, Param[0]=10); Param[0]=Percent chance per visible ally to succeed.
- Behaviors=(BehaviorName="PsiZombie::CharacterRoot", NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=SpectralZombieBranch, Child[2]=GenericEnemyMeleeRootFANATIC)
- Behaviors=(BehaviorName=SelectHeatSeekMoveNoDash, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=HeatSeekNearestUnconcealed, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=TemplateNameIs-SpectralZombieM1, NodeType=Condition)
- Behaviors=(BehaviorName=SelectFromSpectralZombieAbilities, NodeType=Selector, Child[0]=TryAlert, Child[1]=HeatSeekIfNoneVisible, Child[2]=MimicBeaconBehavior, Child[3]=TryPsiSelfDestruct, Child[4]=SpectralZombieAttack, Child[5]=IfFirstActionMoveMeleeDashUnsafe, Child[6]=SkipMove)
- Behaviors=(BehaviorName=SpectralZombieAttack, NodeType=Sequence, Child[0]=NotJustSpawnedThisTurn, Child[1]=GenericEnemyMeleeRootFANATIC)
- Behaviors=(BehaviorName=NotJustSpawnedThisTurn, NodeType=Inverter, Child[0]=JustSpawnedThisTurn)
- Behaviors=(BehaviorName=JustSpawnedThisTurn, NodeType=Condition)
- Behaviors=(BehaviorName=SpectralZombieBranch, NodeType=Sequence, Child[0]=TemplateNameIs-SpectralZombieM1, Child[1]=SelectFromSpectralZombieAbilities)
- Behaviors=(BehaviorName="SpectralZombie::CharacterRoot", NodeType=Selector, Child[0]=SelectFromSpectralZombieAbilities)
- Behaviors=(BehaviorName=HeatSeekIfNoneVisible, NodeType=Sequence, Child[0]=NoVisibleEnemies, Child[1]=DisableGreenAlertMovement, Child[2]=SelectHeatSeekMoveNoDash)
- Behaviors=(BehaviorName="Sectoid::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=SectoidRedAlert, Child[3]=SectoidNoEnemySightedMove)
- Behaviors=(BehaviorName=SectoidRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=SectoidRedAbilitySelector)
- Behaviors=(BehaviorName=SectoidRedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=SectoidRedFirstAction, Child[2]=SectoidRedLastAction)
- Behaviors=(BehaviorName=SectoidRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=SectoidRedFirstActionSelector)
- Behaviors=(BehaviorName=SectoidRedFirstActionSelector, NodeType=Selector, Child[0]=DoIfFlankedMove, Child[1]=SelectMove_JobOrDefensive, Child[2]=TryShootFlanked50, Child[3]=TryPsiReanimationOrMindSpinOption, Child[4]=TryShootOrReloadOrOverwatch, Child[5]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=SectoidRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=SectoidRedLastActionSelector)
- Behaviors=(BehaviorName=SectoidRedLastActionSelector, NodeType=Selector, Child[0]=DoIfFlankedMove, Child[1]=TryShootFlanked50, Child[2]=TryPsiReanimationOrMindSpinOption, Child[3]=TryShootOrReloadOrOverwatch, Child[4]=HuntEnemyWithCover, Child[5]=SelectMove_JobOrDefensive)
- Behaviors=(BehaviorName=TryPsiReanimationOrMindSpinOption, NodeType=RandSelector, Child[0]=TryPsiReanimation, Param[0]=66, Child[1]=TryMindSpinOption, Param[1]=34)
- Behaviors=(BehaviorName=TryMindSpinOption, NodeType=Sequence, Child[0]=IsAbilityAvailable-MindSpin, Child[1]=SelectTargetForMindSpin, Child[2]=SelectAbility-MindSpin)
- Behaviors=(BehaviorName=SectoidNoEnemySightedMove, NodeType=Selector, Child[0]=GenericOrangeMovement, Child[1]=SectoidYellowAlert, Child[2]=GenericGreenMovement)
- Behaviors=(BehaviorName=SectoidYellowAlert, NodeType=Sequence, Child[0]=IsYellowAlert, Child[1]=SectoidYellowAbilitySelector)
- Behaviors=(BehaviorName=SectoidYellowAbilitySelector, NodeType=Selector, Child[0]=TryPsiReanimation, Child[1]=GenericAlertHandler)
- Behaviors=(BehaviorName=TryShootFlanked50, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SelectAnyFlankedTarget, Child[2]=ShootTargetChance50)
- Behaviors=(BehaviorName=SelectAnyFlankedTarget, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=EvaluateFlankedTargets, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=EvaluateFlankedTargets, NodeType=RepeatUntilFail, Child[0]=EvaluateAnyFlankedEnemies)
- Behaviors=(BehaviorName=EvaluateAnyFlankedEnemies, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreFlanked, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreFlanked, NodeType=Successor, Child[0]=ScoreFlanked)
- Behaviors=(BehaviorName=ScoreFlanked, NodeType=Sequence, Child[0]=IsFlankingTarget, Child[1]=TargetIsEnemy, Child[2]=TargetIsNotCivilian, Child[3]=TargetNotBoundOrPanicked, Child[4]=GenericTargetEvaluations)
- Behaviors=(BehaviorName="Viper::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=ViperRedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=ViperRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=ViperRedAbilitySelector)
- Behaviors=(BehaviorName=ViperRedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=ViperRedFirstAction, Child[2]=ViperRedLastAction)
- Behaviors=(BehaviorName=ViperRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=ViperRedFirstActionSelector)
- Behaviors=(BehaviorName=ViperRedFirstActionSelector, NodeType=Selector, Child[0]=ConsiderTonguePullPriorityOrMelee, Child[1]=TryGetOverHere, Child[2]=TryMoveThenPoisonSpit, Child[3]=TryMoveThenPoisonSpitSingle, Child[4]=SelectMoveStandard, Child[5]=TryShootOrReloadOrOverwatch, Child[6]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=ViperRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=ViperRedLastActionSelector)
- Behaviors=(BehaviorName=ViperRedLastActionSelector, NodeType=Selector, Child[0]=TryStandardMelee, Child[1]=TryPoisonSpit, Child[2]=TryGetOverHere, Child[3]=TryPoisonSpitSingle, Child[4]=TryShootOrReloadOrOverwatch, Child[5]=DoIfFlankedMove, Child[6]=HuntEnemyWithCover, Child[7]=SelectMoveStandard)
- Behaviors=(BehaviorName="Viper::MoveTowardMimicBeacon", NodeType=Selector, Child[0]=RandTryGetOverHereOnMimicBeacon, Child[1]=TryMeleeMoveTowardMimicBeacon, Child[2]=TryStandardMoveTowardMimicBeacon)
- Behaviors=(BehaviorName=RandTryGetOverHereOnMimicBeacon, NodeType=RandFilter, Child[0]=TryGetOverHereOnMimicBeacon, Param[0]=50)
- Behaviors=(BehaviorName=TryGetOverHereOnMimicBeacon, NodeType=Sequence, Child[0]=IsAbilityAvailable-GetOverHere, Child[1]=SelectMimicBeaconForGetOverHere, Child[2]=SelectAbility-GetOverHere)
- Behaviors=(BehaviorName=SelectMimicBeaconForGetOverHere, NodeType=Sequence, Child[0]=SetTargetStack-GetOverHere, Child[1]=SelectMimicBeaconTarget, Child[2]=HasValidTarget-GetOverHere)
- Behaviors=(BehaviorName=ConsiderTonguePullPriorityOrMelee, NodeType=Sequence, Child[0]=TryStandardMelee, Child[1]=SS_ConsiderTonguePullOverMove)
- Behaviors=(BehaviorName=SS_ConsiderTonguePullOverMove, NodeType=Successor, Child[0]=ConsiderTonguePullOverMove)
- Behaviors=(BehaviorName=ConsiderTonguePullOverMove, NodeType=Sequence, Child[0]=IsSelectedAbility-StandardMove, Child[1]=IsAbilityAvailable-GetOverHere, Child[2]=HasBindableNeighborTile, Child[3]=SetBestTargetAsCurrentTarget-Potential, Child[4]=ShouldUseTonguePullOnTarget, Child[5]=SelectAbility-GetOverHere)
- Behaviors=(BehaviorName=SetBestTargetAsCurrentTarget-Potential, NodeType=Action)
- Behaviors=(BehaviorName=ShouldUseTonguePullOnTarget, NodeType=Sequence, Child[0]=IsValidTonguePullTarget, Child[1]=TargetDistanceGreaterThan4Tiles, Child[2]=TonguePullHitChance50, Child[3]=SetTargetPotential-GetOverHere)
- Behaviors=(BehaviorName=TargetDistanceGreaterThan4Tiles, NodeType=StatCondition, Param[0]=PotentialTargetDistance, Param[1]=">", Param[2]=6); 6m = 4 tiles
- Behaviors=(BehaviorName=TonguePullHitChance50, NodeType=StatCondition, Param[0]=PotentialHitChance-GetOverHere, Param[1]=">=", Param[2]=50)
- Behaviors=(BehaviorName=IsSelectedAbility-StandardMove, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetPotential-GetOverHere, NodeType=Action); Set target of 'Potential' to the target of ability 'GetOverHere'.
- Behaviors=(BehaviorName="Viper::CustomMeleeTargetScore", NodeType=Sequence, Child[0]=TargetNotValidForBind, Child[1]=AddToTargetScore_-1000) ;Overwrite option for melee abilities that are restricted.
- Behaviors=(BehaviorName=TargetNotValidForBind, NodeType=Selector, Child[0]=TargetIsAlien, Child[1]=TargetIsRobotic)
- Behaviors=(BehaviorName="Faceless::CharacterRoot", NodeType=Selector, Child[0]=TryJobUnsafe, Child[1]=GenericGreenMovement, Child[2]=FacelessHeatSeekProtocol, Child[3]=FacelessRedAlert, Child[4]=GenericAlertHandler)
- Behaviors=(BehaviorName=FacelessRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=FacelessRedAbilitySelector)
- Behaviors=(BehaviorName=FacelessRedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=FacelessRedFirstAction, Child[2]=FacelessRedLastAction)
- Behaviors=(BehaviorName=FacelessRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=FacelessFirstActionSelector);
- Behaviors=(BehaviorName=FacelessFirstActionSelector, NodeType=Selector, Child[0]=TryScythingClaws, Child[1]=MoveMeleeFANATICUnsafe, Child[2]=HuntEnemyUnsafe)
- Behaviors=(BehaviorName=FacelessRedLastAction, NodeType=Selector, Child[0]=TryScythingClaws, Child[1]=MoveMeleeFANATICUnsafe, Child[2]=HuntEnemyUnsafe)
- Behaviors=(BehaviorName="Faceless::AttackMimicBeacon", NodeType=Sequence, Child[0]=TryScythingClaws)
- Behaviors=(BehaviorName=FacelessHeatSeekProtocol, NodeType=Sequence, Child[0]=FacelessShouldTriggerHeatSeek, Child[1]=SelectHeatSeekMove)
- Behaviors=(BehaviorName=FacelessShouldTriggerHeatSeek, NodeType=Selector, Child[0]=NoVisibleEnemies)
- Behaviors=(BehaviorName="Sectopod::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=SectopodRedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=SectopodRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=SectopodRedAbilitySelector)
- Behaviors=(BehaviorName=SectopodRedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=SectopodRedFirstAction, Child[2]=SectopodRedSecondAction, Child[3]=SectopodRedLastAction)
- Behaviors=(BehaviorName=SectopodRedFirstAction, NodeType=Sequence, Child[0]=HasThreeActionPoints, Child[1]=SectopodFirstActionSelector)
- Behaviors=(BehaviorName=SectopodFirstActionSelector, NodeType=Selector, Child[0]=SectopodCannonCharging, Child[1]=TryStandUp, Child[2]=TryLightningField, Child[3]=TryFirstMoveTowardVisibleEnemies50, Child[4]=ShootIfAvailable, Child[5]=TryWrathCannonS166, Child[6]=TryMoveForLightningField, Child[7]=MoveNoCover, Child[8]=TryShootOrReloadOrOverwatch, Child[9]=HuntEnemy)
- Behaviors=(BehaviorName=SectopodRedSecondAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=SectopodSecondActionSelector)
- Behaviors=(BehaviorName=SectopodSecondActionSelector, NodeType=Selector, Child[0]=SectopodCannonCharging, Child[1]=TryStandUp, Child[2]=TryLightningField, Child[3]=TryMoveTowardVisibleEnemies50, Child[4]=TryWrathCannonS166, Child[5]=TryMoveForLightningField, Child[6]=MoveNoCoverIfNotMoved, Child[7]=TryShootOrReloadOrOverwatch, Child[8]=HuntEnemy)
- Behaviors=(BehaviorName=SectopodRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=SectopodRedLastActionSelector)
- Behaviors=(BehaviorName=SectopodRedLastActionSelector, NodeType=Selector, Child[0]=SectopodCannonCharging, Child[1]=TryWrathCannonS1, Child[2]=TryLightningField, Child[3]=TryShootOrReloadOrOverwatch, Child[4]=HuntEnemy)
- Behaviors=(BehaviorName=MoveNoCoverIfNotMoved, NodeType=Sequence, Child[0]=DidntJustMove, Child[1]=MoveNoCover)
- Behaviors=(BehaviorName=TryStandUp, NodeType=Sequence, Child[0]=IsAbilityAvailable-SectopodHigh, Child[1]=SelectAbility-SectopodHigh)
- Behaviors=(BehaviorName=IsAbilityAvailable-SectopodHigh, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-SectopodHigh, NodeType=Action)
- Behaviors=(BehaviorName=TryWrathCannonS166, NodeType=RandFilter, Child[0]=TryWrathCannon, Param[0]=66)
- Behaviors=(BehaviorName=SectopodCannonCharging, NodeType=Sequence, Child[0]=AffectedByEffect-WrathCannonStage1Effect, Child[1]=SectopodChargingSelector)
- Behaviors=(BehaviorName=SectopodChargingSelector, NodeType=Selector, Child[0]=TryShootOrReloadIfNotLastActionPoint, Child[1]=Overwatch50IfLastAction, Child[2]=TryShootOrReloadOrOverwatch, Child[3]=SkipMove)
- Behaviors=(BehaviorName=Overwatch50IfLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=RandOverwatch50)
- Behaviors=(BehaviorName=TryShootOrReloadIfNotLastActionPoint, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=TryShootOrReload)
- Behaviors=(BehaviorName=IsAbilityAvailable-SectopodLightningField, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityReady-SectopodLightningField, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-SectopodLightningField, NodeType=Action)
- Behaviors=(BehaviorName=TryLightningField, NodeType=Sequence, Child[0]=IsAbilityAvailable-SectopodLightningField, Child[1]=HasAnyLightningFieldTargets, Child[2]=SelectAbility-SectopodLightningField)
- Behaviors=(BehaviorName=HasAnyLightningFieldTargets, NodeType=StatCondition, Param[0]=AbilityTargetUnitCount-SectopodLightningField, Param[1]=">", Param[2]=1); >1 because it always sets itself as the primary target.
- Behaviors=(BehaviorName=TryFirstMoveTowardVisibleEnemies50, NodeType=Sequence, Child[0]=AnyLivingEnemyVisible, Child[1]=TryMoveForLightningField50)
- Behaviors=(BehaviorName=TryMoveTowardVisibleEnemies50, NodeType=Sequence, Child[0]=AnyLivingEnemyVisible, Child[1]=DidntJustMove, Child[2]=TryMoveForLightningField50)
- Behaviors=(BehaviorName=TryMoveForLightningField50, NodeType=RandFilter, Child[0]=TryMoveForLightningField, Param[0]=50)
- Behaviors=(BehaviorName=TryMoveForLightningField, NodeType=Sequence, Child[0]=DidntJustMove, Child[1]=SafeToMove, Child[2]=IsAbilityReady-SectopodLightningField, Child[3]=MoveStandardIfFirstAbility-LightningField, Child[4]=MoveMeleeFANATICUnsafe)
- Behaviors=(BehaviorName=MoveStandardIfFirstAbility-LightningField, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindLightningFieldDestination, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindLightningFieldDestination, NodeType=Sequence, Child[0]=SelectTargetForLightningField, Child[1]=ResetDestinationSearch, Child[2]=RestrictToAbilityRange-SectopodLightningField, Child[3]=RestrictToEnemyLoS, Child[4]=FindRestrictedDestination-MWP_Standard)
- Behaviors=(BehaviorName=SelectTargetForLightningField, NodeType=Sequence, Child[0]=SetPotentialTargetStack, Child[1]=SelectBestPotentialTargetForMelee, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=RestrictToAbilityRange-SectopodLightningField, NodeType=Action)
- Behaviors=(BehaviorName=WasLastAbility-StandardMove, NodeType=Condition)
- Behaviors=(BehaviorName=DidntJustMove, NodeType=Inverter, Child[0]=WasLastAbility-StandardMove)
- Behaviors=(BehaviorName=HasJob, NodeType=Condition)
- Behaviors=(BehaviorName=HasUnengagedJob, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-Soldier, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-Aggressor, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-Flanker, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-Leader, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-Support, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-Terrorist, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-Hunter, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-Charger, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-Defender, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-Observer, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-Prisoner, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-Rendezvous, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-EvacAtRendezvous, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-AttackStrikePointOne, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-AttackStrikePointTwo, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-AttackStrikePointThree, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-Executioner, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-SentryVsLost, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-AlwaysDoNothing, NodeType=Condition)
- Behaviors=(BehaviorName=IsMyJob-GreenStandby, NodeType=Condition)
- Behaviors=(BehaviorName=DoNotHaveAlwaysOnJob, NodeType=Inverter, Child[0]=DoIHaveAlwaysOnJob)
- Behaviors=(BehaviorName=DoIHaveAlwaysOnJob, NodeType=Selector, Child[0]=IsMyJob-Terrorist, Child[1]=IsMyJob-Executioner, Child[2]=IsMyJob-AttackStrikePointOne, Child[3]=IsMyJob-AttackStrikePointTwo, Child[4]=IsMyJob-Hunter, Child[5]=IsMyJob-Prisoner, Child[6]=IsMyJob-SentryVsLost, Child[7]=IsMyJob-AlwaysDoNothing)
- Behaviors=(BehaviorName=TryUnengagedJob, NodeType=Sequence, Child[0]=HasUnengagedJob, Child[1]=TryJobTypes)
- Behaviors=(BehaviorName=TryJob, NodeType=Selector, Child[0]=TryUnengagedJob, Child[1]=TryJobObserver)
- Behaviors=(BehaviorName=TryJobUnsafe, NodeType=Sequence, Child[0]=HasJob, Child[1]=TryJobTypesUnsafe)
- Behaviors=(BehaviorName=TryJobTypes, NodeType=Selector, Child[0]=TryJobTerrorist, Child[1]=TryJobHunter, Child[2]=TryJobChargerUnsafe, Child[3]=TryJobDefender, Child[4]=TryJobPrisoner, Child[5]=TryJobGreenStandby, Child[6]=TryJobRendezvous, Child[7]=TryJobEvacAtRendezvous, Child[8]=TryJobAttackStrikePointOne, Child[9]=TryJobAttackStrikePointTwo, Child[10]=TryJobExecutioner, Child[11]=TryJobSentryVsLost, Child[12]=TryJobAlwaysDoNothing, )
- Behaviors=(BehaviorName=TryJobTypesUnsafe, NodeType=Selector, Child[0]=TryJobTerrorist, Child[1]=TryJobHunter, Child[2]=TryJobChargerUnsafe, Child[3]=TryJobDefender, Child[4]=TryJobObserver, Child[5]=TryJobPrisoner, Child[6]=TryJobGreenStandby, Child[7]=TryJobRendezvous, Child[8]=TryJobEvacAtRendezvous, Child[9]=TryJobAttackStrikePointOne, Child[10]=TryJobAttackStrikePointTwo, Child[11]=TryJobExecutioner, Child[12]=TryJobSentryVsLost, Child[13]=TryJobAlwaysDoNothing, )
- Behaviors=(BehaviorName=TryJobTerrorist, NodeType=Sequence, Child[0]=IsMyJob-Terrorist, Child[1]=JobRoot_Terrorist)
- Behaviors=(BehaviorName=TryJobHunter, NodeType=Sequence, Child[0]=IsMyJob-Hunter, Child[1]=JobRoot_Hunter)
- Behaviors=(BehaviorName=TryJobChargerUnsafe, NodeType=Sequence, Child[0]=IsMyJob-Charger, Child[1]=JobRoot_ChargerUnsafe)
- Behaviors=(BehaviorName=TryJobDefender, NodeType=Sequence, Child[0]=IsMyJob-Defender, Child[1]=JobRoot_Defender)
- Behaviors=(BehaviorName=TryJobRendezvous, NodeType=Sequence, Child[0]=IsMyJob-Rendezvous, Child[1]=JobRoot_Rendezvous)
- Behaviors=(BehaviorName=TryJobEvacAtRendezvous, NodeType=Sequence, Child[0]=IsMyJob-EvacAtRendezvous, Child[1]=JobRoot_EvacAtRendezvous)
- Behaviors=(BehaviorName=TryJobAttackStrikePointOne, NodeType=Sequence, Child[0]=IsMyJob-AttackStrikePointOne, Child[1]=JobRoot_AttackStrikePoint)
- Behaviors=(BehaviorName=TryJobAttackStrikePointTwo, NodeType=Sequence, Child[0]=IsMyJob-AttackStrikePointTwo, Child[1]=JobRoot_AttackStrikePoint)
- Behaviors=(BehaviorName=TryJobExecutioner, NodeType=Sequence, Child[0]=IsMyJob-Executioner, Child[1]=JobRoot_Executioner)
- Behaviors=(BehaviorName=TryJobSentryVsLost, NodeType=Sequence, Child[0]=IsMyJob-SentryVsLost, Child[1]=JobRoot_SentryVsLost)
- Behaviors=(BehaviorName=TryJobAlwaysDoNothing, NodeType=Sequence, Child[0]=IsMyJob-AlwaysDoNothing, Child[1]=JobRoot_AlwaysDoNothing)
- Behaviors=(BehaviorName=TryJobObserver, NodeType=Sequence, Child[0]=IsMyJob-Observer, Child[1]=IsRedAlert, Child[2]=DoIfFlankedMove, Child[3]=SkipMove)
- Behaviors=(BehaviorName=TryJobPrisoner, NodeType=Sequence, Child[0]=IsMyJob-Prisoner, Child[1]=SkipMove)
- Behaviors=(BehaviorName=TryJobGreenStandby, NodeType=Sequence, Child[0]=IsMyJob-GreenStandby, Child[1]=NotYetRevealed, Child[2]=SkipMove)
- Behaviors=(BehaviorName=SelectMoveProfileByJob, NodeType=Selector, Child[0]=SelectMoveIfAggressor, Child[1]=SelectMoveIfFlanker, Child[2]=SelectMoveIfLeader, Child[3]=SelectMoveIfSupport, Child[4]=SelectMoveIfObserver)
- Behaviors=(BehaviorName=SelectMoveIfAggressor, NodeType=Sequence, Child[0]=IsMyJob-Aggressor, Child[1]=MoveAggressive)
- Behaviors=(BehaviorName=SelectMoveIfFlanker, NodeType=Sequence, Child[0]=IsMyJob-Flanker, Child[1]=MoveFlanking)
- Behaviors=(BehaviorName=SelectMoveIfLeader, NodeType=Sequence, Child[0]=IsMyJob-Leader, Child[1]=MoveAdvanceToCover)
- Behaviors=(BehaviorName=SelectMoveIfSupport, NodeType=Sequence, Child[0]=IsMyJob-Support, Child[1]=MoveDefensive)
- Behaviors=(BehaviorName=SelectMoveIfObserver, NodeType=Sequence, Child[0]=IsMyJob-Observer, Child[1]=ObserverMovement)
- Behaviors=(BehaviorName=SelectMoveProfileByJobUnsafe, NodeType=Selector, Child[0]=SelectMoveUnsafeIfAggressor, Child[1]=SelectMoveUnsafeIfFlanker, Child[2]=SelectMoveUnsafeIfLeader, Child[3]=SelectMoveUnsafeIfSupport, Child[4]=SelectMoveUnsafeIfObserver)
- Behaviors=(BehaviorName=SelectMoveUnsafeIfAggressor, NodeType=Sequence, Child[0]=IsMyJob-Aggressor, Child[1]=MoveAggressiveUnsafe)
- Behaviors=(BehaviorName=SelectMoveUnsafeIfFlanker, NodeType=Sequence, Child[0]=IsMyJob-Flanker, Child[1]=MoveFlankingUnsafe)
- Behaviors=(BehaviorName=SelectMoveUnsafeIfLeader, NodeType=Sequence, Child[0]=IsMyJob-Leader, Child[1]=MoveAdvanceToCoverUnsafe)
- Behaviors=(BehaviorName=SelectMoveUnsafeIfSupport, NodeType=Sequence, Child[0]=IsMyJob-Support, Child[1]=MoveDefensiveUnsafe)
- Behaviors=(BehaviorName=SelectMoveUnsafeIfObserver, NodeType=Sequence, Child[0]=IsMyJob-Observer, Child[1]=ObserverMovementUnsafe)
- Behaviors=(BehaviorName=SelectNCMoveProfileByJob, NodeType=Selector, Child[0]=SelectNCMoveIfAggressor, Child[1]=SelectNCMoveIfFlanker, Child[2]=SelectNCMoveIfLeader, Child[3]=SelectNCMoveIfSupport, Child[4]=SelectNCMoveIfObserver)
- Behaviors=(BehaviorName=SelectNCMoveIfAggressor, NodeType=Sequence, Child[0]=IsMyJob-Aggressor, Child[1]=NCMoveAggressive)
- Behaviors=(BehaviorName=SelectNCMoveIfFlanker, NodeType=Sequence, Child[0]=IsMyJob-Flanker, Child[1]=NCMoveFlanking)
- Behaviors=(BehaviorName=SelectNCMoveIfLeader, NodeType=Sequence, Child[0]=IsMyJob-Leader, Child[1]=NCMoveAdvanceToCover)
- Behaviors=(BehaviorName=SelectNCMoveIfSupport, NodeType=Sequence, Child[0]=IsMyJob-Support, Child[1]=NCMoveDefensive)
- Behaviors=(BehaviorName=SelectNCMoveIfObserver, NodeType=Sequence, Child[0]=IsMyJob-Observer, Child[1]=NCObserverMovement)
- Behaviors=(BehaviorName="AdventCounterOp::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=AdvCounterOp_RedAlert, Child[3]=GenericAlertHandler)
- Behaviors=(BehaviorName=AdvCounterOp_RedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=AdvCounterOp_RedAbilitySelector)
- Behaviors=(BehaviorName=AdvCounterOp_RedAbilitySelector, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=AdventCounterOpRedFirstAction, Child[2]=AdventCounterOpRedLastAction)
- Behaviors=(BehaviorName=AdventCounterOpRedFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=AdventCounterOpRedFirstActionSelector)
- Behaviors=(BehaviorName=AdventCounterOpRedFirstActionSelector, NodeType=Selector, Child[0]=TryShootOrReloadOrOverwatch, Child[1]=DoIfFlankedMove, Child[2]=SelectMove_JobOrAggressive, Child[3]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=AdventCounterOpRedLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=AdventCounterOpRedLastActionSelector)
- Behaviors=(BehaviorName=AdventCounterOpRedLastActionSelector, NodeType=Selector, Child[0]=HuntEnemyWithCover, Child[1]=SelectMove_JobOrAggressive)
- Behaviors=(BehaviorName="CivilianMilitia::CharacterRoot", NodeType=Selector, Child[0]=CivilianMilitiaFirstAction, Child[1]=CivilianMilitiaLastAction, Child[2]=GenericAlertHandler)
- Behaviors=(BehaviorName=CivilianMilitiaFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=CivilianMilitiaFirstActionSelector)
- Behaviors=(BehaviorName=CivilianMilitiaFirstActionSelector, NodeType=Selector, Child[0]=CivilianMilitiaMoveIfNeedCover, Child[1]=TryShootOrReload, Child[2]=MilitiaMoveTowardValidTargets, Child[3]=SkipMove)
- Behaviors=(BehaviorName=MilitiaMoveTowardValidTargets, NodeType=Sequence, Child[0]=SelectPotentialTargetForMilitia, Child[1]=RestrictToPotentialTargetRange-StandardShot, Child[2]=FindDestinationWithLoS-MWP_Standard, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=SelectPotentialTargetForMilitia, NodeType=Sequence, Child[0]=SetPotentialTargetStack, Child[1]=SelectBestTargetForMilitia, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SelectBestTargetForMilitia, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialMilitiaTarget)
- Behaviors=(BehaviorName=EvaluatePotentialMilitiaTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreIfWithinRange12, Child[2]=SSScoreTargetOutIfCivilian, Child[3]=TargetScoreByScaledDistance-1, Child[4]=ApplyDifficultyModifiers, Child[5]=UpdateBestTarget)
- Behaviors=(BehaviorName=TargetIsInMilitiaRange, NodeType=StatCondition, Param[0]=PotentialTargetDistance, Param[1]="<", Param[2]=12)
- Behaviors=(BehaviorName=TargetScoreIfWithinRange12, NodeType=Selector, Child[0]=TargetScoreWithinRange12, Child[1]=AddToTargetScore_-1000)
- Behaviors=(BehaviorName=TargetScoreWithinRange12, NodeType=Sequence, Child[0]=TargetIsInMilitiaRange, Child[1]=AddToTargetScore_100)
- Behaviors=(BehaviorName=CivilianMilitiaLastAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=CivilianMilitiaLastActionSelector)
- Behaviors=(BehaviorName=CivilianMilitiaLastActionSelector, NodeType=Selector, Child[0]=TryShootOrReload, Child[1]=SkipMove)
- Behaviors=(BehaviorName=CivilianMilitiaMoveIfNeedCover, NodeType=Sequence, Child[0]=CheckIfNeedToMove, Child[1]=MoveDefensiveUnsafe)
- Behaviors=(BehaviorName=JobRoot_Terrorist, NodeType=Sequence, Child[0]=NotYetRevealed, Child[1]=TryTerrorJobUnrevealed)
- Behaviors=(BehaviorName=TryTerrorJobUnrevealed, NodeType=Selector, Child[0]=SequenceUnrevealedTerroristActionIfLeader, Child[1]=DoUnrevealedSkip_Follower)
- Behaviors=(BehaviorName=SequenceUnrevealedTerroristActionIfLeader, NodeType=Sequence, Child[0]=IsGroupLeader, Child[1]=SelectUnrevealedTerroristLeaderAction)
- Behaviors=(BehaviorName=SelectUnrevealedTerroristLeaderAction, NodeType=Selector, Child[0]=RandomizedTryTerrorMovement, Child[1]=TryTerrorAttack, Child[2]=TerrorMovement)
- Behaviors=(BehaviorName=DoUnrevealedSkip_Follower, NodeType=Sequence, Child[0]=IsFollower, Child[1]=SkipMove)
- Behaviors=(BehaviorName=RandomizedTryTerrorMovement, NodeType=RandFilter, Child[0]=TryTerrorMovement, Param[0]=75)
- Behaviors=(BehaviorName=TryTerrorMovement, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=ResetDestinationSearch, Child[3]=SetCiviliansAsEnemiesInMoveCalculation, Child[4]=SetNoCoverMovement, Child[5]=FindDestination-MWP_Fanatic, Child[6]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=TerrorMovement, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=SetCiviliansAsEnemiesInMoveCalculation, Child[3]=SetNoCoverMovement, Child[4]=FindDestination-MWP_Fanatic, Child[5]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=TryTerrorAttack, NodeType=Sequence, Child[0]=NumKilledCiviliansIsLessThanTurnCount, Child[1]=TryTerrorAttackSelector)
- Behaviors=(BehaviorName=TryTerrorAttackSelector, NodeType=Selector, Child[0]=ShootIfAvailableTerrorist, Child[1]=TryMeleeTerrorist, Child[2]=NeedsReload, Intent="TERRORIZING")
- Behaviors=(BehaviorName=NumKilledCiviliansIsLessThanTurnCount, NodeType=Condition); Multivariate comparisons currently not supported. Must be a custom condition.
- Behaviors=(BehaviorName=TryMeleeTerrorist, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=MeleeTerroristStepSelector)
- Behaviors=(BehaviorName=MeleeTerroristStepSelector, NodeType=Selector, Child[0]=MeleeAttackTerrorist, Child[1]=TryTerroristMoveMeleeFANATIC)
- Behaviors=(BehaviorName=MeleeAttackTerrorist, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMelee, Child[1]=SetTargetStack-StandardMelee, Child[2]=SelectBestTargetByJob_Terrorist, Child[3]=HasValidTarget-StandardMelee, Child[4]=SelectAbility-StandardMelee)
- Behaviors=(BehaviorName=ShootIfAvailableTerrorist, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SetTargetStack-StandardShot, Child[2]=SelectBestTargetByJob_Terrorist, Child[3]=HasValidTarget-StandardShot, Child[4]=SelectAbility-StandardShot)
- Behaviors=(BehaviorName=SelectBestTargetByJob_Terrorist, NodeType=RepeatUntilFail, Child[0]=EvaluateTargetByJob_Terrorist)
- Behaviors=(BehaviorName=EvaluateTargetByJob_Terrorist, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreTerroristTarget, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreTerroristTarget, NodeType=Successor, Child[0]=ScoreTerroristTarget)
- Behaviors=(BehaviorName=ScoreTerroristTarget, NodeType=Sequence, Child[0]=TargetIsNotAlly, Child[1]=TargetScoreCivilian, Child[2]=TargetScoreHitChance, Child[3]=TargetScoreHealth, Child[4]=TargetScoreFlanking)
- Behaviors=(BehaviorName=IncludeCiviliansIfTerrorist, NodeType=Successor, Child[0]=IfTerroristTypeDoForMove)
- Behaviors=(BehaviorName=IfTerroristTypeDoForMove, NodeType=Selector, Child[0]=IfTerroristDoForMove, Child[1]=IfExecutionerDoForMove)
- Behaviors=(BehaviorName=IfTerroristDoForMove, NodeType=Sequence, Child[0]=IsMyJob-Terrorist, Child[1]=SetCiviliansAsEnemiesInMoveCalculation)
- Behaviors=(BehaviorName=IfExecutionerDoForMove, NodeType=Sequence, Child[0]=IsMyJob-Executioner, Child[1]=SetCiviliansAsEnemiesInMoveCalculation)
- Behaviors=(BehaviorName=JobRoot_Hunter, NodeType=Sequence, Child[0]=ShouldPatrol, Child[1]=TryHunterJobUnrevealed)
- Behaviors=(BehaviorName=TryHunterJobUnrevealed, NodeType=Selector, Child[0]=TryUnrevealedHunterAction_Leader, Child[1]=DoUnrevealedSkip_Follower)
- Behaviors=(BehaviorName=TryUnrevealedHunterAction_Leader, NodeType=Sequence, Child[0]=IsGroupLeader, Child[1]=TryHunterAttack)
- Behaviors=(BehaviorName=TryHunterAttack, NodeType=Selector, Child[0]=TryAttackPriorityTarget, Child[1]=HuntIfNotLastAction)
- Behaviors=(BehaviorName=HuntIfNotLastAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=FindAdvanceLocation, Intent="HUNTING")
- Behaviors=(BehaviorName=JobRoot_Charger, NodeType=Selector, Child[0]=TryChargerJobIfUnrevealed, Child[1]=TryChargerJobIfRevealed)
- Behaviors=(BehaviorName=TryChargerJobIfUnrevealed, NodeType=Sequence, Child[0]=NotYetRevealed, Child[1]=DoChargerJobIfLeaderOrSkipMove)
- Behaviors=(BehaviorName=DoChargerJobIfLeaderOrSkipMove, NodeType=Selector, Child[0]=DoChargerJobIfLeader, Child[1]=SkipMove)
- Behaviors=(BehaviorName=DoChargerJobIfLeader, NodeType=Sequence, Child[0]=IsGroupLeader, Child[1]=DoChargerJobAction)
- Behaviors=(BehaviorName=TryChargerJobIfRevealed, NodeType=Sequence, Child[0]=HasRevealed, Child[1]=DoChargerJobAction)
- Behaviors=(BehaviorName=DoChargerJobAction, NodeType=Selector, Child[0]=TryAttackPriorityTarget, Child[1]=MoveTowardPriorityTarget, Child[2]=FindAdvanceLocationUnsafe)
- Behaviors=(BehaviorName=JobRoot_ChargerUnsafe, NodeType=Selector, Child[0]=TryChargerJobUnsafeIfUnrevealed, Child[1]=TryChargerJobUnsafeIfRevealed)
- Behaviors=(BehaviorName=TryChargerJobUnsafeIfUnrevealed, NodeType=Sequence, Child[0]=NotYetRevealed, Child[1]=DoChargerJobUnsafeIfLeaderOrSkipMove)
- Behaviors=(BehaviorName=DoChargerJobUnsafeIfLeaderOrSkipMove, NodeType=Selector, Child[0]=DoChargerJobUnsafeIfLeader, Child[1]=SkipMove)
- Behaviors=(BehaviorName=DoChargerJobUnsafeIfLeader, NodeType=Sequence, Child[0]=IsGroupLeader, Child[1]=DoChargerJobPerActionUnsafe)
- Behaviors=(BehaviorName=TryChargerJobUnsafeIfRevealed, NodeType=Sequence, Child[0]=HasRevealed, Child[1]=DoChargerJobPerActionUnsafe)
- Behaviors=(BehaviorName=DoChargerJobPerActionUnsafe, NodeType=Selector, Child[0]=TryAttackPriorityTarget, Child[1]=MoveTowardPriorityTarget, Child[2]=FindAdvanceLocationUnsafe)
- Behaviors=(BehaviorName=FindAdvanceLocation, NodeType=Sequence, Child[0]=SetAlertDataStack, Child[1]=FindDesignatedAlertAdvanceer, Child[2]=HasValidAlertDataLocation, Child[3]=TakeAlertMoveWithoutCover, Intent="ADVANCING")
- Behaviors=(BehaviorName=FindAdvanceLocationUnsafe, NodeType=Sequence, Child[0]=SetAlertDataStack, Child[1]=FindDesignatedAlertAdvanceer, Child[2]=HasValidAlertDataLocation, Child[3]=TakeAlertMoveWithoutCoverUnsafe, Intent="ADVANCING")
- Behaviors=(BehaviorName=FindDesignatedAlertAdvanceer, NodeType=RepeatUntilFail, Child[0]=EvaluateAlertDataAdvanceer)
- Behaviors=(BehaviorName=EvaluateAlertDataAdvanceer, NodeType=Sequence, Child[0]=SetNextAlertData, Child[1]=ScoreAlertFor_Advance, Child[2]=ScoreAlertDataDistance, Child[3]=UpdateBestAlertData)
- Behaviors=(BehaviorName=JobRoot_Defender, NodeType=Sequence, Child[0]=ShouldPatrol, Child[1]=TryDefenderJobUnrevealed)
- Behaviors=(BehaviorName=TryDefenderJobUnrevealed, NodeType=Selector, Child[0]=TryUnrevealedDefenderAction_Leader, Child[1]=DoUnrevealedSkip_Follower)
- Behaviors=(BehaviorName=TryUnrevealedDefenderAction_Leader, NodeType=Sequence, Child[0]=IsGroupLeader, Child[1]=TryDefenderMove)
- Behaviors=(BehaviorName=TryDefenderMove, NodeType=Sequence, Child[0]=FindDefendLocation, Child[1]=DecideDefendAction, Intent="DEFENDING")
- Behaviors=(BehaviorName=FindDefendLocation, NodeType=Sequence, Child[0]=SetAlertDataStack, Child[1]=FindDesignatedAlertDefender, Child[2]=HasValidAlertDataLocation)
- Behaviors=(BehaviorName=FindDesignatedAlertDefender, NodeType=RepeatUntilFail, Child[0]=EvaluateAlertDataDefender)
- Behaviors=(BehaviorName=EvaluateAlertDataDefender, NodeType=Sequence, Child[0]=SetNextAlertData, Child[1]=ScoreAlertFor_Defend, Child[2]=ScoreAlertDataDistance, Child[3]=UpdateBestAlertData)
- Behaviors=(BehaviorName=DecideDefendAction, NodeType=Selector, Child[0]=MoveToAlertIfNotVisible, Child[1]=SkipMove)
- Behaviors=(BehaviorName=ObserverMovement, NodeType=Selector, Child[0]=MoveFlanking, Child[1]=FallBackWithLoS)
- Behaviors=(BehaviorName=ObserverMovementUnsafe, NodeType=Selector, Child[0]=MoveFlankingUnsafe, Child[1]=FallBackWithLoSUnsafe)
- Behaviors=(BehaviorName=NCObserverMovement, NodeType=Selector, Child[0]=NCMoveFlanking, Child[1]=NCFallBackWithLoS)
- Behaviors=(BehaviorName=JobRoot_Rendezvous, NodeType=Selector, Child[0]=TryRendezvousJobIfUnrevealed, Child[1]=TryRendezvousJobIfRevealed)
- Behaviors=(BehaviorName=TryRendezvousJobIfUnrevealed, NodeType=Sequence, Child[0]=NotYetRevealed, Child[1]=DoRendezvousJobPerActionUnrevealed)
- Behaviors=(BehaviorName=DoRendezvousJobPerActionUnrevealed, NodeType=Selector, Child[0]=RendezvousFirstAction, Child[1]=SkipMove)
- Behaviors=(BehaviorName=TryRendezvousJobIfRevealed, NodeType=Sequence, Child[0]=HasRevealed, Child[1]=RendezvousActionSelector)
- Behaviors=(BehaviorName=RendezvousActionSelector, NodeType=Selector, Child[0]=RendezvousFirstAction, Child[1]=RendezvousSecondAction)
- Behaviors=(BehaviorName=RendezvousFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=FindRendezvousLocation, Child[2]=DecideRendezvousMove)
- Behaviors=(BehaviorName=DecideRendezvousMove, NodeType=Selector, Child[0]=TryRendezvousMoveNeedDash, Child[1]=TryRendezvousMoveUnsafe, Child[2]=TryRendezvousMove)
- Behaviors=(BehaviorName=TryRendezvousMoveNeedDash, NodeType=Sequence, Child[0]=IfAlertDataFar, Child[1]=IsRedAlert, Child[2]=MoveToAlertRendezvousWithDash, Intent="MOVE TO EVAC")
- Behaviors=(BehaviorName=TryRendezvousMoveUnsafe, NodeType=Sequence, Child[0]=IfNotInCombatRangeOfAlertData, Child[1]=IsRedAlert, Child[2]=MoveToAlertRendezvous, Intent="MOVE TO EVAC")
- Behaviors=(BehaviorName=TryRendezvousMove, NodeType=Sequence, Child[0]=IfNotNearAlertData, Child[1]=IsNotInRedAlert, Child[2]=DisableGreenAlertMovement, Child[3]=MoveToAlertRendezvous, Intent="MOVE TO EVAC")
- Behaviors=(BehaviorName=RendezvousSecondAction, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=HasNoValidTargets, Child[2]=RendezvousSecondActionNoEnemiesSelector)
- Behaviors=(BehaviorName=HasNoValidTargets, NodeType=Selector, Child[0]=NoVisibleEnemies, Child[1]=HasNoShotTarget)
- Behaviors=(BehaviorName=HasNoShotTarget, NodeType=Inverter, Child[0]=HasAnyShotTargetOrNeedsReload)
- Behaviors=(BehaviorName=HasAnyShotTargetOrNeedsReload, NodeType=Selector, Child[0]=HasAnyShotTarget, Child[1]=NeedsReload)
- Behaviors=(BehaviorName=HasAnyShotTarget, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SelectTargetForStandardShot)
- Behaviors=(BehaviorName=RendezvousSecondActionNoEnemiesSelector, NodeType=Selector, Child[0]=DoCower, Child[1]=TryOverwatch, Child[2]=SkipMove)
- Behaviors=(BehaviorName=MoveToAlertRendezvousWithDash, NodeType=Selector, Child[0]=TakeAlertMoveWithCoverAndDash, Child[1]=SkipMove)
- Behaviors=(BehaviorName=MoveToAlertRendezvous, NodeType=Selector, Child[0]=MoveToAlert, Child[1]=SkipMove)
- Behaviors=(BehaviorName=TakeAlertMoveWithCoverAndDash, NodeType=Sequence, Child[0]=UseDashMovement, Child[1]=AlertDataMovementUseCover, Child[2]=MoveStandardWithDestination, Child[3]=ResetDestinationSearch)
- Behaviors=(BehaviorName=FindRendezvousLocation, NodeType=Sequence, Child[0]=SetAlertDataStack, Child[1]=FindDesignatedAlertRendezvous, Child[2]=HasValidAlertDataLocation)
- Behaviors=(BehaviorName=FindDesignatedAlertRendezvous, NodeType=RepeatUntilFail, Child[0]=EvaluateAlertDataRendezvous)
- Behaviors=(BehaviorName=EvaluateAlertDataRendezvous, NodeType=Sequence, Child[0]=SetNextAlertData, Child[1]=ScoreAlertFor_Rendezvous, Child[2]=UpdateBestAlertData)
- Behaviors=(BehaviorName=ScoreAlertFor_Rendezvous, NodeType=Selector, Child[0]=ScoreAlertIfRendezvous, Child[1]=AddToAlertDataScore_0)
- Behaviors=(BehaviorName=ScoreAlertIfRendezvous, NodeType=Sequence, Child[0]=AlertDataHasTag-Rendezvous, Child[1]=AddToAlertDataScore_50)
- Behaviors=(BehaviorName=IfNotNearAlertData, NodeType=Sequence, Child[0]=IsNotNearAlertData, Child[1]=AddToAlertDataScore_15)
- Behaviors=(BehaviorName=IsNotNearAlertData, NodeType=StatCondition, Param[0]=AlertDataDistance, Param[1]=">", Param[2]="8")
- Behaviors=(BehaviorName=IfNotInCombatRangeOfAlertData, NodeType=Sequence, Child[0]=IsNotInCombatRangeOfAlertData, Child[1]=AddToAlertDataScore_15)
- Behaviors=(BehaviorName=IsNotInCombatRangeOfAlertData, NodeType=StatCondition, Param[0]=AlertDataDistance, Param[1]=">", Param[2]="21")
- Behaviors=(BehaviorName=IsNotInRedAlert, NodeType=Inverter, Child[0]=IsRedAlert)
- Behaviors=(BehaviorName=JobRoot_EvacAtRendezvous, NodeType=Selector, Child[0]=TryEvacAtRendezvousJobIfUnrevealed, Child[1]=TryEvacAtRendezvousJobIfRevealed)
- Behaviors=(BehaviorName=TryEvacAtRendezvousJobIfUnrevealed, NodeType=Sequence, Child[0]=NotYetRevealed, Child[1]=DoEvacAtRendezvousJobPerActionUnrevealed)
- Behaviors=(BehaviorName=DoEvacAtRendezvousJobPerActionUnrevealed, NodeType=Selector, Child[0]=EvacAtRendezvousFirstAction, Child[1]=EvacAtRendezvousSecondAction)
- Behaviors=(BehaviorName=TryEvacAtRendezvousJobIfRevealed, NodeType=Sequence, Child[0]=HasRevealed, Child[1]=DoEvacAtRendezvousJobPerActionRevealed)
- Behaviors=(BehaviorName=DoEvacAtRendezvousJobPerActionRevealed, NodeType=Selector, Child[0]=EvacAtRendezvousFirstAction, Child[1]=EvacAtRendezvousSecondAction)
- Behaviors=(BehaviorName=EvacAtRendezvousFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=FindRendezvousLocation, Child[2]=DecideEvacAtRendezvousMove)
- Behaviors=(BehaviorName=EvacAtRendezvousSecondAction, NodeType=Sequence, Child[0]=FindRendezvousLocation, Child[1]=DecideEvacAtRendezvousMove)
- Behaviors=(BehaviorName=DecideEvacAtRendezvousMove, NodeType=Selector, Child[0]=TryEvacAtRendezvousMoveUnsafe, Child[1]=TryEvacAtRendezvousMoveSafe, Child[2]=AttemptToEvac)
- Behaviors=(BehaviorName=TryEvacAtRendezvousMoveUnsafe, NodeType=Sequence, Child[0]=IfNotOnAlertData, Child[1]=IsRedAlert, Child[2]=MoveToAlertEvacAtRendezvous, Intent="EXTRACTING")
- Behaviors=(BehaviorName=TryEvacAtRendezvousMoveSafe, NodeType=Sequence, Child[0]=IfNotOnAlertData, Child[1]=IsNotInRedAlert, Child[2]=DisableGreenAlertMovement, Child[3]=MoveToAlertEvacAtRendezvous, Intent="EXTRACTING")
- Behaviors=(BehaviorName=IfNotOnAlertData, NodeType=Sequence, Child[0]=IsNotOnAlertData, Child[1]=AddToAlertDataScore_15)
- Behaviors=(BehaviorName=IsNotOnAlertData, NodeType=StatCondition, Param[0]=AlertDataDistance, Param[1]=">", Param[2]="2")
- Behaviors=(BehaviorName=MoveToAlertEvacAtRendezvous, NodeType=Selector, Child[0]=MoveToAlertWithDash, Child[1]=SkipMove)
- Behaviors=(BehaviorName=MoveToAlertWithDash, NodeType=Selector, Child[0]=TakeAlertMoveWithoutCoverAndDash, Child[1]=SkipMove)
- Behaviors=(BehaviorName=TakeAlertMoveWithoutCoverAndDash, NodeType=Sequence, Child[0]=UseDashMovement, Child[1]=AlertDataMovementIgnoreCover, Child[2]=MoveStandardWithDestination)
- Behaviors=(BehaviorName=AttemptToEvac, NodeType=Selector, Child[0]=TryEvac, Child[1]=TryOverwatch)
- Behaviors=(BehaviorName=TryEvac, NodeType=Sequence, Child[0]=IsAbilityAvailable-Evac, Child[1]=CheckEvacRestrictions, Child[2]=SelectAbility-Evac)
- Behaviors=(BehaviorName=CheckEvacRestrictions, NodeType=Selector, Child[0]=NotTeamXCom, Child[1]=CheckTurnCountMinimumForEvac)
- Behaviors=(BehaviorName=CheckTurnCountMinimumForEvac, NodeType=StatCondition, Param[0]=PlayerTurnCount, Param[1]=">", Param[2]=3)
- Behaviors=(BehaviorName=JobRoot_AttackStrikePoint, NodeType=Selector, Child[0]=TryAttackStrikePointJobIfUnrevealed, Child[1]=TryAttackStrikePointJobIfRevealed)
- Behaviors=(BehaviorName=TryAttackStrikePointJobIfUnrevealed, NodeType=Sequence, Child[0]=NotYetRevealed, Child[1]=DoAttackStrikePointJobPerActionUnrevealed)
- Behaviors=(BehaviorName=DoAttackStrikePointJobPerActionUnrevealed, NodeType=Selector, Child[0]=IfNotCloseToStrikePointMoveCloser, Child[1]=IfFirstMoveAttackStrikePoint, Child[2]=AttackStrikePointSecondActionUnrevealed)
- Behaviors=(BehaviorName=IfThreatenedMove, NodeType=Sequence, Child[0]=IsFlanked, Child[1]=AttemptMoveToStrikePoint)
- Behaviors=(BehaviorName=IfFirstMoveAttackStrikePoint, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=AttackStrikePointFirstActionUnrevealed)
- Behaviors=(BehaviorName=IfNotCloseToStrikePointMoveCloser, NodeType=Sequence, Child[0]=FindStrikePointLocation, Child[1]=IsAlertDataTwoMoves, Child[2]=AttemptMoveToStrikePoint)
- Behaviors=(BehaviorName=AttackStrikePointFirstActionUnrevealed, NodeType=Selector, Child[0]=AttemptMoveToStrikePoint, Child[1]=TryStrikePointAttack, Child[2]=SkipMove)
- Behaviors=(BehaviorName=AttackStrikePointSecondActionUnrevealed, NodeType=Selector, Child[0]=TryStrikePointAttack, Child[1]=SkipMove)
- Behaviors=(BehaviorName=TryAttackStrikePointJobIfRevealed, NodeType=Sequence, Child[0]=HasRevealed, Child[1]=IsGroupLeader, Child[2]=AttackStrikePointAnyActionRevealed)
- Behaviors=(BehaviorName=AttackStrikePointAnyActionRevealed, NodeType=Selector, Child[0]=IfThreatenedMove, Child[1]=TryStrikePointAttack, Child[2]=AttemptMoveToStrikePoint, Child[3]=SkipMove)
- Behaviors=(BehaviorName=AttemptMoveToStrikePoint, NodeType=Sequence, Child[0]=FindStrikePointLocation, Child[1]=DecideAttackStrikePointMove)
- Behaviors=(BehaviorName=DecideAttackStrikePointMove, NodeType=Selector, Child[0]=TryAttackStrikePointMoveUnsafe, Child[1]=TryAttackStrikePointMoveSafe)
- Behaviors=(BehaviorName=TryAttackStrikePointMoveUnsafe, NodeType=Sequence, Child[0]=IfNotNearAlertData, Child[1]=IsRedAlert, Child[2]=SetCiviliansAsEnemiesInMoveCalculation, Child[3]=MoveToAlertAttackStrikePoint, Intent="ATTACK POINT")
- Behaviors=(BehaviorName=TryAttackStrikePointMoveSafe, NodeType=Sequence, Child[0]=IfNotNearAlertData, Child[1]=IsNotInRedAlert, Child[2]=SetCiviliansAsEnemiesInMoveCalculation, Child[3]=DisableGreenAlertMovement, Child[4]=MoveToAlertAttackStrikePoint, Intent="ATTACK POINT")
- Behaviors=(BehaviorName=MoveToAlertAttackStrikePoint, NodeType=Selector, Child[0]=MoveToAlert, Child[1]=SkipMove)
- Behaviors=(BehaviorName=FindStrikePointLocation, NodeType=Sequence, Child[0]=SetAlertDataStack, Child[1]=FindDesignatedAlertStrikePoint, Child[2]=HasValidAlertDataLocation)
- Behaviors=(BehaviorName=FindDesignatedAlertStrikePoint, NodeType=RepeatUntilFail, Child[0]=EvaluateAlertDataStrikePoint)
- Behaviors=(BehaviorName=EvaluateAlertDataStrikePoint, NodeType=Sequence, Child[0]=SetNextAlertData, Child[1]=ScoreAlertFor_StrikePoint, Child[2]=UpdateBestAlertData)
- Behaviors=(BehaviorName=ScoreAlertFor_StrikePoint, NodeType=Selector, Child[0]=ScoreAlertIfStrikePointOne, Child[1]=ScoreAlertIfStrikePointTwo, Child[2]=ScoreAlertIfStrikePointThree, Child[3]=AddToAlertDataScore_0)
- Behaviors=(BehaviorName=ScoreAlertIfStrikePointOne, NodeType=Sequence, Child[0]=AlertDataHasTag-StrikePointOne, Child[1]=IsMyJob-AttackStrikePointOne, Child[2]=AddToAlertDataScore_50)
- Behaviors=(BehaviorName=ScoreAlertIfStrikePointTwo, NodeType=Sequence, Child[0]=AlertDataHasTag-StrikePointTwo, Child[1]=IsMyJob-AttackStrikePointTwo, Child[2]=AddToAlertDataScore_50)
- Behaviors=(BehaviorName=ScoreAlertIfStrikePointThree, NodeType=Sequence, Child[0]=AlertDataHasTag-StrikePointThree, Child[1]=IsMyJob-AttackStrikePointThree, Child[2]=AddToAlertDataScore_50)
- Behaviors=(BehaviorName=TryStrikePointAttack, NodeType=Sequence, Child[0]=TryStrikePointAttackSelector)
- Behaviors=(BehaviorName=TryStrikePointAttackSelector, NodeType=Selector, Child[0]=ShootIfAvailableAttackStrikePoint, Child[1]=TryMeleeAttackStrikePoint, Child[2]=NeedsReload, Intent="TERRORIZING")
- Behaviors=(BehaviorName=TryMeleeAttackStrikePoint, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=MeleeAttackStrikePointStepSelector)
- Behaviors=(BehaviorName=MeleeAttackStrikePointStepSelector, NodeType=Selector, Child[0]=MeleeAttackAttackStrikePoint, Child[1]=TryTerroristMoveMeleeFANATIC)
- Behaviors=(BehaviorName=MeleeAttackAttackStrikePoint, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMelee, Child[1]=SetTargetStack-StandardMelee, Child[2]=SelectBestTargetByJob_AttackStrikePoint, Child[3]=HasValidTarget-StandardMelee, Child[4]=SelectAbility-StandardMelee)
- Behaviors=(BehaviorName=ShootIfAvailableAttackStrikePoint, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SetTargetStack-StandardShot, Child[2]=SelectBestTargetByJob_AttackStrikePoint, Child[3]=HasValidTarget-StandardShot, Child[4]=SelectAbility-StandardShot)
- Behaviors=(BehaviorName=SelectBestTargetByJob_AttackStrikePoint, NodeType=RepeatUntilFail, Child[0]=EvaluateTargetByJob_AttackStrikePoint)
- Behaviors=(BehaviorName=EvaluateTargetByJob_AttackStrikePoint, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreAttackStrikePointTarget, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreAttackStrikePointTarget, NodeType=Successor, Child[0]=ScoreAttackStrikePointTarget)
- Behaviors=(BehaviorName=ScoreAttackStrikePointTarget, NodeType=Sequence, Child[0]=TargetIsNotAlly, Child[1]=TargetScoreChosenRetaliationCivilian, Child[2]=TargetScoreChosenRetaliationMilitia, Child[3]=TargetScoreHitChance, Child[4]=TargetScoreHealth, Child[5]=TargetScoreFlanking)
- Behaviors=(BehaviorName=TargetScoreChosenRetaliationCivilian, NodeType=Successor, Child[0]=ScoreTargetIfChosenRetaliationCivilian)
- Behaviors=(BehaviorName=TargetScoreChosenRetaliationMilitia, NodeType=Successor, Child[0]=ScoreTargetIfChosenRetaliationMilitia)
- Behaviors=(BehaviorName=ScoreTargetIfChosenRetaliationCivilian, NodeType=Sequence, Child[0]=TargetIsCivilian, Child[1]=TargetNotTeamResistance, Child[2]=ScoreChosenRetaliationCivilian)
- Behaviors=(BehaviorName=ScoreChosenRetaliationCivilian, NodeType=Selector, Child[0]=ScoreCivilianIfActuallyFaceless, Child[1]=LimitCivilianKillsForBetaStrike, Child[2]=AddToTargetScore_80)
- Behaviors=(BehaviorName=ScoreTargetIfChosenRetaliationMilitia, NodeType=Sequence, Child[0]=IsTargetTeam-eTeam_Resistance, Child[1]=AddToTargetScore_80)
- Behaviors=(BehaviorName=JobRoot_Executioner, NodeType=Sequence, Child[0]=TryExecutionerJob)
- Behaviors=(BehaviorName=TryExecutionerJob, NodeType=Selector, Child[0]=SequenceExecutionerActionIfLeader, Child[1]=DoUnrevealedSkip_Follower)
- Behaviors=(BehaviorName=SequenceExecutionerActionIfLeader, NodeType=Sequence, Child[0]=IsGroupLeader, Child[1]=SelectExecutionerLeaderAction)
- Behaviors=(BehaviorName=SelectExecutionerLeaderAction, NodeType=Selector, Child[0]=TryBerserkerMelee, Child[1]=RandomizedTryTerrorMovement, Child[2]=TryExecutionerAttack, Child[3]=TerrorMovement)
- Behaviors=(BehaviorName=TryExecutionerAttack, NodeType=Selector, Child[0]=ShootIfAvailableExecutioner, Child[1]=TryMeleeExecutioner, Child[2]=NeedsReload, Intent="TERRORIZING")
- Behaviors=(BehaviorName=TryMeleeExecutioner, NodeType=Sequence, Child[0]=IsAbilityReady-StandardMelee, Child[1]=MeleeExecutionerStepSelector)
- Behaviors=(BehaviorName=MeleeExecutionerStepSelector, NodeType=Selector, Child[0]=MeleeAttackExecutioner, Child[1]=TryTerroristMoveMeleeFANATICUnsafe)
- Behaviors=(BehaviorName=MeleeAttackExecutioner, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMelee, Child[1]=SetTargetStack-StandardMelee, Child[2]=SelectBestTargetByJob_Executioner, Child[3]=HasValidTarget-StandardMelee, Child[4]=SelectAbility-StandardMelee)
- Behaviors=(BehaviorName=ShootIfAvailableExecutioner, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SetTargetStack-StandardShot, Child[2]=SelectBestTargetByJob_Executioner, Child[3]=HasValidTarget-StandardShot, Child[4]=SelectAbility-StandardShot)
- Behaviors=(BehaviorName=SelectBestTargetByJob_Executioner, NodeType=RepeatUntilFail, Child[0]=EvaluateTargetByJob_Executioner)
- Behaviors=(BehaviorName=EvaluateTargetByJob_Executioner, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreExecutionerTarget, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreExecutionerTarget, NodeType=Successor, Child[0]=ScoreExecutionerTarget)
- Behaviors=(BehaviorName=ScoreExecutionerTarget, NodeType=Sequence, Child[0]=TargetIsNotAlly, Child[1]=TargetScoreCivilian, Child[2]=TargetScoreChosenRetaliationMilitia, Child[3]=TargetScoreHitChance, Child[4]=TargetScoreHealth, Child[5]=TargetScoreFlanking)
- Behaviors=(BehaviorName=ScoreCivilianIfExecutioner, NodeType=Sequence, Child[0]=IsMyJob-Executioner, Child[1]=TargetIsNotAlien, Child[2]=AddToTargetScore_1000)
- Behaviors=(BehaviorName=JobRoot_SentryVsLost, NodeType=Sequence, Child[0]=TrySentryVsLostJob)
- Behaviors=(BehaviorName=TrySentryVsLostJob, NodeType=Selector, Child[0]=TryShootOrReload, Child[1]=SkipMove)
- Behaviors=(BehaviorName=JobRoot_AlwaysDoNothing, NodeType=Sequence, Child[0]=SkipMove)
- Behaviors=(BehaviorName="TheLost::CharacterRoot", NodeType=Selector, Child[0]=LostHowlerBranch, Child[1]=LostBurningSequence, Child[2]=LostGreenAlertBehavior, Child[3]=LostActiveBehavior, Child[4]=SkipMove)
- Behaviors=(BehaviorName=LostBurningSequence, NodeType=Sequence, Child[0]=AffectedByEffect-Burning, Child[1]=LostBurningRoot)
- Behaviors=(BehaviorName=AffectedByEffect-Burning, NodeType=Condition)
- Behaviors=(BehaviorName=NotBurning, NodeType=Inverter, Child[0]=AffectedByEffect-Burning)
- Behaviors=(BehaviorName=LostGreenAlertBehavior, NodeType=Sequence, Child[0]=IsGreenAlert, Child[1]=SkipMove)
- Behaviors=(BehaviorName=LostActiveBehavior, NodeType=Sequence, Child[0]=IsNotGreenAlert, Child[1]=GroupWideExcludeEffect-Burning, Child[2]=LostActiveSelector)
- Behaviors=(BehaviorName=GroupWideExcludeEffect-Burning, NodeType=Action)
- Behaviors=(BehaviorName=LostActiveSelector, NodeType=Selector, Child[0]=LostHuntingGroupMove, Child[1]=LostHuntingTargetAttack )
- Behaviors=(BehaviorName=IsNotGreenAlert, NodeType=Inverter, Child[0]=IsGreenAlert)
- Behaviors=(BehaviorName=LostHowlerBranch, NodeType=Sequence, Child[0]=IsAbilityReady-LostHowlerAbility, Child[1]=LostHowlerSelector)
- Behaviors=(BehaviorName=IsAbilityReady-LostHowlerAbility, NodeType=Condition, Param[0]="AA_CoolingDown"); Global cooldown is ok, just an IsHowler check.
- Behaviors=(BehaviorName=LostHowlerSelector, NodeType=Selector, Child[0]=LostHowlerGreenAlertBehavior, Child[1]=TryHowl, Child[2]=LostActiveBehavior, Child[3]=SkipMove)
- Behaviors=(BehaviorName=LostHowlerGreenAlertBehavior, NodeType=Sequence, Child[0]=ShouldPatrol, Child[1]=SkipMove) ; Do nothing until revealed.
- Behaviors=(BehaviorName=TryHowl, NodeType=Sequence, Child[0]=IsAbilityAvailable-LostHowlerAbility, Child[1]=ChanceToHowl)
- Behaviors=(BehaviorName=ChanceToHowl, NodeType=RandFilter, Child[0]=SelectAbility-LostHowlerAbility, Param[0]=100)
- Behaviors=(BehaviorName=IsAbilityAvailable-LostHowlerAbility, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-LostHowlerAbility, NodeType=Action)
- Behaviors=(BehaviorName=LostHuntingGroupMove, NodeType=Action)
- Behaviors=(BehaviorName=LostScamperMove, NodeType=Action)
- Behaviors=(BehaviorName=LostHuntingTargetAttack, NodeType=Action)
- Behaviors=(BehaviorName=TheLostScamperRoot, NodeType=Selector, Child[0]=SkipIfLostScampered, Child[1]=LostScamperMove)
- Behaviors=(BehaviorName=SkipIfLostScampered, NodeType=Sequence, Child[0]=HasLostGroupScampered, Child[1]=SkipMove)
- Behaviors=(BehaviorName=HasLostGroupScampered, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-LostAttack, NodeType=Action)
- Behaviors=(BehaviorName=LostBurningRoot, NodeType=Selector, Child[0]=ChanceRunToOtherLost, Child[1]=RandomMovement, Child[2]=SkipMove)
- Behaviors=(BehaviorName=SetDestinationNextToUnburnedTeammate, NodeType=Action)
- Behaviors=(BehaviorName=ChanceRunToOtherLost, NodeType=RandFilter, Child[0]=RunToOtherLost, Param[0]=50)
- Behaviors=(BehaviorName=RunToOtherLost, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=SetDestinationNextToUnburnedTeammate, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=RandomMovement, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=SelectRandomDestination, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=SelectRandomDestination, NodeType=Sequence, Child[0]=SSSetRandomDirValueIfUnset, Child[1]=SelectDestinationFromRandomDir)
- Behaviors=(BehaviorName=SelectDestinationFromRandomDir, NodeType=Action)
- Behaviors=(BehaviorName=SSSetRandomDirValueIfUnset, NodeType=Successor, Child[0]=SetRandomDirValueIfUnset)
- Behaviors=(BehaviorName=SetRandomDirValueIfUnset, NodeType=Sequence, Child[0]=RandomDirValueUnset, Child[1]=SetRandUnitValue-RandomDir)
- Behaviors=(BehaviorName=RandomDirValueUnset, NodeType=Inverter, Child[0]=HasUnitValue-RandomDir)
- Behaviors=(BehaviorName=HasUnitValue-RandomDir, NodeType=Condition)
- Behaviors=(BehaviorName=SetRandUnitValue-RandomDir, NodeType=Action, Param[0]=65535, Param[1]=1) ;Set a random yaw direction
- Behaviors=(BehaviorName=HasBTVar-ChosenOverwatchEffect, NodeType=Condition)
- Behaviors=(BehaviorName=SetChosenOverwatchEffectNormal, NodeType=Sequence, Child[0]=SetChosenOverwatchEffectNormalBTVar, Child[1]=SetSafeToMoveTrue)
- Behaviors=(BehaviorName=SetChosenOverwatchEffectAbilityOnly, NodeType=Sequence, Child[0]=SetChosenOverwatchEffectAbilityOnlyBTVar, Child[1]=SetSafeToMoveFalse)
- Behaviors=(BehaviorName=SetChosenOverwatchEffectShootOverwatcher, NodeType=Sequence, Child[0]=SetChosenOverwatchEffectShootOverwatcherBTVar, Child[1]=SetSafeToMoveFalse)
- Behaviors=(BehaviorName=SetChosenOverwatchEffectNormalBTVar, NodeType=Action, Param[0]=SetBTVar, Param[1]="ChosenOverwatchEffect", Param[2]="0")
- Behaviors=(BehaviorName=SetChosenOverwatchEffectAbilityOnlyBTVar, NodeType=Action, Param[0]=SetBTVar, Param[1]="ChosenOverwatchEffect", Param[2]="1")
- Behaviors=(BehaviorName=SetChosenOverwatchEffectShootOverwatcherBTVar, NodeType=Action, Param[0]=SetBTVar, Param[1]="ChosenOverwatchEffect", Param[2]="2")
- Behaviors=(BehaviorName=ChosenSafeToMove, NodeType=Sequence, Child[0]=InitChosenOverwatchEffect, Child[1]=ChosenIsSafeToMove)
- Behaviors=(BehaviorName=ChosenIsSafeToMove, NodeType=StatCondition, Param[0]=BTVar, Param[1]="==", Param[2]="0", Param[3]="ChosenOverwatchEffect")
- Behaviors=(BehaviorName=ChosenNotSafeToMove, NodeType=Sequence, Child[0]=InitChosenOverwatchEffect, Child[1]=ChosenIsNotSafeToMove)
- Behaviors=(BehaviorName=ChosenIsNotSafeToMove, NodeType=Inverter, Child[0]=ChosenIsSafeToMove)
- Behaviors=(BehaviorName=ChosenShouldUseNormalAbility, NodeType=StatCondition, Param[0]=BTVar, Param[1]="==", Param[2]="1", Param[3]="ChosenOverwatchEffect")
- Behaviors=(BehaviorName=ChosenShouldShootOverwatcher, NodeType=StatCondition, Param[0]=BTVar, Param[1]="==", Param[2]="2", Param[3]="ChosenOverwatchEffect")
- Behaviors=(BehaviorName=InitChosenOverwatchEffect, NodeType=Selector, Child[0]=HasBTVar-ChosenOverwatchEffect, Child[1]=UpdateChosenOverwatchEffectVar)
- Behaviors=(BehaviorName=UpdateChosenOverwatchEffectVar, NodeType=Selector, Child[0]=ChosenOverwatch_HasShadowstep, Child[1]=ChosenOverwatch_HasOverwatchersLowHealth, Child[2]=ChosenOverwatch_MultipleOverwatchers, Child[3]=ChosenOverwatch_SingleOverwatcher, Child[4]=SetChosenOverwatchEffectNormal )
- Behaviors=(BehaviorName=AffectedByEffect-Shadowstep, NodeType=Condition)
- Behaviors=(BehaviorName=ChosenOverwatch_HasShadowstep, NodeType=Sequence, Child[0]=AffectedByEffect-Shadowstep, Child[1]=SetChosenOverwatchEffectNormal)
- Behaviors=(BehaviorName=NoOverwatchersInArea, NodeType=StatCondition, Param[0]=OverwatcherCount, Param[1]="==", Param[2]="0", Param[3]="0", Param[4]="1")
- Behaviors=(BehaviorName=HasMultipleOverwatchersInArea, NodeType=StatCondition, Param[0]=OverwatcherCount, Param[1]=">", Param[2]="1", Param[3]="0", Param[4]="1")
- Behaviors=(BehaviorName=HasOverwatchersInArea, NodeType=Inverter, Child[0]=NoOverwatchersInArea)
- Behaviors=(BehaviorName=ChosenOverwatch_HasOverwatchersLowHealth, NodeType=Sequence, Child[0]=HasOverwatchersInArea, Child[1]=HealthBelow50, Child[2]=ChosenOverwatchResponseTierA)
- Behaviors=(BehaviorName=ChosenOverwatch_MultipleOverwatchers, NodeType=Sequence, Child[0]=HasMultipleOverwatchersInArea, Child[1]=ChosenOverwatchResponseTierB)
- Behaviors=(BehaviorName=ChosenOverwatch_SingleOverwatcher, NodeType=Sequence, Child[0]=HasOverwatchersInArea, Child[1]=ChosenOverwatchResponseTierC)
- Behaviors=(BehaviorName=ChosenOverwatchResponseTierA, NodeType=RandSelector, Child[0]=SetChosenOverwatchEffectShootOverwatcher, Param[0]=40, Child[1]=SetChosenOverwatchEffectAbilityOnly, Param[1]=40, Child[2]=SetChosenOverwatchEffectNormal, Param[2]=20)
- Behaviors=(BehaviorName=ChosenOverwatchResponseTierB, NodeType=RandSelector, Child[0]=SetChosenOverwatchEffectShootOverwatcher, Param[0]=30, Child[1]=SetChosenOverwatchEffectAbilityOnly, Param[1]=30, Child[2]=SetChosenOverwatchEffectNormal, Param[2]=40)
- Behaviors=(BehaviorName=ChosenOverwatchResponseTierC, NodeType=RandSelector, Child[0]=SetChosenOverwatchEffectShootOverwatcher, Param[0]=20, Child[1]=SetChosenOverwatchEffectAbilityOnly, Param[1]=10, Child[2]=SetChosenOverwatchEffectNormal, Param[2]=70)
- Behaviors=(BehaviorName=OverwatchHandlerShootOverwatcherOption, NodeType=Sequence, Child[0]=ChosenShouldShootOverwatcher, Child[1]=TryShootAtOverwatcherOrReload)
- Behaviors=(BehaviorName=OverwatchHandlerBackupOption, NodeType=Sequence, Child[0]=ChosenShouldUseNormalAbility, Child[1]=TryShootAtOverwatcherOrReload)
- Behaviors=(BehaviorName=TryShootAtOverwatcherOrReload, NodeType=Selector, Child[0]=ShootOverwatcherIfAvailable, Child[1]=NeedsReload)
- Behaviors=(BehaviorName=ShootOverwatcherIfAvailable, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=SelectOverwatchingTargetForStandardShot, Child[2]=SelectAbility-StandardShot)
- Behaviors=(BehaviorName=SelectOverwatchingTargetForStandardShot, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=SelectOverwatchingTargetIterator, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=SelectOverwatchingTargetIterator, NodeType=RepeatUntilFail, Child[0]=SelectOverwatchingTargetStep)
- Behaviors=(BehaviorName=SelectOverwatchingTargetStep, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreForOverwatchTargets, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreForOverwatchTargets, NodeType=Successor, Child[0]=ScoreForOverwatchTargets)
- Behaviors=(BehaviorName=ScoreForOverwatchTargets, NodeType=Sequence, Child[0]=TargetIsOverwatching, Child[1]=AddToTargetScore_100, Child[2]=GenericTargetEvaluations)
- Behaviors=(BehaviorName=TargetIsOverwatching, NodeType=Condition)
- Behaviors=(BehaviorName=ChosenGeneric, NodeType=Selector, Child[0]=GenericAbilityRoot, Child[1]=DoIfFlankedMove, Child[2]=TryMoveThenGrenade, Child[3]=TryShootOrReloadOrOverwatch, Child[4]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=ChosenUnactivated, NodeType=Sequence, Child[0]=ChosenIsUnactivated, Child[1]=GenericGreenMovement)
- Behaviors=(BehaviorName=ChosenIsUnactivated, NodeType=Selector, Child[0]=NoUnitValueSetForActivationState, Child[1]=ChosenUnitValueIsUnactivated)
- Behaviors=(BehaviorName=NoUnitValueSetForActivationState, NodeType=Inverter, Child[0]=HasUnitValue-ChosenActivatedStateUnitValue)
- Behaviors=(BehaviorName=HasUnitValue-ChosenActivatedStateUnitValue, NodeType=Condition)
- Behaviors=(BehaviorName=ChosenUnitValueIsUnactivated, NodeType=StatCondition, Param[0]=UnitValue-ChosenActivatedStateUnitValue, Param[1]="==", Param[2]=0)
- Behaviors=(BehaviorName=ChosenIsActivated, NodeType=StatCondition, Param[0]=UnitValue-ChosenActivatedStateUnitValue, Param[1]="==", Param[2]=1)
- Behaviors=(BehaviorName=ChosenIsEngaged, NodeType=StatCondition, Param[0]=UnitValue-ChosenActivatedStateUnitValue, Param[1]="==", Param[2]=2)
- Behaviors=(BehaviorName=ChosenActivated, NodeType=Sequence, Child[0]=ChosenIsActivated, Child[1]="::ChosenActivated")
- Behaviors=(BehaviorName=MoveInIfLastUnit, NodeType=Sequence, Child[0]=IsLastAIUnit, Child[1]=MoveTowardsNearestEnemy)
- Behaviors=(BehaviorName=IsLastAIUnit, NodeType=Condition)
- Behaviors=(BehaviorName=DoRedScreenFailure-ChosenBT, NodeType=Action, Param[0]="RedScreen-Error On Behavior Tree! Chosen behavior not overridden! @acheng")
- Behaviors=(BehaviorName="::ChosenActivated", NodeType=Sequence, Child[0]=DoRedScreenFailure-ChosenBT, Child[1]=SkipMove);Should be overwritten.
- Behaviors=(BehaviorName=ChosenEngaged, NodeType=Sequence, Child[0]=ChosenIsEngaged, Child[1]=SelectChosenEngagedAction)
- Behaviors=(BehaviorName=SelectChosenEngagedAction, NodeType=Selector, Child[0]=TryChosenExtract, Child[1]=SelectPreselectedAbility, Child[2]=OutOfRangeChosenBehavior, Child[3]="::ChosenEngaged")
- Behaviors=(BehaviorName=OutOfRangeChosenBehavior, NodeType=Sequence, Child[0]=NotVisibleToTeamXCom, Child[1]=IsChosenOutOfRange, Child[2]="::ChosenActivated")
- Behaviors=(BehaviorName=NotVisibleToTeamXCom, NodeType=Condition)
- Behaviors=(BehaviorName=IsChosenOutOfRange, NodeType=Condition, Param[0]=27); Meter range to check. Default soldier sight range == 27 meters.
- Behaviors=(BehaviorName="::ChosenEngaged", NodeType=Sequence, Child[0]=DoRedScreenFailure-ChosenBT, Child[1]=SkipMove)
- Behaviors=(BehaviorName=TryChosenExtract, NodeType=Selector, Child[0]=TryChosenExtractAbility, Child[1]=ChosenMoveTowardDazed)
- Behaviors=(BehaviorName=TryChosenExtractAbility, NodeType=Sequence, Child[0]=CanKidnapOrExtract, Child[1]=ExtractNotDisabled, Child[2]=SelectKidnapOrExtract)
- Behaviors=(BehaviorName=ExtractNotDisabled, NodeType=Inverter, Child[0]=HasBTVar-NoExtract)
- Behaviors=(BehaviorName=CanKidnapOrExtract, NodeType=Selector, Child[0]=CanMoveToKidnapOrExtract, Child[1]=IsAbilityAvailable-ChosenKidnap, Child[2]=IsAbilityAvailable-ChosenExtractKnowledge)
- Behaviors=(BehaviorName=IsAbilityAvailable-ChosenKidnap, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-ChosenExtractKnowledge, NodeType=Condition)
- Behaviors=(BehaviorName=CanMoveToKidnapOrExtract, NodeType=Sequence, Child[0]=ChosenSafeToMove, Child[1]=KidnapExtractMoveAvailable)
- Behaviors=(BehaviorName=KidnapExtractMoveAvailable, NodeType=Selector, Child[0]=IsAbilityAvailable-ChosenKidnapMove, Child[1]=IsAbilityAvailable-ChosenExtractKnowledgeMove)
- Behaviors=(BehaviorName=SelectKidnapOrExtract, NodeType=Selector, Child[0]=TryVanishReveal, Child[1]=ChanceToKidnap, Child[2]=TryExtractKnowledge)
- Behaviors=(BehaviorName=ChanceToKidnap, NodeType=Sequence, Child[0]=ShouldChosenUseKidnap, Child[1]=TryKidnap)
- Behaviors=(BehaviorName=ShouldChosenUseKidnap, NodeType=Condition)
- Behaviors=(BehaviorName=ChosenMoveTowardDazed, NodeType=Sequence, Child[0]=ChosenSafeToMove, Child[1]=ExtractNotDisabled, Child[2]=SelectDazedPriorityTarget, Child[3]=IsAbilityReady-ChosenExtractKnowledgeMove, Child[4]="::MoveTowardDazed")
- Behaviors=(BehaviorName=IsAbilityReady-ChosenExtractKnowledgeMove, NodeType=Condition)
- Behaviors=(BehaviorName="::MoveTowardDazed", NodeType=Sequence, Child[0]=MoveTowardDazed)
- Behaviors=(BehaviorName=MoveTowardDazed, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=FindDestinationTowardTarget, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindDestinationTowardTarget, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=OverridePreferredDestinationToPotentialTarget, Child[2]=OverrideIdealRange-3, Child[3]=RestrictToUnflanked, Child[4]=UseDashMovement, Child[5]=FindRestrictedDestination-MWP_AdvanceToTarget)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_AdvanceToTarget, NodeType=Action)
- Behaviors=(BehaviorName=OverridePreferredDestinationToPotentialTarget, NodeType=Action)
- Behaviors=(BehaviorName=TryChosenSummon, NodeType=Sequence, Child[0]=IsAbilityAvailable-ChosenSummonFollowers, Child[1]=SelectAbility-ChosenSummonFollowers)
- Behaviors=(BehaviorName=IsAbilityAvailable-ChosenSummonFollowers, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-ChosenSummonFollowers, NodeType=Action)
- Behaviors=(BehaviorName=TryKidnap, NodeType=Sequence, Child[0]=IsAbilityAvailable-ChosenKidnapMove, Child[1]=SelectKidnapTarget, Child[2]=SelectAbility-ChosenKidnapMove)
- Behaviors=(BehaviorName=IsAbilityAvailable-ChosenKidnapMove, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-ChosenKidnapMove, NodeType=Action)
- Behaviors=(BehaviorName=SetTargetStack-ChosenKidnapMove, NodeType=Action)
- Behaviors=(BehaviorName=HasValidTarget-ChosenKidnapMove, NodeType=Condition)
- Behaviors=(BehaviorName=SelectKidnapTarget, NodeType=Sequence, Child[0]=SetTargetStack-ChosenKidnapMove, Child[1]=SelectClosestEnemyTarget_NonCivilianOrVIP, Child[2]=HasValidTarget-ChosenKidnapMove)
- Behaviors=(BehaviorName=TryExtractKnowledge, NodeType=Sequence, Child[0]=IsAbilityAvailable-ChosenExtractKnowledgeMove, Child[1]=SelectExtractKnowledgeTarget, Child[2]=SelectAbility-ChosenExtractKnowledgeMove)
- Behaviors=(BehaviorName=IsAbilityAvailable-ChosenExtractKnowledgeMove, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-ChosenExtractKnowledgeMove, NodeType=Action)
- Behaviors=(BehaviorName=SetTargetStack-ChosenExtractKnowledgeMove, NodeType=Action)
- Behaviors=(BehaviorName=HasValidTarget-ChosenExtractKnowledgeMove, NodeType=Condition)
- Behaviors=(BehaviorName=SelectExtractKnowledgeTarget, NodeType=Sequence, Child[0]=SetTargetStack-ChosenExtractKnowledgeMove, Child[1]=SelectClosestEnemyTarget_NonCivilianOrVIP, Child[2]=HasValidTarget-ChosenExtractKnowledgeMove)
- Behaviors=(BehaviorName=TryAgileMove, NodeType=Selector, Child[0]=TryAgileMoveNonFlanking, Child[1]=TryAgileMoveAny, Child[2]=MoveDefensiveWithLoSUnsafe)
- Behaviors=(BehaviorName=TryAgileMoveNonFlanking, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToNonFlanking, Child[2]=RestrictToUnflanked, Child[3]=FindDestinationWithLoS-MWP_AgileRandom, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_AgileRandom, NodeType=Action)
- Behaviors=(BehaviorName=TryAgileMoveAny, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToUnflanked, Child[2]=FindDestinationWithLoS-MWP_AgileRandom, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=DisableExtractThisTurn, NodeType=Action, Param[0]=SetBTVar, Param[1]="NoExtract", Param[2]="1")
- Behaviors=(BehaviorName=HasBTVar-NoExtract, NodeType=Condition)
- Behaviors=(BehaviorName="ChosenAssassin::CharacterRoot", NodeType=Selector, Child[0]=ChosenUnactivated, Child[1]=ChosenActivated, Child[2]=ChosenEngaged, Child[3]=SkipMove)
- Behaviors=(BehaviorName="ChosenAssassin::ChosenActivated", NodeType=Selector, Child[0]=SelectPreselectedAbility, Child[1]=PostBendingReedSkip, Child[2]=StealthAssassinBranch, Child[3]=DoVanishingWindMapwide, Child[4]=VanishingWindMove, Child[5]=MoveAdvanceToCoverUnsafe, Child[6]=SkipMove)
- Behaviors=(BehaviorName="ChosenAssassin::ChosenEngaged", NodeType=Selector, Child[0]=PostBendingReedSkip, Child[1]=StealthAssassinBranch, Child[2]=VisibleAssassinBranch, Child[3]=TryShootOrReload, Child[4]=TryOverwatch, Child[5]=SkipMove)
- Behaviors=(BehaviorName=PostBendingReedSkip, NodeType=Sequence, Child[0]=WasLastAbility-StandardMove, Child[1]=HasBTVar-NoExtract, Child[2]=SkipMove)
- Behaviors=(BehaviorName=StealthAssassinBranch, NodeType=Sequence, Child[0]=AffectedByEffect-VanishingWind, Child[1]=SelectFromStealthAssassinOptions)
- Behaviors=(BehaviorName=VanishingWindMove, NodeType=Sequence, Child[0]=AffectedByEffect-VanishingWind, Child[1]=IsAbilityAvailable-StandardMove, Child[2]=FindStealthDestination, Child[3]=SelectAbility-StandardMove, Child[4]=SSSetAssassinCycle1IfUnset)
- Behaviors=(BehaviorName=VisibleAssassinBranch, NodeType=Sequence, Child[0]=NotAffectedByVanishingWind, Child[1]=CycleVisibleAssassinOptions)
- Behaviors=(BehaviorName=AffectedByEffect-VanishingWind, NodeType=Condition)
- Behaviors=(BehaviorName=NotAffectedByVanishingWind, NodeType=Inverter, Child[0]=AffectedByEffect-VanishingWind)
- Behaviors=(BehaviorName=SelectFromStealthAssassinOptions, NodeType=Selector, Child[0]=TryPartingSilkConditionally, Child[1]=PostVanishingWindMovement, Child[2]=AdvanceCoverIfNoEnemiesVisible, Child[3]=NoHarborWaveTargetOption, Child[4]=StealthOverwatchHandlerOption, Child[5]=AdvanceCoverDashMove, Child[6]=HuntEnemyWithCover, Child[7]=HuntEnemyUnsafe )
- Behaviors=(BehaviorName=StealthOverwatchHandlerOption, NodeType=Sequence, Child[0]=ChosenNotSafeToMove, Child[1]=IsLastActionPoint, Child[2]=TryVanishReveal)
- Behaviors=(BehaviorName=CycleVisibleAssassinOptions, NodeType=Selector, Child[0]=OverwatchHandlerShootOverwatcherOption, Child[1]=TryChosenSummon, Child[2]=AssassinCycle1Branch, Child[3]=AssassinCycle2Branch, Child[4]=AssassinCycle3Branch, Child[5]=SelectFromVisibleAssassinOptions)
- Behaviors=(BehaviorName=AssassinCycle1Branch, NodeType=Sequence, Child[0]=IsAssassinCycle1, Child[1]=AssassinCycle1Selector)
- Behaviors=(BehaviorName=AssassinCycle2Branch, NodeType=Sequence, Child[0]=IsAssassinCycle2, Child[1]=AssassinCycle2Selector)
- Behaviors=(BehaviorName=AssassinCycle3Branch, NodeType=Sequence, Child[0]=IsAssassinCycle3, Child[1]=AssassinCycle3Selector)
- Behaviors=(BehaviorName=AssassinCycle1Selector, NodeType=Selector, Child[0]=AssassinBendingReedMovement, Child[1]=TryPartingSilk)
- Behaviors=(BehaviorName=AssassinCycle2Selector, NodeType=Selector, Child[0]=HarborWaveAndMountainMistOptions, Child[1]=HarborWaveOnlyOption, Child[2]=MountainMistOnlyOption)
- Behaviors=(BehaviorName=AssassinCycle3Selector, NodeType=Selector, Child[0]=TryVanishingWind)
- Behaviors=(BehaviorName=SelectFromVisibleAssassinOptions, NodeType=Selector, Child[0]=OverwatchHandlerShootOverwatcherOption, Child[1]=AssassinBendingReedMovement, Child[2]=TryVanishingWind, Child[3]=HarborWaveAndMountainMistOptions, Child[4]=PartingSilkPriorityOption, Child[5]=HarborWaveOnlyOption, Child[6]=MountainMistOnlyOption, Child[7]=NoHarborWaveTargetOption, Child[8]=OverwatchHandlerBackupOption, Child[9]=SelectFromStealthAssassinOptions)
- Behaviors=(BehaviorName=SetAssassinCycle1, NodeType=Action, Param[0]=SetUnitValue, Param[1]="AssassinCycle", Param[2]="1")
- Behaviors=(BehaviorName=SetAssassinCycle2, NodeType=Action, Param[0]=SetUnitValue, Param[1]="AssassinCycle", Param[2]="2")
- Behaviors=(BehaviorName=SetAssassinCycle3, NodeType=Action, Param[0]=SetUnitValue, Param[1]="AssassinCycle", Param[2]="3")
- Behaviors=(BehaviorName=SSSetAssassinCycle1IfUnset, NodeType=Successor, Child[0]=SetAssassinCycle1IfUnset)
- Behaviors=(BehaviorName=SSSetAssassinCycle1IfNotSet, NodeType=Successor, Child[0]=SetAssassinCycle1IfNotSet)
- Behaviors=(BehaviorName=SSSetAssassinCycle2IfNotSet, NodeType=Successor, Child[0]=SetAssassinCycle2IfNotSet)
- Behaviors=(BehaviorName=SSSetAssassinCycle3IfNotSet, NodeType=Successor, Child[0]=SetAssassinCycle3IfNotSet)
- Behaviors=(BehaviorName=SetAssassinCycle1IfUnset, NodeType=Sequence, Child[0]=NotAssassinCycle1, Child[1]=NotAssassinCycle2, Child[2]=NotAssassinCycle3, Child[3]=SetAssassinCycle1)
- Behaviors=(BehaviorName=SetAssassinCycle1IfNotSet, NodeType=Sequence, Child[0]=NotAssassinCycle1, Child[1]=SetAssassinCycle1)
- Behaviors=(BehaviorName=SetAssassinCycle2IfNotSet, NodeType=Sequence, Child[0]=NotAssassinCycle2, Child[1]=SetAssassinCycle2)
- Behaviors=(BehaviorName=SetAssassinCycle3IfNotSet, NodeType=Sequence, Child[0]=NotAssassinCycle3, Child[1]=SetAssassinCycle3)
- Behaviors=(BehaviorName=IsAssassinCycle1, NodeType=StatCondition, Param[0]=UnitValue-AssassinCycle, Param[1]="==", Param[2]="1")
- Behaviors=(BehaviorName=IsAssassinCycle2, NodeType=StatCondition, Param[0]=UnitValue-AssassinCycle, Param[1]="==", Param[2]="2")
- Behaviors=(BehaviorName=IsAssassinCycle3, NodeType=StatCondition, Param[0]=UnitValue-AssassinCycle, Param[1]="==", Param[2]="3")
- Behaviors=(BehaviorName=NotAssassinCycle1, NodeType=Inverter, Child[0]=IsAssassinCycle1)
- Behaviors=(BehaviorName=NotAssassinCycle2, NodeType=Inverter, Child[0]=IsAssassinCycle2)
- Behaviors=(BehaviorName=NotAssassinCycle3, NodeType=Inverter, Child[0]=IsAssassinCycle3)
- Behaviors=(BehaviorName=HarborWaveAndMountainMistOptions, NodeType=Sequence, Child[0]=IsAbilityAvailable-ThrowGrenade, Child[1]=IsAbilityAvailable-HarborWave, Child[2]=ChooseBetweenMountainMistAndHarborWave, Child[3]=SSSetAssassinCycle3IfNotSet)
- Behaviors=(BehaviorName=HarborWaveOnlyOption, NodeType=Sequence, Child[0]=IsAbilityAvailable-HarborWave, Child[1]=ThrowGrenadeNotAvailable, Child[2]=TryHarborWaveOptions, Child[3]=SSSetAssassinCycle3IfNotSet)
- Behaviors=(BehaviorName=MountainMistOnlyOption, NodeType=Sequence, Child[0]=IsAbilityAvailable-ThrowGrenade, Child[1]=NoHarborWaveOption, Child[2]=TryMountainMistOnlyOptions, Child[3]=SSSetAssassinCycle3IfNotSet)
- Behaviors=(BehaviorName=TryMountainMistOnlyOptions, NodeType=Selector, Child[0]=TryMountainMistPreferred, Child[1]=TryMountainMistAny25)
- Behaviors=(BehaviorName=TryMountainMistAny25, NodeType=RandFilter, Child[0]=TryMountainMistAny, Param[0]=25)
- Behaviors=(BehaviorName=ThrowGrenadeNotAvailable, NodeType=Inverter, Child[0]=IsAbilityAvailable-ThrowGrenade)
- Behaviors=(BehaviorName=NoHarborWaveOption, NodeType=Selector, Child[0]=HarborWaveNotAvailable, Child[1]=NoHarborWaveTargets)
- Behaviors=(BehaviorName=HarborWaveNotAvailable, NodeType=Inverter, Child[0]=IsAbilityAvailable-HarborWave)
- Behaviors=(BehaviorName=ChooseBetweenMountainMistAndHarborWave, NodeType=Selector, Child[0]=MountainMistPriorityOption, Child[1]=RandSelectHarborWave80MountainMist20)
- Behaviors=(BehaviorName=PartingSilkPriorityOption, NodeType=Sequence, Child[0]=LastTurnUsedHarborWaveOrMountainMist, Child[1]=TryPartingSilk)
- Behaviors=(BehaviorName=LastTurnUsedHarborWaveOrMountainMist, NodeType=Selector, Child[0]=WasLastAbility-HarborWave, Child[1]=WasLastAbility-ThrowGrenade)
- Behaviors=(BehaviorName=WasLastAbility-HarborWave, NodeType=Condition)
- Behaviors=(BehaviorName=WasLastAbility-ThrowGrenade, NodeType=Condition)
- Behaviors=(BehaviorName=MountainMistPriorityOption, NodeType=Sequence, Child[0]=CanHitMultipleMountainMistTargets, Child[1]=RandSelectMountainMist75HarborWave25)
- Behaviors=(BehaviorName=CanHitMultipleMountainMistTargets, NodeType=Sequence, Child[0]=IsAbilityReady-ThrowGrenade, Child[1]=FindPotentialAoETargets-MountainMistPreferred, Child[2]=MoveStandardIfFirstAbility-Grenade)
- Behaviors=(BehaviorName=FindPotentialAoETargets-MountainMistPreferred, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-MountainMistAny, NodeType=Action)
- Behaviors=(BehaviorName=SSSetPreselectedAbility-MountainMistPreferred, NodeType=Successor, Child[0]=SetPreselectedAbility-MountainMistPreferred)
- Behaviors=(BehaviorName=SetPreselectedAbility-MountainMistPreferred, NodeType=Action)
- Behaviors=(BehaviorName=SSSetPreselectedAbility-MountainMistAny, NodeType=Successor, Child[0]=SetPreselectedAbility-MountainMistAny)
- Behaviors=(BehaviorName=SetPreselectedAbility-MountainMistAny, NodeType=Action)
- Behaviors=(BehaviorName=RandSelectMountainMist75HarborWave25, NodeType=RandSelector, Child[0]=TryMountainMistPreferred, Param[0]=75, Child[1]=TryHarborWaveOptions, Param[1]=25)
- Behaviors=(BehaviorName=RandSelectHarborWave80MountainMist20, NodeType=RandSelector, Child[0]=TryMountainMistAny, Param[0]=20, Child[1]=TryHarborWaveOptions, Param[1]=25)
- Behaviors=(BehaviorName=TryMountainMistPreferred, NodeType=Sequence, Child[0]=TryMoveThenMountainMistPreferred, Child[1]=SSSetPreselectedAbility-MountainMistPreferred)
- Behaviors=(BehaviorName=TryMoveThenMountainMistPreferred, NodeType=Selector, Child[0]=TryMoveForMountainMist, Child[1]=TryUseMountainMistAbilityPreferred)
- Behaviors=(BehaviorName=TryMoveForMountainMist, NodeType=Sequence, Child[0]=ChosenSafeToMove, Child[1]=IsAbilityReady-ThrowGrenade, Child[2]=FindPotentialAoETargets-MountainMistPreferred, Child[3]=MoveStandardIfFirstAbility-Grenade)
- Behaviors=(BehaviorName=TryUseMountainMistAbilityPreferred, NodeType=Sequence, Child[0]=IsAbilityAvailable-ThrowGrenade, Child[1]=FindPotentialAoETargets-MountainMistPreferred, Child[2]=SelectAoETarget-MountainMistPreferred, Child[3]=SelectAbility-ThrowGrenade, Child[4]=SSSetAssassinCycle3IfNotSet)
- Behaviors=(BehaviorName=SelectAoETarget-MountainMistPreferred, NodeType=Action)
- Behaviors=(BehaviorName=TryMountainMistAny, NodeType=Sequence, Child[0]=TryMoveThenMountainMistAny, Child[1]=SSSetPreselectedAbility-MountainMistAny)
- Behaviors=(BehaviorName=TryMoveThenMountainMistAny, NodeType=Selector, Child[0]=TryMoveForMountainMist, Child[1]=TryMountainMist)
- Behaviors=(BehaviorName=TryMoveForMountainMistAny, NodeType=Sequence, Child[0]=ChosenSafeToMove, Child[1]=IsAbilityReady-ThrowGrenade, Child[2]=FindPotentialAoETargets-MountainMistAny, Child[3]=MoveStandardIfFirstAbility-Grenade)
- Behaviors=(BehaviorName=TryMountainMist, NodeType=Sequence, Child[0]=IsAbilityAvailable-ThrowGrenade, Child[1]=FindPotentialAoETargets-MountainMistAny, Child[2]=SelectAoETarget-MountainMistAny, Child[3]=SelectAbility-ThrowGrenade, Child[4]=SSSetAssassinCycle3IfNotSet)
- Behaviors=(behaviorName=SelectAoETarget-MountainMistAny, NodeType=Action)
- Behaviors=(BehaviorName=AdvanceCoverIfNoEnemiesVisible, NodeType=Sequence, Child[0]=NoVisibleEnemies, Child[1]=IsAbilityAvailable-StandardMove, Child[2]=FindDestination-MWP_AdvanceCover, Child[3]=DisableGreenAlertMovement, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=AdvanceCoverMove, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=FindDestination-MWP_AdvanceCover, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=AdvanceCoverDashMove, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=UseDashMovement, Child[2]=FindDestination-MWP_AdvanceCover, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=PostVanishingWindMovement, NodeType=Sequence, Child[0]=AssassinShouldMoveDefensively, Child[1]=IsAbilityAvailable-StandardMove, Child[2]=FindStealthDestination, Child[3]=DisableGreenAlertMovement, Child[4]=SelectAbility-StandardMove, Child[5]=SSSetAssassinCycle1IfUnset)
- Behaviors=(BehaviorName=AssassinBendingReedMovement, NodeType=Sequence, Child[0]=AssassinShouldMoveDefensively, Child[1]=TryBendingReedMovement, Child[2]=SSSetAssassinCycle2IfNotSet)
- Behaviors=(BehaviorName=TryBendingReedMovement, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ChosenSafeToMove, Child[2]=FindBendingReedDestination, Child[3]=DisableGreenAlertMovement, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=OverrideIdealRange-13, NodeType=Action, Param[0]=13) ; Prefer destinations that take advantage of the greater mobility of bending reed.
- Behaviors=(BehaviorName=AssassinShouldMoveDefensively, NodeType=Selector, Child[0]=WasLastAbility-VanishingWind, Child[1]=WasLastAbility-PartingSilk, Child[2]=HasBTVar-NoExtract)
- Behaviors=(BehaviorName=WasLastAbility-VanishingWind, NodeType=Condition)
- Behaviors=(BehaviorName=WasLastAbility-PartingSilk, NodeType=Condition)
- Behaviors=(BehaviorName=FindStealthDestination, NodeType=Selector, Child[0]=StealthFindAdvanceDestinationIfNoEnemiesVisible, Child[1]=FindFlankingStealthDestination, Child[2]=FindAnyStealthDestination)
- Behaviors=(BehaviorName=FindBendingReedDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=OverrideIdealRange-13, Child[2]=UseDashMovement, Child[3]=RestrictToUnflanked, Child[4]=FindBendingReedDestRestrictedOrNot)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_BendingReed, NodeType=Action)
- Behaviors=(BehaviorName=FindBendingReedDestRestrictedOrNot, NodeType=Selector, Child[0]=FindRestrictedDestination-MWP_BendingReed, Child[1]=FindDestination-MWP_BendingReed)
- Behaviors=(BehaviorName=FindDestination-MWP_BendingReed, NodeType=Action)
- Behaviors=(BehaviorName=FindFlankingStealthDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToFlanking, Child[2]=RestrictToUnflanked, Child[3]=FindDestinationWithLoS-MWP_IsoStealth)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_IsoStealth, NodeType=Action)
- Behaviors=(BehaviorName=FindAnyStealthDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToUnflanked, Child[2]=FindDestinationWithLoS-MWP_IsoStealth)
- Behaviors=(BehaviorName=StealthFindAdvanceDestinationIfNoEnemiesVisible, NodeType=Sequence, Child[0]=NoVisibleEnemies, Child[1]=FindDestination-MWP_AdvanceCover)
- Behaviors=(BehaviorName=IsAbilityAvailable-VanishingWind, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-VanishingWind, NodeType=Action)
- Behaviors=(BehaviorName=IsAbilityAvailable-VanishingWind_Scamper, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-VanishingWind_Scamper, NodeType=Action)
- Behaviors=(BehaviorName=TryPartingSilkConditionally, NodeType=Sequence, Child[0]=DidntJustUseVanishingWind, Child[1]=TryPartingSilk)
- Behaviors=(BehaviorName=DidntJustUseVanishingWind, NodeType=Inverter, Child[0]=WasLastAbility-VanishingWind)
- Behaviors=(BehaviorName=TryPartingSilk, NodeType=Sequence, Child[0]=IsAbilityAvailable-PartingSilk, Child[1]=ChosenSafeToMove, Child[2]=FindPartingSilkTarget, Child[3]=SelectAbility-PartingSilk, Child[4]=DisableExtractThisTurn)
- Behaviors=(BehaviorName=IsAbilityAvailable-PartingSilk, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-PartingSilk, NodeType=Action)
- Behaviors=(BehaviorName=FindPartingSilkTarget, NodeType=Sequence, Child[0]=SetTargetStack-PartingSilk, Child[1]=SelectBestTargetForPartingSilk, Child[2]=HasValidTarget-PartingSilk)
- Behaviors=(BehaviorName=SetTargetStack-PartingSilk, NodeType=Action)
- Behaviors=(BehaviorName=HasValidTarget-PartingSilk, NodeType=Condition)
- Behaviors=(BehaviorName=SelectBestTargetForPartingSilk, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialMeleeTarget)
- Behaviors=(BehaviorName=TryPartingSilkIfTooClose, NodeType=Sequence, Child[0]=IsAbilityAvailable-PartingSilk, Child[1]=FindPriorityPartingSilkTarget, Child[2]=SelectAbility-PartingSilk, Child[3]=DisableExtractThisTurn)
- Behaviors=(BehaviorName=FindPriorityPartingSilkTarget, NodeType=Sequence, Child[0]=SetTargetStack-PartingSilk, Child[1]=IterateTargetsForPartingSilk, Child[2]=HasValidTarget-PartingSilk)
- Behaviors=(BehaviorName=IterateTargetsForPartingSilk, NodeType=RepeatUntilFail, Child[0]=IterateNextTargetForPriorityPartingSilk)
- Behaviors=(BehaviorName=IterateNextTargetForPriorityPartingSilk, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSEvaluateForPriorityPartingSilk, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSEvaluateForPriorityPartingSilk, NodeType=Successor, Child[0]=EvaluateForPriorityPartingSilk)
- Behaviors=(BehaviorName=EvaluateForPriorityPartingSilk, NodeType=Sequence, Child[0]=TargetIsNotCivilian, Child[1]=TargetNotTeamResistance, Child[2]=TargetIsNotEnemyVIP, Child[3]=TargetNotBoundOrPanicked, Child[4]=TargetScoreByScaledDistance-1, Child[5]=AddToTargetScore_5, Child[6]=AddSmallRandomTargetScore)
- Behaviors=(BehaviorName=TryHarborWaveOptions, NodeType=Selector, Child[0]=FirstTurnMoveForPriorityHarborWave, Child[1]=TryHarborWave)
- Behaviors=(BehaviorName=FirstTurnMoveForPriorityHarborWave, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=ChosenSafeToMove, Child[2]=IsAbilityAvailable-StandardMove, Child[3]=FindMultiTargetDestination-HarborWavePrefTargetProfile, Child[4]=SelectAbility-StandardMove, Child[5]=SSSetPreselectedAbility-HarborWave)
- Behaviors=(BehaviorName=SSSetPreselectedAbility-HarborWave, NodeType=Successor, Child[0]=SetPreselectedAbility-HarborWaveProfile)
- Behaviors=(BehaviorName=SetPreselectedAbility-HarborWaveProfile, NodeType=Action)
- Behaviors=(BehaviorName=TryHarborWave, NodeType=Sequence, Child[0]=SelectTargetForHarborWave, Child[1]=SelectAbility-HarborWave, Child[2]=SSSetAssassinCycle3IfNotSet)
- Behaviors=(BehaviorName=FindMultiTargetDestination-HarborWavePrefTargetProfile, NodeType=Action)
- Behaviors=(BehaviorName=IsAbilityAvailable-HarborWave, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-HarborWave, NodeType=Action)
- Behaviors=(BehaviorName=SelectTargetForHarborWave, NodeType=Selector, Child[0]=HarborWave_HitIdealTarget, Child[1]=HarborWave_AnyTargetWillDo)
- Behaviors=(BehaviorName=HarborWave_HitIdealTarget, NodeType=Sequence, Child[0]=SelectPotentialMeleeTarget, Child[1]=FindPotentialAoETargets-HarborWavePrefTargetProfile, Child[2]=SelectAoETarget-HarborWavePrefTargetProfile)
- Behaviors=(BehaviorName=HarborWave_AnyTargetWillDo, NodeType=Sequence, Child[0]=FindPotentialAoETargets-HarborWaveProfile, Child[1]=SelectAoETarget-HarborWaveProfile)
- Behaviors=(BehaviorName=ScamperRoot_ChosenAssassin, NodeType=Selector, Child[0]=FFSetAssassinCycle1IfNotSet, Child[1]=PostVanishingWindMovement, Child[2]=DoVanishingWindScamper, Child[3]=GenericScamperRoot)
- Behaviors=(BehaviorName=FFSetAssassinCycle1IfNotSet, NodeType=Failer, Child[0]=SetAssassinCycle1IfNotSet)
- Behaviors=(BehaviorName=DoVanishingWindScamper, NodeType=Sequence, Child[0]=IsAbilityAvailable-VanishingWind_Scamper, Child[1]=SelectAbility-VanishingWind_Scamper, Child[2]=SSSetAssassinCycle1IfUnset)
- Behaviors=(BehaviorName=DoVanishingWindMapwide, NodeType=Sequence, Child[0]=IsAbilityAvailable-VanishingWind, Child[1]=SelectAbility-VanishingWind, Child[2]=SSSetAssassinCycle1IfUnset)
- Behaviors=(BehaviorName=TryVanishingWind, NodeType=Sequence, Child[0]=IsAbilityAvailable-VanishingWind, Child[1]=TargetsExistForAoE-HarborWaveProfile, Child[2]=SelectAbility-VanishingWind, Child[3]=SSSetAssassinCycle1IfNotSet)
- Behaviors=(BehaviorName="ChosenAssassin::CustomMeleeTargetScore", NodeType=Sequence, Child[0]=SSScoreTargetOutIfEnemyVIP, Child[1]=TargetScoreInvalidateCivilians)
- Behaviors=(BehaviorName=NoHarborWaveTargets, NodeType=Inverter, Child[0]=TargetsExistForAoE-HarborWaveProfile)
- Behaviors=(BehaviorName=TargetsExistForAoE-HarborWaveProfile, NodeType=Condition)
- Behaviors=(BehaviorName=NoHarborWaveTargetOption, NodeType=Sequence, Child[0]=NoHarborWaveTargets, Child[1]=AssassinRevealOrShoot)
- Behaviors=(BehaviorName=AssassinRevealOrShoot, NodeType=Selector, Child[0]=DoIfFlankedMove, Child[1]=RevealIfVanishedThenShoot, Child[2]=TryShootOrReload)
- Behaviors=(BehaviorName=RevealIfVanishedThenShoot, NodeType=Sequence, Child[0]=TryVanishReveal, Child[1]=SSSetPreselectedAbility-StandardShot)
- Behaviors=(BehaviorName=TryVanishReveal, NodeType=Sequence, Child[0]=IsAbilityAvailable-VanishingWindReveal, Child[1]=SelectAbility-VanishingWindReveal)
- Behaviors=(BehaviorName=IsAbilityAvailable-VanishingWindReveal, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-VanishingWindReveal, NodeType=Action)
- Behaviors=(BehaviorName=SSSetPreselectedAbility-StandardShot, NodeType=Successor, Child[0]=SetPreselectedAbility-StandardShot)
- Behaviors=(BehaviorName=SetPreselectedAbility-StandardShot, NodeType=Action)
- Behaviors=(BehaviorName="ChosenWarlock::CharacterRoot", NodeType=Selector, Child[0]=ChosenUnactivated, Child[1]=ChosenActivated, Child[2]=ChosenEngaged, Child[3]=SkipMove)
- Behaviors=(BehaviorName="ChosenWarlock::ChosenActivated", NodeType=Selector, Child[0]=MoveInIfLastUnit, Child[1]=WarlockMoveSafelyNearSpawnFirstAction, Child[2]=TryWarlockMapAbilities, Child[3]=HuntEnemyWithCover, Child[4]=HuntEnemy, Child[5]=SkipMove)
- Behaviors=(BehaviorName="ChosenWarlock::ChosenEngaged", NodeType=Selector, Child[0]=TryEndSpectralArmy, Child[1]=TryChosenSummon, Child[2]=OverwatchHandlerShootOverwatcherOption, Child[3]=WarlockMoveIfNecessary, Child[4]=TryWarlockCombatAbilities, Child[5]=OverwatchHandlerBackupOption, Child[6]=TryShootOrReloadOrOverwatch, Child[7]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=WarlockMoveIfNecessary, NodeType=Sequence, Child[0]=ChosenSafeToMove, Child[1]=CheckIfNeedToMove, Child[2]=WarlockMoveDefensive)
- Behaviors=(BehaviorName=OverrideIdealRange-18, NodeType=Action)
- Behaviors=(BehaviorName=WarlockMoveDefensive, NodeType=Selector, Child[0]=WarlockMoveDefensiveHighCover, Child[1]=WarlockMoveDefensiveAnyCover)
- Behaviors=(BehaviorName=WarlockMoveDefensiveHighCover, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=RestrictToUnflanked, Child[3]=RestrictToHighCover, Child[4]=OverrideIdealRange-18, Child[5]=FindDestinationWithLoS-MWP_Defensive, Child[6]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=WarlockMoveDefensiveAnyCover, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=RestrictToUnflanked, Child[3]=OverrideIdealRange-18, Child[4]=FindDestinationWithLoS-MWP_Defensive, Child[5]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=TryEndSpectralArmy, NodeType=Sequence, Child[0]=IsAbilityAvailable-EndSpectralArmy, Child[1]=EndSpectralArmyOrSkipTurn)
- Behaviors=(BehaviorName=IsAbilityAvailable-EndSpectralArmy, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-EndSpectralArmy, NodeType=Action)
- Behaviors=(BehaviorName=EndSpectralArmyOrSkipTurn, NodeType=Selector, Child[0]=EndSpectralArmyIfExtractAvailable, Child[1]=SkipMove)
- Behaviors=(BehaviorName=EndSpectralArmyIfExtractAvailable, NodeType=Sequence, Child[0]=ExtractTargetAvailable, Child[1]=SelectAbility-EndSpectralArmy)
- Behaviors=(BehaviorName=SetPotentialTargetStackAll, NodeType=Action)
- Behaviors=(BehaviorName=ExtractTargetAvailable, NodeType=Sequence, Child[0]=SetPotentialTargetStackAll, Child[1]=SelectExtractTargetIterator, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SelectExtractTargetIterator, NodeType=RepeatUntilFail, Child[0]=SelectExtractTargetStep)
- Behaviors=(BehaviorName=SelectExtractTargetStep, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSTargetScoreIfExtract, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSTargetScoreIfExtract, NodeType=Successor, Child[0]=TargetScoreIfExtract)
- Behaviors=(BehaviorName=TargetScoreIfExtract, NodeType=Sequence, Child[0]=ScoreIfDazed, Child[1]=TargetIsInExtractRange, Child[2]=AddToTargetScore_100)
- Behaviors=(BehaviorName=ScoreIfDazed, NodeType=Sequence, Child[0]=TargetAffectedByEffect-Dazed, Child[1]=AddToTargetScore_100)
- Behaviors=(BehaviorName=TargetAffectedByEffect-Dazed, NodeType=Condition)
- Behaviors=(BehaviorName=TargetIsInExtractRange, NodeType=StatCondition, Param[0]=PotentialTargetDistance, Param[1]="<", Param[2]=24); Must be within (dash) movement range.
- Behaviors=(BehaviorName=TargetIsNotBeingCarried, NodeType=Inverter, Child[0]=TargetAffectedByEffect-BeingCarried)
- Behaviors=(BehaviorName=TargetAffectedByEffect-BeingCarried, NodeType=Condition)
- Behaviors=(BehaviorName=MoveSafelyIfFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=AdvanceCoverIfNoEnemiesVisible)
- Behaviors=(BehaviorName=WarlockMoveSafelyNearSpawnFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=IsAbilityAvailable-StandardMove, Child[2]=WarlockMoveNearSpawn)
- Behaviors=(BehaviorName=WarlockMoveNearSpawn, NodeType=Selector, Child[0]=MoveNearSpawnWithLoS, Child[1]=MoveNearSpawn, Child[2]=AdvanceCoverIfNoEnemiesVisible, Child[3]=MoveRandomUnsafe)
- Behaviors=(BehaviorName=MoveNearSpawnWithLoS, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=OverridePreferredDestinationToSpawnLocation, Child[2]=FindDestinationWithLoS-MWP_StandardHeight, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveNearSpawn, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=OverridePreferredDestinationToSpawnLocation, Child[2]=FindDestination-MWP_StandardHeight, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=TryWarlockMapAbilities, NodeType=Selector, Child[0]=TryCorress, Child[1]=SkipMove )
- Behaviors=(BehaviorName=TryCorress, NodeType=Sequence, Child[0]=IsAbilityAvailable-Corress, Child[1]=SelectAbility-Corress)
- Behaviors=(BehaviorName=IsAbilityAvailable-Corress, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-Corress, NodeType=Action)
- Behaviors=(BehaviorName=TargetIsNotPriest, NodeType=Inverter, Child[0]=TargetIsAdventPriest)
- Behaviors=(BehaviorName=TargetScoreByVisibleXComDist-1, NodeType=Action, Param[0]="-1")
- Behaviors=(BehaviorName=TargetIsAdventPriest, NodeType=Selector, Child[0]=TargetTemplateNameIs-AdvPriestM1, Child[1]=TargetTemplateNameIs-AdvPriestM2, Child[2]=TargetTemplateNameIs-AdvPriestM3)
- Behaviors=(BehaviorName=TargetTemplateNameIs-AdvPriestM1, NodeType=Condition)
- Behaviors=(BehaviorName=TargetTemplateNameIs-AdvPriestM2, NodeType=Condition)
- Behaviors=(BehaviorName=TargetTemplateNameIs-AdvPriestM3, NodeType=Condition)
- Behaviors=(BehaviorName=AddSmallRandomTargetScore, NodeType=RandSelector, Child[0]=AddToTargetScore_2, Child[1]=AddToTargetScore_4, Child[2]=AddToTargetScore_6, Child[3]=AddToTargetScore_8, Child[4]=AddToTargetScore_10)
- Behaviors=(BehaviorName=TryWarlockCombatAbilities, NodeType=Selector, Child[0]=TryTeleportAllyIfNoMove, Child[1]=LowHealthSpectralArmyPriority, Child[2]=TryMindScorch, Child[3]=TryPsiMindControl)
- Behaviors=(BehaviorName=TryMindScorch, NodeType=Sequence, Child[0]=IsAbilityAvailable-MindScorch, Child[1]=SelectTargetForMindScorch, Child[2]=SelectAbility-MindScorch)
- Behaviors=(BehaviorName=IsAbilityAvailable-MindScorch, NodeType=Condition)
- Behaviors=(BehaviorName=SelectTargetForMindScorch, NodeType=Sequence, Child[0]=SetTargetStack-MindScorch, Child[1]=IterateTargetsForMindScorch, Child[2]=HasValidTarget-MindScorch)
- Behaviors=(BehaviorName=SetTargetStack-MindScorch, NodeType=Action)
- Behaviors=(BehaviorName=IterateTargetsForMindScorch, NodeType=RepeatUntilFail, Child[0]=IterateNextTargetForMindScorch)
- Behaviors=(BehaviorName=IterateNextTargetForMindScorch, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSEvaluateForMindScorch, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSEvaluateForMindScorch, NodeType=Successor, Child[0]=EvaluateForMindScorch)
- Behaviors=(BehaviorName=EvaluateForMindScorch, NodeType=Sequence, Child[0]=TargetIsNotCivilian, Child[1]=TargetIsNotEnemyVIP, Child[2]=TargetNotTeamResistance, Child[3]=TargetIsNotLost, Child[4]=TargetNotBoundOrPanicked, Child[5]=TargetScoreByVisibleXComDist-1, Child[6]=AddToTargetScore_100, Child[7]=AddSmallRandomTargetScore)
- Behaviors=(BehaviorName=HasValidTarget-MindScorch, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-MindScorch, NodeType=Action)
- Behaviors=(BehaviorName=HealthBelow50, NodeType=StatCondition, Param[0]=eStat_HP, Param[1]="<", Param[2]="50%")
- Behaviors=(BehaviorName=LowHealthSpectralArmyPriority, NodeType=Sequence, Child[0]=HealthBelow50, Child[1]=TrySpectralArmy)
- Behaviors=(BehaviorName=TrySpectralArmy, NodeType=Sequence, Child[0]=IsAbilityAvailable-SpectralArmy, Child[1]=SelectAbility-SpectralArmy)
- Behaviors=(BehaviorName=IsAbilityAvailable-SpectralArmy, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-SpectralArmy, NodeType=Action)
- Behaviors=(BehaviorName=TryTeleportAllyIfNoMove, NodeType=Sequence, Child[0]=DidNotMoveLastTurn, Child[1]=NotLastActionPoint, Child[2]=TryTeleportAlly)
- Behaviors=(BehaviorName=TryTeleportAlly, NodeType=Sequence, Child[0]=IsAbilityAvailable-TeleportAlly, Child[1]=SelectTargetForTeleportAlly, Child[2]=SetBestTargetAsCurrentTarget-TeleportAlly, Child[3]=SelectTargetDestinationForTeleportAlly, Child[4]=SelectAbility-TeleportAlly)
- Behaviors=(BehaviorName=IsAbilityAvailable-TeleportAlly, NodeType=Condition)
- Behaviors=(BehaviorName=SelectTargetForTeleportAlly, NodeType=Sequence, Child[0]=SetTargetStack-TeleportAlly, Child[1]=SelectAllyToTeleport, Child[2]=HasValidTarget-TeleportAlly)
- Behaviors=(BehaviorName=SetTargetStack-TeleportAlly, NodeType=Action)
- Behaviors=(BehaviorName=SelectAllyToTeleport, NodeType=RepeatUntilFail, Child[0]=EvaluateAlliesToTeleport)
- Behaviors=(BehaviorName=EvaluateAlliesToTeleport, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSEvaluateForTeleportAlly, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSEvaluateForTeleportAlly, NodeType=Successor, Child[0]=EvaluateForTeleportAlly)
- Behaviors=(BehaviorName=EvaluateForTeleportAlly, NodeType=Sequence, Child[0]=TargetHasRevealed, Child[1]=TargetNotFlanking, Child[2]=TargetNotSpectral, Child[3]=GenericScoreTargetRandomlySequence)
- Behaviors=(BehaviorName=TargetNotFlanking, NodeType=Inverter, Child[0]=TargetIsFlankingEnemy)
- Behaviors=(BehaviorName=TargetIsFlankingEnemy, Nodetype=Condition)
- Behaviors=(BehaviorName=TargetNotSpectral, NodeType=Inverter, Child[0]=TargetIsSpectral)
- Behaviors=(BehaviorName=TargetIsSpectral, NodeType=Selector, Child[0]=TargetCharacterGroup-SpectralZombie, Child[1]=TargetCharacterGroup-SpectralStunLancer)
- Behaviors=(BehaviorName=TargetCharacterGroup-SpectralZombie, NodeType=Condition)
- Behaviors=(BehaviorName=TargetCharacterGroup-SpectralStunLancer, NodeType=Condition)
- Behaviors=(BehaviorName=HasValidTarget-TeleportAlly, NodeType=Condition)
- Behaviors=(BehaviorName=SetBestTargetAsCurrentTarget-TeleportAlly, NodeType=Action) ; Required to be able to reference current target for destination search.
- Behaviors=(BehaviorName=SelectAbility-TeleportAlly, NodeType=Action, param[0]=UseDestination)
- Behaviors=(BehaviorName=SelectTargetDestinationForTeleportAlly, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=SetDestinationSearchForTarget, Child[2]=RestrictToEnemyLoS, Child[3]=UseDashMovement, Child[4]=IgnoreHazards, Child[5]=FindTeleportAllyDestination)
- Behaviors=(BehaviorName=FindTeleportAllyDestination, NodeType=Sequence, Child[0]=RestrictToFlanking, Child[1]=RestrictToUnflanked, Child[2]=FindRestrictedDestination-MWP_TeleportAlly)
- Behaviors=(BehaviorName=TargetTakesCover, NodeType=Condition)
- Behaviors=(BehaviorName=TargetDoesNotTakeCover, NodeType=Inverter, Child[0]=TargetTakesCover)
- Behaviors=(BehaviorName=FindMeleeTeleportAllyDestination, NodeType=Sequence, Child[0]=IsTargetMeleeUnitOnly, Child[1]=FindRestrictedDestination-MWP_TeleportAllyMelee)
- Behaviors=(BehaviorName=IsTargetMeleeUnitOnly, NodeType=Condition)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_TeleportAlly, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_TeleportAllyNoCover, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_TeleportAllyMelee, NodeType=Action)
- Behaviors=(BehaviorName=SetDestinationSearchForTarget, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToAbilityRange-TeleportAlly, NodeType=Action)
- Behaviors=(BehaviorName=TryStasis, NodeType=Sequence, Child[0]=IsAbilityAvailable-Stasis, Child[1]=NotLastEnemy, Child[2]=SelectTargetForStasis, Child[3]=SelectAbility-Stasis)
- Behaviors=(BehaviorName=NotLastEnemy, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-Stasis, NodeType=Condition)
- Behaviors=(BehaviorName=SelectTargetForStasis, NodeType=Sequence, Child[0]=SetTargetStack-Stasis, Child[1]=IterateTargetsForStasis, Child[2]=HasValidTarget-Stasis)
- Behaviors=(BehaviorName=SetTargetStack-Stasis, NodeType=Action)
- Behaviors=(BehaviorName=IterateTargetsForStasis, NodeType=RepeatUntilFail, Child[0]=IterateNextTargetForStasis)
- Behaviors=(BehaviorName=IterateNextTargetForStasis, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSEvaluateForStasis, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSEvaluateForStasis, NodeType=Successor, Child[0]=EvaluateForStasis)
- Behaviors=(BehaviorName=EvaluateForStasis, NodeType=Sequence, Child[0]=TargetIsNotCivilian, Child[1]=TargetNotTeamResistance, Child[2]=TargetIsEnemy, Child[3]=TargetIsNotEnemyVIP, Child[4]=TargetNotBoundOrPanicked, Child[5]=TargetIsAttackable, Child[6]=TargetScoreByScaledDistance-1, Child[7]=AddToTargetScore_100, Child[8]=AddSmallRandomTargetScore)
- Behaviors=(BehaviorName=TargetIsAttackable, NodeType=Inverter, Child[0]=TargetIsNotAttackable)
- Behaviors=(BehaviorName=HasValidTarget-Stasis, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-Stasis, NodeType=Action)
- Behaviors=(BehaviorName=TryPsiSelfDestruct, NodeType=Sequence, Child[0]=ShouldMoveForPsiOverload, Child[1]=PsiOverloadBranch)
- Behaviors=(BehaviorName=ShouldMoveForPsiOverload, NodeType=Selector, Child[0]=IsAbilityAvailable-TriggerPsiSelfDestruct, Child[1]=ShouldUsePsiOverload)
- Behaviors=(BehaviorName=ShouldUsePsiOverload, NodeType=Sequence, Child[0]=InitPsiOverloadVar, Child[1]=IsSetToPsiOverload)
- Behaviors=(BehaviorName=InitPsiOverloadVar, NodeType=Selector, Child[0]=PsiOverloadInitUnnecessary, Child[1]=UpdatePsiOverloadVar)
- Behaviors=(BehaviorName=PsiOverloadInitUnnecessary, NodeType=Sequence, Child[0]=HasBTVar-ShouldPsiOverload, Child[1]=HasPsiOverloaderTeammate)
- Behaviors=(BehaviorName=HasBTVar-ShouldPsiOverload, NodeType=Condition)
- Behaviors=(BehaviorName=UpdatePsiOverloadVar, NodeType=Condition)
- Behaviors=(BehaviorName=IsSetToPsiOverload, NodeType=StatCondition, Param[0]=BTVar, Param[1]="!=", Param[2]="0", Param[3]="ShouldPsiOverload")
- Behaviors=(BehaviorName=HasPsiOverloaderTeammate, NodeType=Condition)
- Behaviors=(BehaviorName=PsiOverloadBranch, NodeType=Selector, Child[0]=PsiSelfDestructJustPrimed, Child[1]=PsiExplodeIfPrimed, Child[2]=PsiOverloadMoveIfFirstAction, Child[3]=TryPrimePsiSelfDestruct, Child[4]=SkipMoveIfPrimed)
- Behaviors=(BehaviorName=PsiOverloadMoveIfFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=PsiOverloadMove)
- Behaviors=(BehaviorName=SkipMoveIfPrimed, NodeType=Sequence, Child[0]=HasBTVar-NoExplode, Child[1]=SkipMove)
- Behaviors=(BehaviorName=PsiOverloadMove, NodeType=Sequence, Child[0]=SelectPsiOverloadDestination, Child[1]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=PsiExplodeIfPrimed, NodeType=Sequence, Child[0]=IsAbilityAvailable-TriggerPsiSelfDestruct, Child[1]=ExplodeNotDisabled, Child[2]=SSFindPsiSelfDestructDestination, Child[3]=SelectAbility-TriggerPsiSelfDestruct)
- Behaviors=(BehaviorName=IsAbilityAvailable-TriggerPsiSelfDestruct, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-TriggerPsiSelfDestruct, NodeType=Action)
- Behaviors=(BehaviorName=TryPrimePsiSelfDestruct, NodeType=Sequence, Child[0]=IsAbilityAvailable-EngagePsiSelfDestruct, Child[1]=SSSelectPsiOverloadAoEDestination, Child[2]=SelectAbility-EngagePsiSelfDestruct, Child[3]=DisableExplodeThisTurn)
- Behaviors=(BehaviorName=IsAbilityAvailable-EngagePsiSelfDestruct, NodeType=Condition)
- Behaviors=(BehaviorName=SelectPsiOverloadDestination, NodeType=Selector, Child[0]=SelectPsiOverloadAoEDestination, Child[1]=HeatSeekNearestUnconcealed)
- Behaviors=(BehaviorName=SSSelectPsiOverloadAoEDestination, NodeType=Successor, Child[0]=SelectPsiOverloadAoEDestination)
- Behaviors=(BehaviorName=SelectPsiOverloadAoEDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=FindPotentialPsiSelfDestructTargets, Child[2]=FindDestinationTowardAoETarget)
- Behaviors=(BehaviorName=SelectAbility-EngagePsiSelfDestruct, NodeType=Action)
- Behaviors=(BehaviorName=FindDestinationTowardAoETarget, NodeType=Action)
- Behaviors=(BehaviorName=DisableExplodeThisTurn, NodeType=Action, Param[0]=SetBTVar, Param[1]="NoExplode", Param[2]="1")
- Behaviors=(BehaviorName=HasBTVar-NoExplode, NodeType=Condition)
- Behaviors=(BehaviorName=ExplodeNotDisabled, NodeType=Inverter, Child[0]=HasBTVar-NoExplode)
- Behaviors=(BehaviorName=HasPsiSelfDestructTargets, NodeType=Sequence, Child[0]=IsAbilityAvailable-TriggerPsiSelfDestruct, Child[1]=FindPotentialPsiSelfDestructTargets)
- Behaviors=(BehaviorName=FindPotentialAoETargets-PsiSelfDestructProfilePreferred, NodeType=Action)
- Behaviors=(BehaviorName=FindPotentialAoETargets-PsiSelfDestructProfileAny, NodeType=Action)
- Behaviors=(BehaviorName=SSFindPsiSelfDestructDestination, NodeType=Successor, Child[0]=FindPsiSelfDestructDestination)
- Behaviors=(BehaviorName=FindPsiSelfDestructDestination, NodeType=Sequence, Child[0]=HasPsiSelfDestructTargets, Child[1]=SelectPsiSelfDestructTarget)
- Behaviors=(BehaviorName=FindPotentialPsiSelfDestructTargets, NodeType=Selector, Child[0]=FindPotentialAoETargets-PsiSelfDestructProfilePreferred, Child[1]=FindPotentialAoETargets-PsiSelfDestructProfileAny)
- Behaviors=(BehaviorName=SelectPsiSelfDestructTarget, NodeType=Selector, Child[0]=SelectAoETarget-PsiSelfDestructProfilePreferred, Child[1]=SelectAoETarget-PsiSelfDestructProfileAny)
- Behaviors=(BehaviorName=SelectAoETarget-PsiSelfDestructProfilePreferred, NodeType=Action)
- Behaviors=(BehaviorName=SelectAoETarget-PsiSelfDestructProfileAny, NodeType=Action)
- Behaviors=(BehaviorName=AffectedByEffect-PsiSelfDestructEffect, NodeType=Condition)
- Behaviors=(BehaviorName=PsiSelfDestructJustPrimed, NodeType=Sequence, Child[0]=AffectedByEffect-PsiSelfDestructEffect, Child[1]=IsLastActionPoint, Child[2]=WasLastAbility-EngagePsiSelfDestruct, Child[3]=SkipMove); End turn once we select EngagePsiSelfDestruct.
- Behaviors=(BehaviorName=WasLastAbility-EngagePsiSelfDestruct, NodeType=Condition)
- Behaviors=(BehaviorName=ScamperRoot_ChosenSniper, NodeType=Selector, Child[0]=MoveStandardHeightWithLoSUnsafe, Child[1]=MoveStandardHeightUnsafe, Child[2]=SkipMove)
- Behaviors=(BehaviorName="ChosenSniper::CharacterRoot", NodeType=Selector, Child[0]=ChosenUnactivated, Child[1]=ChosenActivated, Child[2]=ChosenEngaged, Child[3]=SkipMove)
- Behaviors=(BehaviorName=EngagedSniperBranch, NodeType=Sequence, Child[0]=ChosenIsEngaged, Child[1]=ChosenSafeToMove, Child[2]=SelectHunterMovement)
- Behaviors=(BehaviorName=SelectHunterMovement, NodeType=Selector, Child[0]=TryGrappleTowardDazed, Child[1]=MoveTowardsNearestEnemy, Child[2]=HuntEnemyWithCover, Child[3]=HuntEnemyUnsafe)
- Behaviors=(BehaviorName="ChosenSniper::ChosenActivated", NodeType=Selector, Child[0]=MoveInIfLastUnit, Child[1]=EngagedSniperBranch, Child[2]=TryTrackingShotIfFirstAction, Child[3]=TryGrappleIfJustShot, Child[4]=TryMoveForTrackingShot, Child[5]=TryTrackingShotMark, Child[6]=TryTrackingShotMove, Child[7]=SkipMove)
- Behaviors=(BehaviorName=TryTrackingShotIfFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=TryTrackingShot)
- Behaviors=(BehaviorName=TryTrackingShot, NodeType=Sequence, Child[0]=IsAbilityAvailable-TrackingShot, Child[1]=SetTargetStack-TrackingShot, Child[2]=SelectEnemyTargetRandomly_NonCivilianOrVIP, Child[3]=HasValidTarget-TrackingShot, Child[4]=SelectAbility-TrackingShot)
- Behaviors=(BehaviorName=IsAbilityAvailable-TrackingShot, NodeType=Condition)
- Behaviors=(BehaviorName=HasValidTarget-TrackingShot, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-TrackingShot, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-TrackingShot, NodeType=Action)
- Behaviors=(BehaviorName=TryTrackingShotMark, NodeType=Sequence, Child[0]=IsAbilityAvailable-TrackingShotMark, Child[1]=SetTargetStack-TrackingShotMark, Child[2]=SelectTrackingShotMarkTarget, Child[3]=HasValidTarget-TrackingShotMark, Child[4]=SelectAbility-TrackingShotMark, Child[5]=MarkAsLastTrackingShotTarget)
- Behaviors=(BehaviorName=SelectClosestEnemyTarget_NonCivilianOrVIP, NodeType=RepeatUntilFail, Child[0]=EvaluateClosestEnemyTarget_NonCivilianOrVIP)
- Behaviors=(BehaviorName=EvaluateClosestEnemyTarget_NonCivilianOrVIP, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreClosestEnemyTarget_NonCivilianOrVIP, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreClosestEnemyTarget_NonCivilianOrVIP, NodeType=Successor, Child[0]=ScoreClosestEnemyTarget_NonCivilianOrVIP)
- Behaviors=(BehaviorName=ScoreClosestEnemyTarget_NonCivilianOrVIP, NodeType=Sequence, Child[0]=TargetIsEnemy, Child[1]=TargetIsNotCivilian, Child[2]=TargetIsNotEnemyVIP, Child[3]=TargetNotTeamResistance, Child[4]=TargetScoreByScaledDistance-1, Child[5]=AddToTargetScore_200)
- Behaviors=(BehaviorName=SelectTrackingShotMarkTarget, NodeType=RepeatUntilFail, Child[0]=EvaluateTrackingShotMarkTarget)
- Behaviors=(BehaviorName=EvaluateTrackingShotMarkTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreTrackingShotMarkTarget, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreTrackingShotMarkTarget, NodeType=Successor, Child[0]=ScoreTrackingShotMarkTarget)
- Behaviors=(BehaviorName=ScoreTrackingShotMarkTarget, NodeType=Sequence, Child[0]=TargetIsEnemy, Child[1]=TargetIsNotCivilian, Child[2]=TargetNotTeamResistance, Child[3]=TargetIsNotLost, Child[4]=TargetIsNotEnemyVIP, Child[5]=AvoidBoundAndPanickedTargets, Child[6]=TargetScoreByScaledDistance-1, Child[7]=AddToTargetScore_200, Child[8]=TargetPrioritizeSnipers)
- Behaviors=(BehaviorName=TargetIsNotLost, NodeType=Inverter, Child[0]=IsTargetTeam-eTeam_TheLost)
- Behaviors=(BehaviorName=TargetPrioritizeSnipers, NodeType=Selector, Child[0]=IfSniperAddToScore, Child[1]=AddToTargetScore_1)
- Behaviors=(BehaviorName=IfSniperAddToScore, NodeType=Sequence, Child[0]=TargetIsSoldierClass-Sharpshooter, Child[1]=NotLastTargetOfTrackingShot, Child[2]=AddToTargetScore_20)
- Behaviors=(BehaviorName=TargetIsSoldierClass-Sharpshooter, NodeType=Condition)
- Behaviors=(BehaviorName=NotLastTargetOfTrackingShot, NodeType=Inverter, Child[0]=TargetWasLastTrackingShotMarked)
- Behaviors=(BehaviorName=TargetWasLastTrackingShotMarked, NodeType=Condition)
- Behaviors=(BehaviorName=MarkAsLastTrackingShotTarget, NodeType=Action)
- Behaviors=(BehaviorName=IsAbilityAvailable-TrackingShotMark, NodeType=Condition)
- Behaviors=(BehaviorName=HasValidTarget-TrackingShotMark, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-TrackingShotMark, NodeType=Action)
- Behaviors=(BehaviorName=SelectAbility-TrackingShotMark, NodeType=Action)
- Behaviors=(BehaviorName=TryMoveForTrackingShot, NodeType=Sequence, Child[0]=NotAffectedByTrackingShotMark, Child[1]=NotLastActionPoint, Child[2]=DidNotJustGrapple, Child[3]=TryTrackingShotMove)
- Behaviors=(BehaviorName=NotAffectedByTrackingShotMark, NodeType=Inverter, Child[0]=AffectedByEffect-TrackingShotMarkSourceEffect)
- Behaviors=(BehaviorName=AffectedByEffect-TrackingShotMarkSourceEffect, NodeType=Condition)
- Behaviors=(BehaviorName=OverridePreferredDestinationToSpawnLocation, NodeType=Action)
- Behaviors=(BehaviorName=DidNotJustGrapple, NodeType=Inverter, Child[0]=WasLastAbility-HunterGrapple)
- Behaviors=(BehaviorName=WasLastAbility-HunterGrapple, NodeType=Condition)
- Behaviors=(BehaviorName=TryTrackingShotMove, NodeType=Selector, Child[0]=TryGrapple, Child[1]=ChosenSniperActivatedMoveLoS, Child[2]=MoveRandomUnsafe)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_ChosenHunter, NodeType=Action)
- Behaviors=(BehaviorName=ChosenSniperActivatedMoveLoS, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ResetDestinationSearch, Child[2]=OverridePreferredDestinationToSpawnLocation, Child[3]=FindDestinationWithLoS-MWP_ChosenHunter, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=TryGrapple, NodeType=Sequence, Child[0]=IsAbilityAvailable-HunterGrapple, Child[1]=FindGrappleDestination, Child[2]=SelectAbility-HunterGrapple)
- Behaviors=(BehaviorName=FindGrappleDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-HunterGrapple, Child[2]=OverridePreferredDestinationToSpawnLocation, Child[3]=RestrictToEnemyLoS, Child[4]=UseDashMovement, Child[5]=FindRestrictedDestination-MWP_Grapple)
- Behaviors=(BehaviorName=RestrictToAbilityRange-HunterGrapple, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_Grapple, NodeType=Action)
- Behaviors=(BehaviorName=IsAbilityAvailable-HunterGrapple, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-HunterGrapple, NodeType=Action, param[0]=UseDestination)
- Behaviors=(BehaviorName=TryGrappleIfJustShot, NodeType=Sequence, Child[0]=WasLastAbility-TrackingShot, Child[1]=TryGrapple)
- Behaviors=(BehaviorName=WasLastAbility-TrackingShot, NodeType=Condition)
- Behaviors=(BehaviorName=TryGrappleMoveForDefense, NodeType=Sequence, Child[0]=IsAbilityAvailable-HunterGrapple, Child[1]=FindDefensiveGrappleDestination, Child[2]=SelectAbility-HunterGrapple)
- Behaviors=(BehaviorName=FindDefensiveGrappleDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-HunterGrapple, Child[2]=RestrictToEnemyLoS, Child[3]=UseDashMovement, Child[4]=FindRestrictedDestination-MWP_GrappleDefense)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_GrappleDefense, NodeType=Action)
- Behaviors=(BehaviorName=TryMoveThenGrenadeAny30, NodeType=RandFilter, Child[0]=TryMoveThenGrenadeAny, Param[0]=30)
- Behaviors=(BehaviorName="ChosenSniper::ChosenEngaged", NodeType=Selector, Child[0]=OverwatchHandlerShootOverwatcherOption, Child[1]=TryGrappleTowardDazed, Child[2]=TryTrackingShotIfFirstAction, Child[3]=TryChosenSummon, Child[4]=TryGrappleForOffense, Child[5]=TryMoveThenGrenade, Child[6]=TryMoveThenGrenadeAny30, Child[7]=DoIfFlankedOrFirstActionMoveHeight, Child[8]=TryLethalDose, Child[9]=TryMoveThenGrenadeAny, Child[10]=TryHunterRifle, Child[11]=TryQuickDraw, Child[12]=TryOverwatch, Child[13]=OverwatchHandlerBackupOption, Child[14]=HuntEnemyWithCover, Child[15]=SkipMove)
- Behaviors=(BehaviorName="ChosenSniper::MoveTowardDazed", NodeType=Selector, Child[0]=TryGrappleTowardDazed, Child[1]=MoveTowardDazed)
- Behaviors=(BehaviorName=TryGrappleTowardDazed, NodeType=Sequence, Child[0]=ChosenSafeToMove, Child[1]=IsAbilityAvailable-HunterGrapple, Child[2]=FindGrappleDestinationTowardTarget, Child[3]=SelectAbility-HunterGrapple)
- Behaviors=(BehaviorName=SelectDazedTargetIterator, NodeType=RepeatUntilFail, Child[0]=SelectDazedTargetStep)
- Behaviors=(BehaviorName=SelectDazedTargetStep, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSTargetScoreIfDazed, Child[2]=TargetScoreByScaledDistance-1, Child[3]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSTargetScoreIfDazed, NodeType=Successor, Child[0]=ScoreIfDazed)
- Behaviors=(BehaviorName=FindGrappleDestinationTowardTarget, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-HunterGrapple, Child[2]=RestrictToPotentialTargetRange-ChosenExtractKnowledgeMove, Child[3]=UseDashMovement, Child[4]=OverrideIdealRange-3, Child[5]=FindRestrictedDestination-MWP_GrappleExtract)
- Behaviors=(BehaviorName=OverrideIdealRange-3, NodeType=Action, Param[0]=3)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_GrappleExtract, NodeType=Action)
- Behaviors=(BehaviorName=RestrictToPotentialTargetRange-ChosenExtractKnowledgeMove, NodeType=Action)
- Behaviors=(BehaviorName=SelectDazedPriorityTarget, NodeType=Sequence, Child[0]=SetPotentialTargetStack, Child[1]=SelectDazedTargetIterator, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=TryGrappleForOffense, NodeType=Sequence, Child[0]=ChosenSafeToMove, Child[1]=IsAbilityAvailable-HunterGrapple, Child[2]=FindOffensiveGrappleDestination, Child[3]=SelectAbility-HunterGrapple)
- Behaviors=(BehaviorName=RequireEnemyLoSToTile, NodeType=Action); Slightly different from RestrictToEnemyLoS, This requires the enemy to be able to see the unit at this tile.
- Behaviors=(BehaviorName=FindOffensiveGrappleDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToAbilityRange-HunterGrapple, Child[2]=UseDashMovement, Child[3]=OverrideIdealRange-13, Child[4]=RestrictToUnflanked, Child[5]=RestrictOffensiveGrapple, Child[6]=RequireEnemyLoSToTile, Child[7]=FindDestinationWithLoS-MWP_GrappleOffense)
- Behaviors=(BehaviorName=RestrictOffensiveGrapple, NodeType=Action)
- Behaviors=(BehaviorName=FindDestinationWithLoS-MWP_GrappleOffense, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_GrappleOffense, NodeType=Action)
- Behaviors=(BehaviorName=TryLethalDoseOrPistolShot, NodeType=Selector, Child[0]=TryLethalDose, Child[1]=TryQuickDraw)
- Behaviors=(BehaviorName=DoIfFlankedGrappleOrMove, NodeType=Sequence, Child[0]=CheckIfNeedToMove, Child[1]=FlankedMoveOrGrappleSelector)
- Behaviors=(BehaviorName=FlankedMoveOrGrappleSelector, NodeType=Selector, Child[0]=TryGrappleMoveForDefense, Child[1]=MoveFlankingUnsafe, Child[2]=MoveDefensiveUnsafe, Child[3]=FallBack)
- Behaviors=(BehaviorName=TryGrenadeOptions, NodeType=Sequence, Child[0]=IsAbilityAvailable-ThrowGrenade, Child[1]=TryMoveThenGrenade)
- Behaviors=(BehaviorName=TryLethalDose, NodeType=Sequence, Child[0]=IsAbilityAvailable-LethalDose, Child[1]=SelectTargetForLethalDose, Child[2]=SelectAbility-LethalDose)
- Behaviors=(BehaviorName=IsAbilityAvailable-LethalDose, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-LethalDose, NodeType=Action)
- Behaviors=(BehaviorName=HasValidTarget-LethalDose, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-LethalDose, NodeType=Action)
- Behaviors=(BehaviorName=SelectTargetForLethalDose, NodeType=Sequence, Child[0]=SetTargetStack-LethalDose, Child[1]=SelectTarget_FavorableNonLostCivilianOrVIP, Child[2]=HasValidTarget-LethalDose)
- Behaviors=(BehaviorName=TryQuickDraw, NodeType=Sequence, Child[0]=IsAbilityAvailable-PistolStandardShot, Child[1]=SelectTargetForPistolStandardShot, Child[2]=SelectAbility-PistolStandardShot)
- Behaviors=(BehaviorName=IsAbilityAvailable-PistolStandardShot, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-PistolStandardShot, NodeType=Action)
- Behaviors=(BehaviorName=HasValidTarget-PistolStandardShot, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-PistolStandardShot, NodeType=Action)
- Behaviors=(BehaviorName=SelectTargetForPistolStandardShot, NodeType=Sequence, Child[0]=SetTargetStack-PistolStandardShot, Child[1]=SelectTarget_FavorableNonCivilianOrVIP, Child[2]=HasValidTarget-PistolStandardShot)
- Behaviors=(BehaviorName=TryHunterRifle, NodeType=Sequence, Child[0]=IsAbilityAvailable-HunterRifleShot, Child[1]=SelectTargetForHunterRifleShot, Child[2]=SelectAbility-HunterRifleShot)
- Behaviors=(BehaviorName=IsAbilityAvailable-HunterRifleShot, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-HunterRifleShot, NodeType=Action)
- Behaviors=(BehaviorName=HasValidTarget-HunterRifleShot, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-HunterRifleShot, NodeType=Action)
- Behaviors=(BehaviorName=SelectTargetForHunterRifleShot, NodeType=Sequence, Child[0]=SetTargetStack-HunterRifleShot, Child[1]=SelectTarget_FavorableNonCivilianOrVIP, Child[2]=HasValidTarget-HunterRifleShot)
- Behaviors=(BehaviorName=TryPistolOverwatch, NodeType=Sequence, Child[0]=IsAbilityAvailable-PistolOverwatch, Child[1]=SelectAbility-PistolOverwatch)
- Behaviors=(BehaviorName=IsAbilityAvailable-PistolOverwatch, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-PistolOverwatch, NodeType=Action)
- Behaviors=(BehaviorName=DoIfFlankedOrFirstActionMoveHeight, NodeType=Sequence, Child[0]=ChosenSafeToMove, Child[1]=NeedsMoveOrFirstAction, Child[2]=FlankedMoveSelectorHeight)
- Behaviors=(BehaviorName=NeedsMoveOrFirstAction, NodeType=Selector, Child[0]=CheckIfNeedToMove, Child[1]=NotLastActionPointAndDidNotJustGrapple)
- Behaviors=(BehaviorName=NotLastActionPointAndDidNotJustGrapple, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=DidNotJustGrapple)
- Behaviors=(BehaviorName=FlankedMoveSelectorHeight, NodeType=Selector, Child[0]=MoveAdvanceToCoverHeightLoSUnsafe, Child[1]=MoveAdvanceToCoverHeightUnsafe, Child[2]=MoveStandardHeight, Child[3]=FallBackHeight, Child[4]=MoveRandom)
- Behaviors=(BehaviorName="AdventPriest::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=PriestRedOrangeAlert, Child[3]=GenericAlertHandler, Child[4]=SkipMove)
- Behaviors=(BehaviorName=PriestRedOrangeAlert, NodeType=Sequence, Child[0]=IsRedOrOrangeAlert, Child[1]=SelectPriestAbility)
- Behaviors=(BehaviorName=IsRedOrOrangeAlert, NodeType=Selector, Child[0]=IsRedAlert, Child[1]=IsOrangeAlert)
- Behaviors=(BehaviorName=SelectPriestAbility, NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=HolyWarriorActiveBranch, Child[2]=HolyWarriorInactiveBranch, Child[3]=TryShootOrReload, Child[4]=SkipMove)
- Behaviors=(BehaviorName=HolyWarriorInactiveBranch, NodeType=Selector, Child[0]=MoveDefensiveWithLoSIfFirstAbility, Child[1]=RandSelectFromPriestAbilities)
- Behaviors=(BehaviorName=TryMoveAndHolyWarrior, NodeType=Sequence, Child[0]=IsAbilityAvailable-HolyWarrior, Child[1]=NotApplyingHolyWarrior, Child[2]=SelectTargetForHolyWarrior, Child[3]=SelectHolyWarriorOrMoveFirst)
- Behaviors=(BehaviorName=SelectHolyWarriorOrMoveFirst, NodeType=Selector, Child[0]=MoveForHolyWarriorFirst, Child[1]=TryHolyWarrior)
- Behaviors=(BehaviorName=MoveForHolyWarriorFirst, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=MoveForHolyWarrior, Child[2]=SSSetPreselectedAbility-HolyWarrior)
- Behaviors=(BehaviorName=SSSetPreselectedAbility-HolyWarrior, NodeType=Successor, Child[0]=SetPreselectedAbility-HolyWarrior)
- Behaviors=(BehaviorName=SetPreselectedAbility-HolyWarrior, NodeType=Action)
- Behaviors=(BehaviorName=MoveForHolyWarrior, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=FindHolyWarriorDestination, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FindHolyWarriorDestination, NodeType=Selector, Child[0]=FindHCHolyWarriorDest, Child[1]=FindAnyHolyWarriorDest)
- Behaviors=(BehaviorName=FindHCHolyWarriorDest, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToHighCover, Child[2]=OverrideIdealRange-13, Child[3]=FindDestination-MWP_HolyWarrior)
- Behaviors=(BehaviorName=FindDestination-MWP_HolyWarrior, NodeType=Action)
- Behaviors=(BehaviorName=FindAnyHolyWarriorDest, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToUnflanked, Child[2]=OverrideIdealRange-13, Child[3]=FindRestrictedDestination-MWP_HolyWarrior)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_HolyWarrior, NodeType=Action)
- Behaviors=(BehaviorName=HolyWarriorActiveBranch, NodeType=Sequence, Child[0]=ApplyingEffect-HolyWarriorEffect, Child[1]=HolyWarriorActiveSelector)
- Behaviors=(BehaviorName=ApplyingEffect-HolyWarriorEffect, NodeType=Condition)
- Behaviors=(BehaviorName=NotApplyingHolyWarrior, NodeType=Inverter, Child[0]=ApplyingEffect-HolyWarriorEffect)
- Behaviors=(BehaviorName=HolyWarriorActiveSelector, NodeType=Selector, Child[0]=HighCoverFallbackFirstMove, Child[1]=HighCoverFallbackPostHolyWarrior, Child[2]=RandSelectFromPriestAbilities, Child[3]=HighCoverFallback)
- Behaviors=(BehaviorName=OverwatchIfNoEnemiesVisible, NodeType=Sequence, Child[0]=NoVisibleEnemies, Child[1]=TryShootOrReloadOrOverwatch)
- Behaviors=(BehaviorName=HighCoverfallbackFirstMove, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=HighCoverFallback)
- Behaviors=(BehaviorName=HighCoverFallbackPostHolyWarrior, NodeType=Sequence, Child[0]=WasLastAbility-HolyWarrior, Child[1]=HighCoverFallback)
- Behaviors=(BehaviorName=WasLastAbility-HolyWarrior, NodeType=Condition)
- Behaviors=(BehaviorName=HighCoverFallback, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=TryHighCoverFallbackOptions, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=TryHighCoverFallbackOptions, NodeType=Selector, Child[0]=FindHighCoverFallbackDest, Child[1]=FindHighCoverDashFallbackDest, Child[2]=FindAnyFallbackDest)
- Behaviors=(BehaviorName=FindHighCoverFallbackDest, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToHighCover, Child[2]=OverrideIdealRange-26, Child[3]=FindRestrictedDestination-MWP_HolyWarrior)
- Behaviors=(BehaviorName=FindHighCoverDashFallbackDest, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToHighCover, Child[2]=UseDashMovement, Child[3]=OverrideIdealRange-26, Child[4]=FindRestrictedDestination-MWP_HolyWarrior)
- Behaviors=(BehaviorName=FindAnyFallbackDest, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToUnflanked, Child[2]=UseDashMovement, Child[3]=OverrideIdealRange-26, Child[4]=FindRestrictedDestination-MWP_HolyWarrior)
- Behaviors=(BehaviorName=RestrictToHighCover, NodeType=Action)
- Behaviors=(BehaviorName=RandSelectFromPriestAbilities, NodeType=RandSelector, Child[0]=TryPsiMindControl, Param[0]=33, Child[1]=TryStasis, Param[1]=33, Child[2]=TryHolyWarrior, Param[2]=33)
- Behaviors=(BehaviorName=TryHolyWarrior, NodeType=Sequence, Child[0]=IsAbilityAvailable-HolyWarrior, Child[1]=NotApplyingHolyWarrior, Child[2]=SelectTargetForHolyWarrior, Child[3]=SelectAbility-HolyWarrior)
- Behaviors=(BehaviorName=IsAbilityAvailable-HolyWarrior, NodeType=Condition)
- Behaviors=(BehaviorName=SelectTargetForHolyWarrior, NodeType=Sequence, Child[0]=SetTargetStack-HolyWarrior, Child[1]=IterateTargetsForHolyWarrior, Child[2]=HasValidTarget-HolyWarrior)
- Behaviors=(BehaviorName=SetTargetStack-HolyWarrior, NodeType=Action)
- Behaviors=(BehaviorName=IterateTargetsForHolyWarrior, NodeType=RepeatUntilFail, Child[0]=IterateNextTargetForHolyWarrior)
- Behaviors=(BehaviorName=IterateNextTargetForHolyWarrior, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSEvaluateForHolyWarrior, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSEvaluateForHolyWarrior, NodeType=Successor, Child[0]=EvaluateForHolyWarrior)
- Behaviors=(BehaviorName=EvaluateForHolyWarrior, NodeType=Sequence, Child[0]=TargetIsNotPriest, Child[1]=TargetScoreByVisibleXComDist-1, Child[2]=ScoreIfTarget_MaxHP, Child[3]=ScoreByHP)
- Behaviors=(BehaviorName=HasValidTarget-HolyWarrior, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-HolyWarrior, NodeType=Action)
- Behaviors=(BehaviorName=OverrideIdealRange-26, NodeType=Action, Param[0]=26)
- Behaviors=(BehaviorName="Spectre::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=SpectreRedAlert, Child[3]=GenericAlertHandler, Child[4]=SkipMove)
- Behaviors=(BehaviorName=SpectreRedAlert, NodeType=Sequence, Child[0]=IsRedAlert, Child[1]=SelectSpectreAbility)
- Behaviors=(BehaviorName=SelectSpectreAbility, NodeType=Selector, Child[0]=SelectPreselectedAbility, Child[1]=MimicBeaconBehavior, Child[2]=SpectreVanishedBranch, Child[3]=VisibleSpectreBranch, Child[4]=SkipMove )
- Behaviors=(BehaviorName=SpectreVanishedBranch, NodeType=Sequence, Child[0]=AffectedByEffect-Vanish, Child[1]=SpectreStealthSelector)
- Behaviors=(BehaviorName=AffectedByEffect-Vanish, NodeType=Condition)
- Behaviors=(BehaviorName=ShadowbindNotActive, NodeType=Inverter, Child[0]=HasAlliesOfType-Shadowbind)
- Behaviors=(BehaviorName=TryShadowbindIfNotActive, NodeType=Sequence, Child[0]=ShadowbindNotActive, Child[1]=TryShadowbindIfNotLastAction)
- Behaviors=(BehaviorName=SpectreStealthSelector, NodeType=Selector, Child[0]=AdvanceCoverIfNoEnemiesVisible, Child[1]=PostVanishMovement, Child[2]=TryShadowbindIfNotActive, Child[3]=TryMoveThenHorror, Child[4]=AdvanceCoverMove, Child[5]=TryShootOrReloadOrOverwatch, Child[6]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=PostVanishMovement, NodeType=Sequence, Child[0]=WasLastAbility-Vanish, Child[1]=IsAbilityAvailable-StandardMove, Child[2]=FindStealthDestination_AvoidEnemy, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=WasLastAbility-Vanish, NodeType=Condition)
- Behaviors=(BehaviorName=FindStealthDestination_AvoidEnemy, NodeType=Selector, Child[0]=StealthFindAdvanceDestinationIfNoEnemiesVisible, Child[1]=FindLimitedEnemyStealthDestination, Child[2]=FindAnyStealthDestination, Child[3]=FindAnyFallbackDest)
- Behaviors=(BehaviorName=FindLimitedEnemyStealthDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToUnflanked, Child[2]=FindDestinationWithLoS-MWP_IsoStealth)
- Behaviors=(BehaviorName=TryHorrorPriority, NodeType=Sequence, Child[0]=HasAlliesOfType-Shadowbind, Child[1]=TryHorror)
- Behaviors=(BehaviorName=HasAlliesOfType-Shadowbind, NodeType=Condition) ;Checks character group name.
- Behaviors=(BehaviorName=VisibleSpectreBranch, NodeType=Sequence, Child[0]=NotAffectedByVanish, Child[1]=SpectreVisibleSelector)
- Behaviors=(BehaviorName=NotAffectedByVanish, NodeType=Inverter, Child[0]=AffectedByEffect-Vanish)
- Behaviors=(BehaviorName=SpectreVisibleSelector, NodeType=Selector, Child[0]=PostShadowbindMove, Child[1]=TryShadowbindIfNotActive, Child[2]=TryVanish, Child[3]=TryMoveThenHorror, Child[4]=DoIfFlankedMove, Child[5]=TryShootOrReloadOrOverwatch, Child[6]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=TryVanish, NodeType=Sequence, Child[0]=IsAbilityAvailable-Vanish, Child[1]=NotLastActionPoint, Child[2]=VanishByDesignOrChance)
- Behaviors=(BehaviorName=VanishByDesignOrChance, NodeType=Selector, Child[0]=VanishPostShadowbind, Child[1]=ChanceToVanish)
- Behaviors=(BehaviorName=VanishPostShadowbind, NodeType=Sequence, Child[0]=WasLastAbility-Shadowbind, Child[1]=SelectAbility-Vanish)
- Behaviors=(BehaviorName=PostShadowbindMove, NodeType=Sequence, Child[0]=WasLastAbility-Shadowbind, Child[1]=FindStealthDestination_AvoidEnemy, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=WasLastAbility-Shadowbind, NodeType=Condition)
- Behaviors=(BehaviorName=ChanceToVanish, NodeType=RandFilter, Child[0]=SelectAbility-Vanish, Param[0]=75)
- Behaviors=(BehaviorName=FindVanishDestination, NodeType=Selector, Child[0]=FindFlankingStealthDestination, Child[1]=FindAnyStealthDestination)
- Behaviors=(BehaviorName=IsAbilityAvailable-Vanish, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-Vanish, NodeType=Action)
- Behaviors=(BehaviorName=TryHorrorPriorityWithMove, NodeType=Sequence, Child[0]=HasAlliesOfType-Shadowbind, Child[1]=TryMoveThenHorror)
- Behaviors=(BehaviorName=TryMoveThenHorror, NodeType=Selector, Child[0]=HorrorMoveIfFirstAction, Child[1]=TryHorrorPriority)
- Behaviors=(BehaviorName=HorrorMoveIfFirstAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=HorrorMove)
- Behaviors=(BehaviorName=HorrorMove, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityAvailable-Horror, Child[2]=RestrictToUnflanked, Child[3]=FindDestinationWithLoS-MWP_Defensive, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=SelectNLREnemyTargetRandomly, NodeType=RepeatUntilFail, Child[0]=EvaluateNLREnemyTargetRandomly)
- Behaviors=(BehaviorName=EvaluateNLREnemyTargetRandomly, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreNLREnemyTargetRandomly, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreNLREnemyTargetRandomly, NodeType=Successor, Child[0]=ScoreNLREnemyTargetRandomly)
- Behaviors=(BehaviorName=ScoreNLREnemyTargetRandomly, NodeType=Sequence, Child[0]=TargetIsEnemy, Child[1]=AvoidBoundAndPanickedTargets, Child[2]=SSScoreTargetOutIfCivilian, Child[3]=SSScoreTargetOutIfEnemyVIP, Child[4]=GenericScoreTargetRandomlySequence)
- Behaviors=(BehaviorName=TryShadowbindIfNotLastAction, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=TryShadowbind)
- Behaviors=(BehaviorName=TryShadowbind, NodeType=Sequence, Child[0]=IsAbilityAvailable-Shadowbind, Child[1]=SetTargetStack-Shadowbind, Child[2]=SelectNLREnemyTargetRandomly, Child[3]=HasValidTarget-Shadowbind, Child[4]=SelectRevealedShadowbindOption)
- Behaviors=(BehaviorName=IsAbilityAvailable-Shadowbind, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-Shadowbind, NodeType=Action)
- Behaviors=(BehaviorName=HasValidTarget-Shadowbind, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-Shadowbind, NodeType=Action)
- Behaviors=(BehaviorName=TryHorror, NodeType=Sequence, Child[0]=IsAbilityAvailable-Horror, Child[1]=SetTargetStack-Horror, Child[2]=SelectNLREnemyTargetRandomly, Child[3]=HasValidTarget-Horror, Child[4]=SelectRevealedHorrorOption)
- Behaviors=(BehaviorName=SelectRevealedHorrorOption, NodeType=Selector, Child[0]=RevealIfHiddenThenHorror, Child[1]=SelectAbility-Horror)
- Behaviors=(BehaviorName=IsAbilityAvailable-VanishReveal, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-VanishReveal, NodeType=Action)
- Behaviors=(BehaviorName=SetPreselectedAbility-Horror, NodeType=Action)
- Behaviors=(BehaviorName=RevealIfHiddenThenHorror, NodeType=Sequence, Child[0]=IsAbilityAvailable-VanishReveal, Child[1]=SelectAbility-VanishReveal, Child[2]=SetPreselectedAbility-Horror)
- Behaviors=(BehaviorName=SelectRevealedShadowbindOption, NodeType=Selector, Child[0]=RevealIfHiddenThenShadowbind, Child[1]=SelectAbility-Shadowbind)
- Behaviors=(BehaviorName=SSSetPreselectedAbility-Shadowbind, NodeType=Successor, Child[0]=SetPreselectedAbility-Shadowbind)
- Behaviors=(BehaviorName=SetPreselectedAbility-Shadowbind, NodeType=Action)
- Behaviors=(BehaviorName=RevealIfHiddenThenShadowbind, NodeType=Sequence, Child[0]=IsAbilityAvailable-VanishReveal, Child[1]=SelectAbility-VanishReveal, Child[2]=SSSetPreselectedAbility-Shadowbind)
- Behaviors=(BehaviorName=IsAbilityAvailable-Horror, NodeType=Condition)
- Behaviors=(BehaviorName=SetTargetStack-Horror, NodeType=Action)
- Behaviors=(BehaviorName=HasValidTarget-Horror, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-Horror, NodeType=Action)
- Behaviors=(BehaviorName="Shadowbind::CharacterRoot", NodeType=Selector, Child[0]=MimicBeaconBehavior, Child[1]=GenericAbilityRoot, Child[2]=TryMoveThenGrenade, Child[3]=DoIfFlankedMove, Child[4]=SnipeIfAvailable, Child[5]=ShootIfIdeal, Child[6]=NeedsReload, Child[7]=MoveTowardsNearestEnemy, Child[8]=TryShootOrReloadOrOverwatch, Child[9]=TryOverwatch, Child[10]=HuntEnemyWithCover, Child[11]=HuntEnemy )
- Behaviors=(BehaviorName=GenericAbilityRoot, NodeType=Selector, Child[0]=SelectPreselectedAbility, Child[1]=SelectGenericAbilitySequence)
- Behaviors=(BehaviorName=SelectPreselectedAbility, NodeType=Action)
- Behaviors=(BehaviorName=SelectGenericAbilitySequence, NodeType=Sequence, Child[0]=InitGenericAbilities, Child[1]=GenericAbilityIterator, Child[2]=HasSelectedGenericAbility)
- Behaviors=(BehaviorName=InitGenericAbilities, NodeType=Action) ; Set up list of viable abilities
- Behaviors=(BehaviorName=GenericAbilityIterator, NodeType=RepeatUntilFail, Child[0]=TryNextGenericAbility) ; Loop through abilities list
- Behaviors=(BehaviorName=TryNextGenericAbility, NodeType=Sequence, Child[0]=ChooseGenericAbilityOption, Child[1]=SSSelectGenericAbilityOptionOrMove, Child[2]=HasNotSelectedGenericAbility)
- Behaviors=(BehaviorName=HasSelectedGenericAbility, NodeType=Condition)
- Behaviors=(BehaviorName=HasNotSelectedGenericAbility, NodeType=Inverter, Child[0]=HasSelectedGenericAbility) ; Exit loop condition
- Behaviors=(BehaviorName=ChooseGenericAbilityOption, NodeType=Action)
- Behaviors=(BehaviorName=SSSelectGenericAbilityOptionOrMove, NodeType=Successor, Child[0]=SelectGenericAbilityOptionOrMove)
- Behaviors=(BehaviorName=SelectGenericAbilityOptionOrMove, NodeType=Selector, Child[0]=TryMoveForGenericAbilityOption, Child[1]=TrySelectGenericAbilityOption)
- Behaviors=(BehaviorName=TryMoveForGenericAbilityOption, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=ShouldMoveTowardGenericAbilityOption, Child[2]=SetCurrOptionAsPreselectedAbility, Child[3]=SelectDestinationForGenericAbilityOption, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=ShouldMoveTowardGenericAbilityOption, NodeType=Condition)
- Behaviors=(BehaviorName=SetCurrOptionAsPreselectedAbility, NodeType=Action)
- Behaviors=(BehaviorName=SelectDestinationForGenericAbilityOption, NodeType=Selector, Child[0]=GASMoveTowardAoETarget, Child[1]=GASTryFindFlankingDestination, Child[2]=GASTryFindCloserCoverDestination, Child[3]=MoveCloserForGenericAbility)
- Behaviors=(BehaviorName=TrySelectGenericAbilityOption, NodeType=Action)
- Behaviors=(BehaviorName=GASMoveTowardAoETarget, NodeType=Sequence, Child[0]=GASIsAoEAbility, Child[1]=GASRestrictMoveToAoETarget, Child[2]=FindRestrictedDestination-MWP_Standard)
- Behaviors=(BehaviorName=GASIsAoEAbility, NodeType=Condition)
- Behaviors=(BehaviorName=GASRestrictMoveToAoETarget, NodeType=Action)
- Behaviors=(BehaviorName=GASTryFindFlankingDestination, NodeType=Sequence, Child[0]=ShouldFlankGASTarget, Child[1]=ResetDestinationSearch, Child[2]=RestrictToGASRange, Child[3]=RestrictToEnemyLoS, Child[4]=FindRestrictedDestination-MWP_Flanking)
- Behaviors=(BehaviorName=ShouldFlankGASTarget, NodeType=Condition)
- Behaviors=(BehaviorName=RestrictToGASRange, NodeType=Action)
- Behaviors=(BehaviorName=GASTryFindCloserCoverDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToGASRange, Child[2]=RestrictToEnemyLoS, Child[3]=FindRestrictedDestination-MWP_Standard)
- Behaviors=(BehaviorName=MoveCloserForGenericAbility, NodeType=Action)
- Behaviors=(BehaviorName="AdventPurifier::CharacterRoot", NodeType=Selector, Child[0]=TryJob, Child[1]=GenericGreenMovement, Child[2]=PurifierRedAlert, Child[3]=GenericAlertHandler, Child[4]=SkipMove)
- Behaviors=(BehaviorName="AdventPurifier::AttackMimicBeacon", NodeType=Sequence, Child[0]=SelectPotentialMimicBeaconTarget, Child[1]=TryFlameThrowerOnMimicBeacon)
- Behaviors=(BehaviorName=PurifierRedAlert, NodeType=Sequence, Child[0]=IsRedOrOrangeAlert, Child[1]=SelectPurifierAbility)
- Behaviors=(BehaviorName=SelectPurifierAbility, NodeType=Selector, Child[0]=SelectPreselectedAbility, Child[1]=MimicBeaconBehavior, Child[2]=FlameThrowerPriorityOption, Child[3]=TryMoveThenGrenade, Child[4]=TryMoveThenFlameThrower, Child[5]=TryFlankedMoveThenFlameThrower, Child[6]=DoIfFlankedMove, Child[7]=TryShootOrReloadOrOverwatch, Child[8]=HuntEnemyWithCover)
- Behaviors=(BehaviorName=SSSetPreselectedAbility-FlameThrowerLostTargetProfile, NodeType=Successor, Child[0]=SetPreselectedAbility-FlameThrowerLostTargetProfile)
- Behaviors=(BehaviorName=SetPreselectedAbility-FlameThrowerLostTargetProfile, NodeType=Action)
- Behaviors=(BehaviorName=SSSetPreselectedAbility-FlameThrowerProfile, NodeType=Successor, Child[0]=SetPreselectedAbility-FlameThrowerProfile)
- Behaviors=(BehaviorName=SetPreselectedAbility-FlameThrowerProfile, NodeType=Action)
- Behaviors=(BehaviorName=FlameThrowerPriorityOption, NodeType=Sequence, Child[0]=IsAbilityAvailable-AdvPurifierFlamethrower, Child[1]=TryFlameThrowerPriority)
- Behaviors=(BehaviorName=TryFlameThrowerPriority, NodeType=Selector, Child[0]=FirstTurnMoveForPriorityFlameThrower, Child[1]=FlameThrowerIfPriorityTargets)
- Behaviors=(BehaviorName=FirstTurnMoveForPriorityFlameThrower, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=IsAbilityAvailable-StandardMove, Child[2]=PurifierMoveForLost, Child[3]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=PurifierMoveForLost, NodeType=Selector, Child[0]=FlameThrowerLostMoveAndAttack, Child[1]=FindDestinationTowardTheLost)
- Behaviors=(BehaviorName=FindDestinationTowardTheLost, NodeType=Sequence, Child[0]=FindVisibleLostTarget, Child[1]=FindLostFlamethrowerDestination)
- Behaviors=(BehaviorName=RestrictToPotentialTargetRange-AdvPurifierFlamethrower, NodeType=Action)
- Behaviors=(BehaviorName=FindLostFlamethrowerDestination, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=RestrictToPotentialTargetRange-AdvPurifierFlamethrower, Child[2]=FindRestrictedDestination-MWP_Standard)
- Behaviors=(BehaviorName=FindVisibleLostTarget, NodeType=Sequence, Child[0]=SetVisiblePotentialTargetStack, Child[1]=SelectNearestTheLostTarget, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SelectNearestTheLostTarget, NodeType=RepeatUntilFail, Child[0]=EvaluateNearestLostTarget)
- Behaviors=(BehaviorName=EvaluateNearestLostTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreNearestLostTarget, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreNearestLostTarget, NodeType=Successor, Child[0]=ScoreNearestLostTarget)
- Behaviors=(BehaviorName=ScoreNearestLostTarget, NodeType=Sequence, Child[0]=IsTargetTeam-eTeam_TheLost, Child[1]=TargetScoreByScaledDistance-1, Child[2]=AddToTargetScore_100)
- Behaviors=(BehaviorName=FlameThrowerIfPriorityTargets, NodeType=Sequence, Child[0]=SelectPriorityTargetForFlameThrower, Child[1]=SelectAbility-AdvPurifierFlamethrower)
- Behaviors=(BehaviorName=FindMultiTargetDestination-FlameThrowerLostTargetProfile, NodeType=Action, Param[0]=1)
- Behaviors=(BehaviorName=FlameThrowerLostMoveAndAttack, NodeType=Sequence, Child[0]=FindMultiTargetDestination-FlameThrowerLostTargetProfile, Child[1]=SSSetPreselectedAbility-FlameThrowerLostTargetProfile, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=WaitedTurnsForFlameThrower, NodeType=StatCondition, Param[0]=TurnsEngaged, Param[1]=">=", Param[2]=2)
- Behaviors=(BehaviorName=TryMoveThenFlameThrower, NodeType=Selector, Child[0]=FirstTurnMoveForFlameThrower, Child[1]=TryFlameThrower, Child[2]=LastMoveTryFlameAnything)
- Behaviors=(BehaviorName=FirstTurnMoveForFlameThrower, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=IsAbilityAvailable-StandardMove, Child[2]=FlameThrowerMoveAndAttack)
- Behaviors=(BehaviorName=FindMultiTargetDestination-FlameThrowerProfile, NodeType=Action, Param[0]=1) ;Param[0]=1 added when LoS is required.
- Behaviors=(BehaviorName=FlameThrowerMoveAndAttack, NodeType=Selector, Child[0]=MultiTargetMoveForFlameThrowerTargets, Child[1]=MoveTowardFlameThrowerTargets)
- Behaviors=(BehaviorName=MultiTargetMoveForFlameThrowerTargets, NodeType=Sequence, Child[0]=FindMultiTargetDestination-FlameThrowerProfile, Child[1]=SSSetPreselectedAbility-FlameThrowerProfile, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=MoveTowardFlameThrowerTargets, NodeType=Sequence, Child[0]=SelectPotentialTargetForFlameThrower, Child[1]=ResetDestinationSearch, Child[2]=RestrictToPotentialTargetRange-AdvPurifierFlameThrower, Child[3]=FindDestinationWithLoS-MWP_Standard, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=SelectPotentialTargetForFlameThrower, NodeType=Sequence, Child[0]=SetPotentialTargetStack, Child[1]=SelectBestTargetForFlameThrower, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SelectBestTargetForFlameThrower, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialFlameThrowerTarget)
- Behaviors=(BehaviorName=EvaluatePotentialFlameThrowerTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreClosestEnemyTarget_NonCivilianOrVIP, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=LastMoveTryFlameAnything, NodeType=Sequence, Child[0]=IsLastActionPoint, Child[1]=IsAbilityAvailable-AdvPurifierFlamethrower, Child[2]=FlameThrower_Anything, Child[3]=SelectAbility-AdvPurifierFlamethrower)
- Behaviors=(BehaviorName=TryFlankedMoveThenFlameThrower, NodeType=Selector, Child[0]=FirstTurnFlankedMoveForFlameThrower, Child[1]=TryFlameThrower, Child[2]=LastMoveTryFlameAnything)
- Behaviors=(BehaviorName=FirstTurnFlankedMoveForFlameThrower, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=IsAbilityAvailable-StandardMove, Child[2]=FlameThrowerFlankedMoveAndAttack)
- Behaviors=(BehaviorName=FlameThrowerFlankedMoveAndAttack, NodeType=Selector, Child[0]=MultiTargetFlankedMoveForFlameThrowerTargets, Child[1]=FlankedMoveTowardFlameThrowerTargets)
- Behaviors=(BehaviorName=FindAnyMultiTargetDestination-FlameThrowerProfile, NodeType=Action, Param[0]=1) ;Param[0]=1 added when LoS is required.
- Behaviors=(BehaviorName=MultiTargetFlankedMoveForFlameThrowerTargets, NodeType=Sequence, Child[0]=FindAnyMultiTargetDestination-FlameThrowerProfile, Child[1]=SSSetPreselectedAbility-FlameThrowerProfile, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=FlankedMoveTowardFlameThrowerTargets, NodeType=Sequence, Child[0]=SelectPotentialTargetForFlameThrower, Child[1]=ResetDestinationSearch, Child[2]=RestrictToPotentialTargetRange-AdvPurifierFlameThrower, Child[3]=FindDestinationWithLoS-MWP_Fanatic, Child[4]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=TryFlameThrower, NodeType=Sequence, Child[0]=IsAbilityAvailable-AdvPurifierFlamethrower, Child[1]=FlameThrower_AnyTargetWillDo, Child[2]=SelectAbility-AdvPurifierFlamethrower)
- Behaviors=(BehaviorName=IsAbilityAvailable-AdvPurifierFlamethrower, NodeType=Condition)
- Behaviors=(BehaviorName=SelectAbility-AdvPurifierFlamethrower, NodeType=Action)
- Behaviors=(BehaviorName=SelectPriorityTargetForFlameThrower, NodeType=Selector, Child[0]=FlameThrower_HitIdealTarget, Child[1]=FlameThrower_MultipleTargets)
- Behaviors=(BehaviorName=FlameThrower_HitIdealTarget, NodeType=Sequence, Child[0]=FindPotentialAoETargets-FlameThrowerLostTargetProfile, Child[1]=SelectAoETarget-FlameThrowerLostTargetProfile)
- Behaviors=(BehaviorName=FlameThrower_MultipleTargets, NodeType=Sequence, Child[0]=FindPotentialAoETargets-FlameThrowerMultiProfile, Child[1]=SelectAoETarget-FlameThrowerMultiProfile)
- Behaviors=(BehaviorName=FlameThrower_AnyTargetWillDo, NodeType=Sequence, Child[0]=FindPotentialAoETargets-FlameThrowerProfile, Child[1]=SelectAoETarget-FlameThrowerProfile)
- Behaviors=(BehaviorName=FlameThrower_Anything, NodeType=Selector, Child[0]=FlameThrower_EnemyCover, Child[1]=FlameThrower_IgnoreFF)
- Behaviors=(BehaviorName=FlameThrower_EnemyCover, NodeType=Sequence, Child[0]=FindPotentialAoETargets-FlameThrowerAdjacent, Child[1]=SelectAoETarget-FlameThrowerAdjacent)
- Behaviors=(BehaviorName=FlameThrower_IgnoreFF, NodeType=Sequence, Child[0]=FindPotentialAoETargets-FlameThrowerIgnoreFF, Child[1]=SelectAoETarget-FlameThrowerIgnoreFF)
- Behaviors=(BehaviorName=TryFlameThrowerOnMimicBeacon, NodeType=Sequence, Child[0]=IsAbilityAvailable-AdvPurifierFlamethrower, Child[1]=FindFlameThrowerMimicBeaconTarget, Child[2]=SelectAbility-AdvPurifierFlamethrower)
- Behaviors=(BehaviorName=FindFlameThrowerMimicBeaconTarget, NodeType=Selector, Child[0]=FlameThrower_MimicBeacon, Child[1]=FlameThrower_MimicBeaconAdjacent)
- Behaviors=(BehaviorName=FlameThrower_MimicBeacon, NodeType=Sequence, Child[0]=FindPotentialAoETargets-FlameThrowerMimicBeacon, Child[1]=SelectAoETarget-FlameThrowerMimicBeacon)
- Behaviors=(BehaviorName=FlameThrower_MimicBeaconAdjacent, NodeType=Sequence, Child[0]=FindPotentialAoETargets-FlameThrowerMimicBeaconAdjacent, Child[1]=SelectAoETarget-FlameThrowerMimicBeaconAdjacent)
- Behaviors=(BehaviorName=PanicBerserkRoot, NodeType=Selector, Child[0]=ShootRandomEnemyForPanic, Child[1]=NeedsReload, Child[2]=TryStandardMeleeUnsafe, Child[3]=SkipMove)
- Behaviors=(BehaviorName=ReduceCurrTileScore, NodeType=Action, Param[0]="0.25") ;This drops the value of the unit's current tile down, promoting movement whenever possible.
- Behaviors=(BehaviorName=IsTargetInAttackRange-ThrowGrenade, NodeType=Condition)
- Behaviors=(BehaviorName=PanicObsessedRoot, NodeType=Selector, Child[0]=ObsessedStandardShotAttack, Child[1]=NeedsReload, Child[2]=PanickedObsessed_MoveActions, Child[3]=DoCower, Child[4]=SkipMove)
- Behaviors=(BehaviorName=PanickedObsessed_MoveActions, NodeType=Sequence, Child[0]=NotLastActionPoint, Child[1]=SSSetObsessedTargetIfUnset, Child[2]=TryPanicObsessedMovement)
- Behaviors=(BehaviorName=TryPanicObsessedMovement, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=FindDestinationTowardObsessedTarget, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=SelectObsessedPriorityTarget, NodeType=Sequence, Child[0]=SetPotentialTargetStack, Child[1]=SelectObsessedTargetIterator, Child[2]=HasValidTarget-Potential)
- Behaviors=(BehaviorName=SSSetObsessedTargetIfUnset, NodeType=Successor, Child[0]=SetObsessedTargetIfUnset)
- Behaviors=(BehaviorName=SetObsessedTargetIfUnset, NodeType=Sequence, Child[0]=ObsessedTargetUnset, Child[1]=SetObsessedTarget)
- Behaviors=(BehaviorName=ObsessedTargetUnset, NodeType=Inverter, Child[0]=HasUnitValue-ObsessedTarget)
- Behaviors=(BehaviorName=HasUnitValue-ObsessedTarget, NodeType=Condition)
- Behaviors=(BehaviorName=SetObsessedTarget, NodeType=Action)
- Behaviors=(BehaviorName=FindDestinationTowardObsessedTarget, NodeType=Selector, Child[0]=FirstActionGetDestinationCloserToTarget, Child[1]=FindFlankingDestinationToObsessedTarget, Child[2]=FindClosestDestinationTowardsObsessedTarget)
- Behaviors=(BehaviorName=FirstActionGetDestinationCloserToTarget, NodeType=Sequence, Child[0]=HasThreeActionPoints, Child[1]=FindClosestDestinationTowardsObsessedTarget)
- Behaviors=(BehaviorName=FindClosestDestinationTowardsObsessedTarget, NodeType=Action)
- Behaviors=(BehaviorName=FindFlankingDestinationToObsessedTarget, NodeType=Sequence, Child[0]=ResetDestinationSearch, Child[1]=SelectObsessedPriorityTarget, Child[2]=RestrictToUnflanked, Child[3]=RestrictToPotentialTargetRange-StandardShot, Child[4]=FindRestrictedDestination-MWP_PanicObsessed)
- Behaviors=(BehaviorName=RestrictToPotentialTargetRange-StandardShot, NodeType=Action)
- Behaviors=(BehaviorName=FindRestrictedDestination-MWP_PanicObsessed, NodeType=Action)
- Behaviors=(BehaviorName=SelectObsessedTargetIterator, NodeType=RepeatUntilFail, Child[0]=SelectObsessedTargetStep)
- Behaviors=(BehaviorName=SelectObsessedTargetStep, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSTargetScoreIfObsessed, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSTargetScoreIfObsessed, NodeType=Successor, Child[0]=TargetScoreIfObsessed)
- Behaviors=(BehaviorName=TargetScoreIfObsessed, NodeType=Sequence, Child[0]=TargetIsPanicObsessedTarget, Child[1]=AddToTargetScore_100)
- Behaviors=(BehaviorName=TargetIsPanicObsessedTarget, NodeType=Condition)
- Behaviors=(BehaviorName=ObsessedStandardShotAttack, NodeType=Sequence, Child[0]=SSSetObsessedTargetIfUnset, Child[1]=IsAbilityAvailable-StandardShot, Child[2]=SelectObsessedTargetForStandardShot, Child[3]=SelectAbility-StandardShot)
- Behaviors=(BehaviorName=SelectObsessedTargetForStandardShot, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=SelectObsessedTargetIterator, Child[2]=HasValidTarget-StandardShot)
- Behaviors=(BehaviorName=PanicShatteredRoot, NodeType=Selector, Child[0]=DoCower, Child[1]=MoveIfCowerNotAvailable, Child[2]=SkipMove)
- Behaviors=(BehaviorName=MoveIfCowerNotAvailable, NodeType=Sequence, Child[0]=IsCowerUnavailable, Child[1]=NotHunkeredDown, Child[2]=MoveRandomCover)
- Behaviors=(BehaviorName=IsCowerUnavailable, NodeType=Inverter, Child[0]=IsAbilityAvailable-HunkerDown)
- Behaviors=(BehaviorName=AffectedByEffect-HunkerDown, NodeType=Condition)
- Behaviors=(BehaviorName=NotHunkeredDown, NodeType=Inverter, Child[0]=AffectedByEffect-HunkerDown)
- Behaviors=(BehaviorName=SoldierAutoRunTree, NodeType=Selector, Child[0]=TryMoveThenGrenade, Child[1]=TryShootOrReload, Child[2]=GenericAbilityRoot, Child[3]=DoIfFlankedMove, Child[4]=SnipeIfAvailable, Child[5]=ShootIfIdeal, Child[6]=TryMoveTowardObjective, Child[7]=NeedsReload, Child[8]=MoveTowardsNearestEnemy, Child[9]=TryShootOrReloadOrOverwatch, Child[10]=TryOverwatch, Child[11]=SkipMove)
- Behaviors=(BehaviorName=TryOverwatchOrMoveRandom, NodeType=RandSelector, Child[0]=TryOverwatch, Child[1]=MoveRandomUnsafe)
- Behaviors=(BehaviorName=TryMoveTowardObjective, NodeType=Selector, Child[0]=TryHackObjective, Child[1]=TryNeutralizeObjective, Child[2]=TryDestroyObjective, Child[3]=TryPathToObjective, Child[4]=TryEvacuateObjective )
- Behaviors=(BehaviorName=TryHackObjective, NodeType=Sequence, Child[0]=IsObjectiveHackable, Child[1]=BBHasKey-ObjectiveDoorID, Child[2]=HackObjectiveBranch)
- Behaviors=(BehaviorName=IsObjectiveHackable, NodeType=Selector, Child[0]=IsMissionOfType-Rescue_AdventCell, Child[1]=IsMissionOfType-Rescue_Vehicle, Child[2]=IsMissionOfType-Hack, Child[3]=IsMissionOfType-Hack_ADV, Child[4]=IsMissionOfType-Hack_Train, Child[5]=IsMissionOfType-Neutralize_Vehicle, Child[6]=IsMissionOfType-Recover, Child[7]=IsMissionOfType-Recover_ADV, Child[8]=IsMissionOfType-Recover_Train, Child[9]=IsMissionOfType-Recover_Vehicle)
- Behaviors=(BehaviorName=IsMissionOfType-Rescue_AdventCell, NodeType=Condition)
- Behaviors=(BehaviorName=IsMissionOfType-Rescue_Vehicle, NodeType=Condition)
- Behaviors=(BehaviorName=IsMissionOfType-Hack, NodeType=Condition)
- Behaviors=(BehaviorName=IsMissionOfType-Hack_ADV, NodeType=Condition)
- Behaviors=(BehaviorName=IsMissionOfType-Hack_Train, NodeType=Condition)
- Behaviors=(BehaviorName=IsMissionOfType-Neutralize_Vehicle, NodeType=Condition)
- Behaviors=(BehaviorName=IsMissionOfType-Recover, NodeType=Condition)
- Behaviors=(BehaviorName=IsMissionOfType-Recover_ADV, NodeType=Condition)
- Behaviors=(BehaviorName=IsMissionOfType-Recover_Train, NodeType=Condition)
- Behaviors=(BehaviorName=IsMissionOfType-Recover_Vehicle, NodeType=Condition)
- Behaviors=(BehaviorName=HackObjectiveBranch, NodeType=Selector, Child[0]=TryHackObjectiveDoor, Child[1]=TryPathToObjective)
- Behaviors=(BehaviorName=TryPathToObjective, NodeType=Sequence, Child[0]=FindDestinationTowardObjective, Child[1]=SelectAbility-StandardMove, Intent="Moving toward objective!")
- Behaviors=(BehaviorName=FindDestinationTowardObjective, NodeType=Action)
- Behaviors=(BehaviorName=TryHackObjectiveDoor, NodeType=Sequence, Child[0]=BBHasKey-ObjectiveDoorID, Child[1]=IsAbilityAvailable-Hack, Child[2]=SelectObjectiveDoorHackTarget, Child[3]=SelectAbility-Hack)
- Behaviors=(BehaviorName=BBHasKey-ObjectiveDoorID, NodeType=Condition)
- Behaviors=(BehaviorName=IsAbilityAvailable-Hack, NodeType=Condition)
- Behaviors=(BehaviorName=SelectObjectiveDoorHackTarget, NodeType=Sequence, Child[0]=SetTargetStack-Hack, Child[1]=SelectObjectiveDoorTarget, Child[2]=HasValidTarget-Hack)
- Behaviors=(BehaviorName=SetTargetStack-Hack, NodeType=Action)
- Behaviors=(BehaviorName=HasValidTarget-Hack, NodeType=Condition)
- Behaviors=(BehaviorName=SelectObjectiveDoorTarget, NodeType=RepeatUntilFail, Child[0]=EvaluateHackTargetObjectiveDoor)
- Behaviors=(BehaviorName=EvaluateHackTargetObjectiveDoor, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=SSScoreIfHackTargetObjectiveDoor, Child[2]=UpdateBestTarget)
- Behaviors=(BehaviorName=SSScoreIfHackTargetObjectiveDoor, NodeType=Successor, Child[0]=ScoreIfHackTargetObjectiveDoor)
- Behaviors=(BehaviorName=ScoreIfHackTargetObjectiveDoor, NodeType=Sequence, Child[0]=BBDataMatchesTargetID-ObjectiveDoorID, Child[1]=AddToTargetScore_100)
- Behaviors=(BehaviorName=BBDataMatchesTargetID-ObjectiveDoorID, NodeType=Condition)
- Behaviors=(BehaviorName=TryNeutralizeObjective, NodeType=Sequence, Child[0]=IsObjectiveActive-NeutralizeTarget, Child[1]=NeutralizeObjectiveBranch)
- Behaviors=(BehaviorName=IsObjectiveActive-NeutralizeTarget, NodeType=Condition)
- Behaviors=(BehaviorName=NeutralizeObjectiveBranch, NodeType=Failer, Child[0]=IsAbilityAvailable-StandardMove) ; TEMP todo writeme
- Behaviors=(BehaviorName=TryDestroyObjective, NodeType=Sequence, Child[0]=IsObjectiveActive-DestroyObject, Child[1]=DestroyObjectiveBranch)
- Behaviors=(BehaviorName=IsObjectiveActive-DestroyObject, NodeType=Condition)
- Behaviors=(BehaviorName=DestroyObjectiveBranch, NodeType=Failer, Child[0]=IsAbilityAvailable-StandardMove); TEMP todo writeme
- Behaviors=(BehaviorName=TryEvacuateObjective, NodeType=Selector, Child[0]=TryEvac)
- Behaviors=(BehaviorName=TryEscapeObjective, NodeType=Sequence, Child[0]=IsObjectiveActive-Escape, Child[1]=EscapeObjectiveBranch)
- Behaviors=(BehaviorName=IsObjectiveActive-Escape, NodeType=Condition)
- Behaviors=(BehaviorName=EscapeObjectiveBranch, NodeType=Failer, Child[0]=IsAbilityAvailable-StandardMove) ; TEMP todo writeme
- Behaviors=(BehaviorName=MoveTowardsNearestEnemy, NodeType=Selector, Child[0]=HeatSeekWhenNoEnemiesVisible, Child[1]=MoveFlankingIfFirstAbilityUnsafe, Child[2]=MoveAdvanceToCoverUnsafe, Child[3]=HeatSeekToCover)
- Behaviors=(BehaviorName=HeatSeekWhenNoEnemiesVisible, NodeType=Sequence, Child[0]=NoVisibleEnemiesToTeam, Child[1]=HeatSeekNearestUnconcealed, Child[2]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=HeatSeekToCover, NodeType=Sequence, Child[0]=HeatSeekNearestUnconcealed, Child[1]=SelectAbility-StandardMove)
- Behaviors=(BehaviorName=NoVisibleEnemiesToTeam, NodeType=Condition)
- Behaviors=(BehaviorName=SnipeIfAvailable, NodeType=Sequence, Child[0]=IsAbilityAvailable-SniperStandardFire, Child[1]=SelectTargetForSniperStandardFire_Ideal, Child[2]=SelectAbility-SniperStandardFire)
- Behaviors=(BehaviorName=IsAbilityAvailable-SniperStandardFire, NodeType=Condition)
- Behaviors=(BehaviorName=SelectTargetForSniperStandardFire_Ideal, NodeType=Sequence, Child[0]=SetTargetStack-SniperStandardFire, Child[1]=SelectTarget_Opportunist, Child[2]=HasValidTarget-SniperStandardFire)
- Behaviors=(BehaviorName=SelectAbility-SniperStandardFire, NodeType=Action)
- Behaviors=(BehaviorName=SetTargetStack-SniperStandardFire, NodeType=Action)
- Behaviors=(BehaviorName=HasValidTarget-SniperStandardFire, NodeType=Condition)
- Behaviors=(BehaviorName=TargetTemplateNameIs-Sectoid, NodeType=Condition)
- Behaviors=(BehaviorName=TargetTemplateNameIs-Muton, NodeType=Condition)
- Behaviors=(BehaviorName=IsTargetStunLancer, NodeType=Selector, Child[0]=TargetTemplateNameIs-AdvStunLancerM1, Child[1]=TargetTemplateNameIs-AdvStunLancerM2, Child[2]=TargetTemplateNameIs-AdvStunLancerM3)
- Behaviors=(BehaviorName=TargetTemplateNameIs-AdvStunLancerM1, NodeType=Condition)
- Behaviors=(BehaviorName=TargetTemplateNameIs-AdvStunLancerM2, NodeType=Condition)
- Behaviors=(BehaviorName=TargetTemplateNameIs-AdvStunLancerM3, NodeType=Condition)
- Behaviors=(BehaviorName=TargetScoreMindControlledAlly, NodeType=Selector, Child[0]=ScoreTargetIfMindControlled, Child[1]=AddToTargetScore_0)
- Behaviors=(BehaviorName=ScoreTargetIfMindControlled, NodeType=Sequence, Child[0]=TargetAffectedByEffect-MindControl, Child[1]=AddToTargetScore_-1000)
- Behaviors=(BehaviorName=SelectAbility-Hack, NodeType=Action)
- Behaviors=(BehaviorName=IsTeam-eTeam_Alien, NodeType=Condition)
- Behaviors=(BehaviorName=NotTeamAlien, NodeType=Inverter, Child[0]=IsTeam-eTeam_Alien)
- Behaviors=(BehaviorName=ShouldPrioritizeTheLostTarget, NodeType=Condition)
- Behaviors=(BehaviorName=IsTargetTeam-eTeam_TheLost, NodeType=Condition)
- Behaviors=(BehaviorName=IsTargetTeam-eTeam_Alien, NodeType=Condition)
- Behaviors=(BehaviorName=AdjustScoreForLostPriority, NodeType=Selector, Child[0]=LostPriorityScore, Child[1]=AddToTargetScore_-500) ;Either +500 or -500 depending on whether or not this unit is attacking us.
- Behaviors=(BehaviorName=LostPriorityScore, NodeType=Sequence, Child[0]=ShouldPrioritizeTheLostTarget, Child[1]=AddToTargetScore_500)
- [XComGame.XGAIBehavior_Civilian]
- CIVILIAN_NEAR_TERROR_REACT_RADIUS=2.0 ; Radius, in tiles, around civilians to react, on TERROR missions. Affects proximity ring size. MUST MATCH KISMET-SIDE CHECK - SEE TruggerDistanceTiles setting in kismet sequence of Obj_Terror.umap in editor.
- CIVILIAN_NEAR_STANDARD_REACT_RADIUS=4.0; Radius, in tiles, around civilians to react, on non-terror missions.
- [XComGame.XComGameState_AIBlackboard]
- [IniVersion]
- 0=1508494201.000000
Advertisement
Add Comment
Please, Sign In to add comment