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

mixin.py (1446B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\behaviors\groups\mixin.py
      2 from npcs.npccorporations import get_corporation_faction_id
      3 
      4 class EntityGroupNotFound(Exception):
      5     pass
      6 
      7 
      8 class GroupTaskMixin(object):
      9     context = None
     10 
     11     def GetEntityGroup(self):
     12         groupManager = self.context.entityLocation.GetGroupManager()
     13         return groupManager.GetGroup(self.context.myEntityGroupId)
     14 
     15     def GetMemberIdList(self):
     16         entityGroup = self.GetEntityGroup()
     17         return entityGroup.GetGroupMembers()
     18 
     19     def GetMemberBubbleSet(self):
     20         bubbleIdSet = set()
     21         destinyBalls = self.context.ballpark.balls
     22         for memberId in self.GetMemberIdList():
     23             try:
     24                 bubbleIdSet.add(destinyBalls[memberId].newBubbleId)
     25             except KeyError:
     26                 pass
     27 
     28         return bubbleIdSet
     29 
     30     def GetGroupMessenger(self):
     31         group = self.GetEntityGroup()
     32         if group is None:
     33             raise EntityGroupNotFound('Entity group %s was not found' % self.context.myEntityGroupId)
     34         messenger = group.GetMessenger()
     35         return messenger
     36 
     37     def IsMember(self, itemId):
     38         group = self.GetEntityGroup()
     39         return group.HasEntity(itemId)
     40 
     41     def GetGroupOwnerId(self):
     42         return self.GetEntityGroup().GetGroupOwnerId()
     43 
     44     def GetGroupFactionId(self):
     45         return get_corporation_faction_id(self.GetGroupOwnerId())