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)