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
Beispiel #3
0
    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()
Beispiel #4
0
 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()
Beispiel #8
0
    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])
Beispiel #9
0
 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)
Beispiel #10
0
 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)
Beispiel #13
0
 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)
Beispiel #14
0
 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)
Beispiel #15
0
 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')
Beispiel #18
0
 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)
Beispiel #19
0
 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)
Beispiel #22
0
 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)
Beispiel #23
0
    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()
Beispiel #27
0
 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
Beispiel #29
0
 def enterUnpaidChatWarning(self):
     self.unpaidWarningDialog = PDialog.PDialog(
         text=PLocalizer.ChatManagerUnpaidWarning,
         style=OTPDialog.Acknowledge,
         command=self.unpaidChatWarningAck)
Beispiel #30
0
 def enterNoSecretChatWarning(self):
     self.warningDialog = PDialog.PDialog(
         text=PLocalizer.ChatManagerNoFriendsWarning,
         style=OTPDialog.Acknowledge,
         command=self.noSecretChatWarningAck)