nutrition.yml 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. - type: htnCompound
  2. id: FoodCompound
  3. branches:
  4. # Picks a nearby food, moves into range, then eats it and waits the idle time.
  5. - tasks:
  6. - !type:HTNPrimitiveTask
  7. preconditions:
  8. - !type:HungryPrecondition
  9. minHungerState: Starving # See HungerThreshold enum
  10. operator: !type:UtilityOperator
  11. proto: NearbyFood
  12. - !type:HTNPrimitiveTask
  13. operator: !type:MoveToOperator
  14. pathfindInPlanning: true
  15. removeKeyOnFinish: false
  16. targetKey: TargetCoordinates
  17. pathfindKey: TargetPathfind
  18. rangeKey: MeleeRange
  19. - !type:HTNPrimitiveTask
  20. preconditions:
  21. - !type:KeyExistsPrecondition
  22. key: Target
  23. operator: !type:AltInteractOperator
  24. - !type:HTNPrimitiveTask
  25. preconditions:
  26. - !type:KeyExistsPrecondition
  27. key: IdleTime
  28. operator: !type:WaitOperator
  29. key: IdleTime
  30. # Picks nearby drink then consumes it and waits idle time
  31. - tasks:
  32. - !type:HTNPrimitiveTask
  33. preconditions:
  34. - !type:ThirstyPrecondition
  35. minThirstState: Parched # See ThirstThreshold enum
  36. operator: !type:UtilityOperator
  37. proto: NearbyDrink
  38. - !type:HTNPrimitiveTask
  39. operator: !type:MoveToOperator
  40. pathfindInPlanning: true
  41. removeKeyOnFinish: false
  42. targetKey: TargetCoordinates
  43. pathfindKey: TargetPathfind
  44. rangeKey: MeleeRange
  45. - !type:HTNPrimitiveTask
  46. preconditions:
  47. - !type:KeyExistsPrecondition
  48. key: Target
  49. operator: !type:AltInteractOperator
  50. - !type:HTNPrimitiveTask
  51. preconditions:
  52. - !type:KeyExistsPrecondition
  53. key: IdleTime
  54. operator: !type:WaitOperator
  55. key: IdleTime