NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

antilogistics.py (2239B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\behaviors\trees\miners\antilogistics.py
      2 from behaviors.actions import WaitAction
      3 from behaviors.behaviortree import BehaviorTree
      4 from behaviors.composites import PrioritySelector
      5 from behaviors.const.behaviorroles import ROLE_ANTI_LOGISTIC
      6 from behaviors.const.blackboardchannels import MY_COMBAT_TARGET
      7 from behaviors.const.combat import FITTED_MODULE_GROUP_TARGET_EVALUATOR
      8 from behaviors.trees.combat import CreateTargetSwitchingBehavior, CreateEntityCombatBehavior, TARGET_SWITCH_TIMER
      9 from behaviors.trees.regroup import CreateReGroupBehavior
     10 from behaviors.trees.reinforcements import CreateReinforceLocationBehavior
     11 from behaviors.trees.role import CreateRegisterEntityRole
     12 from behaviors.trees.unspawn import CreateUnspawnBehavior
     13 from brennivin.itertoolsext import Bundle
     14 from inventorycommon.const import groupEnergyTransferArray, groupFueledRemoteShieldBooster, groupRemoteHullRepairer
     15 from inventorycommon.const import groupFueledRemoteArmorRepairer, groupArmorRepairProjector, groupShieldTransporter
     16 ANTI_LOGISTICS_PREFERRED_MODULE_GROUPS = [groupShieldTransporter,
     17  groupArmorRepairProjector,
     18  groupFueledRemoteArmorRepairer,
     19  groupFueledRemoteShieldBooster,
     20  groupRemoteHullRepairer,
     21  groupEnergyTransferArray]
     22 
     23 def CreateAntiLogisticsBehaviorTree():
     24     root = PrioritySelector(Bundle(name='Anti-Logistics Tree'))
     25     root.AddSubTask(CreateRegisterEntityRole(ROLE_ANTI_LOGISTIC))
     26     root.AddSubTask(CreateTargetSwitchingBehavior(targetAddress=MY_COMBAT_TARGET, targetSwitchTimerAddress=TARGET_SWITCH_TIMER, targetEvaluationFunction=FITTED_MODULE_GROUP_TARGET_EVALUATOR, preferredModuleGroups=ANTI_LOGISTICS_PREFERRED_MODULE_GROUPS))
     27     root.AddSubTask(CreateEntityCombatBehavior(targetAddress=MY_COMBAT_TARGET, targetEvaluationFunction=FITTED_MODULE_GROUP_TARGET_EVALUATOR, preferredModuleGroups=ANTI_LOGISTICS_PREFERRED_MODULE_GROUPS))
     28     root.AddSubTask(CreateUnspawnBehavior())
     29     root.AddSubTask(CreateReinforceLocationBehavior())
     30     root.AddSubTask(CreateReGroupBehavior())
     31     root.AddSubTask(WaitAction(Bundle(name='Do nothing')))
     32     behaviorTree = BehaviorTree()
     33     behaviorTree.StartRootTask(root)
     34     return behaviorTree