def handleSkipTutorial(self, done): base.localAvatar.motionFSM.onIfMoveLock() if self.skipTutorialBox: self.skipTutorialBox.destroy() self.skipTutorialBox = None if done: if not base.launcher.getPhaseComplete(3): base.cr.centralLogger.writeClientEvent( 'Player encountered phase 3 blocker trying to leave starting jail' ) if not self.doorDisableDialog: self.doorDisableDialog = PDialog.PDialog( text=PLocalizer.NoRambleshack, style=OTPDialog.Acknowledge, command=self.cleanupDoorDisableDialog) return None DistributedDoorBase.DistributedDoorBase.requestInteraction( self, self.avId, self.interactType) elif not base.launcher.getPhaseComplete(4): base.cr.centralLogger.writeClientEvent( 'Player encountered phase 4 blocker trying to skip tutorial before PR downloaded' ) if not self.doorDisableDialog: self.doorDisableDialog = PDialog.PDialog( text=PLocalizer.NoPortRoyal, style=OTPDialog.Acknowledge, command=self.cleanupDoorDisableDialog) return None base.localAvatar.skipTutorial()
def __handleCodeRedeem(self, value): if self.alertDialog: self.alertDialog.destroy() self.alertDialog = None if value == CodeRedemptionGlobals.ERROR_ID_GOOD: self.alertDialog = PDialog.PDialog( parent=aspect2dp, text=PLocalizer.ShopCodeSuccess, style=OTPDialog.CancelOnly, command=self.__handleCodeSuccess, destroyedCallback=self.__destroyedAlert) else: if value == CodeRedemptionGlobals.ERROR_ID_OVERFLOW: self.alertDialog = PDialog.PDialog( parent=aspect2dp, text=PLocalizer.ShopCodeFull, style=OTPDialog.CancelOnly, command=self.__handleCodeSuccess, destroyedCallback=self.__destroyedAlert) else: self.alertDialog = PDialog.PDialog( parent=aspect2dp, text=PLocalizer.ShopCodeErr, style=OTPDialog.CancelOnly, command=self.__handleAlert, destroyedCallback=self.__destroyedAlert) self.alertDialog.setPos(0.6, 0, 0.1) self.alertDialog.setBin('gui-fixed', 2) return
def startTreasureMap(self, tm, quick=True): if localAvatar.getAccess() != OTPGlobals.AccessFull: self.tmReadyDialog = PDialog.PDialog( text=PLocalizer.PlayTMVelvetRope, style=OTPDialog.Acknowledge, giveMouse=False, command=self.notReadyCallback) self.tmReadyDialog.show() return None if tm.getIsEnabled() or base.config.GetBool('black-pearl-ready', 0): DistributedBandMember = DistributedBandMember import pirates.band.DistributedBandMember if not DistributedBandMember.getBandMember( localAvatar.doId) and quick == False: localAvatar.guiMgr.messageStack.addTextMessage( PLocalizer.LookoutInviteNeedCrew, icon=('lookout', None)) return None if localAvatar.testTeleportFlag( PiratesGlobals.TFNoTeleport) == False: if base.cr.teleportMgr.inInstanceType == PiratesGlobals.INSTANCE_MAIN: tm.requestTreasureMapGo(quick) elif base.cr.teleportMgr.inInstanceType == PiratesGlobals.INSTANCE_TM: tm.requestTreasureMapLeave() else: self.tmReadyDialog = PDialog.PDialog( text=PLocalizer.PlayTMBlackPearlNotReady, style=OTPDialog.Acknowledge, giveMouse=False, command=self.notReadyCallback) self.tmReadyDialog.show()
def cardRankSelection(self, rank): self.rank = rank card_id = self.suit * 13 + self.rank self.hideButtonArray(self.suitButtonArray) self.hideButtonArray(self.rankButtonArray) self.cancelButton.hide() self.table.card_id = card_id suit = card_id / 13 rank = card_id % 13 card = -1 hand = self.table.getLocalAvatarHand() if hand: if self.cardSwapIndex == PlayingCardGlobals.Cheat1: if len(hand) >= 1: card = hand[0] if self.cardSwapIndex == PlayingCardGlobals.Cheat2: if len(hand) >= 2: card = hand[1] if self.cardSwapIndex == PlayingCardGlobals.Cheat7: if len(hand) >= 7: card = hand[6] if card >= 0 and card < 52: original_suit = card / 13 original_rank = card % 13 string = PLocalizer.PokerSwapConfirmMessage % ( PLocalizer.getPlayingCardName(original_suit, original_rank), PLocalizer.getPlayingCardName(suit, rank)) self.swapDialog = PDialog.PDialog(text=string, style=OTPDialog.YesNo, giveMouse=False, command=self.swapCallback) self.table.setDialogBin(self.swapDialog) position = self.swapDialog.getPos() position.setZ(position[2] + 0.35) self.swapDialog.setPos(position)
def delayedPlayerLeave(self, task=None): self.deleteDialogs() if self.leaveReason == PlayingCardGlobals.PlayerCaughtCheating: string = PLocalizer.PokerCaughtCheatingMessage % PlayingCardGlobals.CheatingFine self.dialog = PDialog.PDialog(text=string, style=OTPDialog.Acknowledge, command=self.dialogCallback) self.setDialogBin(self.dialog) elif self.leaveReason == PlayingCardGlobals.PlayerOutOfChips: self.dialog = PDialog.PDialog( text=PLocalizer.PokerOutOfChipsMessage, style=OTPDialog.Acknowledge, command=self.dialogCallback) self.setDialogBin(self.dialog) self.guiCallback(PlayingCardGlobals.Leave) self.removeCardsFromHand(localAvatar)
def requestInteraction(self, avId, interactType=0): locationId = base.localAvatar.getLocation()[0] location = None if locationId: locationObj = base.cr.doId2do.get(locationId) if locationObj: location = locationObj.uniqueId if location == TutorialGlobals.JAIL_INTERIOR and base.localAvatar.style.getTutorial( ) < PiratesGlobals.TUT_GOT_CUTLASS: if not self.skipTutorialBox: base.localAvatar.motionFSM.moveLockIfOn() self.avId = avId self.interactType = interactType self.skipTutorialBox = SkipTutorialFrame.SkipTutorialFrame( callback=self.handleSkipTutorial) return elif not base.launcher.getPhaseComplete(3): if not self.doorDisableDialog: base.cr.centralLogger.writeClientEvent( 'Player encountered phase 3 blocker') self.doorDisableDialog = PDialog.PDialog( text=PLocalizer.NoRambleshack, style=OTPDialog.Acknowledge, command=self.cleanupDoorDisableDialog) return if self.buildingUid == LocationIds.PARLOR_BUILDING: if avId == base.localAvatar.doId: base.transitions.fadeOut(self.tOpen) self.openDoorIval.start() self.cr.teleportMgr.d_requestShardTeleport( base.localAvatar.getDefaultShard()) return DistributedDoor.requestInteraction(self, avId, interactType) return
def sendRequestSellShip(self, shipId, choice): shipOV = self.cr.getOwnerView(shipId) if not shipOV: if self.pickShipGUI: self.pickShipGUI.hide() return None modelType = ShipGlobals.getModelClass(shipOV.shipClass) cost = EconomyGlobals.getItemCost(modelType) / 2 if choice == 1: inventory = base.localAvatar.getInventory() if inventory: if cost > 0 and inventory.getGoldInPocket() + cost > InventoryGlobals.GOLD_CAP: r = Functor(self.sendRequestSellShipGoldOverflow, shipId) if self.confirmDialog: self.confirmDialog.destroy() self.confirmDialog = None self.confirmDialog = PDialog.PDialog(text = PLocalizer.ExcessGoldLost, style = OTPDialog.YesNo, command = r) return None self.sendUpdate('requestSellShip', [ shipId]) if self.pickShipGUI: self.pickShipGUI.hide() self.finishShopping()
def confirmOverhaulShip(self, shipId=None): if not shipId: return None shipOV = self.cr.getOwnerView(shipId) if not shipOV: return None if shipOV.state != 'Off': base.localAvatar.guiMgr.createWarning( PLocalizer.ShipNotInBottleWarning, PiratesGuiGlobals.TextFG6) return None shipClass = shipOV.getShipClass() cost = EconomyGlobals.getItemCost( shipClass) * EconomyGlobals.OVERHAUL_COST_PERCENTAGE if self.confirmDialog: self.confirmDialog.destroy() self.confirmDialog = None self.confirmDialog = PDialog.PDialog( text=PLocalizer.OverhaulConfirmDialog % {'gold': cost}, style=OTPDialog.YesNo, command=self.sendRequestOverhaulShip, extraArgs=[shipId])
def showLeaveDialog(displayText=None): self.leaveDialog = PDialog.PDialog( text=displayText or PLocalizer.PokerLeaveConfirmMessage, style=OTPDialog.YesNo, giveMouse=False, command=self.leaveCallback) self.table.setDialogBin(self.leaveDialog)
def requestSeatResponse(self, answer, seatIndex): if answer == 1: self.localAvatarSatDown(seatIndex) localAvatar.guiMgr.hideSeaChest() localAvatar.b_setGameState('ParlorGame') else: if answer == 2: self.localAvatarGotUp(seatIndex) else: if answer == 3: self.deleteRequestDialogs() self.requestDialog = PDialog.PDialog( text=PLocalizer.TableIsFullMessage, style=OTPDialog.Acknowledge, command=self.requestCommand) self.setDialogBin(self.requestDialog) localAvatar.motionFSM.on() self.cr.interactionMgr.start() else: if answer == 5: localAvatar.guiMgr.showNonPayer(quest='Game_Table', focus=6) localAvatar.motionFSM.on() self.cr.interactionMgr.start() else: localAvatar.motionFSM.on() self.cr.interactionMgr.start()
def responseShipRepair(self, shipDoId): if self.pickShipGUI: self.pickShipGUI.updateShip(shipDoId) if self.confirmDialog: self.confirmDialog.destroy() self.confirmDialog = None self.confirmDialog = PDialog.PDialog(text = PLocalizer.ShipRepaired, style = OTPDialog.Acknowledge, command = self.handleRepairAcknowledge)
def displayCpuSpeedDialog(self, message): self.deleteDialogs() if base.options.cpu_frequency_warning: buttonText = [ OTPLocalizer.DialogOK, OTPLocalizer.DialogDoNotShowAgain] self.cpuSpeedDialog = PDialog.PDialog(text=message, style=OTPDialog.TwoChoiceCustom, giveMouse=False, command=self.cpuSpeedDialogCommand, buttonText=buttonText) if self.cpuSpeedDialog: self.cpuSpeedDialog.setBin('gui-fixed', 20, 20)
def __createDialog(self, message): if message: popupDialogText = message if self.popupDialog: self.__cleanupDialog() self.popupDialog = PDialog.PDialog(text=popupDialogText, style=OTPDialog.Acknowledge, command=self.__cleanupDialog)
def showDownloadAcknowledge(self): base.cr.centralLogger.writeClientEvent( 'Player encountered phase 5 blocker trying to use a dinghy') if not self.dinghyDisabledDialog: self.dinghyDisabledDialog = PDialog.PDialog( text=PLocalizer.NoMainWorld, style=OTPDialog.Acknowledge, command=self.cleanupDinghyDisabledDialog)
def leaveAction(self, action): self.deleteLeaveDialog() self.leaveDialog = PDialog.PDialog( text=PLocalizer.PokerLeaveConfirmMessage, style=OTPDialog.YesNo, giveMouse=False, command=self.leaveCallback) self.table.setDialogBin(self.leaveDialog)
def doubleConfirmSellShip(self, shipId, choice): r = Functor(self.sendRequestSellShip, shipId) if self.confirmDialog: self.confirmDialog.destroy() self.confirmDialog = None if choice == 1: self.confirmDialog = PDialog.PDialog(text = PLocalizer.SellShipAreYouSureDialog, style = OTPDialog.YesNo, command = r)
def cheatResponse(self, cheatType, cheatTarget, success, hand): swap = False if cheatType == PlayingCardGlobals.ReplaceHoleCardOneCheat: self.setLocalAvatarHand(hand) swap = True else: if cheatType == PlayingCardGlobals.ReplaceHoleCardTwoCheat: self.setLocalAvatarHand(hand) swap = True else: if cheatType == PlayingCardGlobals.CaughtCheating: self.guiCallback(PlayingCardGlobals.Leave) self.deleteDialogs() string = PLocalizer.PokerCaughtCheatingMessage % PlayingCardGlobals.CheatingFine self.dialog = PDialog.PDialog(text=string, style=OTPDialog.Acknowledge, command=self.dialogCallback) self.setDialogBin(self.dialog) if self.gui: if swap: if success: string = PLocalizer.PokerSwapSuccessMessage else: string = PLocalizer.PokerSwapFailureMessage self.swapResultDialog = PDialog.PDialog( text=string, style=OTPDialog.Acknowledge, giveMouse=False, command=self.swapResultCallback) self.setDialogBin(self.swapResultDialog) position = self.swapResultDialog.getPos() position.setZ(position[2] + 0.35) self.swapResultDialog.setPos(position) self.gui.updateSplitAndDoubleDown(hand) self.gui.updatePlayButtions() self.setTableState(self.allHands, self.chipsCount) value = PlayingCardGlobals.getBlackjackHandValue(hand) if value >= 21: self.gui.disableAllPlayButtons() self.gui.endTimer() self.guiCallback(PlayingCardGlobals.AutoStay) if self.isLocalAvatarSeated(): actor = self.isLocalAvatarPlaying() and self.actors[ self.localAvatarSeat] actor and actor.play('cards_cheat')
def showCurrentlyOwnedAlert(self): self.removeAlertDialog() text = PLocalizer.ShopOwnedBarber self.alertDialog = PDialog.PDialog(text=text, text_align=TextNode.ACenter, style=OTPDialog.Acknowledge, pos=(-0.65000000000000002, 0.0, 0.0), command=self.removeAlertDialog) self.alertDialog.setBin('gui-fixed', 3, 3)
def confirmSale(self): if localAvatar.getInventory().getGoldInPocket() + self.totalGoldValue * ItemGlobals.GOLD_SALE_MULTIPLIER > InventoryGlobals.GOLD_CAP: r = Functor(self.reconfirmSale) if self.confirmDialog: self.confirmDialog.destroy() self.confirmDialog = None self.confirmDialog = PDialog.PDialog(text = PLocalizer.ExcessGoldLost, style = OTPDialog.YesNo, command = r) else: self.reconfirmSale()
def confirmRepairShip(self, shipId=None): if not shipId: return shipOV = self.cr.getOwnerView(shipId) if not shipOV: return cost = ShipGlobals.getRepairCost(shipOV) r = Functor(self.sendRequestRepairShip, shipId) if self.confirmDialog: self.confirmDialog.destroy() self.confirmDialog = None self.confirmDialog = PDialog.PDialog(text=PLocalizer.RepairConfirmDialog % {'gold': cost}, style=OTPDialog.YesNo, command=r) return
def requestSeatResponse(self, answer, seatIndex): if answer == 4: self.deleteRequestDialogs() message = PLocalizer.PokerInsufficientChipsMessage % self.minimumChipsToSitDown( ) self.requestDialog = PDialog.PDialog(text=message, style=OTPDialog.Acknowledge, command=self.requestCommand) self.setDialogBin(self.requestDialog) localAvatar.motionFSM.on() self.cr.interactionMgr.start() else: DistributedGameTable.DistributedGameTable.requestSeatResponse( self, answer, seatIndex)
def popupProgressBlocker(self, questId): if questId == 'c3visitJoshamee': localAvatar.guiMgr.showNonPayer(quest=questId, focus=9) return elif questId == 'c4.1visitValentina': localAvatar.guiMgr.showStayTuned(quest=questId, focus=0) return popupDialogText = PLocalizer.ProgressBlockPopupDialog.get(questId) if popupDialogText: self.popupDialog = PDialog.PDialog(text=popupDialogText, style=OTPDialog.Acknowledge, command=self.__cleanupDialog) else: localAvatar.guiMgr.showNonPayer(quest=questId, focus=9) self.notify.warning('%s: No progressBlock dialog found!' % questId)
def confirmCode(self, input = None): if input == None: input = self.codeInput.get() self.codeInput.enterText('') self.hideCode(1) if self.alertDialog: self.alertDialog.destroy() self.alertDialog = None if input == None or len(input) == 0: self.alertDialog = PDialog.PDialog(parent = aspect2dp, text = PLocalizer.ShopCodeErr, style = OTPDialog.CancelOnly, command = self._RedeemCodeGUI__handleAlert, destroyedCallback = self._RedeemCodeGUI__destroyedAlert) self.alertDialog.setPos(0.59999999999999998, 0, 0.10000000000000001) self.alertDialog.setBin('gui-fixed', 2) else: localAvatar.submitCodeToServer(input)
def confirmSellShip(self, shipId=None): if not shipId: return shipOV = self.cr.getOwnerView(shipId) if not shipOV: return if shipOV.state != 'Off': base.localAvatar.guiMgr.createWarning(PLocalizer.ShipNotInBottleWarning, PiratesGuiGlobals.TextFG6) return modelType = ShipGlobals.getModelClass(shipOV.shipClass) cost = EconomyGlobals.getItemCost(modelType) / 2 r = Functor(self.doubleConfirmSellShip, shipId) if self.confirmDialog: self.confirmDialog.destroy() self.confirmDialog = None self.confirmDialog = PDialog.PDialog(text=PLocalizer.SellShipConfirmDialog % {'gold': cost}, style=OTPDialog.YesNo, command=r) return
def cheatResponse(self, cheatType, cheatTarget, success, hand): swap = False if cheatType == PlayingCardGlobals.PeekCheatLeft: pass else: if cheatType == PlayingCardGlobals.PeekCheatRight: pass else: if cheatType == PlayingCardGlobals.ReplaceHoleCardOneCheat: self.setLocalAvatarHand(hand) swap = True else: if cheatType == PlayingCardGlobals.ReplaceHoleCardTwoCheat: self.setLocalAvatarHand(hand) swap = True else: if cheatType == PlayingCardGlobals.ReplaceHoleCardSevenCheat: self.setLocalAvatarHand(hand) swap = True else: if cheatType == PlayingCardGlobals.PlayBadHandTell: pass else: if cheatType == PlayingCardGlobals.PlayGoodHandTell: pass if swap: if success: string = PLocalizer.PokerSwapSuccessMessage else: string = PLocalizer.PokerSwapFailureMessage self.swapResultDialog = PDialog.PDialog( text=string, style=OTPDialog.Acknowledge, giveMouse=False, command=self.swapResultCallback) position = self.swapResultDialog.getPos() position.setZ(position[2] + 0.35) self.swapResultDialog.setPos(position) self.setDialogBin(self.swapResultDialog) if self.isLocalAvatarSeated(): if self.isLocalAvatarPlaying(): actor = self.actors[self.localAvatarSeat] actor and actor.play('cards_cheat') self.updateGui()
def presentQuestOffer(self, offers, ladder = False): if self.questMenuGUI: DistributedQuestGiver.notify.warning('setQuestOffer: old questMenu GUI still around') self.cleanUpQuestMenu() self.cleanUpQuestDetails() def handleSelection(offer, self = self, offers = offers): self.cleanUpQuestMenu() if offer == QuestConstants.CANCEL_QUEST: index = QuestConstants.CANCEL_QUEST else: index = offers.index(offer) self.sendOfferResponse(index, ladder) def handleOption(option, offer): base.test = self self.ignore('lastSubtitlePage') self.adjustNPCCamera('back') if option == PLocalizer.Accept: handleSelection(offer) elif self.questMenuGUI: self.questMenuGUI.show() self.cleanUpQuestDetails(hide = True) def displayQuestDetails(offer): self.questDetailGUI = QuestDetailGUI(offer, None) self.questDetailGUI.showPanel() base.questdet = self.questDetailGUI def displayBranchDetails(offer): self.selectedOffer = offer self.cleanUpQuestDetails() self.questDetailGUI = QuestDetailGUI(offer, None) self.questDetailGUI.showPanel() base.questdet = self.questDetailGUI def displayBranchOptions(offer, callback, descCallback): self.branchMenuGUI = BranchMenuGUI.BranchMenuGUI(offer, callback, descCallback) def handleBranchOption(option): if option == PLocalizer.Accept: if self.selectedOffer: self.sendOfferResponse(0, ladder, self.selectedOffer) self.adjustNPCCamera('back') self.cleanUpQuestDetails(hide = True) self.cleanUpBranchMenu() if self.questMenuGUI: self.questMenuGUI.show() def describeQuest(offer): self.adjustNPCCamera('forward') questDNA = offer.getQuestDNA() if questDNA: if isinstance(offer, QuestOffer.QuestTimerResetOffer): self.requestQuestReset(offer.getQuestId()) return None elif isinstance(offer, QuestOffer.QuestBranchResetOffer): self.requestBranchReset(offer.getQuestId()) return None questStr = questDNA.getStringBefore() if questDNA.isBranch(): self.acceptOnce('lastSubtitlePage', displayBranchOptions, [ offer, None, displayBranchDetails]) localAvatar.guiMgr.subtitler.setPageChat(questStr, options = [ PLocalizer.Decline, PLocalizer.Accept], callback = handleBranchOption) else: self.acceptOnce('lastSubtitlePage', displayQuestDetails, [ offer]) localAvatar.guiMgr.subtitler.setPageChat(questStr, options = [ PLocalizer.Decline, PLocalizer.Accept], callback = handleOption, extraArgs = [ offer]) def questFull(arg): self.cleanUpQuestMenu() self.sendOfferResponse(QuestConstants.CANCEL_QUEST, ladder) inv = base.localAvatar.getInventory() numWorkQuests = 0 if inv: questList = inv.getQuestList() for questId in questList: if not QuestLadderDB.getFamePath(questId): numWorkQuests += 1 continue hasStoryQuest = False for offer in offers: if QuestLadderDB.getFamePath(offer.getQuestId()): hasStoryQuest = True continue if not hasStoryQuest and numWorkQuests > QuestConstants.MAXIMUM_MERC_WORK: self.questMenuGUI = PDialog.PDialog(text = PLocalizer.QuestFull, style = OTPDialog.Acknowledge, command = questFull) else: self.questMenuGUI = QuestMenuGUI.QuestMenuGUI(offers, handleSelection, describeQuest) localAvatar.currentStoryQuests = [] self.clearOffer()
def confirmBody(self): self.hide() self.confirmDialog = PDialog.PDialog(text = PLocalizer.BodyTypeConfirm, style = OTPDialog.YesNo, command = self.doConfirmBody)
def addPoint(self, skillId): if skillId == InventoryType.SailPowerRecharge: return inv = localAvatar.getInventory() frameSkillId = skillId skillId = WeaponGlobals.getLinkedSkillId(frameSkillId) if not skillId: skillId = frameSkillId if self.currentRep == InventoryType.CutlassRep and localAvatar.style.tutorial < PiratesGlobals.TUT_GOT_CUTLASS: if inv.getStackQuantity(InventoryType.CutlassSweep) < 2: if skillId != InventoryType.CutlassSweep: return elif skillId == InventoryType.CutlassSweep: messenger.send('skillImprovementAttempted') unSpentId = self.getUnspent() unSp = inv.getStackQuantity(unSpentId) if unSpentId in self.localMods: unSp = self.localMods[unSpentId] if unSp < 1: return if inv.getStackLimit(skillId): curAmt = inv.getStackQuantity(skillId) if skillId in self.localMods: curAmt = self.localMods[skillId] if curAmt > 5: return else: curAmt += 1 else: return self.__handleFreeDialog() if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if curAmt > Freebooter.FreeSkillCap: self.spentDialog = PDialog.PDialog( text=PLocalizer.FreebooterSkillMax, style=OTPDialog.CancelOnly, command=self.__handleFreeDialog) return playerExp = inv.getAccumulator(self.currentRep) categoryLevel, extra = ReputationGlobals.getLevelFromTotalReputation( self.currentRep, playerExp) alreadySpent = categoryLevel - 1 - unSp if alreadySpent > 5: self.spentDialog = PDialog.PDialog( text=PLocalizer.FreebooterSkillLock, style=OTPDialog.CancelOnly, command=self.__handleFreeDialog) return if not base.config.GetBool('want-combo-skips', 0): comboSkills = [ InventoryType.CutlassSlash, InventoryType.CutlassCleave, InventoryType.CutlassFlourish, InventoryType.CutlassStab, InventoryType.DaggerSwipe, InventoryType.DaggerGouge, InventoryType.DaggerEviscerate ] if skillId in comboSkills and inv.getStackQuantity(skillId - 1) <= 1: base.localAvatar.guiMgr.createWarning( PLocalizer.ComboOrderWarn, PiratesGuiGlobals.TextFG6) return messenger.send('skillImprovementAttempted') localAvatar.spendSkillPoint(skillId) self.localMods[skillId] = curAmt self.localMods[unSpentId] = unSp - 1 self.skillFrames[frameSkillId].skillRank = curAmt - 1
def enterUnpaidChatWarning(self): self.unpaidWarningDialog = PDialog.PDialog( text=PLocalizer.ChatManagerUnpaidWarning, style=OTPDialog.Acknowledge, command=self.unpaidChatWarningAck)
def enterNoSecretChatWarning(self): self.warningDialog = PDialog.PDialog( text=PLocalizer.ChatManagerNoFriendsWarning, style=OTPDialog.Acknowledge, command=self.noSecretChatWarningAck)