Guest User

Untitled

a guest
Oct 15th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.24 KB | None | 0 0
  1. [XComGame.X2AIBTBehaviorTree]
  2. ; -------------------- Replace Generic Combat functions --------------------------------------------------
  3.  
  4. -Behaviors=(BehaviorName=DoIfFlankedMove, NodeType=Sequence, Child[0]=CheckIfNeedToMove, Child[1]=FlankedMoveSelector)
  5. +Behaviors=(BehaviorName=DoIfFlankedMove, NodeType=Selector, Child[0]=TryMoveForAdventMedikit, Child[1]=DoIfFlankedMoveCheck, Child[2]=TryAdventMedikitOnAnyTarget)
  6. +Behaviors=(BehaviorName=DoIfFlankedMoveCheck, NodeType=Sequence, Child[0]=CheckIfNeedToMove, Child[1]=FlankedMoveSelector)
  7.  
  8. -Behaviors=(BehaviorName=TryShootOrReload, NodeType=Selector, Child[0]=ShootIfAvailable, Child[1]=NeedsReload)
  9. +Behaviors=(BehaviorName=TryShootOrReload, NodeType=Selector, Child[0]=TryAdventMedikitOnAnyTarget, Child[1]=NeedsReload, Child[2]=ShootIfAvailable)
  10.  
  11. -Behaviors=(BehaviorName=TryShootOrReloadOrOverwatch, NodeType=Selector, Child[0]=ConsiderTakingOverwatch, Child[1]=ShootIfAvailable, Child[2]=NeedsReload)
  12. +Behaviors=(BehaviorName=TryShootOrReloadOrOverwatch, NodeType=Selector, Child[0]=TryAdventMedikitOnAnyTarget, Child[1]=NeedsReload, Child[2]=ConsiderSuppression, Child[3]=ConsiderTakingOverwatch, Child[4]=ShootIfAvailable)
  13.  
  14. ; ---------------- NeedToHeal -- use both medkit abilities --------------------------------------------
  15.  
  16. +EquivalentAbilities=( KeyName=AdventMedikit, EquivalentAbilityName[0]=MedikitHeal, EquivalentAbilityName[1]=NanoMedikitHeal)
  17.  
  18. ; ---------------- AdventMedikit behaviours --------------------------------------------
  19.  
  20. +Behaviors=(BehaviorName=IsAbilityAvailable-AdventMedikit, NodeType=Condition)
  21. +Behaviors=(BehaviorName=IsAbilityReady-AdventMedikit, NodeType=Condition)
  22. +Behaviors=(BehaviorName=SelectAbility-AdventMedikit, NodeType=Action)
  23. +Behaviors=(BehaviorName=HasValidTarget-AdventMedikit, NodeType=Condition)
  24. +Behaviors=(BehaviorName=SetTargetStack-AdventMedikit, NodeType=Action)
  25.  
  26. +Behaviors=(BehaviorName=TryMoveForAdventMedikit, NodeType=Sequence, Child[0]=SafeToMove, Child[1]=IsAbilityReady-AdventMedikit, Child[2]=NotLastActionPoint, Child[3]=MoveStandardIfFirstAbility-AdventMedikit)
  27.  
  28. +Behaviors=(BehaviorName=FindAdventMedikitDestinationDefensive, NodeType=Selector, Child[0]=FindAdventMedikitDestinationDefensive_BestUnit)
  29. +Behaviors=(BehaviorName=FindAdventMedikitDestinationDefensive_BestUnit, NodeType=Sequence, Child[0]=SelectPotentialTargetForAdventMedikit, Child[1]=ResetDestinationSearch, Child[2]=RestrictToPotentialTargetRange-AdventMedikit, Child[3]=FindRestrictedDestination-MWP_Defensive)
  30.  
  31. +Behaviors=(BehaviorName=RestrictToPotentialTargetRange-AdventMedikit, NodeType=Action); Requires a potential target. Used for finding a destination to heal our 'best' unit.
  32. +Behaviors=(BehaviorName=RestrictToAlliedAbilityRange-AdventMedikit, NodeType=Action, Param[0]=2) ;Param[0] is the minimum number of Allied Targets in range for each tile to be considered.
  33. +Behaviors=(BehaviorName=AddAbilityRangeWeight-AdventMedikit, NodeType=Action, Param[0]="5.5")
  34. +Behaviors=(BehaviorName=IsTargetInMovementRange-AdventMedikit, NodeType=Condition)
  35.  
  36. +Behaviors=(BehaviorName=MoveStandardIfFirstAbility-AdventMedikit, NodeType=Sequence, Child[0]=IsAbilityAvailable-StandardMove, Child[1]=NotLastActionPoint, Child[2]=FindAdventMedikitDestinationDefensive, Child[3]=SelectAbility-StandardMove)
  37.  
  38. +Behaviors=(BehaviorName=SelectPotentialTargetForAdventMedikit, NodeType=Sequence, Child[0]=SetPotentialAllyTargetStack, Child[1]=SelectBestAllyTargetForAdventMedikit, Child[2]=HasValidTarget-Potential)
  39. +Behaviors=(BehaviorName=SelectBestAllyTargetForAdventMedikit, NodeType=RepeatUntilFail, Child[0]=EvaluatePotentialAdventMedikitTarget)
  40. +Behaviors=(BehaviorName=EvaluatePotentialAdventMedikitTarget, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=ScoreBestTargetForAdventMedikit, Child[2]=UpdateBestTarget)
  41. +Behaviors=(BehaviorName=ScoreBestTargetForAdventMedikit, NodeType=Successor, Child[0]=TargetScoreReachableForAdventMedikit)
  42. +Behaviors=(BehaviorName=TargetScoreReachableForAdventMedikit, NodeType=Sequence, Child[0]=TargetIsAdvent, Child[1]=TargetIsNotRobotic, Child[2]=TargetWounded, Child[3]=IsTargetInMovementRange-AdventMedikit, Child[4]=ScoreByHP)
  43. +Behaviors=(BehaviorName=TargetIsNotRobotic, NodeType=Inverter, Child[0]=TargetIsRobotic)
  44.  
  45. +Behaviors=(BehaviorName=TryAdventMedikitOnAnyTarget, NodeType=Sequence, Child[0]=IsAbilityAvailable-AdventMedikit, Child[1]=SelectTargetForAdventMedikit, Child[2]=SelectAbility-AdventMedikit)
  46.  
  47. +Behaviors=(BehaviorName=SelectTargetForAdventMedikit, NodeType=Sequence, Child[0]=SetTargetStack-AdventMedikit, Child[1]=SelectBestTargetForAdventMedikit, Child[2]=HasValidTarget-AdventMedikit)
  48. +Behaviors=(BehaviorName=SelectBestTargetForAdventMedikit, NodeType=RepeatUntilFail, Child[0]=EvaluateTargetsAdventMedikit)
  49. +Behaviors=(BehaviorName=EvaluateTargetsAdventMedikit, NodeType=Sequence, Child[0]=SetNextTarget, Child[1]=TargetScoreAdventMedikit, Child[2]=UpdateBestTarget)
  50. +Behaviors=(BehaviorName=TargetScoreAdventMedikit, NodeType=Selector, Child[0]=ScoreIfDying, Child[1]=ScoreIfWounded, Child[2]=AddToTargetScore_0)
  51. +Behaviors=(BehaviorName=ScoreIfDying, NodeType=Sequence, Child[0]=TargetHasLowHP, Child[1]=AddToTargetScore_30)
  52. +Behaviors=(BehaviorName=ScoreIfWounded, NodeType=Sequence, Child[0]=TargetWounded, Child[1]=AddToTargetScore_10)
Advertisement
Add Comment
Please, Sign In to add comment