コード例 #1
0
 def __init__(self, roles = 0, flags = UNIT_FLAGS.DEFAULT, isCurrentPlayer = False, isPlayerReady = False, hasLockedState = False):
     super(UnitPermissions, self).__init__()
     self._roles = roles
     self._flags = UnitFlags(flags)
     self._isCurrentPlayer = isCurrentPlayer
     self._isPlayerReady = isPlayerReady
     self._hasLockedState = hasLockedState
コード例 #2
0
 def update(self, cmdrRating=0, unit=None, **kwargs):
     self.rating = cmdrRating
     if unit:
         creatorDBID = unit.getCreatorDBID()
         if self.creator.dbID != creatorDBID:
             isChanged = True
             data = unit.getCreator()
             if data:
                 self.creator = PlayerUnitInfo(creatorDBID, self.cfdUnitID,
                                               unit, **data)
             else:
                 self.creator = None
         self.flags = UnitFlags(unit.getFlags())
         freeSlots = unit.getFreeSlots()
         playersSlots = unit.getPlayerSlots()
         self.playersCount = len(playersSlots)
         self.commandSize = len(playersSlots) + len(freeSlots)
         self.isRosterSet = unit.isRosterSet(
             ignored=CREATOR_ROSTER_SLOT_INDEXES)
         self.description = passCensor(unit.getComment())
     else:
         self.creator = None
         self.playersCount = 0
         self.commandSize = 0
         self.flags = UnitFlags(0)
         self.isRosterSet = False
         self.description = None
     return
コード例 #3
0
ファイル: permissions.py プロジェクト: webiumsk/WOT-0.9.12
 def __init__(self, roles = 0, flags = UNIT_FLAGS.DEFAULT, isCurrentPlayer = False, isPlayerReady = False, hasLockedState = False):
     super(UnitPermissions, self).__init__()
     self._roles = roles
     self._flags = UnitFlags(flags)
     self._isCurrentPlayer = isCurrentPlayer
     self._isPlayerReady = isPlayerReady
     self._hasLockedState = hasLockedState
コード例 #4
0
 def __init__(self, cfdUnitID, unitMgrID=0, cmdrRating=0, peripheryID=0, unit=None, **kwargs):
     super(UnitsListItem, self).__init__()
     playersCount = 0
     commandSize = 0
     flags = 0
     isRosterSet = False
     creator = None
     description = None
     extra = None
     if unit:
         creator = unit.getCreator()
         if creator is not None:
             creator = PlayerUnitInfo(unit.getCreatorDBID(), cfdUnitID, unit, **creator)
         freeSlots = unit.getFreeSlots()
         playersSlots = unit.getPlayerSlots()
         flags = unit.getFlags()
         playersCount = len(playersSlots)
         commandSize = len(playersSlots) + len(freeSlots)
         isRosterSet = unit.isRosterSet(ignored=CREATOR_ROSTER_SLOT_INDEXES)
         description = passCensor(unit.getComment())
         extra = unit.getExtra()
     self.cfdUnitID = cfdUnitID
     self.unitMgrID = unitMgrID
     self.creator = creator
     self.rating = cmdrRating
     self.peripheryID = peripheryID
     self.playersCount = playersCount
     self.commandSize = commandSize
     self.flags = UnitFlags(flags)
     self.isRosterSet = isRosterSet
     self.description = description
     self.extra = extra
     return
