navigation.py (1318B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\behaviors\monitors\navigation.py 2 from ballpark.const import DESTINY_MODE_WARP 3 from ballpark.messenger.const import MESSAGE_ON_BALL_MODE_CHANGED 4 from behaviors.groups.mixin import GroupTaskMixin 5 from behaviors.tasks import Task 6 7 class GroupMemberWarpModeChangedMonitor(Task, GroupTaskMixin): 8 9 def __init__(self, attributes = None): 10 super(GroupMemberWarpModeChangedMonitor, self).__init__(attributes) 11 self.trackedItemIds = None 12 13 def OnEnter(self): 14 self.SetStatusToSuccess() 15 self.trackedItemIds = self.GetItemsToTrack() 16 for itemId in self.trackedItemIds: 17 self.SubscribeItem(itemId, MESSAGE_ON_BALL_MODE_CHANGED, self.OnItemBallModeChanged) 18 19 def CleanUp(self): 20 if self.IsInvalid(): 21 return 22 for itemId in self.trackedItemIds: 23 self.UnsubscribeItem(itemId, MESSAGE_ON_BALL_MODE_CHANGED, self.OnItemBallModeChanged) 24 25 self.SetStatusToInvalid() 26 27 def GetItemsToTrack(self): 28 return self.GetMemberIdList() 29 30 def OnItemBallModeChanged(self, oldMode, newMode): 31 if self.IsInvalid(): 32 return 33 if DESTINY_MODE_WARP in (oldMode, newMode): 34 self.behaviorTree.RequestReset(requestedBy=self)