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

drones.py (1279B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\behaviors\conditions\drones.py
      2 from behaviors.tasks import Task
      3 from behaviors.utility.dogmatic import get_my_attribute_value
      4 from ccpProfile import TimedFunction
      5 from dogma.const import attributeNpcDroneBandwidth
      6 
      7 class CanControlDrones(Task):
      8 
      9     @TimedFunction('behaviors::conditions::drones::CanControlDrones::OnEnter')
     10     def OnEnter(self):
     11         drone_bandwidth = get_my_attribute_value(self, attributeNpcDroneBandwidth)
     12         self.SetStatusToSuccessIfTrueElseToFailed(drone_bandwidth > 0)
     13 
     14 
     15 class HasDroneBandwidth(Task):
     16 
     17     @TimedFunction('behaviors::conditions::drones::HasDroneBandwidth::OnEnter')
     18     def OnEnter(self):
     19         drone_group_id = self.GetLastBlackboardValue(self.attributes.droneGroupIdAddress)
     20         group_manager = self.context.entityLocation.GetGroupManager()
     21         drone_group = group_manager.GetGroup(drone_group_id)
     22         if drone_group_id is None or drone_group is None:
     23             self.SetStatusToSuccess()
     24             return
     25         drone_count = drone_group.Count()
     26         max_group_size = self.GetLastBlackboardValue(self.attributes.maxDroneActiveCountAddress)
     27         self.SetStatusToSuccessIfTrueElseToFailed(max_group_size > drone_count)