コード例 #5
0
class UnitPermissions(IUnitPermissions):

    def __init__(self, roles = 0, flags = UNIT_FLAGS.DEFAULT, isCurrentPlayer = False, isPlayerReady = False, hasLockedState = False):
        super(UnitPermissions, self).__init__()
        self._roles = roles
        self._flags = UnitFlags(flags)
        self._isCurrentPlayer = isCurrentPlayer
        self._isPlayerReady = isPlayerReady
        self._hasLockedState = hasLockedState

    def canCreateSquad(self):
        return not self._hasLockedState

    def canSendInvite(self):
        return self._roles & UNIT_ROLE.INVITE_KICK_PLAYERS > 0

    def canKick(self):
        return self._roles & UNIT_ROLE.INVITE_KICK_PLAYERS > 0

    def canChangeUnitState(self):
        return self._roles & UNIT_ROLE.CHANGE_ROSTER > 0

    def canChangeRosters(self):
        return self._roles & UNIT_ROLE.CHANGE_ROSTER > 0

    def canSetVehicle(self):
        return self._isCurrentPlayer

    def canSetReady(self):
        return self._isCurrentPlayer

    def canChangeClosedSlots(self):
        return self._roles & UNIT_ROLE.CHANGE_ROSTER > 0

    def canAssignToSlot(self, dbID):
        return self._roles & UNIT_ROLE.ADD_REMOVE_MEMBERS > 0 or dbID == account_helpers.getAccountDatabaseID()

    def canReassignToSlot(self):
        return self._roles & UNIT_ROLE.ADD_REMOVE_MEMBERS > 0

    def canChangeComment(self):
        return self._roles & UNIT_ROLE.CHANGE_ROSTER > 0 and not self._flags.isInIdle()

    def canInvokeAutoSearch(self):
        return self._roles & UNIT_ROLE.START_STOP_BATTLE > 0 and not self._flags.isInArena()

    def canStartBattleQueue(self):
        return self._roles & UNIT_ROLE.START_STOP_BATTLE > 0

    def canStopBattleQueue(self):
        return self._roles & UNIT_ROLE.START_STOP_BATTLE > 0 and not self._flags.isInArena()

    def canChangeVehicle(self):
        return self._isCurrentPlayer and not self._isPlayerReady

    def canChangeLeadership(self):
        return self._roles & UNIT_ROLE.CHANGE_LEADERSHIP > 0

    def canStealLeadership(self):
        return self.canChangeLeadership()

    def canChangeConsumables(self):
        return self._roles & UNIT_ROLE.CHANGE_ROSTER > 0

    def canLead(self):
        return self._roles & UNIT_ROLE.CAN_LEAD > 0

    @classmethod
    def isCommander(cls, roles):
        return roles & UNIT_ROLE.CREATOR == UNIT_ROLE.CREATOR
コード例 #6
0
ファイル: permissions.py プロジェクト: webiumsk/WOT-0.9.12
class UnitPermissions(interfaces.IUnitPermissions):

    def __init__(self, roles = 0, flags = UNIT_FLAGS.DEFAULT, isCurrentPlayer = False, isPlayerReady = False, hasLockedState = False):
        super(UnitPermissions, self).__init__()
        self._roles = roles
        self._flags = UnitFlags(flags)
        self._isCurrentPlayer = isCurrentPlayer
        self._isPlayerReady = isPlayerReady
        self._hasLockedState = hasLockedState

    def __repr__(self):
        return '{0:>s}(roles = {1:n}, state = {2!r:s}, isCurrentPlayer = {3!r:s})'.format(self.__class__.__name__, self._roles, self._flags, self._isCurrentPlayer)

    def canCreateSquad(self):
        return not self._hasLockedState

    def canSendInvite(self):
        return self._roles & UNIT_ROLE.INVITE_KICK_PLAYERS > 0

    def canKick(self):
        return self._roles & UNIT_ROLE.INVITE_KICK_PLAYERS > 0

    def canChangeUnitState(self):
        return self._roles & UNIT_ROLE.CHANGE_ROSTER > 0

    def canChangeRosters(self):
        return self._roles & UNIT_ROLE.CHANGE_ROSTER > 0

    def canSetVehicle(self):
        return self._isCurrentPlayer

    def canSetReady(self):
        return self._isCurrentPlayer

    def canChangeClosedSlots(self):
        return self._roles & UNIT_ROLE.CHANGE_ROSTER > 0

    def canAssignToSlot(self, dbID):
        return self._roles & UNIT_ROLE.ADD_REMOVE_MEMBERS > 0 or dbID == account_helpers.getAccountDatabaseID()

    def canReassignToSlot(self):
        return self._roles & UNIT_ROLE.ADD_REMOVE_MEMBERS > 0

    def canChangeComment(self):
        return self._roles & UNIT_ROLE.CHANGE_ROSTER > 0 and not self._flags.isInIdle()

    def canInvokeAutoSearch(self):
        return self._roles & UNIT_ROLE.START_STOP_BATTLE > 0 and not self._flags.isInArena()

    def canStartBattleQueue(self):
        return self._roles & UNIT_ROLE.START_STOP_BATTLE > 0

    def canStopBattleQueue(self):
        return self._roles & UNIT_ROLE.START_STOP_BATTLE > 0 and not self._flags.isInArena()

    def canChangeVehicle(self):
        return self._isCurrentPlayer and not self._isPlayerReady

    def canChangeLeadership(self):
        return self._roles & UNIT_ROLE.CHANGE_LEADERSHIP > 0

    def canStealLeadership(self):
        return self.canChangeLeadership()

    def canChangeConsumables(self):
        return self._roles & UNIT_ROLE.CHANGE_ROSTER > 0

    def canLead(self):
        return self._roles & UNIT_ROLE.CAN_LEAD > 0

    def canChangeRated(self):
        return self._roles & UNIT_ROLE.CHANGE_ROSTER > 0

    @classmethod
    def isCreator(cls, roles):
        return roles & UNIT_ROLE.CREATOR == UNIT_ROLE.CREATOR