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