XCOM 2
[WotC] The MOCX Initiative
Darkling Mar 7, 2023 @ 2:06am
AI conflicts with other raider factions
The sniper and ranger's AI have conflicting definitions with the same name as other raider factions and so some of the mods will not behave as expected if they are installed together. Renaming the MOCX AI starting from the existing behaviours HaveHighPriorityTarget_Sniper, Ranger_RedFirstActionSelector and Ranger_RedLastActionSelector like this
+Behaviors=(BehaviorName=HaveHighPriorityTarget_Sniper, NodeType=Sequence, Child[0]=SetTargetStack-SniperStandardFire, Child[1]=FindHighPriorityTargetMOCX, Child[2]=HasValidTarget-SniperStandardFire) +Behaviors=(BehaviorName=FindHighPriorityTargetMOCX, NodeType=RepeatUntilFail, Child[0]=NotHighPriorityEvaluateTargetMOCX) +Behaviors=(BehaviorName=NotHighPriorityEvaluateTargetMOCX, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetIsNotHighPriorityMOCX) +Behaviors=(BehaviorName=TargetIsNotHighPriorityMOCX, NodeType=Inverter, Child[0]=TargetIsHighPriorityMOCX) +Behaviors=(BehaviorName=TargetIsHighPriorityMOCX, NodeType=Sequence, Child[0]=TargetIsNotCivilian, Child[1]=TargetNotTeamTheLost, Child[2]=TargetKillableOrFlanked, Child[3]=AddToTargetScore_1000, Child[4]=UpdateBestTarget) +Behaviors=(BehaviorName=Ranger_RedFirstActionSelector, NodeType=Selector, \\ Child[0]=TryReaper, \\ Child[1]=TryReaperMelee, \\ Child[2]=DoIfFlankedMove, \\ Child[3]=TryDarkEscape, \\ Child[4]=TryRaGDash, \\ Child[5]=TryHighPriorityShotMOCX, \\ Child[6]=TryVanish, \\ Child[7]=TryRunAndGun, \\ Child[8]=TryMoveThenGrenade, \\ Child[9]=TryShootOrReloadOrOverwatch_Adv, \\ Child[10]=TryRupture, \\ Child[11]=TryRapidFire, \\ Child[12]=TryRapidFire, \\ Child[13]=SelectMoveProfileByJob, \\ Child[14]=HuntEnemyWithCover) +Behaviors=(BehaviorName=Ranger_RedLastActionSelector, NodeType=Selector, \\ Child[0]=TryDarkEscape, \\ Child[1]=TryReaperMelee, \\ Child[2]=TryHighPriorityShotMOCX, \\ Child[3]=TryGrenade, \\ Child[4]=TryRupture, \\ Child[5]=TryRapidFire, \\ Child[6]=TryStandardMelee, \\ Child[7]=TryShootOrReloadOrOverwatch_Adv, \\ Child[8]=HuntEnemyWithCover, \\ Child[9]=SelectMove_JobOrAggressive) +Behaviors=(BehaviorName=TryHighPriorityShotMOCX, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardShot, Child[1]=HaveHighPriorityTargetMOCX, Child[2]=ShootIfAvailable) +Behaviors=(BehaviorName=HaveHighPriorityTargetMOCX, NodeType=Sequence, Child[0]=SetTargetStack-StandardShot, Child[1]=FindHighPriorityTargetMOCX, Child[2]=HasValidTarget-StandardShot)