def avatarConsiderProgressTier(self, av): # Get the avatars current tier. currentTier = av.getRewardTier() # Check if they have all required rewards. if Quests.avatarHasAllRequiredRewards(av, currentTier): if currentTier != Quests.ELDER_TIER: currentTier += 1 av.b_setRewardHistory(currentTier, [])
def __considerProgressTier(self, av): tier = av.getRewardHistory()[0] hasAllRewards = Quests.avatarHasAllRequiredRewards(av, tier) if hasAllRewards: if not av.getQuests(): tier = min(Quests.ELDER_TIER, tier + 1) av.b_setRewardHistory(tier, []) return 0 return av.getRewardTier() < Quests.ELDER_TIER return 0
def __considerProgressTier(self, av): tier = av.getRewardHistory()[0] hasAllRewards = Quests.avatarHasAllRequiredRewards(av, tier) if hasAllRewards: if not av.getQuests(): tier = min(Quests.ELDER_TIER, tier + 1) av.b_setRewardHistory(tier, []) return 0 return 1 return 0
def avatarProgressTier(self, toon): currentTier = toon.getRewardHistory()[0] if Quests.avatarHasAllRequiredRewards(toon, currentTier): if currentTier != Quests.ELDER_TIER: currentTier += 1 toon.b_setRewardHistory(currentTier, [])
def requestInteract(self, avId, npc): av = self.air.doId2do.get(avId) if not av: return for index, quest in enumerate(self.__toonQuestsList2Quests(av.quests)): questId, fromNpcId, toNpcId, rewardId, toonProgress = av.quests[ index] isComplete = quest.getCompletionStatus(av, av.quests[index], npc) if isComplete != Quests.COMPLETE: continue if avId in self.air.tutorialManager.avId2fsm.keys(): self.air.tutorialManager.avId2fsm[avId].demand('Tunnel') if isinstance(quest, Quests.DeliverGagQuest): track, level = quest.getGagType() av.inventory.setItem( track, level, av.inventory.numItem(track, level) - quest.getNumGags()) av.b_setInventory(av.inventory.makeNetString()) nextQuest = Quests.getNextQuest(questId, npc, av) if nextQuest == (Quests.NA, Quests.NA): if isinstance(quest, Quests.TrackChoiceQuest): npc.presentTrackChoice(avId, questId, quest.getChoices()) return rewardId = Quests.getAvatarRewardId(av, questId) npc.completeQuest(avId, questId, rewardId) self.completeQuest(av, questId) self.giveReward(av, rewardId) return else: self.completeQuest(av, questId) nextQuestId = nextQuest[0] nextRewardId = Quests.getFinalRewardId(questId, 1) nextToNpcId = nextQuest[1] self.npcGiveQuest(npc, av, nextQuestId, nextRewardId, nextToNpcId) return if len(self.__toonQuestsList2Quests( av.quests)) >= av.getQuestCarryLimit(): npc.rejectAvatar(avId) return if avId in self.air.tutorialManager.avId2fsm.keys(): if av.getRewardHistory()[0] == 0: self.npcGiveQuest(npc, av, 101, Quests.findFinalRewardId(101)[0], Quests.getQuestToNpcId(101), storeReward=True) self.air.tutorialManager.avId2fsm[avId].demand('Battle') return tier = av.getRewardHistory()[0] if Quests.avatarHasAllRequiredRewards(av, tier): if not Quests.avatarWorkingOnRequiredRewards(av): if tier != Quests.LOOPING_FINAL_TIER: tier += 1 av.b_setRewardHistory(tier, []) else: npc.rejectAvatarTierNotDone(avId) return bestQuests = Quests.chooseBestQuests(tier, npc, av) if not bestQuests: npc.rejectAvatar(avId) return npc.presentQuestChoice(avId, bestQuests) return