def _giveLeadership(self, memberDBID): prevRoleFlags = self._players[memberDBID]['role'] UnitBase._giveLeadership(self, memberDBID) newRoleFlags = self._players[memberDBID]['role'] self._creatorDBID = memberDBID self.onUnitMembersListChanged() self.onUnitPlayerRoleChanged(memberDBID, prevRoleFlags, newRoleFlags)
def _giveLeadership(self, memberDBID): prevRoleFlags = self._players[memberDBID]["role"] UnitBase._giveLeadership(self, memberDBID) newRoleFlags = self._players[memberDBID]["role"] self._creatorDBID = memberDBID self.onUnitMembersListChanged() self.onUnitPlayerRoleChanged(memberDBID, prevRoleFlags, newRoleFlags)
def __init__(self, limitsDefs={}, slotDefs={}, slotCount=0, packedRoster='', extrasInit=None, packedUnit=''): self.__eManager = Event.SuspendedEventManager() self.onUnitFlagsChanged = Event.SuspendedEvent(self.__eManager) self.onUnitReadyMaskChanged = Event.SuspendedEvent(self.__eManager) self.onUnitVehicleChanged = Event.SuspendedEvent(self.__eManager) self.onUnitVehiclesChanged = Event.SuspendedEvent(self.__eManager) self.onUnitSettingChanged = Event.SuspendedEvent(self.__eManager) self.onUnitPlayerRoleChanged = Event.SuspendedEvent(self.__eManager) self.onUnitRosterChanged = Event.SuspendedEvent(self.__eManager) self.onUnitMembersListChanged = Event.SuspendedEvent(self.__eManager) self.onUnitPlayerAdded = Event.SuspendedEvent(self.__eManager) self.onUnitPlayerRemoved = Event.SuspendedEvent(self.__eManager) self.onUnitPlayersListChanged = Event.SuspendedEvent(self.__eManager) self.onUnitPlayerVehDictChanged = Event.SuspendedEvent(self.__eManager) self.onUnitPlayerInfoChanged = Event.SuspendedEvent(self.__eManager) self.onUnitExtraChanged = Event.SuspendedEvent(self.__eManager) self.onUnitUpdated = Event.SuspendedEvent(self.__eManager) self._creatorDBID = 0 UnitBase.__init__(self, limitsDefs, slotDefs, slotCount, packedRoster, extrasInit, packedUnit)
def _changePlayerRole(self, playerID, roleFlags): prevRoleFlags = UNIT_ROLE.DEFAULT if playerID in self._players: prevRoleFlags = self._players[playerID]['role'] UnitBase._changePlayerRole(self, playerID, roleFlags) if roleFlags & UNIT_ROLE.COMMANDER_UPDATES > 0: self._creatorDBID = playerID self.onUnitPlayerRoleChanged(playerID, prevRoleFlags, roleFlags)
def _changePlayerRole(self, accountDBID, roleFlags): prevRoleFlags = UNIT_ROLE.DEFAULT if accountDBID in self._players: prevRoleFlags = self._players[accountDBID]["role"] UnitBase._changePlayerRole(self, accountDBID, roleFlags) if roleFlags & UNIT_ROLE.CREATOR == UNIT_ROLE.CREATOR and self._playerSlots.get(accountDBID) == LEADER_SLOT: self._creatorDBID = accountDBID self.onUnitPlayerRoleChanged(accountDBID, prevRoleFlags, roleFlags)
def _addPlayer(self, accountDBID, **kwargs): if ( "role" in kwargs and kwargs["role"] & UNIT_ROLE.CREATOR == UNIT_ROLE.CREATOR and self._playerSlots.get(accountDBID) == LEADER_SLOT ): self._creatorDBID = accountDBID UnitBase._addPlayer(self, accountDBID, **kwargs)
def _changePlayerRole(self, accountDBID, roleFlags): prevRoleFlags = UNIT_ROLE.DEFAULT if accountDBID in self._players: prevRoleFlags = self._players[accountDBID]['role'] UnitBase._changePlayerRole(self, accountDBID, roleFlags) if roleFlags & UNIT_ROLE.CREATOR == UNIT_ROLE.CREATOR and self._playerSlots.get( accountDBID) == LEADER_SLOT: self._creatorDBID = accountDBID self.onUnitPlayerRoleChanged(accountDBID, prevRoleFlags, roleFlags)
def _unpackVehicleDict(self, packedOps): nextOps = UnitBase._unpackVehicleDict(self, packedOps) try: (playerID,) = struct.unpack_from(PLAYER_ID_CHR, packedOps, offset=VEH_LEN_SIZE) self.onUnitPlayerVehDictChanged(playerID) except struct.error as e: LOG_ERROR(e) return nextOps
def __init__(self, slotDefs = {}, slotCount = 0, packedRoster = '', packedUnit = ''): self.__eManager = Event.EventManager() self.onUnitStateChanged = Event.Event(self.__eManager) self.onUnitReadyMaskChanged = Event.Event(self.__eManager) self.onUnitVehicleChanged = Event.Event(self.__eManager) self.onUnitSettingChanged = Event.Event(self.__eManager) self.onUnitPlayerRoleChanged = Event.Event(self.__eManager) self.onUnitRosterChanged = Event.Event(self.__eManager) self.onUnitMembersListChanged = Event.Event(self.__eManager) self.onUnitPlayerAdded = Event.Event(self.__eManager) self.onUnitPlayerRemoved = Event.Event(self.__eManager) self.onUnitPlayersListChanged = Event.Event(self.__eManager) self.onUnitPlayerVehDictChanged = Event.Event(self.__eManager) self.onUnitPlayerInfoChanged = Event.Event(self.__eManager) self.onUnitUpdated = Event.Event(self.__eManager) self._creatorDBID = 0L UnitBase.__init__(self, slotDefs, slotCount, packedRoster, packedUnit)
def unpackOps(self, packedOps = ''): invokedOps = UnitBase.unpackOps(self, packedOps) if {UNIT_OP.REMOVE_PLAYER, UNIT_OP.ADD_PLAYER} & invokedOps: self.onUnitPlayersListChanged() if {UNIT_OP.DEL_MEMBER, UNIT_OP.SET_MEMBER} & invokedOps: self.onUnitMembersListChanged() if UNIT_OP.SET_SLOT in invokedOps: self.onUnitRosterChanged()
def _unpackVehicleDict(self, packedOps): nextOps = UnitBase._unpackVehicleDict(self, packedOps) try: accountDBID, = struct.unpack_from(PLAYER_ID_CHR, packedOps, offset=VEH_LEN_SIZE) self.onUnitPlayerVehDictChanged(accountDBID) except struct.error as e: LOG_ERROR(e) return nextOps
def unpackOps(self, packedOps = ''): invokedOps = UnitBase.unpackOps(self, packedOps) if {UNIT_OP.REMOVE_PLAYER, UNIT_OP.ADD_PLAYER} & invokedOps: self.onUnitPlayersListChanged() if {UNIT_OP.DEL_MEMBER, UNIT_OP.SET_MEMBER} & invokedOps: self.onUnitMembersListChanged() if UNIT_OP.SET_SLOT in invokedOps: self.onUnitRosterChanged() if {UNIT_OP.EXTRAS_UPDATE, UNIT_OP.EXTRAS_RESET} & invokedOps: self.onUnitExtraChanged(self._extras)
def __init__(self, limitsDefs = {}, slotDefs = {}, slotCount = 0, packedRoster = '', extrasInit = None, packedUnit = ''): self.__eManager = Event.SuspendedEventManager() self.onUnitFlagsChanged = Event.SuspendedEvent(self.__eManager) self.onUnitReadyMaskChanged = Event.SuspendedEvent(self.__eManager) self.onUnitVehicleChanged = Event.SuspendedEvent(self.__eManager) self.onUnitVehiclesChanged = Event.SuspendedEvent(self.__eManager) self.onUnitSettingChanged = Event.SuspendedEvent(self.__eManager) self.onUnitPlayerRoleChanged = Event.SuspendedEvent(self.__eManager) self.onUnitRosterChanged = Event.SuspendedEvent(self.__eManager) self.onUnitMembersListChanged = Event.SuspendedEvent(self.__eManager) self.onUnitPlayerAdded = Event.SuspendedEvent(self.__eManager) self.onUnitPlayerRemoved = Event.SuspendedEvent(self.__eManager) self.onUnitPlayersListChanged = Event.SuspendedEvent(self.__eManager) self.onUnitPlayerVehDictChanged = Event.SuspendedEvent(self.__eManager) self.onUnitPlayerInfoChanged = Event.SuspendedEvent(self.__eManager) self.onUnitExtraChanged = Event.SuspendedEvent(self.__eManager) self.onUnitUpdated = Event.SuspendedEvent(self.__eManager) self._creatorDBID = 0 UnitBase.__init__(self, limitsDefs, slotDefs, slotCount, packedRoster, extrasInit, packedUnit)
def unpackOps(self, packedOps=""): invokedOps = UnitBase.unpackOps(self, packedOps) if {UNIT_OP.REMOVE_PLAYER, UNIT_OP.ADD_PLAYER} & invokedOps: self.onUnitPlayersListChanged() if {UNIT_OP.DEL_MEMBER, UNIT_OP.SET_MEMBER} & invokedOps: self.onUnitMembersListChanged() if UNIT_OP.SET_SLOT in invokedOps: self.onUnitRosterChanged() if {UNIT_OP.EXTRAS_UPDATE, UNIT_OP.EXTRAS_RESET} & invokedOps: self.onUnitExtraChanged(self._extras)
def _unpackPlayer(self, packedOps): (playerID, hasPlayer,) = (0, False) try: (playerID,) = struct.unpack_from(PLAYER_ID_CHR, packedOps) filtered = dict(filter(lambda item: item[1].get('role', 0) & UNIT_ROLE.INVITED == 0, self._players.iteritems())) hasPlayer = playerID in filtered except struct.error as e: LOG_ERROR(e) nextOps = UnitBase._unpackPlayer(self, packedOps) if not hasPlayer and playerID: self.onUnitPlayerAdded(playerID, self.getPlayer(playerID)) if hasPlayer: LOG_DEBUG_DEV('onUnitPlayerInfoChanged', playerID, self.getPlayer(playerID)) self.onUnitPlayerInfoChanged(playerID, self.getPlayer(playerID)) return nextOps
def _unpackPlayer(self, packedOps): accountDBID, hasPlayer = 0, False try: accountDBID, = struct.unpack_from(PLAYER_ID_CHR, packedOps) filtered = dict(filter(lambda item: item[1].get('role', 0) & UNIT_ROLE.INVITED == 0, self._players.iteritems())) hasPlayer = accountDBID in filtered except struct.error as e: LOG_ERROR(e) nextOps = UnitBase._unpackPlayer(self, packedOps) if not hasPlayer and accountDBID: self.onUnitPlayerAdded(accountDBID, self.getPlayer(accountDBID)) if hasPlayer: LOG_DEBUG_DEV('onUnitPlayerInfoChanged', accountDBID, self.getPlayer(accountDBID)) self.onUnitPlayerInfoChanged(accountDBID, self.getPlayer(accountDBID)) return nextOps
def _unpackPlayer(self, packedOps): accountDBID, hasPlayer = 0, False try: accountDBID, = struct.unpack_from(PLAYER_ID_CHR, packedOps) filtered = dict( filter(lambda item: item[1].get("role", 0) & UNIT_ROLE.INVITED == 0, self._players.iteritems()) ) hasPlayer = accountDBID in filtered except struct.error as e: LOG_ERROR(e) nextOps = UnitBase._unpackPlayer(self, packedOps) if not hasPlayer and accountDBID: self.onUnitPlayerAdded(accountDBID, self.getPlayer(accountDBID)) if hasPlayer: LOG_DEBUG_DEV("onUnitPlayerInfoChanged", accountDBID, self.getPlayer(accountDBID)) self.onUnitPlayerInfoChanged(accountDBID, self.getPlayer(accountDBID)) return nextOps
def _removePlayer(self, accountDBID): pInfo = self.getPlayer(accountDBID) if pInfo: self.onUnitPlayerRemoved(accountDBID, pInfo) UnitBase._removePlayer(self, accountDBID)
def _clearVehicle(self, accountDBID): UnitBase._clearVehicle(self, accountDBID) self.onUnitVehicleChanged(accountDBID, 0, 0)
def _setEstimatedTimeInQueue(self, estimatedTimeInQueue): UnitBase._setEstimatedTimeInQueue(self, estimatedTimeInQueue) self.onUnitEstimateInQueueChanged()
def updateUnitExtras(self, updateStr): UnitBase.updateUnitExtras(self, updateStr) self.onUnitExtraChanged(self._extras)
def _setReadyMask(self, mask): prevMask = self._readyMask UnitBase._setReadyMask(self, mask) self.onUnitReadyMaskChanged(prevMask, self._readyMask)
def _openSlot(self, slotIdx): UnitBase._openSlot(self, slotIdx) self.onUnitSettingChanged(UNIT_OP.OPEN_SLOT, slotIdx)
def _changeFalloutQueueType(self, queueType): UnitBase._changeFalloutQueueType(self, queueType) self.onUnitRosterChanged() self.onUnitMembersListChanged() self.onUnitSettingChanged(UNIT_OP.CHANGE_FALLOUT_TYPE, queueType)
def _closeSlot(self, slotIdx): UnitBase._closeSlot(self, slotIdx) self.onUnitSettingChanged(UNIT_OP.CLOSE_SLOT, slotIdx)
def _setProfileVehicle(self, accountDBID, vehCompDescr, vehOutfitCD, seasonType, marksOnGun): UnitBase._setProfileVehicle(self, accountDBID, vehCompDescr, vehOutfitCD, seasonType, marksOnGun) self.onUnitPlayerProfileVehicleChanged(accountDBID)
def _removePlayer(self, playerID): pInfo = self.getPlayer(playerID) if pInfo: self.onUnitPlayerRemoved(playerID, pInfo) UnitBase._removePlayer(self, playerID)
def _addPlayer(self, playerID, **kwargs): if 'role' in kwargs and kwargs['role'] & UNIT_ROLE.COMMANDER_UPDATES > 0: self._creatorDBID = playerID UnitBase._addPlayer(self, playerID, **kwargs)
def _changeSortieDivision(self, division): UnitBase._changeSortieDivision(self, division) self.onUnitRosterChanged() self.onUnitMembersListChanged() self.onUnitSettingChanged(UNIT_OP.CHANGE_DIVISION, division)
def _setVehicleList(self, accountDBID, vehDataList): UnitBase._setVehicleList(self, accountDBID, vehDataList) self.onUnitVehiclesChanged(accountDBID, vehDataList)
def setComment(self, strComment): UnitBase.setComment(self, strComment) self.onUnitSettingChanged(UNIT_OP.SET_COMMENT, self._strComment)
def _clearVehicle(self, playerID): UnitBase._clearVehicle(self, playerID) self.onUnitVehicleChanged(playerID, 0, 0)
def _setVehicle(self, accountDBID, vehTypeCompDescr, vehInvID): UnitBase._setVehicle(self, accountDBID, vehTypeCompDescr, vehInvID) self.onUnitVehicleChanged(accountDBID, vehInvID, vehTypeCompDescr)
def _setVehicle(self, playerID, vehTypeCompDescr, vehInvID): UnitBase._setVehicle(self, playerID, vehTypeCompDescr, vehInvID) self.onUnitVehicleChanged(playerID, vehInvID, vehTypeCompDescr)
def clearAutoSearchFlags(self): UnitBase.clearAutoSearchFlags(self) self.onUnitSearchFlagsChanged(self.getAutoSearchFlags())
def _setUnitState(self, state): prevState = self._state UnitBase._setUnitState(self, state) self.onUnitStateChanged(prevState, self._state)
def _setUnitFlags(self, flags): prevFlags = self._flags UnitBase._setUnitFlags(self, flags) self.onUnitFlagsChanged(prevFlags, self._flags)
def removeAutoSearchFlags(self, flags): UnitBase.removeAutoSearchFlags(self, flags) self.onUnitSearchFlagsChanged(self.getAutoSearchFlags())
def _addPlayer(self, accountDBID, **kwargs): if 'role' in kwargs and kwargs['role'] & UNIT_ROLE.CREATOR == UNIT_ROLE.CREATOR and self._playerSlots.get(accountDBID) == LEADER_SLOT: self._creatorDBID = accountDBID UnitBase._addPlayer(self, accountDBID, **kwargs)
def _delProfileVehicle(self, accountDBID): UnitBase._delProfileVehicle(self, accountDBID) self.onUnitPlayerProfileVehicleChanged(accountDBID)
def setAutoSearchFlags(self, accountDBID, flags): UnitBase.setAutoSearchFlags(self, accountDBID, flags) self.onUnitSearchFlagsChanged(self.getAutoSearchFlags())