toontown-just-works/toontown/quest/Quests.py
2024-07-07 18:08:39 -05:00

4752 lines
279 KiB
Python

from direct.directnotify import DirectNotifyGlobal
from direct.showbase import PythonUtil
from toontown.toonbase import ToontownBattleGlobals
from toontown.toonbase import ToontownGlobals
from toontown.toonbase import TTLocalizer
from toontown.battle import SuitBattleGlobals
from toontown.coghq import CogDisguiseGlobals
from toontown.toon import NPCToons
from toontown.hood import ZoneUtil
from otp.otpbase import OTPGlobals
import random
import copy
import string
import time
import types
import random
notify = DirectNotifyGlobal.directNotify.newCategory('Quests')
ItemDict = TTLocalizer.QuestsItemDict
CompleteString = TTLocalizer.QuestsCompleteString
NotChosenString = TTLocalizer.QuestsNotChosenString
DefaultGreeting = TTLocalizer.QuestsDefaultGreeting
DefaultIncomplete = TTLocalizer.QuestsDefaultIncomplete
DefaultIncompleteProgress = TTLocalizer.QuestsDefaultIncompleteProgress
DefaultIncompleteWrongNPC = TTLocalizer.QuestsDefaultIncompleteWrongNPC
DefaultComplete = TTLocalizer.QuestsDefaultComplete
DefaultLeaving = TTLocalizer.QuestsDefaultLeaving
DefaultReject = TTLocalizer.QuestsDefaultReject
DefaultTierNotDone = TTLocalizer.QuestsDefaultTierNotDone
DefaultQuest = TTLocalizer.QuestsDefaultQuest
DefaultVisitQuestDialog = TTLocalizer.QuestsDefaultVisitQuestDialog
GREETING = 0
QUEST = 1
INCOMPLETE = 2
INCOMPLETE_PROGRESS = 3
INCOMPLETE_WRONG_NPC = 4
COMPLETE = 5
LEAVING = 6
Any = 1
OBSOLETE = 'OBSOLETE'
Start = 1
Cont = 0
Anywhere = 1
NA = 2
Same = 3
AnyFish = 4
AnyCashbotSuitPart = 5
AnyLawbotSuitPart = 6
AnyBossbotSuitPart = 7
ToonTailor = 999
ToonHQ = 1000
InVP = 0
InFO = 1
WithCheat = 2
QuestDictTierIndex = 0
QuestDictStartIndex = 1
QuestDictDescIndex = 2
QuestDictFromNpcIndex = 3
QuestDictToNpcIndex = 4
QuestDictRewardIndex = 5
QuestDictNextQuestIndex = 6
QuestDictDialogIndex = 7
VeryEasy = 100
Easy = 75
Medium = 50
Hard = 25
VeryHard = 20
Fun = 15
TT_TIER = 0
DD_TIER = 4
DG_TIER = 7
MM_TIER = 8
BR_TIER = 11
DL_TIER = 14
LAWBOT_HQ_TIER = 18
BOSSBOT_HQ_TIER = 32
PRE_ELDER_TIER = 49
ELDER_TIER = 50
LOOPING_FINAL_TIER = ELDER_TIER
VISIT_QUEST_ID = 1000
TROLLEY_QUEST_ID = 110
FIRST_COG_QUEST_ID = 145
FRIEND_QUEST_ID = 150
PHONE_QUEST_ID = 175
from toontown.toonbase.ToontownGlobals import FT_FullSuit, FT_Leg, FT_Arm, FT_Torso
QuestRandGen = random.Random()
def seedRandomGen(npcId, avId, tier, rewardHistory):
QuestRandGen.seed(npcId * 100 + avId + tier + len(rewardHistory))
def seededRandomChoice(seq):
return QuestRandGen.choice(seq)
def getCompleteStatusWithNpc(questComplete, toNpcId, npc):
if questComplete:
if npc:
if npcMatches(toNpcId, npc):
return COMPLETE
else:
return INCOMPLETE_WRONG_NPC
else:
return COMPLETE
elif npc:
if npcMatches(toNpcId, npc):
return INCOMPLETE_PROGRESS
else:
return INCOMPLETE
else:
return INCOMPLETE
def npcMatches(toNpcId, npc):
return toNpcId == npc.getNpcId() or toNpcId == Any or toNpcId == ToonHQ and npc.getHq() or toNpcId == ToonTailor and npc.getTailor()
def calcRecoverChance(numberNotDone, chance, cap = 1):
avgNum2Kill = 1.0 / (chance / 100.0)
diff = float(numberNotDone - avgNum2Kill * 0.5)
luck = 1.0 + abs(diff / (avgNum2Kill * 0.5))
chance *= luck
return chance
def simulateRecoveryVar(numNeeded, baseChance, list = 0, cap = 1):
numHave = 0
numTries = 0
greatestFailChain = 0
currentFail = 0
capHits = 0
attemptList = {}
while numHave < numNeeded:
numTries += 1
chance = calcRecoverChance(currentFail, baseChance, cap)
test = random.random() * 100
if chance == 1000:
capHits += 1
if test < chance:
numHave += 1
if currentFail > greatestFailChain:
greatestFailChain = currentFail
if attemptList.get(currentFail):
attemptList[currentFail] += 1
else:
attemptList[currentFail] = 1
currentFail = 0
else:
currentFail += 1
print 'Test results: %s tries, %s longest failure chain, %s cap hits' % (numTries, greatestFailChain, capHits)
if list:
print 'failures for each succes %s' % attemptList
def simulateRecoveryFix(numNeeded, baseChance, list = 0):
numHave = 0
numTries = 0
greatestFailChain = 0
currentFail = 0
attemptList = {}
while numHave < numNeeded:
numTries += 1
chance = baseChance
test = random.random() * 100
if test < chance:
numHave += 1
if currentFail > greatestFailChain:
greatestFailChain = currentFail
if attemptList.get(currentFail):
attemptList[currentFail] += 1
else:
attemptList[currentFail] = 1
currentFail = 0
else:
currentFail += 1
print 'Test results: %s tries, %s longest failure chain' % (numTries, greatestFailChain)
if list:
print 'failures for each success %s' % attemptList
class Quest:
_cogTracks = [Any,
'c',
'l',
'm',
's']
_factoryTypes = [Any,
FT_FullSuit,
FT_Leg,
FT_Arm,
FT_Torso]
def check(self, cond, msg):
pass
def checkLocation(self, location):
locations = [Anywhere] + TTLocalizer.GlobalStreetNames.keys()
self.check(location in locations, 'invalid location: %s' % location)
def checkNumCogs(self, num):
self.check(1, 'invalid number of cogs: %s' % num)
def checkCogType(self, type):
types = [Any] + SuitBattleGlobals.SuitAttributes.keys()
self.check(type in types, 'invalid cog type: %s' % type)
def checkCogTrack(self, track):
self.check(track in self._cogTracks, 'invalid cog track: %s' % track)
def checkCogLevel(self, level):
self.check(level >= 1 and level <= 12, 'invalid cog level: %s' % level)
def checkNumSkelecogs(self, num):
self.check(1, 'invalid number of cogs: %s' % num)
def checkSkelecogTrack(self, track):
self.check(track in self._cogTracks, 'invalid cog track: %s' % track)
def checkSkelecogLevel(self, level):
self.check(level >= 1 and level <= 12, 'invalid cog level: %s' % level)
def checkNumSkeleRevives(self, num):
self.check(1, 'invalid number of cogs: %s' % num)
def checkNumForemen(self, num):
self.check(num > 0, 'invalid number of foremen: %s' % num)
def checkNumBosses(self, num):
self.check(num > 0, 'invalid number of bosses: %s' % num)
def checkNumSupervisors(self, num):
self.check(num > 0, 'invalid number of supervisors: %s' % num)
def checkNumBuildings(self, num):
self.check(1, 'invalid num buildings: %s' % num)
def checkBuildingTrack(self, track):
self.check(track in self._cogTracks, 'invalid building track: %s' % track)
def checkBuildingFloors(self, floors):
self.check(floors >= 1 and floors <= 5, 'invalid num floors: %s' % floors)
def checkBuildingType(self, cogdo):
self.check(cogdo != 0 and cogdo != 1, 'invalid cogdo value: %s' % cogdo)
def checkNumFactories(self, num):
self.check(1, 'invalid num factories: %s' % num)
def checkFactoryType(self, type):
self.check(type in self._factoryTypes, 'invalid factory type: %s' % type)
def checkNumMints(self, num):
self.check(1, 'invalid num mints: %s' % num)
def checkNumCogParts(self, num):
self.check(1, 'invalid num cog parts: %s' % num)
def checkNumGags(self, num):
self.check(1, 'invalid num gags: %s' % num)
def checkGagTrack(self, track):
self.check(track >= ToontownBattleGlobals.MIN_TRACK_INDEX and track <= ToontownBattleGlobals.MAX_TRACK_INDEX, 'invalid gag track: %s' % track)
def checkGagItem(self, item):
self.check(item >= ToontownBattleGlobals.MIN_LEVEL_INDEX and item <= ToontownBattleGlobals.MAX_LEVEL_INDEX, 'invalid gag item: %s' % item)
def checkDeliveryItem(self, item):
self.check(item in ItemDict, 'invalid delivery item: %s' % item)
def checkNumItems(self, num):
self.check(1, 'invalid num items: %s' % num)
def checkRecoveryItem(self, item):
self.check(item in ItemDict, 'invalid recovery item: %s' % item)
def checkPercentChance(self, chance):
self.check(chance > 0 and chance <= 100, 'invalid percent chance: %s' % chance)
def checkRecoveryItemHolderAndType(self, holder, holderType = 'type'):
holderTypes = ['type', 'level', 'track']
self.check(holderType in holderTypes, 'invalid recovery item holderType: %s' % holderType)
if holderType == 'type':
holders = [Any, AnyFish] + SuitBattleGlobals.SuitAttributes.keys()
self.check(holder in holders, 'invalid recovery item holder: %s for holderType: %s' % (holder, holderType))
elif holderType == 'level':
pass
elif holderType == 'track':
self.check(holder in self._cogTracks, 'invalid recovery item holder: %s for holderType: %s' % (holder, holderType))
def checkTrackChoice(self, option):
self.check(option >= ToontownBattleGlobals.MIN_TRACK_INDEX and option <= ToontownBattleGlobals.MAX_TRACK_INDEX, 'invalid track option: %s' % option)
def checkNumFriends(self, num):
self.check(1, 'invalid number of friends: %s' % num)
def checkNumMinigames(self, num):
self.check(1, 'invalid number of minigames: %s' % num)
def filterFunc(avatar):
return 1
filterFunc = staticmethod(filterFunc)
def __init__(self, id, quest):
self.id = id
self.quest = quest
def getId(self):
return self.id
def getType(self):
return self.__class__
def getObjectiveStrings(self):
return ['']
def getString(self):
return self.getObjectiveStrings()[0]
def getRewardString(self, progressString):
return self.getString() + ' : ' + progressString
def getChooseString(self):
return self.getString()
def getPosterString(self):
return self.getString()
def getHeadlineString(self):
return self.getString()
def getDefaultQuestDialog(self):
return self.getString() + TTLocalizer.Period
def getNumQuestItems(self):
return -1
def addArticle(self, num, oString):
if len(oString) == 0:
return oString
if num == 1:
return oString
else:
return '%d %s' % (num, oString)
def __repr__(self):
return 'Quest type: %s id: %s params: %s' % (self.__class__.__name__, self.id, self.quest[0:])
def doesCogCount(self, avId, cogDict, zoneId):
return 0
def doesFactoryCount(self, avId, location):
return 0
def doesMintCount(self, avId, location):
return 0
def doesCogPartCount(self, avId, location):
return 0
def getCompletionStatus(self, av, questDesc, npc = None):
notify.error('Pure virtual - please override me')
return None
class LocationBasedQuest(Quest):
def __init__(self, id, quest):
Quest.__init__(self, id, quest)
self.checkLocation(self.quest[0])
def getLocation(self):
return self.quest[0]
def getLocationName(self):
loc = self.getLocation()
if loc == Anywhere:
locName = ''
elif loc in ToontownGlobals.hoodNameMap:
locName = TTLocalizer.QuestInLocationString % {'inPhrase': ToontownGlobals.hoodNameMap[loc][1],
'location': ToontownGlobals.hoodNameMap[loc][-1] + TTLocalizer.QuestsLocationArticle}
elif loc in ToontownGlobals.StreetBranchZones:
locName = TTLocalizer.QuestInLocationString % {'inPhrase': ToontownGlobals.StreetNames[loc][1],
'location': ToontownGlobals.StreetNames[loc][-1] + TTLocalizer.QuestsLocationArticle}
return locName
def isLocationMatch(self, zoneId):
loc = self.getLocation()
if loc is Anywhere:
return 1
if ZoneUtil.isPlayground(loc):
if loc == ZoneUtil.getCanonicalHoodId(zoneId):
return 1
else:
return 0
elif loc == ZoneUtil.getCanonicalBranchZone(zoneId):
return 1
elif loc == zoneId:
return 1
else:
return 0
def getChooseString(self):
return TTLocalizer.QuestsLocationString % {'string': self.getString(),
'location': self.getLocationName()}
def getPosterString(self):
return TTLocalizer.QuestsLocationString % {'string': self.getString(),
'location': self.getLocationName()}
def getDefaultQuestDialog(self):
return (TTLocalizer.QuestsLocationString + TTLocalizer.Period) % {'string': self.getString(),
'location': self.getLocationName()}
class CogQuest(LocationBasedQuest):
def __init__(self, id, quest):
LocationBasedQuest.__init__(self, id, quest)
if self.__class__ == CogQuest:
self.checkNumCogs(self.quest[1])
self.checkCogType(self.quest[2])
def getCogType(self):
return self.quest[2]
def getNumQuestItems(self):
return self.getNumCogs()
def getNumCogs(self):
return self.quest[1]
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
questComplete = toonProgress >= self.getNumCogs()
return getCompleteStatusWithNpc(questComplete, toNpcId, npc)
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
elif self.getNumCogs() == 1:
return ''
else:
return TTLocalizer.QuestsCogQuestProgress % {'progress': questDesc[4],
'numCogs': self.getNumCogs()}
def getCogNameString(self):
numCogs = self.getNumCogs()
cogType = self.getCogType()
if numCogs == 1:
if cogType == Any:
return TTLocalizer.Cog
else:
return SuitBattleGlobals.SuitAttributes[cogType]['singularname']
elif cogType == Any:
return TTLocalizer.Cogs
else:
return SuitBattleGlobals.SuitAttributes[cogType]['pluralname']
def getObjectiveStrings(self):
cogName = self.getCogNameString()
numCogs = self.getNumCogs()
if numCogs == 1:
text = cogName
else:
text = TTLocalizer.QuestsCogQuestDefeatDesc % {'numCogs': numCogs,
'cogName': cogName}
return (text,)
def getString(self):
return TTLocalizer.QuestsCogQuestDefeat % self.getObjectiveStrings()[0]
def getSCStrings(self, toNpcId, progress):
if progress >= self.getNumCogs():
return getFinishToonTaskSCStrings(toNpcId)
cogName = self.getCogNameString()
numCogs = self.getNumCogs()
if numCogs == 1:
text = TTLocalizer.QuestsCogQuestSCStringS
else:
text = TTLocalizer.QuestsCogQuestSCStringP
cogLoc = self.getLocationName()
return text % {'cogName': cogName,
'cogLoc': cogLoc}
def getHeadlineString(self):
return TTLocalizer.QuestsCogQuestHeadline
def doesCogCount(self, avId, cogDict, zoneId):
questCogType = self.getCogType()
return (questCogType is Any or questCogType is cogDict['type']) and avId in cogDict['activeToons'] and self.isLocationMatch(zoneId)
class CogTrackQuest(CogQuest):
trackCodes = ['c',
'l',
'm',
's']
trackNamesS = [TTLocalizer.BossbotS,
TTLocalizer.LawbotS,
TTLocalizer.CashbotS,
TTLocalizer.SellbotS]
trackNamesP = [TTLocalizer.BossbotP,
TTLocalizer.LawbotP,
TTLocalizer.CashbotP,
TTLocalizer.SellbotP]
def __init__(self, id, quest):
CogQuest.__init__(self, id, quest)
if self.__class__ == CogTrackQuest:
self.checkNumCogs(self.quest[1])
self.checkCogTrack(self.quest[2])
def getCogTrack(self):
return self.quest[2]
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
elif self.getNumCogs() == 1:
return ''
else:
return TTLocalizer.QuestsCogTrackQuestProgress % {'progress': questDesc[4],
'numCogs': self.getNumCogs()}
def getObjectiveStrings(self):
numCogs = self.getNumCogs()
track = self.trackCodes.index(self.getCogTrack())
if numCogs == 1:
text = self.trackNamesS[track]
else:
text = TTLocalizer.QuestsCogTrackDefeatDesc % {'numCogs': numCogs,
'trackName': self.trackNamesP[track]}
return (text,)
def getString(self):
return TTLocalizer.QuestsCogTrackQuestDefeat % self.getObjectiveStrings()[0]
def getSCStrings(self, toNpcId, progress):
if progress >= self.getNumCogs():
return getFinishToonTaskSCStrings(toNpcId)
numCogs = self.getNumCogs()
track = self.trackCodes.index(self.getCogTrack())
if numCogs == 1:
cogText = self.trackNamesS[track]
text = TTLocalizer.QuestsCogTrackQuestSCStringS
else:
cogText = self.trackNamesP[track]
text = TTLocalizer.QuestsCogTrackQuestSCStringP
cogLocName = self.getLocationName()
return text % {'cogText': cogText,
'cogLoc': cogLocName}
def getHeadlineString(self):
return TTLocalizer.QuestsCogTrackQuestHeadline
def doesCogCount(self, avId, cogDict, zoneId):
questCogTrack = self.getCogTrack()
return questCogTrack == cogDict['track'] and avId in cogDict['activeToons'] and self.isLocationMatch(zoneId)
class CogLevelQuest(CogQuest):
def __init__(self, id, quest):
CogQuest.__init__(self, id, quest)
self.checkNumCogs(self.quest[1])
self.checkCogLevel(self.quest[2])
def getCogType(self):
return Any
def getCogLevel(self):
return self.quest[2]
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
elif self.getNumCogs() == 1:
return ''
else:
return TTLocalizer.QuestsCogLevelQuestProgress % {'progress': questDesc[4],
'numCogs': self.getNumCogs()}
def getObjectiveStrings(self):
count = self.getNumCogs()
level = self.getCogLevel()
name = self.getCogNameString()
if count == 1:
text = TTLocalizer.QuestsCogLevelQuestDesc
else:
text = TTLocalizer.QuestsCogLevelQuestDescC
return (text % {'count': count,
'level': level,
'name': name},)
def getString(self):
return TTLocalizer.QuestsCogLevelQuestDefeat % self.getObjectiveStrings()[0]
def getSCStrings(self, toNpcId, progress):
if progress >= self.getNumCogs():
return getFinishToonTaskSCStrings(toNpcId)
count = self.getNumCogs()
level = self.getCogLevel()
name = self.getCogNameString()
if count == 1:
text = TTLocalizer.QuestsCogLevelQuestDesc
else:
text = TTLocalizer.QuestsCogLevelQuestDescI
objective = text % {'level': level,
'name': name}
location = self.getLocationName()
return TTLocalizer.QuestsCogLevelQuestSCString % {'objective': objective,
'location': location}
def getHeadlineString(self):
return TTLocalizer.QuestsCogLevelQuestHeadline
def doesCogCount(self, avId, cogDict, zoneId):
questCogLevel = self.getCogLevel()
return questCogLevel <= cogDict['level'] and avId in cogDict['activeToons'] and self.isLocationMatch(zoneId)
class SkelecogQBase:
def getCogNameString(self):
numCogs = self.getNumCogs()
if numCogs == 1:
return TTLocalizer.ASkeleton
else:
return TTLocalizer.SkeletonP
def doesCogCount(self, avId, cogDict, zoneId):
return cogDict['isSkelecog'] and avId in cogDict['activeToons'] and self.isLocationMatch(zoneId)
class SkelecogQuest(CogQuest, SkelecogQBase):
def __init__(self, id, quest):
CogQuest.__init__(self, id, quest)
self.checkNumSkelecogs(self.quest[1])
def getCogType(self):
return Any
def getCogNameString(self):
return SkelecogQBase.getCogNameString(self)
def doesCogCount(self, avId, cogDict, zoneId):
return SkelecogQBase.doesCogCount(self, avId, cogDict, zoneId)
class SkelecogTrackQuest(CogTrackQuest, SkelecogQBase):
trackNamesS = [TTLocalizer.BossbotSkelS,
TTLocalizer.LawbotSkelS,
TTLocalizer.CashbotSkelS,
TTLocalizer.SellbotSkelS]
trackNamesP = [TTLocalizer.BossbotSkelP,
TTLocalizer.LawbotSkelP,
TTLocalizer.CashbotSkelP,
TTLocalizer.SellbotSkelP]
def __init__(self, id, quest):
CogTrackQuest.__init__(self, id, quest)
self.checkNumSkelecogs(self.quest[1])
self.checkSkelecogTrack(self.quest[2])
def getCogNameString(self):
return SkelecogQBase.getCogNameString(self)
def doesCogCount(self, avId, cogDict, zoneId):
return SkelecogQBase.doesCogCount(self, avId, cogDict, zoneId) and self.getCogTrack() == cogDict['track']
class SkelecogLevelQuest(CogLevelQuest, SkelecogQBase):
def __init__(self, id, quest):
CogLevelQuest.__init__(self, id, quest)
self.checkNumSkelecogs(self.quest[1])
self.checkSkelecogLevel(self.quest[2])
def getCogType(self):
return Any
def getCogNameString(self):
return SkelecogQBase.getCogNameString(self)
def doesCogCount(self, avId, cogDict, zoneId):
return SkelecogQBase.doesCogCount(self, avId, cogDict, zoneId) and self.getCogLevel() <= cogDict['level']
class SkeleReviveQBase:
def getCogNameString(self):
numCogs = self.getNumCogs()
if numCogs == 1:
return TTLocalizer.Av2Cog
else:
return TTLocalizer.v2CogP
def doesCogCount(self, avId, cogDict, zoneId):
return cogDict['hasRevives'] and avId in cogDict['activeToons'] and self.isLocationMatch(zoneId)
class SkeleReviveQuest(CogQuest, SkeleReviveQBase):
def __init__(self, id, quest):
CogQuest.__init__(self, id, quest)
self.checkNumSkeleRevives(self.quest[1])
def getCogType(self):
return Any
def getCogNameString(self):
return SkeleReviveQBase.getCogNameString(self)
def doesCogCount(self, avId, cogDict, zoneId):
return SkeleReviveQBase.doesCogCount(self, avId, cogDict, zoneId)
class ForemanQuest(CogQuest):
def __init__(self, id, quest):
CogQuest.__init__(self, id, quest)
self.checkNumForemen(self.quest[1])
def getCogType(self):
return Any
def getCogNameString(self):
numCogs = self.getNumCogs()
if numCogs == 1:
return TTLocalizer.AForeman
else:
return TTLocalizer.ForemanP
def doesCogCount(self, avId, cogDict, zoneId):
return bool(CogQuest.doesCogCount(self, avId, cogDict, zoneId) and cogDict['isForeman'])
BOSS_NAMES = {
Anywhere: [TTLocalizer.ACogBoss, TTLocalizer.CogBosses, 'phase_3.5/maps/boss_icon.jpg', 'blue'],
ToontownGlobals.SellbotHQ: [TTLocalizer.ACogVP, TTLocalizer.CogVPs, 'phase_3.5/maps/vp_icon.jpg', 'red'],
ToontownGlobals.CashbotHQ: [TTLocalizer.ACogCFO, TTLocalizer.CogCFOs, 'phase_3.5/maps/cfo_icon.jpg', 'green'],
ToontownGlobals.LawbotHQ: [TTLocalizer.ACogCJ, TTLocalizer.CogCJs, 'phase_3.5/maps/cj_icon.jpg', 'blue'],
ToontownGlobals.BossbotHQ: [TTLocalizer.ACogCEO, TTLocalizer.CogCEOs, 'phase_3.5/maps/ceo_icon.jpg', 'brown']
}
class TexturedQuest:
def getModelFromTexture(self, texture):
cardMaker = CardMaker('cm-%s' % time.time())
cardMaker.setFrame(-0.5, 0.5, -0.5, 0.5)
node = NodePath(cardMaker.generate())
node.setTexture(loader.loadTexture(texture))
return node
def hasFrame(self):
return True
def getFrame(self):
print 'getFrame from TexturedQuest not implemented!'
return [None, None]
class BossQuest(CogQuest, TexturedQuest):
def __init__(self, id, quest):
CogQuest.__init__(self, id, quest)
self.checkNumBosses(self.quest[1])
def getFrame(self):
boss = BOSS_NAMES[self.quest[0]]
return [self.getModelFromTexture(boss[2]), boss[3]]
def getCogType(self):
return Any
def getCogNameString(self):
return BOSS_NAMES[self.quest[0]][self.getNumCogs() > 1]
def doesCogCount(self, avId, cogDict, zoneId):
return cogDict['isBoss'] > 0 and self.isLocationMatch(zoneId)
class SupervisorQuest(CogQuest):
def __init__(self, id, quest):
CogQuest.__init__(self, id, quest)
self.checkNumSupervisors(self.quest[1])
def getCogType(self):
return Any
def getCogNameString(self):
numCogs = self.getNumCogs()
if numCogs == 1:
return TTLocalizer.ASupervisor
else:
return TTLocalizer.SupervisorP
def doesCogCount(self, avId, cogDict, zoneId):
return bool(CogQuest.doesCogCount(self, avId, cogDict, zoneId) and cogDict['isSupervisor'])
class RescueQuest(LocationBasedQuest):
def __init__(self, id, quest):
Quest.__init__(self, id, quest)
self.checkNumCogs(self.quest[1])
def getNumToons(self):
return self.quest[1]
def getNumQuestItems(self):
return self.getNumToons()
def getLocationName(self):
return ' ' + TTLocalizer.InVP if self.quest[0] == InVP else TTLocalizer.InFieldOffice
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
questComplete = toonProgress >= self.getNumToons()
return getCompleteStatusWithNpc(questComplete, toNpcId, npc)
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
elif self.getNumToons() == 1:
return ''
else:
return TTLocalizer.QuestsRescueQuestProgress % {'progress': questDesc[4],
'numToons': self.getNumToons()}
def getObjectiveStrings(self):
numToons = self.getNumToons()
if numToons == 1:
text = TTLocalizer.QuestsRescueQuestToonS
else:
text = TTLocalizer.QuestsRescueQuestRescueDesc % {'numToons': numToons}
return (text,)
def getString(self):
return TTLocalizer.QuestsRescueQuestRescue % self.getObjectiveStrings()[0]
def getSCStrings(self, toNpcId, progress):
numToons = self.getNumToons()
if progress >= numToons:
return getFinishToonTaskSCStrings(toNpcId)
if numToons == 1:
text = TTLocalizer.QuestsRescueQuestSCStringS
else:
text = TTLocalizer.QuestsRescueQuestSCStringP
return text % {'toonLoc': self.getLocationName().strip()}
def getHeadlineString(self):
return TTLocalizer.QuestsRescueQuestHeadline
def isMethodMatch(self, method):
return self.quest[0] == method
BUILDING_NAMES = {
Any: ['phase_3.5/maps/cogdo_icon.jpg', 'brown'],
'l': ['phase_3.5/maps/lawbot_cogdo_icon.jpg', 'blue'],
's': ['phase_3.5/maps/sellbot_cogdo_icon.jpg', 'red']
}
class BuildingQuest(CogQuest, TexturedQuest):
trackCodes = ['c',
'l',
'm',
's']
trackNames = [TTLocalizer.Bossbot,
TTLocalizer.Lawbot,
TTLocalizer.Cashbot,
TTLocalizer.Sellbot]
def __init__(self, id, quest):
CogQuest.__init__(self, id, quest)
self.checkNumBuildings(self.quest[1])
self.checkBuildingTrack(self.quest[2])
self.checkBuildingFloors(self.quest[3])
self.checkBuildingType(self.quest[4])
def hasFrame(self):
return self.isCogdo()
def getFrame(self):
building = BUILDING_NAMES[self.quest[2]]
return [self.getModelFromTexture(building[0]), building[1]]
def getNumFloors(self):
return self.quest[3]
def getBuildingTrack(self):
return self.quest[2]
def isCogdo(self):
return self.quest[4]
def getNumQuestItems(self):
return self.getNumBuildings()
def getNumBuildings(self):
return self.quest[1]
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
questComplete = toonProgress >= self.getNumBuildings()
return getCompleteStatusWithNpc(questComplete, toNpcId, npc)
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
elif self.getNumBuildings() == 1:
return ''
else:
return TTLocalizer.QuestsBuildingQuestProgressString % {'progress': questDesc[4],
'num': self.getNumBuildings()}
def getObjectiveStrings(self):
count = self.getNumBuildings()
buildingTrack = self.getBuildingTrack()
if buildingTrack == Any:
type = TTLocalizer.Cog
else:
type = self.trackNames[self.trackCodes.index(buildingTrack)]
floors = ''
if self.isCogdo():
if buildingTrack == Any:
text = TTLocalizer.QuestsCogdoQuestDescU if count == 1 else TTLocalizer.QuestsCogdoQuestDescUM
else:
text = TTLocalizer.QuestsCogdoQuestDesc if count == 1 else TTLocalizer.QuestsCogdoQuestDescM
else:
floors = TTLocalizer.QuestsBuildingQuestFloorNumbers[self.getNumFloors() - 1]
if count == 1:
text = TTLocalizer.QuestsBuildingQuestDesc if floors == '' else TTLocalizer.QuestsBuildingQuestDescF
else:
text = TTLocalizer.QuestsBuildingQuestDescC if floors == '' else TTLocalizer.QuestsBuildingQuestDescCF
return (text % {'count': count,
'floors': floors,
'type': type},)
def getString(self):
return TTLocalizer.QuestsBuildingQuestString % self.getObjectiveStrings()[0]
def getSCStrings(self, toNpcId, progress):
if progress >= self.getNumBuildings():
return getFinishToonTaskSCStrings(toNpcId)
count = self.getNumBuildings()
buildingTrack = self.getBuildingTrack()
floors = ''
if buildingTrack == Any:
type = TTLocalizer.Cog
else:
type = self.trackNames[self.trackCodes.index(buildingTrack)]
if self.isCogdo():
if buildingTrack == Any:
text = TTLocalizer.QuestsCogdoQuestDescU if count == 1 else TTLocalizer.QuestsCogdoQuestDescMI
else:
text = TTLocalizer.QuestsCogdoQuestDesc if count == 1 else TTLocalizer.QuestsCogdoQuestDescMUI
else:
floors = TTLocalizer.QuestsBuildingQuestFloorNumbers[self.getNumFloors() - 1]
if count == 1:
text = TTLocalizer.QuestsBuildingQuestDesc if floors == '' else TTLocalizer.QuestsBuildingQuestDescF
else:
text = TTLocalizer.QuestsBuildingQuestDescI if floors == '' else TTLocalizer.QuestsBuildingQuestDescIF
objective = text % {'floors': floors,
'type': type}
return TTLocalizer.QuestsBuildingQuestSCString % {'objective': objective,
'location': self.getLocationName()}
def getHeadlineString(self):
return TTLocalizer.QuestsBuildingQuestHeadline
def doesCogCount(self, avId, cogDict, zoneId):
return 0
def doesBuildingTypeCount(self, type):
buildingTrack = self.getBuildingTrack()
if buildingTrack == Any or buildingTrack == type:
return True
return False
class FactoryQuest(LocationBasedQuest):
factoryTypeNames = {FT_FullSuit: TTLocalizer.Cog,
FT_Leg: TTLocalizer.FactoryTypeLeg,
FT_Arm: TTLocalizer.FactoryTypeArm,
FT_Torso: TTLocalizer.FactoryTypeTorso}
def __init__(self, id, quest):
LocationBasedQuest.__init__(self, id, quest)
self.checkNumFactories(self.quest[1])
def getNumQuestItems(self):
return self.getNumFactories()
def getNumFactories(self):
return self.quest[1]
def getFactoryType(self):
loc = self.getLocation()
type = Any
if loc in ToontownGlobals.factoryId2factoryType:
type = ToontownGlobals.factoryId2factoryType[loc]
return type
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
questComplete = toonProgress >= self.getNumFactories()
return getCompleteStatusWithNpc(questComplete, toNpcId, npc)
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
elif self.getNumFactories() == 1:
return ''
else:
return TTLocalizer.QuestsFactoryQuestProgressString % {'progress': questDesc[4],
'num': self.getNumFactories()}
def getObjectiveStrings(self):
count = self.getNumFactories()
factoryType = self.getFactoryType()
if factoryType == Any:
type = TTLocalizer.Cog
else:
type = FactoryQuest.factoryTypeNames[factoryType]
if count == 1:
text = TTLocalizer.QuestsFactoryQuestDesc
else:
text = TTLocalizer.QuestsFactoryQuestDescC
return (text % {'count': count,
'type': type},)
def getString(self):
return TTLocalizer.QuestsFactoryQuestString % self.getObjectiveStrings()[0]
def getSCStrings(self, toNpcId, progress):
if progress >= self.getNumFactories():
return getFinishToonTaskSCStrings(toNpcId)
factoryType = self.getFactoryType()
if factoryType == Any:
type = TTLocalizer.Cog
else:
type = FactoryQuest.factoryTypeNames[factoryType]
count = self.getNumFactories()
if count == 1:
text = TTLocalizer.QuestsFactoryQuestDesc
else:
text = TTLocalizer.QuestsFactoryQuestDescI
objective = text % {'type': type}
location = self.getLocationName()
return TTLocalizer.QuestsFactoryQuestSCString % {'objective': objective,
'location': location}
def getHeadlineString(self):
return TTLocalizer.QuestsFactoryQuestHeadline
def doesFactoryCount(self, avId, location):
return self.isLocationMatch(location)
class MintQuest(LocationBasedQuest):
def __init__(self, id, quest):
LocationBasedQuest.__init__(self, id, quest)
self.checkNumMints(self.quest[1])
def getNumQuestItems(self):
return self.getNumMints()
def getNumMints(self):
return self.quest[1]
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
questComplete = toonProgress >= self.getNumMints()
return getCompleteStatusWithNpc(questComplete, toNpcId, npc)
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
elif self.getNumMints() == 1:
return ''
else:
return TTLocalizer.QuestsMintQuestProgressString % {'progress': questDesc[4],
'num': self.getNumMints()}
def getObjectiveStrings(self):
count = self.getNumMints()
if count == 1:
text = TTLocalizer.QuestsMintQuestDesc
else:
text = TTLocalizer.QuestsMintQuestDescC % {'count': count}
return (text,)
def getString(self):
return TTLocalizer.QuestsMintQuestString % self.getObjectiveStrings()[0]
def getSCStrings(self, toNpcId, progress):
if progress >= self.getNumMints():
return getFinishToonTaskSCStrings(toNpcId)
count = self.getNumMints()
if count == 1:
objective = TTLocalizer.QuestsMintQuestDesc
else:
objective = TTLocalizer.QuestsMintQuestDescI
location = self.getLocationName()
return TTLocalizer.QuestsMintQuestSCString % {'objective': objective,
'location': location}
def getHeadlineString(self):
return TTLocalizer.QuestsMintQuestHeadline
def doesMintCount(self, avId, location):
return self.isLocationMatch(location)
class CogPartQuest(LocationBasedQuest):
def __init__(self, id, quest):
LocationBasedQuest.__init__(self, id, quest)
self.checkNumCogParts(self.quest[1])
def getNumQuestItems(self):
return self.getNumParts()
def getNumParts(self):
return self.quest[1]
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
questComplete = toonProgress >= self.getNumParts()
return getCompleteStatusWithNpc(questComplete, toNpcId, npc)
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
elif self.getNumParts() == 1:
return ''
else:
return TTLocalizer.QuestsCogPartQuestProgressString % {'progress': questDesc[4],
'num': self.getNumParts()}
def getObjectiveStrings(self):
count = self.getNumParts()
if count == 1:
text = TTLocalizer.QuestsCogPartQuestDesc
else:
text = TTLocalizer.QuestsCogPartQuestDescC
return (text % {'count': count},)
def getString(self):
return TTLocalizer.QuestsCogPartQuestString % self.getObjectiveStrings()[0]
def getSCStrings(self, toNpcId, progress):
if progress >= self.getNumParts():
return getFinishToonTaskSCStrings(toNpcId)
count = self.getNumParts()
if count == 1:
text = TTLocalizer.QuestsCogPartQuestDesc
else:
text = TTLocalizer.QuestsCogPartQuestDescI
objective = text
location = self.getLocationName()
return TTLocalizer.QuestsCogPartQuestSCString % {'objective': objective,
'location': location}
def getHeadlineString(self):
return TTLocalizer.QuestsCogPartQuestHeadline
def doesCogPartCount(self, avId, location):
return self.isLocationMatch(location)
class DeliverGagQuest(Quest):
def __init__(self, id, quest):
Quest.__init__(self, id, quest)
self.checkNumGags(self.quest[0])
self.checkGagTrack(self.quest[1])
self.checkGagItem(self.quest[2])
def getGagType(self):
return (self.quest[1], self.quest[2])
def getNumQuestItems(self):
return self.getNumGags()
def getNumGags(self):
return self.quest[0]
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
gag = self.getGagType()
num = self.getNumGags()
track = gag[0]
level = gag[1]
questComplete = npc and av.inventory and av.inventory.numItem(track, level) >= num
return getCompleteStatusWithNpc(questComplete, toNpcId, npc)
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
elif self.getNumGags() == 1:
return ''
else:
return TTLocalizer.QuestsDeliverGagQuestProgress % {'progress': questDesc[4],
'numGags': self.getNumGags()}
def getObjectiveStrings(self):
track, item = self.getGagType()
num = self.getNumGags()
if num == 1:
text = ToontownBattleGlobals.AvPropStringsSingular[track][item]
else:
gagName = ToontownBattleGlobals.AvPropStringsPlural[track][item]
text = TTLocalizer.QuestsItemNameAndNum % {'num': TTLocalizer.getLocalNum(num),
'name': gagName}
return (text,)
def getString(self):
return TTLocalizer.QuestsDeliverGagQuestString % self.getObjectiveStrings()[0]
def getRewardString(self, progress):
return TTLocalizer.QuestsDeliverGagQuestStringLong % self.getObjectiveStrings()[0]
def getDefaultQuestDialog(self):
return TTLocalizer.QuestsDeliverGagQuestStringLong % self.getObjectiveStrings()[0] + '\x07' + TTLocalizer.QuestsDeliverGagQuestInstructions
def getSCStrings(self, toNpcId, progress):
if progress >= self.getNumGags():
return getFinishToonTaskSCStrings(toNpcId)
track, item = self.getGagType()
num = self.getNumGags()
if num == 1:
text = TTLocalizer.QuestsDeliverGagQuestToSCStringS
gagName = ToontownBattleGlobals.AvPropStringsSingular[track][item]
else:
text = TTLocalizer.QuestsDeliverGagQuestToSCStringP
gagName = ToontownBattleGlobals.AvPropStringsPlural[track][item]
return [text % {'gagName': gagName}, TTLocalizer.QuestsDeliverGagQuestSCString] + getVisitSCStrings(toNpcId)
def getHeadlineString(self):
return TTLocalizer.QuestsDeliverGagQuestHeadline
def removeGags(self, av):
gag = self.getGagType()
inventory = av.inventory
takenGags = 0
for i in xrange(self.getNumGags()):
if inventory.useItem(gag[0], gag[1]):
takenGags += 1
av.b_setInventory(inventory.makeNetString())
return takenGags
class DeliverItemQuest(Quest):
def __init__(self, id, quest):
Quest.__init__(self, id, quest)
self.checkDeliveryItem(self.quest[0])
def getItem(self):
return self.quest[0]
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
if npc and npcMatches(toNpcId, npc):
return COMPLETE
else:
return INCOMPLETE_WRONG_NPC
def getProgressString(self, avatar, questDesc):
return TTLocalizer.QuestsDeliverItemQuestProgress
def getObjectiveStrings(self):
iDict = ItemDict[self.getItem()]
article = iDict[2]
itemName = iDict[0]
return [article + itemName]
def getString(self):
return TTLocalizer.QuestsDeliverItemQuestString % self.getObjectiveStrings()[0]
def getRewardString(self, progress):
return TTLocalizer.QuestsDeliverItemQuestStringLong % self.getObjectiveStrings()[0]
def getDefaultQuestDialog(self):
return TTLocalizer.QuestsDeliverItemQuestStringLong % self.getObjectiveStrings()[0]
def getSCStrings(self, toNpcId, progress):
iDict = ItemDict[self.getItem()]
article = iDict[2]
itemName = iDict[0]
return [TTLocalizer.QuestsDeliverItemQuestSCString % {'article': article,
'itemName': itemName}] + getVisitSCStrings(toNpcId)
def getHeadlineString(self):
return TTLocalizer.QuestsDeliverItemQuestHeadline
class VisitQuest(Quest):
def __init__(self, id, quest):
Quest.__init__(self, id, quest)
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
if npc and npcMatches(toNpcId, npc):
return COMPLETE
else:
return INCOMPLETE_WRONG_NPC
def getProgressString(self, avatar, questDesc):
return TTLocalizer.QuestsVisitQuestProgress
def getObjectiveStrings(self):
return ['']
def getString(self):
return TTLocalizer.QuestsVisitQuestStringShort
def getChooseString(self):
return TTLocalizer.QuestsVisitQuestStringLong
def getRewardString(self, progress):
return TTLocalizer.QuestsVisitQuestStringLong
def getDefaultQuestDialog(self):
return random.choice(DefaultVisitQuestDialog)
def getSCStrings(self, toNpcId, progress):
return getVisitSCStrings(toNpcId)
def getHeadlineString(self):
return TTLocalizer.QuestsVisitQuestHeadline
class RecoverItemQuest(LocationBasedQuest):
def __init__(self, id, quest):
LocationBasedQuest.__init__(self, id, quest)
self.checkNumItems(self.quest[1])
self.checkRecoveryItem(self.quest[2])
self.checkPercentChance(self.quest[3])
if len(self.quest) > 5:
self.checkRecoveryItemHolderAndType(self.quest[4], self.quest[5])
else:
self.checkRecoveryItemHolderAndType(self.quest[4])
def testRecover(self, progress):
test = random.random() * 100
chance = self.getPercentChance()
numberDone = progress & pow(2, 16) - 1
numberNotDone = progress >> 16
returnTest = None
avgNum2Kill = 1.0 / (chance / 100.0)
if numberNotDone >= avgNum2Kill * 1.5:
chance = 100
elif numberNotDone > avgNum2Kill * 0.5:
diff = float(numberNotDone - avgNum2Kill * 0.5)
luck = 1.0 + abs(diff / (avgNum2Kill * 0.5))
chance *= luck
if test <= chance:
returnTest = 1
numberNotDone = 0
numberDone += 1
else:
returnTest = 0
numberNotDone += 1
numberDone += 0
returnCount = numberNotDone << 16
returnCount += numberDone
return (returnTest, returnCount)
def testDone(self, progress):
numberDone = progress & pow(2, 16) - 1
print 'Quest number done %s' % numberDone
if numberDone >= self.getNumItems():
return 1
else:
return 0
def getNumQuestItems(self):
return self.getNumItems()
def getNumItems(self):
return self.quest[1]
def getItem(self):
return self.quest[2]
def getPercentChance(self):
return self.quest[3]
def getHolder(self):
return self.quest[4]
def getHolderType(self):
if len(self.quest) == 5:
return 'type'
else:
return self.quest[5]
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
forwardProgress = toonProgress & pow(2, 16) - 1
questComplete = forwardProgress >= self.getNumItems()
return getCompleteStatusWithNpc(questComplete, toNpcId, npc)
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
elif self.getNumItems() == 1:
return ''
else:
progress = questDesc[4] & pow(2, 16) - 1
return TTLocalizer.QuestsRecoverItemQuestProgress % {'progress': progress,
'numItems': self.getNumItems()}
def getObjectiveStrings(self):
holder = self.getHolder()
holderType = self.getHolderType()
if holder == Any:
holderName = TTLocalizer.TheCogs
elif holder == AnyFish:
holderName = TTLocalizer.AFish
elif holderType == 'type':
holderName = SuitBattleGlobals.SuitAttributes[holder]['pluralname']
elif holderType == 'level':
holderName = TTLocalizer.QuestsRecoverItemQuestHolderString % {'level': TTLocalizer.Level,
'holder': holder,
'cogs': TTLocalizer.Cogs}
elif holderType == 'track':
if holder == 'c':
holderName = TTLocalizer.BossbotP
elif holder == 's':
holderName = TTLocalizer.SellbotP
elif holder == 'm':
holderName = TTLocalizer.CashbotP
elif holder == 'l':
holderName = TTLocalizer.LawbotP
item = self.getItem()
num = self.getNumItems()
if num == 1:
itemName = ItemDict[item][2] + ItemDict[item][0]
else:
itemName = TTLocalizer.QuestsItemNameAndNum % {'num': TTLocalizer.getLocalNum(num),
'name': ItemDict[item][1]}
return [itemName, holderName]
def getString(self):
return TTLocalizer.QuestsRecoverItemQuestString % {'item': self.getObjectiveStrings()[0],
'holder': self.getObjectiveStrings()[1]}
def getSCStrings(self, toNpcId, progress):
item = self.getItem()
num = self.getNumItems()
forwardProgress = progress & pow(2, 16) - 1
if forwardProgress >= self.getNumItems():
if num == 1:
itemName = ItemDict[item][2] + ItemDict[item][0]
else:
itemName = TTLocalizer.QuestsItemNameAndNum % {'num': TTLocalizer.getLocalNum(num),
'name': ItemDict[item][1]}
if toNpcId == ToonHQ:
strings = [TTLocalizer.QuestsRecoverItemQuestReturnToHQSCString % itemName, TTLocalizer.QuestsRecoverItemQuestGoToHQSCString]
elif toNpcId:
npcName, hoodName, buildingArticle, buildingName, toStreet, streetName, isInPlayground = getNpcInfo(toNpcId)
strings = [TTLocalizer.QuestsRecoverItemQuestReturnToSCString % {'item': itemName,
'npcName': npcName}]
if isInPlayground:
strings.append(TTLocalizer.QuestsRecoverItemQuestGoToPlaygroundSCString % hoodName)
else:
strings.append(TTLocalizer.QuestsRecoverItemQuestGoToStreetSCString % {'to': toStreet,
'street': streetName,
'hood': hoodName})
strings.extend([TTLocalizer.QuestsRecoverItemQuestVisitBuildingSCString % (buildingArticle, buildingName), TTLocalizer.QuestsRecoverItemQuestWhereIsBuildingSCString % (buildingArticle, buildingName)])
return strings
holder = self.getHolder()
holderType = self.getHolderType()
locName = self.getLocationName()
if holder == Any:
holderName = TTLocalizer.TheCogs
elif holder == AnyFish:
holderName = TTLocalizer.TheFish
elif holderType == 'type':
holderName = SuitBattleGlobals.SuitAttributes[holder]['pluralname']
elif holderType == 'level':
holderName = TTLocalizer.QuestsRecoverItemQuestHolderString % {'level': TTLocalizer.Level,
'holder': holder,
'cogs': TTLocalizer.Cogs}
elif holderType == 'track':
if holder == 'c':
holderName = TTLocalizer.BossbotP
elif holder == 's':
holderName = TTLocalizer.SellbotP
elif holder == 'm':
holderName = TTLocalizer.CashbotP
elif holder == 'l':
holderName = TTLocalizer.LawbotP
if num == 1:
itemName = ItemDict[item][2] + ItemDict[item][0]
else:
itemName = TTLocalizer.QuestsItemNameAndNum % {'num': TTLocalizer.getLocalNum(num),
'name': ItemDict[item][1]}
return TTLocalizer.QuestsRecoverItemQuestRecoverFromSCString % {'item': itemName,
'holder': holderName,
'loc': locName}
def getHeadlineString(self):
return TTLocalizer.QuestsRecoverItemQuestHeadline
def doesCogCount(self, avId, cogDict, zoneId):
questCogType = self.getHolder()
return (questCogType is Any or questCogType is cogDict[self.getHolderType()]) and avId in cogDict['activeToons'] and self.isLocationMatch(zoneId)
class TrackChoiceQuest(Quest):
def __init__(self, id, quest):
Quest.__init__(self, id, quest)
self.checkTrackChoice(self.quest[0])
self.checkTrackChoice(self.quest[1])
def getChoices(self):
return (self.quest[0], self.quest[1])
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
if npc and npcMatches(toNpcId, npc):
return COMPLETE
else:
return INCOMPLETE_WRONG_NPC
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
else:
return NotChosenString
def getObjectiveStrings(self):
trackA, trackB = self.getChoices()
trackAName = ToontownBattleGlobals.Tracks[trackA].capitalize()
trackBName = ToontownBattleGlobals.Tracks[trackB].capitalize()
return [trackAName, trackBName]
def getString(self):
return TTLocalizer.QuestsTrackChoiceQuestString % {'trackA': self.getObjectiveStrings()[0],
'trackB': self.getObjectiveStrings()[1]}
def getSCStrings(self, toNpcId, progress):
trackA, trackB = self.getChoices()
trackAName = ToontownBattleGlobals.Tracks[trackA].capitalize()
trackBName = ToontownBattleGlobals.Tracks[trackB].capitalize()
return [TTLocalizer.QuestsTrackChoiceQuestSCString % {'trackA': trackAName,
'trackB': trackBName}, TTLocalizer.QuestsTrackChoiceQuestMaybeSCString % trackAName, TTLocalizer.QuestsTrackChoiceQuestMaybeSCString % trackBName] + getVisitSCStrings(toNpcId)
def getHeadlineString(self):
return TTLocalizer.QuestsTrackChoiceQuestHeadline
class FriendQuest(Quest):
def filterFunc(avatar):
if len(avatar.getFriendsList()) == 0:
return 1
else:
return 0
filterFunc = staticmethod(filterFunc)
def __init__(self, id, quest):
Quest.__init__(self, id, quest)
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
questComplete = toonProgress >= 1 or len(av.getFriendsList()) > 0
return getCompleteStatusWithNpc(questComplete, toNpcId, npc)
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
else:
return ''
def getString(self):
return TTLocalizer.QuestsFriendQuestString
def getSCStrings(self, toNpcId, progress):
if progress:
return getFinishToonTaskSCStrings(toNpcId)
return TTLocalizer.QuestsFriendQuestSCString
def getHeadlineString(self):
return TTLocalizer.QuestsFriendQuestHeadline
def getObjectiveStrings(self):
return [TTLocalizer.QuestsFriendQuestString]
class TrolleyQuest(Quest):
def __init__(self, id, quest):
Quest.__init__(self, id, quest)
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
questComplete = toonProgress >= 1
return getCompleteStatusWithNpc(questComplete, toNpcId, npc)
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
else:
return ''
def getString(self):
return TTLocalizer.QuestsFriendQuestString
def getSCStrings(self, toNpcId, progress):
if progress:
return getFinishToonTaskSCStrings(toNpcId)
return TTLocalizer.QuestsTrolleyQuestSCString
def getHeadlineString(self):
return TTLocalizer.QuestsTrolleyQuestHeadline
def getObjectiveStrings(self):
return [TTLocalizer.QuestsTrolleyQuestString]
class MailboxQuest(Quest):
def __init__(self, id, quest):
Quest.__init__(self, id, quest)
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
questComplete = toonProgress >= 1
return getCompleteStatusWithNpc(questComplete, toNpcId, npc)
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
else:
return ''
def getString(self):
return TTLocalizer.QuestsMailboxQuestString
def getSCStrings(self, toNpcId, progress):
if progress:
return getFinishToonTaskSCStrings(toNpcId)
return TTLocalizer.QuestsMailboxQuestSCString
def getHeadlineString(self):
return TTLocalizer.QuestsMailboxQuestHeadline
def getObjectiveStrings(self):
return [TTLocalizer.QuestsMailboxQuestString]
class PhoneQuest(Quest):
def __init__(self, id, quest):
Quest.__init__(self, id, quest)
def getCompletionStatus(self, av, questDesc, npc = None):
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
questComplete = toonProgress >= 1
return getCompleteStatusWithNpc(questComplete, toNpcId, npc)
def getProgressString(self, avatar, questDesc):
if self.getCompletionStatus(avatar, questDesc) == COMPLETE:
return CompleteString
else:
return ''
def getString(self):
return TTLocalizer.QuestsPhoneQuestString
def getSCStrings(self, toNpcId, progress):
if progress:
return getFinishToonTaskSCStrings(toNpcId)
return TTLocalizer.QuestsPhoneQuestSCString
def getHeadlineString(self):
return TTLocalizer.QuestsPhoneQuestHeadline
def getObjectiveStrings(self):
return [TTLocalizer.QuestsPhoneQuestString]
DefaultDialog = {GREETING: DefaultGreeting,
QUEST: DefaultQuest,
INCOMPLETE: DefaultIncomplete,
INCOMPLETE_PROGRESS: DefaultIncompleteProgress,
INCOMPLETE_WRONG_NPC: DefaultIncompleteWrongNPC,
COMPLETE: DefaultComplete,
LEAVING: DefaultLeaving}
def getQuestFromNpcId(id):
return QuestDict.get(id)[QuestDictFromNpcIndex]
def getQuestToNpcId(id):
return QuestDict.get(id)[QuestDictToNpcIndex]
def getQuestDialog(id):
return QuestDict.get(id)[QuestDictDialogIndex]
def getQuestReward(id, av):
baseRewardId = QuestDict.get(id)[QuestDictRewardIndex]
return transformReward(baseRewardId, av)
def isQuestJustForFun(questId, rewardId):
questEntry = QuestDict.get(questId)
if questEntry:
tier = questEntry[QuestDictTierIndex]
return isRewardOptional(tier, rewardId)
else:
return False
NoRewardTierZeroQuests = (101, 110, 120, 121, 130, 131, 140, 141, 142, 145, 150, 160, 161, 162, 163)
RewardTierZeroQuests = ()
PreClarabelleQuestIds = NoRewardTierZeroQuests + RewardTierZeroQuests
QuestDict = {
101: (TT_TIER, Start, (CogQuest, Anywhere, 1, 'f'), Any, ToonHQ, NA, 110, DefaultDialog),
110: (TT_TIER, Cont, (TrolleyQuest,), Any, ToonHQ, NA, (120, 130, 140, 145), DefaultDialog),
120: (TT_TIER, Cont, (DeliverItemQuest, 5), ToonHQ, 2002, NA, 121, TTLocalizer.QuestDialogDict[120]),
121: (TT_TIER, Cont, (RecoverItemQuest, ToontownGlobals.ToontownCentral, 1, 2, VeryEasy, Any, 'type'), Same, 2002, NA, 142, TTLocalizer.QuestDialogDict[121]),
130: (TT_TIER, Cont, (DeliverItemQuest, 6), ToonHQ, 2003, NA, 131, TTLocalizer.QuestDialogDict[130]),
131: (TT_TIER, Cont, (RecoverItemQuest, ToontownGlobals.ToontownCentral, 1, 3, VeryEasy, Any, 'type'), Same, 2003, NA, 142, TTLocalizer.QuestDialogDict[131]),
140: (TT_TIER, Cont, (DeliverItemQuest, 4), ToonHQ, 2005, NA, 141, TTLocalizer.QuestDialogDict[140]),
141: (TT_TIER, Cont, (RecoverItemQuest, ToontownGlobals.ToontownCentral, 1, 1, VeryEasy, Any, 'type'), Same, 2005, NA, 142, TTLocalizer.QuestDialogDict[141]),
142: (TT_TIER, Cont, (VisitQuest,), Same, ToonHQ, NA, 150, TTLocalizer.QuestDialogDict[142]),
145: (TT_TIER, Cont, (RecoverItemQuest, ToontownGlobals.ToontownCentral, 1, 20, VeryEasy, Any, 'type'), ToonHQ, ToonHQ, NA, 150, DefaultDialog),
150: (TT_TIER, Cont, (FriendQuest,), Same, Same, NA, 175, DefaultDialog),
160: (TT_TIER, OBSOLETE, (CogTrackQuest, ToontownGlobals.ToontownCentral, 3, 'c'), Same, ToonHQ, NA, 175, TTLocalizer.QuestDialogDict[160]),
161: (TT_TIER, OBSOLETE, (CogTrackQuest, ToontownGlobals.ToontownCentral, 3, 'l'), Same, ToonHQ, NA, 175, TTLocalizer.QuestDialogDict[161]),
162: (TT_TIER, OBSOLETE, (CogTrackQuest, ToontownGlobals.ToontownCentral, 3, 's'), Same, ToonHQ, NA, 175, TTLocalizer.QuestDialogDict[162]),
163: (TT_TIER, OBSOLETE, (CogTrackQuest, ToontownGlobals.ToontownCentral, 3, 'm'), Same, ToonHQ, NA, 175, TTLocalizer.QuestDialogDict[163]),
175: (TT_TIER, Cont, (PhoneQuest,), Same, ToonHQ, 100, NA, TTLocalizer.QuestDialogDict[175]),
164: (TT_TIER + 1, Start, (VisitQuest,), Any, 2001, NA, 165, TTLocalizer.QuestDialogDict[164]),
165: (TT_TIER + 1, Start, (CogQuest, Anywhere, 4, Any), 2001, Same, NA, (166, 167, 168, 169), TTLocalizer.QuestDialogDict[165]),
166: (TT_TIER + 1, Cont, (CogTrackQuest, Anywhere, 4, 'c'), Same, Same, NA, 170, TTLocalizer.QuestDialogDict[166]),
167: (TT_TIER + 1, Cont, (CogTrackQuest, Anywhere, 4, 'l'), Same, Same, NA, 170, TTLocalizer.QuestDialogDict[167]),
168: (TT_TIER + 1, Cont, (CogTrackQuest, Anywhere, 4, 's'), Same, Same, NA, 170, TTLocalizer.QuestDialogDict[168]),
169: (TT_TIER + 1, Cont, (CogTrackQuest, Anywhere, 4, 'm'), Same, Same, NA, 170, TTLocalizer.QuestDialogDict[169]),
170: (TT_TIER + 1, Cont, (VisitQuest,), Same, 2005, NA, 400, TTLocalizer.QuestDialogDict[170]),
171: (TT_TIER + 1, Cont, (VisitQuest,), Same, 2311, NA, 400, TTLocalizer.QuestDialogDict[171]),
172: (TT_TIER + 1, Cont, (VisitQuest,), Same, 2119, NA, 400, TTLocalizer.QuestDialogDict[172]),
400: (TT_TIER + 1, Cont, (TrackChoiceQuest, ToontownBattleGlobals.SOUND_TRACK, ToontownBattleGlobals.HEAL_TRACK), Same, Same, 400, NA, TTLocalizer.QuestDialogDict[400]),
1001: (TT_TIER + 2, Start, (CogQuest, ToontownGlobals.ToontownCentral, 3, Any), Any, ToonHQ, Any, NA, DefaultDialog),
1002: (TT_TIER + 2, Start, (CogQuest, ToontownGlobals.ToontownCentral, 4, Any), Any, ToonHQ, Any, NA, DefaultDialog),
1003: (TT_TIER + 2, Start, (CogQuest, ToontownGlobals.ToontownCentral, 5, Any), Any, ToonHQ, Any, NA, DefaultDialog),
1004: (TT_TIER + 2, Start, (CogQuest, ToontownGlobals.ToontownCentral, 6, Any), Any, ToonHQ, Any, NA, DefaultDialog),
1005: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'f'), Any, ToonHQ, Any, NA, DefaultDialog),
1006: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'p'), Any, ToonHQ, Any, NA, DefaultDialog),
1007: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'bf'), Any, ToonHQ, Any, NA, DefaultDialog),
1008: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'b'), Any, ToonHQ, Any, NA, DefaultDialog),
1009: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'sc'), Any, ToonHQ, Any, NA, DefaultDialog),
1010: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'pp'), Any, ToonHQ, Any, NA, DefaultDialog),
1011: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'cc'), Any, ToonHQ, Any, NA, DefaultDialog),
1012: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'tm'), Any, ToonHQ, Any, NA, DefaultDialog),
1013: (TT_TIER + 2, Start, (CogQuest, Anywhere, 4, 'f'), Any, ToonHQ, Any, NA, DefaultDialog),
1014: (TT_TIER + 2, Start, (CogQuest, Anywhere, 4, 'p'), Any, ToonHQ, Any, NA, DefaultDialog),
1015: (TT_TIER + 2, Start, (CogQuest, Anywhere, 4, 'bf'), Any, ToonHQ, Any, NA, DefaultDialog),
1016: (TT_TIER + 2, Start, (CogQuest, Anywhere, 4, 'b'), Any, ToonHQ, Any, NA, DefaultDialog),
1017: (TT_TIER + 2, Start, (CogQuest, Anywhere, 1, 'ym'), Any, ToonHQ, Any, NA, DefaultDialog),
1018: (TT_TIER + 2, Start, (CogQuest, Anywhere, 1, 'nd'), Any, ToonHQ, Any, NA, DefaultDialog),
1019: (TT_TIER + 2, Start, (CogQuest, Anywhere, 1, 'tw'), Any, ToonHQ, Any, NA, DefaultDialog),
1020: (TT_TIER + 2, Start, (CogQuest, Anywhere, 1, 'dt'), Any, ToonHQ, Any, NA, DefaultDialog),
1021: (TT_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.ToontownCentral, 2, 2), Any, ToonHQ, Any, NA, DefaultDialog),
1022: (TT_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.ToontownCentral, 6, 2), Any, ToonHQ, Any, NA, DefaultDialog),
1023: (TT_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.ToontownCentral, 3, 2), Any, ToonHQ, Any, NA, DefaultDialog),
1024: (TT_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.ToontownCentral, 4, 2), Any, ToonHQ, Any, NA, DefaultDialog),
1025: (TT_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.ToontownCentral, 4, 3), Any, ToonHQ, Any, NA, DefaultDialog),
1026: (TT_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.ToontownCentral, 6, 3), Any, ToonHQ, Any, NA, DefaultDialog),
1027: (TT_TIER + 2, Start, (CogTrackQuest, ToontownGlobals.ToontownCentral, 2, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
1028: (TT_TIER + 2, Start, (CogTrackQuest, ToontownGlobals.ToontownCentral, 2, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
1029: (TT_TIER + 2, Start, (CogTrackQuest, ToontownGlobals.ToontownCentral, 2, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
1030: (TT_TIER + 2, Start, (CogTrackQuest, ToontownGlobals.ToontownCentral, 2, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
1031: (TT_TIER + 2, Start, (CogTrackQuest, ToontownGlobals.ToontownCentral, 3, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
1032: (TT_TIER + 2, Start, (CogTrackQuest, ToontownGlobals.ToontownCentral, 3, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
1033: (TT_TIER + 2, Start, (CogTrackQuest, ToontownGlobals.ToontownCentral, 3, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
1034: (TT_TIER + 2, Start, (CogTrackQuest, ToontownGlobals.ToontownCentral, 3, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
1035: (TT_TIER + 2, Start, (CogTrackQuest, ToontownGlobals.ToontownCentral, 5, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
1036: (TT_TIER + 2, Start, (CogTrackQuest, ToontownGlobals.ToontownCentral, 5, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
1037: (TT_TIER + 2, Start, (CogTrackQuest, ToontownGlobals.ToontownCentral, 5, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
1038: (TT_TIER + 2, Start, (CogTrackQuest, ToontownGlobals.ToontownCentral, 5, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
1039: (TT_TIER + 2, Start, (VisitQuest,), Any, 2135, NA, (1041, 1042, 1043), TTLocalizer.QuestDialogDict[1039]),
1040: (TT_TIER + 2, Start, (VisitQuest,), Any, 2207, NA, (1041, 1042, 1043), TTLocalizer.QuestDialogDict[1040]),
1041: (TT_TIER + 2, Cont, (VisitQuest,), Same, 2211, NA, 1044, TTLocalizer.QuestDialogDict[1041]),
1042: (TT_TIER + 2, Cont, (VisitQuest,), Same, 2209, NA, 1044, TTLocalizer.QuestDialogDict[1042]),
1043: (TT_TIER + 2, Cont, (VisitQuest,), Same, 2210, NA, 1044, TTLocalizer.QuestDialogDict[1043]),
1044: (TT_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 4, 7, VeryEasy, Any, 'type'), Same, Same, NA, 1045, TTLocalizer.QuestDialogDict[1044]),
1045: (TT_TIER + 2, Cont, (DeliverItemQuest, 8), Same, ToonHQ, 300, NA, TTLocalizer.QuestDialogDict[1045]),
1046: (TT_TIER + 2, Start, (VisitQuest,), Any, 2127, NA, 1047, TTLocalizer.QuestDialogDict[1046]),
1047: (TT_TIER + 2, Start, (RecoverItemQuest, Anywhere, 5, 9, VeryEasy, 'm', 'track'), 2127, Same, NA, 1048, TTLocalizer.QuestDialogDict[1047]),
1048: (TT_TIER + 2, Cont, (DeliverItemQuest, 9), Same, 2131, NA, 1049, TTLocalizer.QuestDialogDict[1048]),
1049: (TT_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 10, 2007, VeryEasy, 3, 'level'), Same, Same, NA, 1053, TTLocalizer.QuestDialogDict[1049]),
1053: (TT_TIER + 2, Cont, (DeliverItemQuest, 9), Same, 2127, 700, NA, TTLocalizer.QuestDialogDict[1053]),
1054: (TT_TIER + 2, Start, (VisitQuest,), Any, 2128, NA, 1055, TTLocalizer.QuestDialogDict[1054]),
1055: (TT_TIER + 2, Start, (RecoverItemQuest, Anywhere, 4, 10, Easy, AnyFish), 2128, Same, NA, 1056, TTLocalizer.QuestDialogDict[1055]),
1056: (TT_TIER + 2, Cont, (VisitQuest,), Same, 2213, NA, 1057, TTLocalizer.QuestDialogDict[1056]),
1057: (TT_TIER + 2, Cont, (CogLevelQuest, ToontownGlobals.ToontownCentral, 6, 3), Same, Same, NA, 1058, TTLocalizer.QuestDialogDict[1057]),
1058: (TT_TIER + 2, Cont, (DeliverItemQuest, 11), Same, 2128, 200, NA, TTLocalizer.QuestDialogDict[1058]),
1059: (TT_TIER + 2, Start, (VisitQuest,), Any, 2302, NA, 1060, TTLocalizer.QuestDialogDict[1059]),
1060: (TT_TIER + 2, Start, (RecoverItemQuest, Anywhere, 1, 12, Medium, AnyFish), 2302, Same, NA, 1062, TTLocalizer.QuestDialogDict[1060]),
1061: (TT_TIER + 2, Cont, (CogQuest, ToontownGlobals.ToontownCentral, 6, 'p'), Same, Same, 101, NA, TTLocalizer.QuestDialogDict[1061]),
1062: (TT_TIER + 2, Cont, (CogQuest, ToontownGlobals.ToontownCentral, 6, 'b'), Same, Same, 101, NA, TTLocalizer.QuestDialogDict[1062]),
900: (TT_TIER + 3, Start, (VisitQuest,), Any, 2201, NA, 1063, TTLocalizer.QuestDialogDict[900]),
1063: (TT_TIER + 3, Start, (RecoverItemQuest, Anywhere, 1, 13, Medium, 3, 'level'), 2201, Same, NA, 1067, TTLocalizer.QuestDialogDict[1063]),
1067: (TT_TIER + 3, Cont, (DeliverItemQuest, 13), Same, 2112, NA, 1068, TTLocalizer.QuestDialogDict[1067]),
1068: (TT_TIER + 3, Cont, (CogQuest, ToontownGlobals.ToontownCentral, 10, Any), Same, Same, NA, (1069, 1070, 1071), TTLocalizer.QuestDialogDict[1068]),
1069: (TT_TIER + 3, Cont, (RecoverItemQuest, Anywhere, 1, 13, Medium, 'm', 'track'), Same, Same, NA, 1072, TTLocalizer.QuestDialogDict[1069]),
1070: (TT_TIER + 3, Cont, (RecoverItemQuest, Anywhere, 1, 13, Medium, 's', 'track'), Same, Same, NA, 1072, TTLocalizer.QuestDialogDict[1070]),
1071: (TT_TIER + 3, Cont, (RecoverItemQuest, Anywhere, 1, 13, Medium, 'c', 'track'), Same, Same, NA, 1072, TTLocalizer.QuestDialogDict[1071]),
1072: (TT_TIER + 3, Cont, (DeliverItemQuest, 13), Same, 2301, NA, 1073, TTLocalizer.QuestDialogDict[1072]),
1073: (TT_TIER + 3, Cont, (VisitQuest,), Any, 2201, NA, 1074, TTLocalizer.QuestDialogDict[1073]),
1074: (TT_TIER + 3, Cont, (RecoverItemQuest, Anywhere, 1, 13, Hard, Any), Same, Same, NA, 1075, TTLocalizer.QuestDialogDict[1074]),
1075: (TT_TIER + 3, Cont, (DeliverItemQuest, 13), Same, 2301, 900, NA, TTLocalizer.QuestDialogDict[1075]),
1076: (TT_TIER + 2, Start, (VisitQuest,), Any, 2217, NA, 1077, TTLocalizer.QuestDialogDict[1076]),
1077: (TT_TIER + 2, Start, (RecoverItemQuest, Anywhere, 1, 14, Medium, Any), 2217, Same, NA, 1078, TTLocalizer.QuestDialogDict[1077]),
1078: (TT_TIER + 2, Cont, (DeliverItemQuest, 14), Same, 2302, NA, 1079, TTLocalizer.QuestDialogDict[1078]),
1079: (TT_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 1, 15, Easy, 'f'), Same, 2217, NA, 1080, TTLocalizer.QuestDialogDict[1079]),
1092: (TT_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 1, 15, Easy, 'sc'), Same, 2217, NA, 1080, TTLocalizer.QuestDialogDict[1092]),
1080: (TT_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 4, 15, Easy, AnyFish), Same, Same, 500, NA, TTLocalizer.QuestDialogDict[1080]),
1081: (TT_TIER + 2, Start, (VisitQuest,), Any, 2208, NA, 1082, TTLocalizer.QuestDialogDict[1081]),
1082: (TT_TIER + 2, Start, (RecoverItemQuest, Anywhere, 1, 16, Medium, 's', 'track'), 2208, Same, NA, 1083, TTLocalizer.QuestDialogDict[1082]),
1083: (TT_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 1, 17, Medium, 'l', 'track'), Same, Same, NA, 1084, TTLocalizer.QuestDialogDict[1083]),
1084: (TT_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 1, 18, Medium, 'm', 'track'), Same, Same, 102, NA, TTLocalizer.QuestDialogDict[1084]),
1085: (TT_TIER + 2, Start, (VisitQuest,), Any, 2003, NA, 1086, TTLocalizer.QuestDialogDict[1085]),
1086: (TT_TIER + 2, Start, (RecoverItemQuest, Anywhere, 5, 2007, Easy, 2, 'level'), 2003, Same, NA, 1089, TTLocalizer.QuestDialogDict[1086]),
1089: (TT_TIER + 2, Cont, (DeliverItemQuest, 19), Same, ToonHQ, 100, NA, TTLocalizer.QuestDialogDict[1089]),
1090: (TT_TIER + 2, Start, (VisitQuest,), Any, 2119, NA, 1091, TTLocalizer.QuestDialogDict[1090]),
1091: (TT_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.ToontownCentral, 8, 2), 2119, ToonHQ, 101, NA, TTLocalizer.QuestDialogDict[1091]),
1100: (TT_TIER + 2, Start, (CogQuest, ToontownGlobals.ToontownCentral, 10, Any), Any, ToonHQ, NA, 1101, DefaultDialog),
1101: (TT_TIER + 2, Cont, (DeliverItemQuest, 1000), Any, 2004, 1000, NA, DefaultDialog),
1102: (TT_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.ToontownCentral, 8, 3), Any, ToonHQ, NA, 1103, DefaultDialog),
1103: (TT_TIER + 2, Cont, (DeliverItemQuest, 1000), Any, 2004, 1000, NA, DefaultDialog),
1105: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'f'), Any, ToonHQ, Any, NA, DefaultDialog),
1106: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'p'), Any, ToonHQ, Any, NA, DefaultDialog),
1107: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'bf'), Any, ToonHQ, Any, NA, DefaultDialog),
1108: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'b'), Any, ToonHQ, Any, NA, DefaultDialog),
1109: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'sc'), Any, ToonHQ, Any, NA, DefaultDialog),
1110: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'pp'), Any, ToonHQ, Any, NA, DefaultDialog),
1111: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'cc'), Any, ToonHQ, Any, NA, DefaultDialog),
1112: (TT_TIER + 2, Start, (CogQuest, Anywhere, 2, 'tm'), Any, ToonHQ, Any, NA, DefaultDialog),
1205: (TT_TIER + 3, Start, (CogQuest, Anywhere, 4, 'f'), Any, ToonHQ, Any, NA, DefaultDialog),
1206: (TT_TIER + 3, Start, (CogQuest, Anywhere, 4, 'p'), Any, ToonHQ, Any, NA, DefaultDialog),
1207: (TT_TIER + 3, Start, (CogQuest, Anywhere, 4, 'bf'), Any, ToonHQ, Any, NA, DefaultDialog),
1208: (TT_TIER + 3, Start, (CogQuest, Anywhere, 4, 'b'), Any, ToonHQ, Any, NA, DefaultDialog),
1209: (TT_TIER + 3, Start, (CogQuest, Anywhere, 4, 'sc'), Any, ToonHQ, Any, NA, DefaultDialog),
1210: (TT_TIER + 3, Start, (CogQuest, Anywhere, 4, 'pp'), Any, ToonHQ, Any, NA, DefaultDialog),
1211: (TT_TIER + 3, Start, (CogQuest, Anywhere, 4, 'cc'), Any, ToonHQ, Any, NA, DefaultDialog),
1212: (TT_TIER + 3, Start, (CogQuest, Anywhere, 4, 'tm'), Any, ToonHQ, Any, NA, DefaultDialog),
401: (DD_TIER, Start, (TrackChoiceQuest, ToontownBattleGlobals.DROP_TRACK, ToontownBattleGlobals.LURE_TRACK), Any, ToonHQ, 400, NA, TTLocalizer.QuestDialogDict[401]),
2001: (DD_TIER, Start, (CogQuest, Anywhere, 3, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2002: (DD_TIER, Start, (CogQuest, Anywhere, 4, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2003: (DD_TIER, Start, (CogQuest, Anywhere, 5, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2004: (DD_TIER, Start, (CogQuest, Anywhere, 6, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2005: (DD_TIER, Start, (CogQuest, Anywhere, 7, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2006: (DD_TIER, Start, (CogQuest, Anywhere, 8, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2007: (DD_TIER, Start, (CogQuest, Anywhere, 9, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2008: (DD_TIER, Start, (CogQuest, Anywhere, 10, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2009: (DD_TIER, Start, (CogQuest, Anywhere, 12, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2010: (DD_TIER, Start, (CogLevelQuest, Anywhere, 2, 3), Any, ToonHQ, Any, NA, DefaultDialog),
2011: (DD_TIER, Start, (CogLevelQuest, Anywhere, 3, 3), Any, ToonHQ, Any, NA, DefaultDialog),
2012: (DD_TIER, Start, (CogLevelQuest, Anywhere, 2, 4), Any, ToonHQ, Any, NA, DefaultDialog),
2013: (DD_TIER, Start, (CogLevelQuest, Anywhere, 4, 4), Any, ToonHQ, Any, NA, DefaultDialog),
2014: (DD_TIER, Start, (CogLevelQuest, Anywhere, 4, 5), Any, ToonHQ, Any, NA, DefaultDialog),
2015: (DD_TIER, Start, (CogLevelQuest, Anywhere, 5, 5), Any, ToonHQ, Any, NA, DefaultDialog),
2816: (DD_TIER, Start, (CogLevelQuest, Anywhere, 4, 6), Any, ToonHQ, Any, NA, DefaultDialog),
2817: (DD_TIER, Start, (CogLevelQuest, Anywhere, 5, 6), Any, ToonHQ, Any, NA, DefaultDialog),
2818: (DD_TIER, Start, (CogLevelQuest, Anywhere, 6, 6), Any, ToonHQ, Any, NA, DefaultDialog),
2819: (DD_TIER, Start, (CogLevelQuest, Anywhere, 7, 6), Any, ToonHQ, Any, NA, DefaultDialog),
2020: (DD_TIER, Start, (CogQuest, Anywhere, 10, Any), Any, ToonHQ, NA, 2021, DefaultDialog),
2021: (DD_TIER, Cont, (DeliverItemQuest, 1000), Any, 1007, 1000, NA, DefaultDialog),
2101: (DD_TIER + 1, Start, (CogQuest, ToontownGlobals.DonaldsDock, 3, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2102: (DD_TIER + 1, Start, (CogQuest, ToontownGlobals.DonaldsDock, 4, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2103: (DD_TIER + 1, Start, (CogQuest, ToontownGlobals.DonaldsDock, 5, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2104: (DD_TIER + 1, Start, (CogQuest, Anywhere, 6, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2105: (DD_TIER + 1, Start, (CogQuest, Anywhere, 7, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2106: (DD_TIER + 1, Start, (CogQuest, Anywhere, 8, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2107: (DD_TIER + 1, Start, (CogQuest, Anywhere, 6, 'f'), Any, ToonHQ, Any, NA, DefaultDialog),
2108: (DD_TIER + 1, Start, (CogQuest, Anywhere, 4, 'p'), Any, ToonHQ, Any, NA, DefaultDialog),
2109: (DD_TIER + 1, Start, (CogQuest, Anywhere, 4, 'ym'), Any, ToonHQ, Any, NA, DefaultDialog),
2110: (DD_TIER + 1, Start, (CogQuest, Anywhere, 3, 'mm'), Any, ToonHQ, Any, NA, DefaultDialog),
2111: (DD_TIER + 1, Start, (CogQuest, Anywhere, 2, 'ds'), Any, ToonHQ, Any, NA, DefaultDialog),
2112: (DD_TIER + 1, Start, (CogQuest, Anywhere, 1, 'hh'), Any, ToonHQ, Any, NA, DefaultDialog),
2113: (DD_TIER + 1, Start, (CogQuest, Anywhere, 6, 'cc'), Any, ToonHQ, Any, NA, DefaultDialog),
2114: (DD_TIER + 1, Start, (CogQuest, Anywhere, 4, 'tm'), Any, ToonHQ, Any, NA, DefaultDialog),
2115: (DD_TIER + 1, Start, (CogQuest, Anywhere, 4, 'nd'), Any, ToonHQ, Any, NA, DefaultDialog),
2116: (DD_TIER + 1, Start, (CogQuest, Anywhere, 3, 'gh'), Any, ToonHQ, Any, NA, DefaultDialog),
2117: (DD_TIER + 1, Start, (CogQuest, Anywhere, 2, 'ms'), Any, ToonHQ, Any, NA, DefaultDialog),
2118: (DD_TIER + 1, Start, (CogQuest, Anywhere, 1, 'tf'), Any, ToonHQ, Any, NA, DefaultDialog),
2119: (DD_TIER + 1, Start, (CogQuest, Anywhere, 6, 'sc'), Any, ToonHQ, Any, NA, DefaultDialog),
2120: (DD_TIER + 1, Start, (CogQuest, Anywhere, 4, 'pp'), Any, ToonHQ, Any, NA, DefaultDialog),
2121: (DD_TIER + 1, Start, (CogQuest, Anywhere, 4, 'tw'), Any, ToonHQ, Any, NA, DefaultDialog),
2122: (DD_TIER + 1, Start, (CogQuest, Anywhere, 3, 'bc'), Any, ToonHQ, Any, NA, DefaultDialog),
2123: (DD_TIER + 1, Start, (CogQuest, Anywhere, 2, 'nc'), Any, ToonHQ, Any, NA, DefaultDialog),
2124: (DD_TIER + 1, Start, (CogQuest, Anywhere, 1, 'mb'), Any, ToonHQ, Any, NA, DefaultDialog),
2125: (DD_TIER + 1, Start, (CogQuest, Anywhere, 6, 'bf'), Any, ToonHQ, Any, NA, DefaultDialog),
2126: (DD_TIER + 1, Start, (CogQuest, Anywhere, 4, 'b'), Any, ToonHQ, Any, NA, DefaultDialog),
2127: (DD_TIER + 1, Start, (CogQuest, Anywhere, 4, 'dt'), Any, ToonHQ, Any, NA, DefaultDialog),
2128: (DD_TIER + 1, Start, (CogQuest, Anywhere, 3, 'ac'), Any, ToonHQ, Any, NA, DefaultDialog),
2129: (DD_TIER + 1, Start, (CogQuest, Anywhere, 2, 'bs'), Any, ToonHQ, Any, NA, DefaultDialog),
2130: (DD_TIER + 1, Start, (CogQuest, Anywhere, 1, 'sd'), Any, ToonHQ, Any, NA, DefaultDialog),
2131: (DD_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.DonaldsDock, 2, 3), Any, ToonHQ, Any, NA, DefaultDialog),
2132: (DD_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.DonaldsDock, 3, 3), Any, ToonHQ, Any, NA, DefaultDialog),
2133: (DD_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.DonaldsDock, 2, 4), Any, ToonHQ, Any, NA, DefaultDialog),
2134: (DD_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.DonaldsDock, 4, 4), Any, ToonHQ, Any, NA, DefaultDialog),
2135: (DD_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.DonaldsDock, 4, 5), Any, ToonHQ, Any, NA, DefaultDialog),
2136: (DD_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.DonaldsDock, 5, 5), Any, ToonHQ, Any, NA, DefaultDialog),
2137: (DD_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.DonaldsDock, 4, 6), Any, ToonHQ, Any, NA, DefaultDialog),
2138: (DD_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.DonaldsDock, 6, 6), Any, ToonHQ, Any, NA, DefaultDialog),
2139: (DD_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.DonaldsDock, 3, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
2140: (DD_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.DonaldsDock, 3, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
2141: (DD_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.DonaldsDock, 3, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
2142: (DD_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.DonaldsDock, 3, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
2143: (DD_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.DonaldsDock, 5, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
2144: (DD_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.DonaldsDock, 5, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
2145: (DD_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.DonaldsDock, 5, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
2146: (DD_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.DonaldsDock, 5, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
2147: (DD_TIER + 1, Start, (CogTrackQuest, Anywhere, 7, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
2148: (DD_TIER + 1, Start, (CogTrackQuest, Anywhere, 7, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
2149: (DD_TIER + 1, Start, (CogTrackQuest, Anywhere, 7, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
2150: (DD_TIER + 1, Start, (CogTrackQuest, Anywhere, 7, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
2151: (DD_TIER + 1, Start, (BuildingQuest, Anywhere, 1, Any, 1, 0), Any, ToonHQ, Any, NA, DefaultDialog),
2152: (DD_TIER + 1, Start, (BuildingQuest, Anywhere, 1, Any, 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
2153: (DD_TIER + 1, Start, (BuildingQuest, Anywhere, 2, Any, 1, 0), Any, ToonHQ, Any, NA, DefaultDialog),
2154: (DD_TIER + 1, Start, (BuildingQuest, Anywhere, 2, Any, 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
2155: (DD_TIER + 1, Start, (BuildingQuest, Anywhere, 1, 'm', 1, 0), Any, ToonHQ, Any, NA, DefaultDialog),
2156: (DD_TIER + 1, Start, (BuildingQuest, Anywhere, 1, 's', 1, 0), Any, ToonHQ, Any, NA, DefaultDialog),
2157: (DD_TIER + 1, Start, (BuildingQuest, Anywhere, 1, 'c', 1, 0), Any, ToonHQ, Any, NA, DefaultDialog),
2158: (DD_TIER + 1, Start, (BuildingQuest, Anywhere, 1, 'l', 1, 0), Any, ToonHQ, Any, NA, DefaultDialog),
2159: (DD_TIER + 1, Start, (DeliverGagQuest, 2, ToontownBattleGlobals.THROW_TRACK, 1), Any, Any, Any, NA, DefaultDialog),
2160: (DD_TIER + 1, Start, (DeliverGagQuest, 1, ToontownBattleGlobals.SQUIRT_TRACK, 1), Any, Any, Any, NA, DefaultDialog),
2161: (DD_TIER + 1, Start, (DeliverGagQuest, 1, ToontownBattleGlobals.SQUIRT_TRACK, 2), Any, Any, Any, NA, DefaultDialog),
2162: (DD_TIER + 1, Start, (DeliverGagQuest, 2, ToontownBattleGlobals.THROW_TRACK, 2), Any, Any, Any, NA, DefaultDialog),
2201: (DD_TIER + 1, Start, (VisitQuest,), Any, 1101, NA, 2202, TTLocalizer.QuestDialogDict[2201]),
2202: (DD_TIER + 1, Start, (RecoverItemQuest, Anywhere, 1, 2001, Medium, 'pp'), 1101, Same, 101, NA, TTLocalizer.QuestDialogDict[2202]),
2203: (DD_TIER + 1, Start, (VisitQuest,), Any, 1102, NA, 2204, TTLocalizer.QuestDialogDict[2203]),
2204: (DD_TIER + 1, Start, (DeliverItemQuest, 2002), 1102, 1104, NA, 2205, TTLocalizer.QuestDialogDict[2204]),
2205: (DD_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 2003, Medium, 'f'), Same, Same, NA, 2206, TTLocalizer.QuestDialogDict[2205]),
2206: (DD_TIER + 1, Cont, (DeliverItemQuest, 2004), Same, 1102, 201, NA, TTLocalizer.QuestDialogDict[2206]),
2207: (DD_TIER + 1, Start, (VisitQuest,), Any, 1201, NA, 2208, TTLocalizer.QuestDialogDict[2207]),
2208: (DD_TIER + 1, Start, (RecoverItemQuest, Anywhere, 1, 2005, Easy, 'bs'), 1201, Same, 701, NA, TTLocalizer.QuestDialogDict[2208]),
2209: (DD_TIER + 1, Start, (VisitQuest,), Any, 1302, NA, 2210, TTLocalizer.QuestDialogDict[2209]),
2210: (DD_TIER + 1, Start, (VisitQuest,), 1302, 1301, NA, 2211, TTLocalizer.QuestDialogDict[2210]),
2211: (DD_TIER + 1, Cont, (CogQuest, ToontownGlobals.DonaldsDock, 5, 'mm'), Same, Same, NA, 2212, TTLocalizer.QuestDialogDict[2211]),
2212: (DD_TIER + 1, Cont, (DeliverItemQuest, 2006), Same, 1302, NA, 2213, TTLocalizer.QuestDialogDict[2212]),
2213: (DD_TIER + 1, Cont, (VisitQuest,), Same, 1202, NA, 2214, TTLocalizer.QuestDialogDict[2213]),
2214: (DD_TIER + 1, Cont, (RecoverItemQuest, ToontownGlobals.DonaldsDock, 3, 2007, Hard, Any), Same, Same, NA, 2215, TTLocalizer.QuestDialogDict[2214]),
2215: (DD_TIER + 1, Cont, (DeliverItemQuest, 2008), Same, 1302, 301, NA, TTLocalizer.QuestDialogDict[2215]),
2500: (DD_TIER + 1, Start, (CogQuest, ToontownGlobals.DonaldsDock, 15, Any), Any, ToonHQ, NA, 2501, DefaultDialog),
2501: (DD_TIER + 1, Cont, (DeliverItemQuest, 1000), Any, 1007, 1000, NA, DefaultDialog),
2801: (DD_TIER + 2, Start, (CogQuest, Anywhere, 3, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2802: (DD_TIER + 2, Start, (CogQuest, Anywhere, 4, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2803: (DD_TIER + 2, Start, (CogQuest, Anywhere, 5, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2804: (DD_TIER + 2, Start, (CogQuest, Anywhere, 6, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2805: (DD_TIER + 2, Start, (CogQuest, Anywhere, 7, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2806: (DD_TIER + 2, Start, (CogQuest, Anywhere, 8, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2807: (DD_TIER + 2, Start, (CogQuest, Anywhere, 9, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2808: (DD_TIER + 2, Start, (CogQuest, Anywhere, 10, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2809: (DD_TIER + 2, Start, (CogQuest, Anywhere, 12, Any), Any, ToonHQ, Any, NA, DefaultDialog),
2810: (DD_TIER + 2, Start, (CogLevelQuest, Anywhere, 2, 3), Any, ToonHQ, Any, NA, DefaultDialog),
2811: (DD_TIER + 2, Start, (CogLevelQuest, Anywhere, 3, 3), Any, ToonHQ, Any, NA, DefaultDialog),
2812: (DD_TIER + 2, Start, (CogLevelQuest, Anywhere, 2, 4), Any, ToonHQ, Any, NA, DefaultDialog),
2813: (DD_TIER + 2, Start, (CogLevelQuest, Anywhere, 4, 4), Any, ToonHQ, Any, NA, DefaultDialog),
2814: (DD_TIER + 2, Start, (CogLevelQuest, Anywhere, 4, 5), Any, ToonHQ, Any, NA, DefaultDialog),
2815: (DD_TIER + 2, Start, (CogLevelQuest, Anywhere, 5, 5), Any, ToonHQ, Any, NA, DefaultDialog),
2816: (DD_TIER + 2, Start, (CogLevelQuest, Anywhere, 4, 6), Any, ToonHQ, Any, NA, DefaultDialog),
2817: (DD_TIER + 2, Start, (CogLevelQuest, Anywhere, 5, 6), Any, ToonHQ, Any, NA, DefaultDialog),
2818: (DD_TIER + 2, Start, (CogLevelQuest, Anywhere, 6, 6), Any, ToonHQ, Any, NA, DefaultDialog),
2819: (DD_TIER + 2, Start, (CogLevelQuest, Anywhere, 7, 6), Any, ToonHQ, Any, NA, DefaultDialog),
2820: (DD_TIER + 2, Start, (CogQuest, Anywhere, 20, Any), Any, ToonHQ, NA, 2821, DefaultDialog),
2821: (DD_TIER + 2, Cont, (DeliverItemQuest, 1000), Any, 1007, 1000, NA, DefaultDialog),
901: (DD_TIER + 2, Start, (VisitQuest,), Any, 1203, NA, 2902, TTLocalizer.QuestDialogDict[901]),
2902: (DD_TIER + 2, Start, (VisitQuest,), 1203, 1303, NA, 2903, TTLocalizer.QuestDialogDict[2902]),
2903: (DD_TIER + 2, Cont, (DeliverItemQuest, 2009), Same, 1106, NA, 2904, TTLocalizer.QuestDialogDict[2903]),
2904: (DD_TIER + 2, Cont, (DeliverItemQuest, 2010), Same, 1203, NA, 2905, TTLocalizer.QuestDialogDict[2904]),
2905: (DD_TIER + 2, Cont, (VisitQuest, 2009), Same, 1105, NA, 2906, TTLocalizer.QuestDialogDict[2905]),
2906: (DD_TIER + 2, Cont, (DeliverGagQuest, 3, ToontownBattleGlobals.SQUIRT_TRACK, 2), Same, Same, NA, 2907, TTLocalizer.QuestDialogDict[2906]),
2907: (DD_TIER + 2, Cont, (DeliverItemQuest, 2011), Same, 1203, NA, (2910, 2915, 2920), TTLocalizer.QuestDialogDict[2907]),
2910: (DD_TIER + 2, Cont, (VisitQuest,), Same, 1107, NA, 2911, TTLocalizer.QuestDialog_2910),
2911: (DD_TIER + 2, Cont, (CogTrackQuest, ToontownGlobals.DonaldsDock, 4, 'm'), Same, Same, NA, 2925, TTLocalizer.QuestDialogDict[2911]),
2915: (DD_TIER + 2, Cont, (VisitQuest,), Same, 1204, NA, 2916, TTLocalizer.QuestDialog_2910),
2916: (DD_TIER + 2, Cont, (CogTrackQuest, ToontownGlobals.DonaldsDock, 2, 's'), Same, Same, NA, 2925, TTLocalizer.QuestDialogDict[2916]),
2920: (DD_TIER + 2, Cont, (VisitQuest,), Same, 1204, NA, 2921, TTLocalizer.QuestDialog_2910),
2921: (DD_TIER + 2, Cont, (CogTrackQuest, ToontownGlobals.DonaldsDock, 6, 'c'), Same, Same, NA, 2925, TTLocalizer.QuestDialogDict[2921]),
2925: (DD_TIER + 2, Cont, (DeliverItemQuest, 2012), Same, 1203, NA, 2926, TTLocalizer.QuestDialogDict[2925]),
2926: (DD_TIER + 2, Cont, (BuildingQuest, ToontownGlobals.DonaldsDock, 1, Any, 2, 0), Same, Same, 900, NA, TTLocalizer.QuestDialogDict[2926]),
3101: (DG_TIER, Start, (CogQuest, ToontownGlobals.DaisyGardens, 8, Any), Any, ToonHQ, Any, NA, DefaultDialog),
3102: (DG_TIER, Start, (CogQuest, ToontownGlobals.DaisyGardens, 10, Any), Any, ToonHQ, Any, NA, DefaultDialog),
3103: (DG_TIER, Start, (CogQuest, ToontownGlobals.DaisyGardens, 12, Any), Any, ToonHQ, Any, NA, DefaultDialog),
3104: (DG_TIER, Start, (CogQuest, Anywhere, 14, Any), Any, ToonHQ, Any, NA, DefaultDialog),
3105: (DG_TIER, Start, (CogQuest, Anywhere, 16, Any), Any, ToonHQ, Any, NA, DefaultDialog),
3106: (DG_TIER, Start, (CogQuest, Anywhere, 18, Any), Any, ToonHQ, Any, NA, DefaultDialog),
3107: (DG_TIER, Start, (CogQuest, Anywhere, 10, 'f'), Any, ToonHQ, Any, NA, DefaultDialog),
3108: (DG_TIER, Start, (CogQuest, Anywhere, 8, 'p'), Any, ToonHQ, Any, NA, DefaultDialog),
3109: (DG_TIER, Start, (CogQuest, Anywhere, 8, 'ym'), Any, ToonHQ, Any, NA, DefaultDialog),
3110: (DG_TIER, Start, (CogQuest, Anywhere, 6, 'mm'), Any, ToonHQ, Any, NA, DefaultDialog),
3111: (DG_TIER, Start, (CogQuest, Anywhere, 6, 'ds'), Any, ToonHQ, Any, NA, DefaultDialog),
3112: (DG_TIER, Start, (CogQuest, Anywhere, 6, 'hh'), Any, ToonHQ, Any, NA, DefaultDialog),
3113: (DG_TIER, Start, (CogQuest, Anywhere, 10, 'cc'), Any, ToonHQ, Any, NA, DefaultDialog),
3114: (DG_TIER, Start, (CogQuest, Anywhere, 8, 'tm'), Any, ToonHQ, Any, NA, DefaultDialog),
3115: (DG_TIER, Start, (CogQuest, Anywhere, 8, 'nd'), Any, ToonHQ, Any, NA, DefaultDialog),
3116: (DG_TIER, Start, (CogQuest, Anywhere, 6, 'gh'), Any, ToonHQ, Any, NA, DefaultDialog),
3117: (DG_TIER, Start, (CogQuest, Anywhere, 6, 'ms'), Any, ToonHQ, Any, NA, DefaultDialog),
3118: (DG_TIER, Start, (CogQuest, Anywhere, 6, 'tf'), Any, ToonHQ, Any, NA, DefaultDialog),
3119: (DG_TIER, Start, (CogQuest, Anywhere, 10, 'sc'), Any, ToonHQ, Any, NA, DefaultDialog),
3120: (DG_TIER, Start, (CogQuest, Anywhere, 8, 'pp'), Any, ToonHQ, Any, NA, DefaultDialog),
3121: (DG_TIER, Start, (CogQuest, Anywhere, 8, 'tw'), Any, ToonHQ, Any, NA, DefaultDialog),
3122: (DG_TIER, Start, (CogQuest, Anywhere, 6, 'bc'), Any, ToonHQ, Any, NA, DefaultDialog),
3123: (DG_TIER, Start, (CogQuest, Anywhere, 6, 'nc'), Any, ToonHQ, Any, NA, DefaultDialog),
3124: (DG_TIER, Start, (CogQuest, Anywhere, 6, 'mb'), Any, ToonHQ, Any, NA, DefaultDialog),
3125: (DG_TIER, Start, (CogQuest, Anywhere, 10, 'bf'), Any, ToonHQ, Any, NA, DefaultDialog),
3126: (DG_TIER, Start, (CogQuest, Anywhere, 8, 'b'), Any, ToonHQ, Any, NA, DefaultDialog),
3127: (DG_TIER, Start, (CogQuest, Anywhere, 8, 'dt'), Any, ToonHQ, Any, NA, DefaultDialog),
3128: (DG_TIER, Start, (CogQuest, Anywhere, 6, 'ac'), Any, ToonHQ, Any, NA, DefaultDialog),
3129: (DG_TIER, Start, (CogQuest, Anywhere, 6, 'bs'), Any, ToonHQ, Any, NA, DefaultDialog),
3130: (DG_TIER, Start, (CogQuest, Anywhere, 6, 'sd'), Any, ToonHQ, Any, NA, DefaultDialog),
3131: (DG_TIER, Start, (CogLevelQuest, Anywhere, 10, 3), Any, ToonHQ, Any, NA, DefaultDialog),
3132: (DG_TIER, Start, (CogLevelQuest, Anywhere, 15, 3), Any, ToonHQ, Any, NA, DefaultDialog),
3133: (DG_TIER, Start, (CogLevelQuest, Anywhere, 8, 4), Any, ToonHQ, Any, NA, DefaultDialog),
3134: (DG_TIER, Start, (CogLevelQuest, Anywhere, 12, 4), Any, ToonHQ, Any, NA, DefaultDialog),
3135: (DG_TIER, Start, (CogLevelQuest, Anywhere, 4, 5), Any, ToonHQ, Any, NA, DefaultDialog),
3136: (DG_TIER, Start, (CogLevelQuest, Anywhere, 6, 5), Any, ToonHQ, Any, NA, DefaultDialog),
3137: (DG_TIER, Start, (CogLevelQuest, Anywhere, 8, 6), Any, ToonHQ, Any, NA, DefaultDialog),
3138: (DG_TIER, Start, (CogLevelQuest, Anywhere, 12, 6), Any, ToonHQ, Any, NA, DefaultDialog),
3139: (DG_TIER, Start, (CogTrackQuest, ToontownGlobals.DaisyGardens, 6, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
3140: (DG_TIER, Start, (CogTrackQuest, ToontownGlobals.DaisyGardens, 6, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
3141: (DG_TIER, Start, (CogTrackQuest, ToontownGlobals.DaisyGardens, 6, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
3142: (DG_TIER, Start, (CogTrackQuest, ToontownGlobals.DaisyGardens, 6, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
3143: (DG_TIER, Start, (CogTrackQuest, ToontownGlobals.DaisyGardens, 10, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
3144: (DG_TIER, Start, (CogTrackQuest, ToontownGlobals.DaisyGardens, 10, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
3145: (DG_TIER, Start, (CogTrackQuest, ToontownGlobals.DaisyGardens, 10, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
3146: (DG_TIER, Start, (CogTrackQuest, ToontownGlobals.DaisyGardens, 10, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
3147: (DG_TIER, Start, (CogTrackQuest, Anywhere, 14, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
3148: (DG_TIER, Start, (CogTrackQuest, Anywhere, 14, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
3149: (DG_TIER, Start, (CogTrackQuest, Anywhere, 14, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
3150: (DG_TIER, Start, (CogTrackQuest, Anywhere, 14, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
3151: (DG_TIER, Start, (BuildingQuest, Anywhere, 1, Any, 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
3152: (DG_TIER, Start, (BuildingQuest, Anywhere, 2, Any, 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
3153: (DG_TIER, Start, (BuildingQuest, Anywhere, 3, Any, 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
3154: (DG_TIER, Start, (BuildingQuest, Anywhere, 4, Any, 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
3155: (DG_TIER, Start, (BuildingQuest, Anywhere, 2, 'm', 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
3156: (DG_TIER, Start, (BuildingQuest, Anywhere, 2, 's', 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
3157: (DG_TIER, Start, (BuildingQuest, Anywhere, 2, 'c', 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
3158: (DG_TIER, Start, (BuildingQuest, Anywhere, 2, 'l', 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
3200: (DG_TIER, Start, (VisitQuest,), Any, 5101, NA, 3201, TTLocalizer.QuestDialogDict[3200]),
3201: (DG_TIER, Start, (DeliverItemQuest, 5001), 5101, 5206, NA, 3203, TTLocalizer.QuestDialogDict[3201]),
3203: (DG_TIER, Cont, (RecoverItemQuest, ToontownGlobals.DaisyGardens, 1, 5002, VeryHard, Any), Same, Same, 100, NA, TTLocalizer.QuestDialogDict[3203]),
3204: (DG_TIER, Start, (VisitQuest,), Any, 5106, NA, 3205, TTLocalizer.QuestDialogDict[3204]),
3205: (DG_TIER, Start, (RecoverItemQuest, Anywhere, 1, 5003, Medium, 'b'), 5106, Same, 100, NA, TTLocalizer.QuestDialogDict[3205]),
3206: (DG_TIER, Start, (VisitQuest,), Any, 5107, NA, 3207, TTLocalizer.QuestDialogDict[3206]),
3207: (DG_TIER, Start, (RecoverItemQuest, ToontownGlobals.DaisyGardens, 10, 5004, VeryEasy, 'dt'), 5107, Same, 101, NA, TTLocalizer.QuestDialogDict[3207]),
3208: (DG_TIER, OBSOLETE, (CogQuest, ToontownGlobals.DaisyGardens, 10, 'cc'), Any, ToonHQ, NA, 3209, TTLocalizer.QuestDialogDict[3208]),
3209: (DG_TIER, OBSOLETE, (CogQuest, ToontownGlobals.DaisyGardens, 10, 'tm'), Same, Same, 202, NA, TTLocalizer.QuestDialogDict[3209]),
3247: (DG_TIER, OBSOLETE, (CogQuest, ToontownGlobals.DaisyGardens, 20, 'b'), Any, ToonHQ, 202, NA, TTLocalizer.QuestDialogDict[3247]),
3210: (DG_TIER, Start, (DeliverGagQuest, 10, ToontownBattleGlobals.SQUIRT_TRACK, 0), Any, 5207, NA, 3211, TTLocalizer.QuestDialogDict[3210]),
3211: (DG_TIER, Cont, (CogQuest, 5200, 20, Any), Same, Same, 100, NA, TTLocalizer.QuestDialogDict[3211]),
3212: (DG_TIER, OBSOLETE, (VisitQuest,), Any, 5208, NA, 3213, TTLocalizer.QuestDialogDict[3212]),
3213: (DG_TIER, OBSOLETE, (RecoverItemQuest, ToontownGlobals.DaisyGardens, 1, 5005, VeryHard, Any), 5208, Same, NA, 3214, TTLocalizer.QuestDialogDict[3213]),
3214: (DG_TIER, OBSOLETE, (RecoverItemQuest, ToontownGlobals.DaisyGardens, 1, 5006, VeryHard, Any), Same, Same, NA, 3215, TTLocalizer.QuestDialogDict[3214]),
3215: (DG_TIER, OBSOLETE, (RecoverItemQuest, ToontownGlobals.DaisyGardens, 1, 5007, VeryHard, Any), Same, Same, NA, 3216, TTLocalizer.QuestDialogDict[3215]),
3216: (DG_TIER, OBSOLETE, (RecoverItemQuest, ToontownGlobals.DaisyGardens, 1, 5008, VeryHard, Any), Same, Same, 202, NA, TTLocalizer.QuestDialogDict[3216]),
3217: (DG_TIER, Start, (RecoverItemQuest, Anywhere, 1, 5010, VeryEasy, 'nd'), ToonHQ, ToonHQ, NA, 3218, TTLocalizer.QuestDialogDict[3217]),
3218: (DG_TIER, Cont, (RecoverItemQuest, Anywhere, 1, 5010, VeryHard, 'gh'), Same, Same, NA, 3219, TTLocalizer.QuestDialogDict[3218]),
3219: (DG_TIER, Cont, (RecoverItemQuest, Anywhere, 1, 5010, Easy, 'ms'), Same, Same, 101, NA, TTLocalizer.QuestDialogDict[3219]),
3244: (DG_TIER, Start, (RecoverItemQuest, Anywhere, 1, 5010, VeryEasy, 'ac'), ToonHQ, ToonHQ, NA, 3245, TTLocalizer.QuestDialogDict[3244]),
3245: (DG_TIER, Cont, (RecoverItemQuest, Anywhere, 1, 5010, VeryHard, 'bs'), Same, Same, NA, 3246, TTLocalizer.QuestDialogDict[3245]),
3246: (DG_TIER, Cont, (RecoverItemQuest, Anywhere, 1, 5010, VeryHard, 'sd'), Same, Same, 101, NA, TTLocalizer.QuestDialogDict[3246]),
3220: (DG_TIER, Start, (VisitQuest,), Any, 5207, NA, 3221, TTLocalizer.QuestDialogDict[3220]),
3221: (DG_TIER, Start, (CogQuest, ToontownGlobals.DaisyGardens, 20, Any), 5207, Same, 100, NA, TTLocalizer.QuestDialogDict[3221]),
3222: (DG_TIER, Start, (BuildingQuest, Anywhere, 2, Any, 1, 0), ToonHQ, ToonHQ, NA, 3223, TTLocalizer.QuestDialogDict[3222]),
3223: (DG_TIER, Cont, (BuildingQuest, Anywhere, 2, Any, 2, 0), Same, Same, NA, 3224, TTLocalizer.QuestDialogDict[3223]),
3224: (DG_TIER, Cont, (BuildingQuest, Anywhere, 2, Any, 3, 0), Same, Same, 501, NA, TTLocalizer.QuestDialogDict[3224]),
3225: (DG_TIER, Start, (VisitQuest,), Any, 5108, NA, (3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234), TTLocalizer.QuestDialogDict[3225]),
3226: (DG_TIER, Start, (DeliverItemQuest, 5011), 5108, 5201, NA, 3235, TTLocalizer.QuestDialog_3225),
3227: (DG_TIER, Start, (DeliverItemQuest, 5011), 5108, 5203, NA, 3235, TTLocalizer.QuestDialog_3225),
3228: (DG_TIER, Start, (DeliverItemQuest, 5011), 5108, 5204, NA, 3235, TTLocalizer.QuestDialog_3225),
3229: (DG_TIER, Start, (DeliverItemQuest, 5011), 5108, 5205, NA, 3235, TTLocalizer.QuestDialog_3225),
3230: (DG_TIER, Start, (DeliverItemQuest, 5011), 5108, 5102, NA, 3235, TTLocalizer.QuestDialog_3225),
3231: (DG_TIER, Start, (DeliverItemQuest, 5011), 5108, 5103, NA, 3235, TTLocalizer.QuestDialog_3225),
3232: (DG_TIER, Start, (DeliverItemQuest, 5011), 5108, 5104, NA, 3235, TTLocalizer.QuestDialog_3225),
3233: (DG_TIER, Start, (DeliverItemQuest, 5011), 5108, 5105, NA, 3235, TTLocalizer.QuestDialog_3225),
3234: (DG_TIER, Start, (DeliverItemQuest, 5011), 5108, 5207, NA, 3235, TTLocalizer.QuestDialog_3225),
3235: (DG_TIER, Cont, (CogQuest, ToontownGlobals.DaisyGardens, 10, Any), Same, 5108, 100, NA, TTLocalizer.QuestDialogDict[3235]),
3236: (DG_TIER, OBSOLETE, (BuildingQuest, Anywhere, 3, 'l', 2, 0), Any, ToonHQ, NA, 3237, TTLocalizer.QuestDialogDict[3236]),
3237: (DG_TIER, OBSOLETE, (BuildingQuest, Anywhere, 3, 's', 2, 0), Same, Same, 702, NA, TTLocalizer.QuestDialogDict[3237]),
3238: (DG_TIER, Start, (RecoverItemQuest, Anywhere, 1, 2, VeryEasy, 'm'), Any, ToonHQ, NA, 3239, TTLocalizer.QuestDialogDict[3238]),
3239: (DG_TIER, Cont, (RecoverItemQuest, Anywhere, 1, 5012, Hard, 'm'), Same, Same, 302, NA, TTLocalizer.QuestDialogDict[3239]),
3242: (DG_TIER, Start, (RecoverItemQuest, Anywhere, 1, 2, VeryEasy, 'le'), Any, ToonHQ, NA, 3243, TTLocalizer.QuestDialogDict[3242]),
3243: (DG_TIER, Cont, (RecoverItemQuest, Anywhere, 1, 5012, Hard, 'le'), Same, Same, 302, NA, TTLocalizer.QuestDialogDict[3243]),
3240: (DG_TIER, OBSOLETE, (RecoverItemQuest, Anywhere, 1, 5009, Hard, 'le'), Any, 5103, 102, NA, TTLocalizer.QuestDialogDict[3240]),
3241: (DG_TIER, OBSOLETE, (BuildingQuest, Anywhere, 5, Any, 3, 0), Any, ToonHQ, 102, NA, TTLocalizer.QuestDialogDict[3241]),
3250: (DG_TIER, Start, (VisitQuest,), Any, 5317, NA, 3251, TTLocalizer.QuestDialogDict[3250]),
3251: (DG_TIER, Start, (CogTrackQuest, ToontownGlobals.SellbotHQ, 5, 's'), 5317, Same, NA, 3252, TTLocalizer.QuestDialogDict[3251]),
3252: (DG_TIER, Cont, (VisitQuest,), Same, 5311, NA, 3253, TTLocalizer.QuestDialogDict[3252]),
3253: (DG_TIER, Cont, (RecoverItemQuest, ToontownGlobals.SellbotHQ, 1, 5013, Medium, 's', 'track'), Same, Same, NA, 3254, TTLocalizer.QuestDialogDict[3253]),
3254: (DG_TIER, Cont, (DeliverItemQuest, 5013), Same, 5317, 202, NA, TTLocalizer.QuestDialogDict[3254]),
3255: (DG_TIER, Start, (VisitQuest,), Any, 5314, NA, 3258, TTLocalizer.QuestDialogDict[3255]),
3256: (DG_TIER, Start, (VisitQuest,), Any, 5315, NA, 3258, TTLocalizer.QuestDialogDict[3256]),
3257: (DG_TIER, Start, (VisitQuest,), Any, 5316, NA, 3258, TTLocalizer.QuestDialogDict[3257]),
3258: (DG_TIER, Cont, (RecoverItemQuest, ToontownGlobals.SellbotHQ, 1, 5014, VeryEasy, 's', 'track'), Same, Same, NA, 3259, TTLocalizer.QuestDialogDict[3258]),
3259: (DG_TIER, Cont, (RecoverItemQuest, ToontownGlobals.SellbotHQ, 1, 5015, Easy, 's', 'track'), Same, Same, NA, 3260, TTLocalizer.QuestDialogDict[3259]),
3260: (DG_TIER, Cont, (RecoverItemQuest, ToontownGlobals.SellbotHQ, 1, 5016, Easy, 's', 'track'), Same, Same, NA, 3261, TTLocalizer.QuestDialogDict[3260]),
3261: (DG_TIER, Cont, (RecoverItemQuest, ToontownGlobals.SellbotHQ, 1, 5017, Medium, 's', 'track'), Same, Same, 102, NA, TTLocalizer.QuestDialogDict[3261]),
3262: (DG_TIER, Start, (VisitQuest,), Any, 5313, NA, 3263, TTLocalizer.QuestDialogDict[3262]),
3263: (DG_TIER, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 1), 5313, 5313, 702, NA, TTLocalizer.QuestDialogDict[3263]),
3500: (DG_TIER, Start, (CogQuest, ToontownGlobals.DaisyGardens, 25, Any), Any, ToonHQ, NA, 3501, DefaultDialog),
3501: (DG_TIER, Cont, (DeliverItemQuest, 1000), Any, 5007, 1000, NA, DefaultDialog),
3502: (DG_TIER, Start, (RescueQuest, InVP, 1), Any, ToonHQ, Any, NA, DefaultDialog),
3503: (DG_TIER, Start, (RescueQuest, InFO, 2), Any, ToonHQ, Any, NA, DefaultDialog),
4001: (MM_TIER, Start, (TrackChoiceQuest, ToontownBattleGlobals.TRAP_TRACK, ToontownBattleGlobals.HEAL_TRACK), Any, ToonHQ, 400, NA, TTLocalizer.QuestDialogDict[4001]),
4002: (MM_TIER, Start, (TrackChoiceQuest, ToontownBattleGlobals.TRAP_TRACK, ToontownBattleGlobals.SOUND_TRACK), Any, ToonHQ, 400, NA, TTLocalizer.QuestDialogDict[4002]),
4010: (MM_TIER, Start, (CogQuest, Anywhere, 16, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4011: (MM_TIER, Start, (CogQuest, Anywhere, 18, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4012: (MM_TIER, Start, (CogQuest, Anywhere, 20, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4013: (MM_TIER, Start, (CogQuest, Anywhere, 22, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4014: (MM_TIER, Start, (CogQuest, Anywhere, 24, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4015: (MM_TIER, Start, (CogQuest, Anywhere, 26, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4016: (MM_TIER, Start, (CogQuest, Anywhere, 28, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4017: (MM_TIER, Start, (CogQuest, Anywhere, 30, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4018: (MM_TIER, Start, (CogQuest, Anywhere, 32, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4019: (MM_TIER, Start, (CogQuest, Anywhere, 34, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4020: (MM_TIER, Start, (CogLevelQuest, Anywhere, 20, 3), Any, ToonHQ, Any, NA, DefaultDialog),
4021: (MM_TIER, Start, (CogLevelQuest, Anywhere, 25, 3), Any, ToonHQ, Any, NA, DefaultDialog),
4022: (MM_TIER, Start, (CogLevelQuest, Anywhere, 16, 4), Any, ToonHQ, Any, NA, DefaultDialog),
4023: (MM_TIER, Start, (CogLevelQuest, Anywhere, 20, 4), Any, ToonHQ, Any, NA, DefaultDialog),
4024: (MM_TIER, Start, (CogLevelQuest, Anywhere, 10, 5), Any, ToonHQ, Any, NA, DefaultDialog),
4025: (MM_TIER, Start, (CogLevelQuest, Anywhere, 20, 5), Any, ToonHQ, Any, NA, DefaultDialog),
4026: (MM_TIER, Start, (CogLevelQuest, Anywhere, 16, 6), Any, ToonHQ, Any, NA, DefaultDialog),
4027: (MM_TIER, Start, (CogLevelQuest, Anywhere, 18, 6), Any, ToonHQ, Any, NA, DefaultDialog),
4028: (MM_TIER, Start, (CogLevelQuest, Anywhere, 20, 6), Any, ToonHQ, Any, NA, DefaultDialog),
4029: (MM_TIER, Start, (CogLevelQuest, Anywhere, 24, 6), Any, ToonHQ, Any, NA, DefaultDialog),
4030: (MM_TIER, Start, (CogQuest, Anywhere, 45, Any), Any, ToonHQ, NA, 4031, DefaultDialog),
4031: (MM_TIER, Cont, (DeliverItemQuest, 1000), Any, 4008, 1000, NA, DefaultDialog),
4040: (MM_TIER, Start, (CogQuest, ToontownGlobals.SellbotHQ, 6, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4041: (MM_TIER, Start, (CogQuest, ToontownGlobals.SellbotHQ, 6, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4042: (MM_TIER, Start, (CogLevelQuest, ToontownGlobals.SellbotHQ, 3, 4), Any, ToonHQ, Any, NA, DefaultDialog),
4043: (MM_TIER, Start, (SkelecogQuest, ToontownGlobals.SellbotFactoryInt, 3), Any, ToonHQ, Any, NA, DefaultDialog),
4044: (MM_TIER, Start, (RescueQuest, InVP, 2), Any, ToonHQ, Any, NA, DefaultDialog),
4045: (MM_TIER, Start, (RescueQuest, InFO, 4), Any, ToonHQ, Any, NA, DefaultDialog),
4101: (MM_TIER + 1, Start, (CogQuest, ToontownGlobals.MinniesMelodyland, 16, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4102: (MM_TIER + 1, Start, (CogQuest, ToontownGlobals.MinniesMelodyland, 18, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4103: (MM_TIER + 1, Start, (CogQuest, ToontownGlobals.MinniesMelodyland, 20, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4104: (MM_TIER + 1, Start, (CogQuest, ToontownGlobals.MinniesMelodyland, 24, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4105: (MM_TIER + 1, Start, (CogQuest, Anywhere, 28, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4106: (MM_TIER + 1, Start, (CogQuest, Anywhere, 32, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4107: (MM_TIER + 1, Start, (CogQuest, Anywhere, 20, 'f'), Any, ToonHQ, Any, NA, DefaultDialog),
4108: (MM_TIER + 1, Start, (CogQuest, Anywhere, 16, 'p'), Any, ToonHQ, Any, NA, DefaultDialog),
4109: (MM_TIER + 1, Start, (CogQuest, Anywhere, 16, 'ym'), Any, ToonHQ, Any, NA, DefaultDialog),
4110: (MM_TIER + 1, Start, (CogQuest, Anywhere, 12, 'mm'), Any, ToonHQ, Any, NA, DefaultDialog),
4111: (MM_TIER + 1, Start, (CogQuest, Anywhere, 12, 'ds'), Any, ToonHQ, Any, NA, DefaultDialog),
4112: (MM_TIER + 1, Start, (CogQuest, Anywhere, 12, 'hh'), Any, ToonHQ, Any, NA, DefaultDialog),
4113: (MM_TIER + 1, Start, (CogQuest, Anywhere, 20, 'cc'), Any, ToonHQ, Any, NA, DefaultDialog),
4114: (MM_TIER + 1, Start, (CogQuest, Anywhere, 16, 'tm'), Any, ToonHQ, Any, NA, DefaultDialog),
4115: (MM_TIER + 1, Start, (CogQuest, Anywhere, 16, 'nd'), Any, ToonHQ, Any, NA, DefaultDialog),
4116: (MM_TIER + 1, Start, (CogQuest, Anywhere, 12, 'gh'), Any, ToonHQ, Any, NA, DefaultDialog),
4117: (MM_TIER + 1, Start, (CogQuest, Anywhere, 12, 'ms'), None, ToonHQ, Any, NA, DefaultDialog),
4118: (MM_TIER + 1, Start, (CogQuest, Anywhere, 12, 'tf'), None, ToonHQ, Any, NA, DefaultDialog),
4119: (MM_TIER + 1, Start, (CogQuest, Anywhere, 20, 'sc'), Any, ToonHQ, Any, NA, DefaultDialog),
4120: (MM_TIER + 1, Start, (CogQuest, Anywhere, 16, 'pp'), Any, ToonHQ, Any, NA, DefaultDialog),
4121: (MM_TIER + 1, Start, (CogQuest, Anywhere, 16, 'tw'), Any, ToonHQ, Any, NA, DefaultDialog),
4122: (MM_TIER + 1, Start, (CogQuest, Anywhere, 12, 'bc'), Any, ToonHQ, Any, NA, DefaultDialog),
4123: (MM_TIER + 1, Start, (CogQuest, Anywhere, 12, 'nc'), Any, ToonHQ, Any, NA, DefaultDialog),
4124: (MM_TIER + 1, Start, (CogQuest, Anywhere, 12, 'mb'), Any, ToonHQ, Any, NA, DefaultDialog),
4125: (MM_TIER + 1, Start, (CogQuest, Anywhere, 20, 'bf'), Any, ToonHQ, Any, NA, DefaultDialog),
4126: (MM_TIER + 1, Start, (CogQuest, Anywhere, 16, 'b'), Any, ToonHQ, Any, NA, DefaultDialog),
4127: (MM_TIER + 1, Start, (CogQuest, Anywhere, 16, 'dt'), Any, ToonHQ, Any, NA, DefaultDialog),
4128: (MM_TIER + 1, Start, (CogQuest, Anywhere, 12, 'ac'), Any, ToonHQ, Any, NA, DefaultDialog),
4129: (MM_TIER + 1, Start, (CogQuest, Anywhere, 12, 'bs'), Any, ToonHQ, Any, NA, DefaultDialog),
4130: (MM_TIER + 1, Start, (CogQuest, Anywhere, 12, 'sd'), Any, ToonHQ, Any, NA, DefaultDialog),
4131: (MM_TIER + 1, Start, (CogLevelQuest, Anywhere, 20, 3), Any, ToonHQ, Any, NA, DefaultDialog),
4132: (MM_TIER + 1, Start, (CogLevelQuest, Anywhere, 25, 3), Any, ToonHQ, Any, NA, DefaultDialog),
4133: (MM_TIER + 1, Start, (CogLevelQuest, Anywhere, 16, 4), Any, ToonHQ, Any, NA, DefaultDialog),
4134: (MM_TIER + 1, Start, (CogLevelQuest, Anywhere, 20, 4), Any, ToonHQ, Any, NA, DefaultDialog),
4135: (MM_TIER + 1, Start, (CogLevelQuest, Anywhere, 10, 5), Any, ToonHQ, Any, NA, DefaultDialog),
4136: (MM_TIER + 1, Start, (CogLevelQuest, Anywhere, 20, 5), Any, ToonHQ, Any, NA, DefaultDialog),
4137: (MM_TIER + 1, Start, (CogLevelQuest, Anywhere, 16, 6), Any, ToonHQ, Any, NA, DefaultDialog),
4138: (MM_TIER + 1, Start, (CogLevelQuest, Anywhere, 24, 6), Any, ToonHQ, Any, NA, DefaultDialog),
4139: (MM_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.MinniesMelodyland, 15, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
4140: (MM_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.MinniesMelodyland, 15, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
4141: (MM_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.MinniesMelodyland, 15, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
4142: (MM_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.MinniesMelodyland, 15, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
4143: (MM_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.MinniesMelodyland, 24, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
4144: (MM_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.MinniesMelodyland, 24, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
4145: (MM_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.MinniesMelodyland, 24, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
4146: (MM_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.MinniesMelodyland, 24, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
4147: (MM_TIER + 1, Start, (CogTrackQuest, Anywhere, 30, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
4148: (MM_TIER + 1, Start, (CogTrackQuest, Anywhere, 30, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
4149: (MM_TIER + 1, Start, (CogTrackQuest, Anywhere, 30, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
4150: (MM_TIER + 1, Start, (CogTrackQuest, Anywhere, 30, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
4151: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 1, Any, 3, 0), Any, ToonHQ, Any, NA, DefaultDialog),
4152: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 2, Any, 3, 0), Any, ToonHQ, Any, NA, DefaultDialog),
4153: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 3, Any, 3, 0), Any, ToonHQ, Any, NA, DefaultDialog),
4154: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 4, Any, 3, 0), Any, ToonHQ, Any, NA, DefaultDialog),
4155: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 3, 'm', 3, 0), Any, ToonHQ, Any, NA, DefaultDialog),
4156: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 3, 's', 3, 0), Any, ToonHQ, Any, NA, DefaultDialog),
4157: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 3, 'c', 3, 0), Any, ToonHQ, Any, NA, DefaultDialog),
4158: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 3, 'l', 3, 0), Any, ToonHQ, Any, NA, DefaultDialog),
4160: (MM_TIER + 1, Start, (CogQuest, ToontownGlobals.SellbotHQ, 10, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4161: (MM_TIER + 1, Start, (CogQuest, ToontownGlobals.SellbotHQ, 12, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4162: (MM_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.SellbotHQ, 6, 4), Any, ToonHQ, Any, NA, DefaultDialog),
4163: (MM_TIER + 1, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
4164: (MM_TIER + 1, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
4165: (MM_TIER + 1, Start, (SkelecogQuest, ToontownGlobals.SellbotFactoryInt, 4), Any, ToonHQ, Any, NA, DefaultDialog),
4166: (MM_TIER + 1, Start, (ForemanQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
4167: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 1, Any, 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
4168: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 2, Any, 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
4169: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 3, Any, 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
4170: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 4, Any, 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
4171: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 3, 's', 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
4172: (MM_TIER + 1, Start, (BuildingQuest, Anywhere, 3, 'l', 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
4200: (MM_TIER + 1, Start, (VisitQuest,), Any, 4101, NA, 4201, TTLocalizer.QuestDialogDict[4200]),
4201: (MM_TIER + 1, Start, (VisitQuest,), 4101, 4201, NA, 4202, TTLocalizer.QuestDialogDict[4201]),
4202: (MM_TIER + 1, Cont, (DeliverItemQuest, 4001), Same, 4101, NA, 4203, TTLocalizer.QuestDialogDict[4202]),
4203: (MM_TIER + 1, Cont, (VisitQuest,), Same, 4301, NA, 4204, TTLocalizer.QuestDialogDict[4203]),
4204: (MM_TIER + 1, Cont, (CogQuest, ToontownGlobals.MinniesMelodyland, 10, Any), Same, Same, NA, 4205, TTLocalizer.QuestDialogDict[4204]),
4205: (MM_TIER + 1, Cont, (DeliverItemQuest, 4002), Same, 4101, NA, 4206, TTLocalizer.QuestDialogDict[4205]),
4206: (MM_TIER + 1, Cont, (VisitQuest,), Same, 4102, NA, 4207, TTLocalizer.QuestDialogDict[4206]),
4207: (MM_TIER + 1, Cont, (VisitQuest,), Same, 4108, NA, 4208, TTLocalizer.QuestDialogDict[4207]),
4208: (MM_TIER + 1, Cont, (DeliverGagQuest, 1, ToontownBattleGlobals.THROW_TRACK, 4), Same, Same, NA, 4209, TTLocalizer.QuestDialogDict[4208]),
4209: (MM_TIER + 1, Cont, (DeliverItemQuest, 4003), Same, 4102, NA, 4210, TTLocalizer.QuestDialogDict[4209]),
4210: (MM_TIER + 1, Cont, (DeliverItemQuest, 4004), Same, 4101, 203, NA, TTLocalizer.QuestDialogDict[4210]),
4211: (MM_TIER + 1, Start, (VisitQuest,), ToonHQ, 4103, NA, 4212, TTLocalizer.QuestDialogDict[4211]),
4212: (MM_TIER + 1, Start, (CogQuest, ToontownGlobals.MinniesMelodyland, 10, 'nc'), 4103, Same, NA, 4213, TTLocalizer.QuestDialogDict[4212]),
4213: (MM_TIER + 1, Cont, (CogTrackQuest, ToontownGlobals.MinniesMelodyland, 20, 'm'), Same, Same, NA, 4214, TTLocalizer.QuestDialogDict[4213]),
4214: (MM_TIER + 1, Cont, (BuildingQuest, Anywhere, 1, 'm', Any, 0), Same, Same, 303, NA, TTLocalizer.QuestDialogDict[4214]),
4215: (MM_TIER + 1, Start, (VisitQuest,), Any, 4302, NA, 4216, TTLocalizer.QuestDialogDict[4215]),
4216: (MM_TIER + 1, Start, (RecoverItemQuest, Anywhere, 1, 4005, VeryHard, 'gh'), 4302, Same, NA, 4217, TTLocalizer.QuestDialogDict[4216]),
4217: (MM_TIER + 1, Cont, (DeliverItemQuest, 4005), Same, 4203, NA, 4218, TTLocalizer.QuestDialogDict[4217]),
4218: (MM_TIER + 1, Cont, (VisitQuest,), Any, 4302, NA, 4219, TTLocalizer.QuestDialogDict[4218]),
4219: (MM_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 4006, VeryHard, 'gh'), Same, Same, NA, 4220, TTLocalizer.QuestDialogDict[4219]),
4220: (MM_TIER + 1, Cont, (DeliverItemQuest, 4006), Same, 4308, NA, 4221, TTLocalizer.QuestDialogDict[4220]),
4221: (MM_TIER + 1, Cont, (VisitQuest,), Any, 4302, NA, 4222, TTLocalizer.QuestDialogDict[4221]),
4222: (MM_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 4007, VeryHard, 'gh'), Same, Same, NA, 4223, TTLocalizer.QuestDialogDict[4222]),
4223: (MM_TIER + 1, Cont, (DeliverItemQuest, 4007), Same, 4202, NA, 4224, TTLocalizer.QuestDialogDict[4223]),
4224: (MM_TIER + 1, Cont, (VisitQuest,), Any, 4302, 703, NA, TTLocalizer.QuestDialogDict[4224]),
4500: (MM_TIER + 1, Start, (CogQuest, ToontownGlobals.MinniesMelodyland, 40, Any), Any, ToonHQ, NA, 4501, DefaultDialog),
4501: (MM_TIER + 1, Cont, (DeliverItemQuest, 1000), Any, 4008, 1000, NA, DefaultDialog),
4502: (MM_TIER + 1, Start, (RescueQuest, InVP, 2), Any, ToonHQ, Any, NA, DefaultDialog),
4503: (MM_TIER + 1, Start, (RescueQuest, InFO, 4), Any, ToonHQ, Any, NA, DefaultDialog),
902: (MM_TIER + 2, Start, (VisitQuest,), Any, 4303, NA, 4903, TTLocalizer.QuestDialogDict[902]),
4903: (MM_TIER + 2, Start, (DeliverItemQuest, 4008), 4303, 4109, NA, 4904, TTLocalizer.QuestDialogDict[4903]),
4904: (MM_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 1, 4009, VeryHard, AnyFish), Same, Same, NA, 4905, TTLocalizer.QuestDialogDict[4904]),
4905: (MM_TIER + 2, Cont, (BuildingQuest, Anywhere, 1, Any, 1, 0), Same, Same, NA, 4906, TTLocalizer.QuestDialogDict[4905]),
4906: (MM_TIER + 2, Cont, (DeliverItemQuest, 4010), Same, 4303, NA, 4907, TTLocalizer.QuestDialogDict[4906]),
4907: (MM_TIER + 2, Cont, (VisitQuest,), Same, 4208, NA, 4908, TTLocalizer.QuestDialogDict[4907]),
4908: (MM_TIER + 2, Cont, (BuildingQuest, Anywhere, 1, Any, 2, 0), Same, Same, NA, 4909, TTLocalizer.QuestDialogDict[4908]),
4909: (MM_TIER + 2, Cont, (BuildingQuest, Anywhere, 1, Any, 3, 0), Same, Same, NA, 4910, TTLocalizer.QuestDialogDict[4909]),
4910: (MM_TIER + 2, Cont, (DeliverItemQuest, 4011), Same, 4303, 900, NA, TTLocalizer.QuestDialogDict[4910]),
4810: (MM_TIER + 2, Start, (CogQuest, Anywhere, 16, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4811: (MM_TIER + 2, Start, (CogQuest, Anywhere, 18, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4812: (MM_TIER + 2, Start, (CogQuest, Anywhere, 20, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4813: (MM_TIER + 2, Start, (CogQuest, Anywhere, 22, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4814: (MM_TIER + 2, Start, (CogQuest, Anywhere, 24, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4815: (MM_TIER + 2, Start, (CogQuest, Anywhere, 26, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4816: (MM_TIER + 2, Start, (CogQuest, Anywhere, 28, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4817: (MM_TIER + 2, Start, (CogQuest, Anywhere, 30, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4818: (MM_TIER + 2, Start, (CogQuest, Anywhere, 32, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4819: (MM_TIER + 2, Start, (CogQuest, Anywhere, 34, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4820: (MM_TIER + 2, Start, (CogLevelQuest, Anywhere, 20, 3), Any, ToonHQ, Any, NA, DefaultDialog),
4821: (MM_TIER + 2, Start, (CogLevelQuest, Anywhere, 25, 3), Any, ToonHQ, Any, NA, DefaultDialog),
4822: (MM_TIER + 2, Start, (CogLevelQuest, Anywhere, 16, 4), Any, ToonHQ, Any, NA, DefaultDialog),
4823: (MM_TIER + 2, Start, (CogLevelQuest, Anywhere, 20, 4), Any, ToonHQ, Any, NA, DefaultDialog),
4824: (MM_TIER + 2, Start, (CogLevelQuest, Anywhere, 10, 5), Any, ToonHQ, Any, NA, DefaultDialog),
4825: (MM_TIER + 2, Start, (CogLevelQuest, Anywhere, 20, 5), Any, ToonHQ, Any, NA, DefaultDialog),
4826: (MM_TIER + 2, Start, (CogLevelQuest, Anywhere, 16, 6), Any, ToonHQ, Any, NA, DefaultDialog),
4827: (MM_TIER + 2, Start, (CogLevelQuest, Anywhere, 18, 6), Any, ToonHQ, Any, NA, DefaultDialog),
4828: (MM_TIER + 2, Start, (CogLevelQuest, Anywhere, 20, 6), Any, ToonHQ, Any, NA, DefaultDialog),
4829: (MM_TIER + 2, Start, (CogLevelQuest, Anywhere, 24, 6), Any, ToonHQ, Any, NA, DefaultDialog),
4830: (MM_TIER + 2, Start, (CogQuest, Anywhere, 45, Any), Any, ToonHQ, NA, 4831, DefaultDialog),
4831: (MM_TIER + 2, Cont, (DeliverItemQuest, 1000), Any, 4008, 1000, NA, DefaultDialog),
4840: (MM_TIER + 2, Start, (CogQuest, ToontownGlobals.SellbotHQ, 12, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4841: (MM_TIER + 2, Start, (CogQuest, ToontownGlobals.SellbotHQ, 15, Any), Any, ToonHQ, Any, NA, DefaultDialog),
4842: (MM_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.SellbotHQ, 12, 4), Any, ToonHQ, Any, NA, DefaultDialog),
4843: (MM_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 10, 5), Any, ToonHQ, Any, NA, DefaultDialog),
4844: (MM_TIER + 2, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
4845: (MM_TIER + 2, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
4846: (MM_TIER + 2, Start, (SkelecogQuest, ToontownGlobals.SellbotFactoryInt, 5), Any, ToonHQ, Any, NA, DefaultDialog),
4847: (MM_TIER + 2, Start, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 3, 5), Any, ToonHQ, Any, NA, DefaultDialog),
4848: (MM_TIER + 2, Start, (ForemanQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
4849: (MM_TIER + 2, Start, (RescueQuest, InVP, 2), Any, ToonHQ, Any, NA, DefaultDialog),
4850: (MM_TIER + 2, Start, (RescueQuest, InFO, 4), Any, ToonHQ, Any, NA, DefaultDialog),
5247: (BR_TIER, Start, (VisitQuest,), Any, 3112, NA, 5248, TTLocalizer.QuestDialogDict[5247]),
5248: (BR_TIER, Start, (CogLevelQuest, Anywhere, 10, 8), 3112, Same, NA, 5249, TTLocalizer.QuestDialogDict[5248]),
5249: (BR_TIER, Cont, (RecoverItemQuest, Anywhere, 3, 3018, VeryHard, AnyFish), Same, Same, NA, (5250, 5258, 5259, 5260), TTLocalizer.QuestDialogDict[5249]),
5250: (BR_TIER, Cont, (BuildingQuest, Anywhere, 2, 'l', 4, 0), Same, Same, NA, (5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008), TTLocalizer.QuestDialogDict[5250]),
5258: (BR_TIER, Cont, (BuildingQuest, Anywhere, 2, 'c', 4, 0), Same, Same, NA, (5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008), TTLocalizer.QuestDialogDict[5258]),
5259: (BR_TIER, Cont, (BuildingQuest, Anywhere, 2, 'm', 4, 0), Same, Same, NA, (5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008), TTLocalizer.QuestDialogDict[5259]),
5260: (BR_TIER, Cont, (BuildingQuest, Anywhere, 2, 's', 4, 0), Same, Same, NA, (5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008), TTLocalizer.QuestDialogDict[5260]),
5001: (BR_TIER, Cont, (TrackChoiceQuest, ToontownBattleGlobals.SOUND_TRACK, ToontownBattleGlobals.DROP_TRACK), Same, Same, 400, NA, TTLocalizer.TheBrrrghTrackQuestDict),
5002: (BR_TIER, Cont, (TrackChoiceQuest, ToontownBattleGlobals.SOUND_TRACK, ToontownBattleGlobals.LURE_TRACK), Same, Same, 400, NA, TTLocalizer.TheBrrrghTrackQuestDict),
5003: (BR_TIER, Cont, (TrackChoiceQuest, ToontownBattleGlobals.HEAL_TRACK, ToontownBattleGlobals.DROP_TRACK), Same, Same, 400, NA, TTLocalizer.TheBrrrghTrackQuestDict),
5004: (BR_TIER, Cont, (TrackChoiceQuest, ToontownBattleGlobals.HEAL_TRACK, ToontownBattleGlobals.LURE_TRACK), Same, Same, 400, NA, TTLocalizer.TheBrrrghTrackQuestDict),
5005: (BR_TIER, Cont, (TrackChoiceQuest, ToontownBattleGlobals.TRAP_TRACK, ToontownBattleGlobals.SOUND_TRACK), Same, Same, 400, NA, TTLocalizer.TheBrrrghTrackQuestDict),
5006: (BR_TIER, Cont, (TrackChoiceQuest, ToontownBattleGlobals.TRAP_TRACK, ToontownBattleGlobals.HEAL_TRACK), Same, Same, 400, NA, TTLocalizer.TheBrrrghTrackQuestDict),
5007: (BR_TIER, Cont, (TrackChoiceQuest, ToontownBattleGlobals.TRAP_TRACK, ToontownBattleGlobals.DROP_TRACK), Same, Same, 400, NA, TTLocalizer.TheBrrrghTrackQuestDict),
5008: (BR_TIER, Cont, (TrackChoiceQuest, ToontownBattleGlobals.TRAP_TRACK, ToontownBattleGlobals.LURE_TRACK), Same, Same, 400, NA, TTLocalizer.TheBrrrghTrackQuestDict),
5020: (BR_TIER, Start, (CogQuest, Anywhere, 36, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5021: (BR_TIER, Start, (CogQuest, Anywhere, 38, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5022: (BR_TIER, Start, (CogQuest, Anywhere, 40, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5023: (BR_TIER, Start, (CogQuest, Anywhere, 42, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5024: (BR_TIER, Start, (CogQuest, Anywhere, 44, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5025: (BR_TIER, Start, (CogQuest, Anywhere, 46, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5026: (BR_TIER, Start, (CogQuest, Anywhere, 48, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5027: (BR_TIER, Start, (CogQuest, Anywhere, 50, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5028: (BR_TIER, Start, (CogQuest, Anywhere, 52, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5029: (BR_TIER, Start, (CogQuest, Anywhere, 54, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5030: (BR_TIER, Start, (CogLevelQuest, Anywhere, 25, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5031: (BR_TIER, Start, (CogLevelQuest, Anywhere, 30, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5032: (BR_TIER, Start, (CogLevelQuest, Anywhere, 35, 6), Any, ToonHQ, Any, NA, DefaultDialog),
5033: (BR_TIER, Start, (CogLevelQuest, Anywhere, 6, 7), Any, ToonHQ, Any, NA, DefaultDialog),
5034: (BR_TIER, Start, (CogLevelQuest, Anywhere, 10, 7), Any, ToonHQ, Any, NA, DefaultDialog),
5035: (BR_TIER, Start, (CogLevelQuest, Anywhere, 20, 7), Any, ToonHQ, Any, NA, DefaultDialog),
5036: (BR_TIER, Start, (CogLevelQuest, Anywhere, 2, 8), Any, ToonHQ, Any, NA, DefaultDialog),
5037: (BR_TIER, Start, (CogLevelQuest, Anywhere, 8, 8), Any, ToonHQ, Any, NA, DefaultDialog),
5038: (BR_TIER, Start, (CogLevelQuest, Anywhere, 10, 8), Any, ToonHQ, Any, NA, DefaultDialog),
5039: (BR_TIER, Start, (CogLevelQuest, Anywhere, 12, 8), Any, ToonHQ, Any, NA, DefaultDialog),
5040: (BR_TIER, Start, (CogQuest, ToontownGlobals.TheBrrrgh, 75, Any), Any, ToonHQ, NA, 5041, DefaultDialog),
5041: (BR_TIER, Cont, (DeliverItemQuest, 1000), Any, 3008, 1000, NA, DefaultDialog),
5070: (BR_TIER, Start, (CogQuest, ToontownGlobals.SellbotHQ, 20, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5071: (BR_TIER, Start, (CogQuest, ToontownGlobals.SellbotHQ, 22, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5072: (BR_TIER, Start, (CogLevelQuest, ToontownGlobals.SellbotHQ, 15, 4), Any, ToonHQ, Any, NA, DefaultDialog),
5073: (BR_TIER, Start, (CogLevelQuest, ToontownGlobals.SellbotHQ, 10, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5074: (BR_TIER, Start, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 12, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5075: (BR_TIER, Start, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 8, 6), Any, ToonHQ, Any, NA, DefaultDialog),
5076: (BR_TIER, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5077: (BR_TIER, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 2), Any, ToonHQ, Any, NA, DefaultDialog),
5078: (BR_TIER, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5079: (BR_TIER, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 2), Any, ToonHQ, Any, NA, DefaultDialog),
5080: (BR_TIER, Start, (SkelecogQuest, ToontownGlobals.SellbotFactoryInt, 10), Any, ToonHQ, Any, NA, DefaultDialog),
5081: (BR_TIER, Start, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 5, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5082: (BR_TIER, Start, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 2, 6), Any, ToonHQ, Any, NA, DefaultDialog),
5083: (BR_TIER, Start, (ForemanQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5084: (BR_TIER, Start, (ForemanQuest, ToontownGlobals.SellbotHQ, 2), Any, ToonHQ, Any, NA, DefaultDialog),
5085: (BR_TIER, Start, (RescueQuest, InVP, 3), Any, ToonHQ, Any, NA, DefaultDialog),
5086: (BR_TIER, Start, (RescueQuest, InFO, 6), Any, ToonHQ, Any, NA, DefaultDialog),
5101: (BR_TIER + 1, Start, (CogQuest, ToontownGlobals.TheBrrrgh, 36, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5102: (BR_TIER + 1, Start, (CogQuest, ToontownGlobals.TheBrrrgh, 40, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5103: (BR_TIER + 1, Start, (CogQuest, ToontownGlobals.TheBrrrgh, 42, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5104: (BR_TIER + 1, Start, (CogQuest, Anywhere, 45, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5105: (BR_TIER + 1, Start, (CogQuest, Anywhere, 50, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5106: (BR_TIER + 1, Start, (CogQuest, Anywhere, 55, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5107: (BR_TIER + 1, Start, (CogQuest, Anywhere, 25, 'p'), Any, ToonHQ, Any, NA, DefaultDialog),
5108: (BR_TIER + 1, Start, (CogQuest, Anywhere, 20, 'ym'), Any, ToonHQ, Any, NA, DefaultDialog),
5109: (BR_TIER + 1, Start, (CogQuest, Anywhere, 20, 'mm'), Any, ToonHQ, Any, NA, DefaultDialog),
5110: (BR_TIER + 1, Start, (CogQuest, Anywhere, 15, 'ds'), Any, ToonHQ, Any, NA, DefaultDialog),
5111: (BR_TIER + 1, Start, (CogQuest, Anywhere, 15, 'hh'), Any, ToonHQ, Any, NA, DefaultDialog),
5112: (BR_TIER + 1, Start, (CogQuest, Anywhere, 8, 'cr'), Any, ToonHQ, Any, NA, DefaultDialog),
5113: (BR_TIER + 1, Start, (CogQuest, Anywhere, 25, 'tm'), Any, ToonHQ, Any, NA, DefaultDialog),
5114: (BR_TIER + 1, Start, (CogQuest, Anywhere, 20, 'nd'), Any, ToonHQ, Any, NA, DefaultDialog),
5115: (BR_TIER + 1, Start, (CogQuest, Anywhere, 20, 'gh'), Any, ToonHQ, Any, NA, DefaultDialog),
5116: (BR_TIER + 1, Start, (CogQuest, Anywhere, 15, 'ms'), Any, ToonHQ, Any, NA, DefaultDialog),
5117: (BR_TIER + 1, Start, (CogQuest, Anywhere, 15, 'tf'), Any, ToonHQ, Any, NA, DefaultDialog),
5118: (BR_TIER + 1, Start, (CogQuest, Anywhere, 8, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
5119: (BR_TIER + 1, Start, (CogQuest, Anywhere, 25, 'pp'), Any, ToonHQ, Any, NA, DefaultDialog),
5120: (BR_TIER + 1, Start, (CogQuest, Anywhere, 20, 'tw'), Any, ToonHQ, Any, NA, DefaultDialog),
5121: (BR_TIER + 1, Start, (CogQuest, Anywhere, 20, 'bc'), Any, ToonHQ, Any, NA, DefaultDialog),
5122: (BR_TIER + 1, Start, (CogQuest, Anywhere, 15, 'nc'), Any, ToonHQ, Any, NA, DefaultDialog),
5123: (BR_TIER + 1, Start, (CogQuest, Anywhere, 15, 'mb'), Any, ToonHQ, Any, NA, DefaultDialog),
5124: (BR_TIER + 1, Start, (CogQuest, Anywhere, 8, 'ls'), Any, ToonHQ, Any, NA, DefaultDialog),
5125: (BR_TIER + 1, Start, (CogQuest, Anywhere, 25, 'b'), Any, ToonHQ, Any, NA, DefaultDialog),
5126: (BR_TIER + 1, Start, (CogQuest, Anywhere, 20, 'dt'), Any, ToonHQ, Any, NA, DefaultDialog),
5127: (BR_TIER + 1, Start, (CogQuest, Anywhere, 20, 'ac'), Any, ToonHQ, Any, NA, DefaultDialog),
5128: (BR_TIER + 1, Start, (CogQuest, Anywhere, 15, 'bs'), Any, ToonHQ, Any, NA, DefaultDialog),
5129: (BR_TIER + 1, Start, (CogQuest, Anywhere, 15, 'sd'), Any, ToonHQ, Any, NA, DefaultDialog),
5130: (BR_TIER + 1, Start, (CogQuest, Anywhere, 8, 'le'), Any, ToonHQ, Any, NA, DefaultDialog),
5131: (BR_TIER + 1, Start, (CogLevelQuest, Anywhere, 25, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5132: (BR_TIER + 1, Start, (CogLevelQuest, Anywhere, 30, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5133: (BR_TIER + 1, Start, (CogLevelQuest, Anywhere, 35, 6), Any, ToonHQ, Any, NA, DefaultDialog),
5134: (BR_TIER + 1, Start, (CogLevelQuest, Anywhere, 6, 7), Any, ToonHQ, Any, NA, DefaultDialog),
5135: (BR_TIER + 1, Start, (CogLevelQuest, Anywhere, 10, 7), Any, ToonHQ, Any, NA, DefaultDialog),
5136: (BR_TIER + 1, Start, (CogLevelQuest, Anywhere, 20, 7), Any, ToonHQ, Any, NA, DefaultDialog),
5137: (BR_TIER + 1, Start, (CogLevelQuest, Anywhere, 2, 8), Any, ToonHQ, Any, NA, DefaultDialog),
5138: (BR_TIER + 1, Start, (CogLevelQuest, Anywhere, 8, 8), Any, ToonHQ, Any, NA, DefaultDialog),
5139: (BR_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.TheBrrrgh, 32, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
5140: (BR_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.TheBrrrgh, 32, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
5141: (BR_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.TheBrrrgh, 32, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
5142: (BR_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.TheBrrrgh, 32, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
5143: (BR_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.TheBrrrgh, 40, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
5144: (BR_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.TheBrrrgh, 40, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
5145: (BR_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.TheBrrrgh, 40, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
5146: (BR_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.TheBrrrgh, 40, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
5147: (BR_TIER + 1, Start, (CogTrackQuest, Anywhere, 45, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
5148: (BR_TIER + 1, Start, (CogTrackQuest, Anywhere, 45, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
5149: (BR_TIER + 1, Start, (CogTrackQuest, Anywhere, 45, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
5150: (BR_TIER + 1, Start, (CogTrackQuest, Anywhere, 45, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
5151: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 8, Any, 3, 0), Any, ToonHQ, Any, NA, DefaultDialog),
5152: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 2, Any, 4, 0), Any, ToonHQ, Any, NA, DefaultDialog),
5153: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 5, Any, 4, 0), Any, ToonHQ, Any, NA, DefaultDialog),
5154: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 6, Any, 4, 0), Any, ToonHQ, Any, NA, DefaultDialog),
5155: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 2, 'm', 4, 0), Any, ToonHQ, Any, NA, DefaultDialog),
5156: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 2, 's', 4, 0), Any, ToonHQ, Any, NA, DefaultDialog),
5157: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 2, 'c', 4, 0), Any, ToonHQ, Any, NA, DefaultDialog),
5158: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 2, 'l', 4, 0), Any, ToonHQ, Any, NA, DefaultDialog),
5160: (BR_TIER + 1, Start, (CogQuest, ToontownGlobals.SellbotHQ, 22, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5161: (BR_TIER + 1, Start, (CogQuest, ToontownGlobals.SellbotHQ, 25, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5162: (BR_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.SellbotHQ, 16, 4), Any, ToonHQ, Any, NA, DefaultDialog),
5163: (BR_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.SellbotHQ, 12, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5164: (BR_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 14, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5165: (BR_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 10, 6), Any, ToonHQ, Any, NA, DefaultDialog),
5166: (BR_TIER + 1, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5167: (BR_TIER + 1, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 2), Any, ToonHQ, Any, NA, DefaultDialog),
5168: (BR_TIER + 1, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5169: (BR_TIER + 1, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 2), Any, ToonHQ, Any, NA, DefaultDialog),
5170: (BR_TIER + 1, Start, (SkelecogQuest, ToontownGlobals.SellbotFactoryInt, 12), Any, ToonHQ, Any, NA, DefaultDialog),
5171: (BR_TIER + 1, Start, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 6, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5172: (BR_TIER + 1, Start, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 3, 6), Any, ToonHQ, Any, NA, DefaultDialog),
5173: (BR_TIER + 1, Start, (ForemanQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5174: (BR_TIER + 1, Start, (ForemanQuest, ToontownGlobals.SellbotHQ, 2), Any, ToonHQ, Any, NA, DefaultDialog),
5176: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 4, Any, 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5177: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 5, Any, 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5178: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 6, Any, 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5179: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 3, 's', 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5180: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 3, 'l', 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5200: (BR_TIER + 1, Start, (VisitQuest,), Any, 3110, NA, (5201, 5261, 5262, 5263), TTLocalizer.QuestDialogDict[5200]),
5201: (BR_TIER + 1, Start, (RecoverItemQuest, Anywhere, 1, 3001, VeryHard, 'hh'), 3110, Same, 100, NA, TTLocalizer.QuestDialogDict[5201]),
5261: (BR_TIER + 1, Start, (RecoverItemQuest, Anywhere, 1, 3001, VeryHard, 'tf'), 3110, Same, 100, NA, TTLocalizer.QuestDialogDict[5261]),
5262: (BR_TIER + 1, Start, (RecoverItemQuest, Anywhere, 1, 3001, VeryHard, 'mb'), 3110, Same, 100, NA, TTLocalizer.QuestDialogDict[5262]),
5263: (BR_TIER + 1, Start, (RecoverItemQuest, Anywhere, 1, 3001, VeryHard, 'sd'), 3110, Same, 100, NA, TTLocalizer.QuestDialogDict[5263]),
5202: (BR_TIER + 1, Start, (VisitQuest,), Any, 3108, NA, 5203, TTLocalizer.QuestDialogDict[5202]),
5203: (BR_TIER + 1, Start, (RecoverItemQuest, ToontownGlobals.TheBrrrgh, 1, 3002, VeryHard, Any), 3108, Same, NA, 5204, TTLocalizer.QuestDialogDict[5203]),
5204: (BR_TIER + 1, Cont, (VisitQuest,), Same, 3205, NA, 5205, TTLocalizer.QuestDialogDict[5204]),
5205: (BR_TIER + 1, Cont, (RecoverItemQuest, ToontownGlobals.TheBrrrgh, 3, 3003, Hard, AnyFish), Same, Same, NA, 5206, TTLocalizer.QuestDialogDict[5205]),
5206: (BR_TIER + 1, Cont, (VisitQuest,), Same, 3210, NA, 5207, TTLocalizer.QuestDialogDict[5206]),
5207: (BR_TIER + 1, Cont, (BuildingQuest, Anywhere, 5, Any, 4, 0), Same, Same, NA, 5208, TTLocalizer.QuestDialogDict[5207]),
5208: (BR_TIER + 1, Cont, (VisitQuest,), Same, 3114, NA, 5209, TTLocalizer.QuestDialogDict[5208]),
5209: (BR_TIER + 1, Cont, (CogLevelQuest, Anywhere, 20, 7), Same, Same, 204, NA, TTLocalizer.QuestDialogDict[5209]),
5210: (BR_TIER + 1, Start, (VisitQuest,), Any, 3206, NA, (5211, 5264, 5265, 5266), TTLocalizer.QuestDialogDict[5210]),
5211: (BR_TIER + 1, Start, (RecoverItemQuest, ToontownGlobals.TheBrrrgh, 1, 3004, Medium, 'le'), 3206, Same, NA, 5212, TTLocalizer.QuestDialogDict[5211]),
5264: (BR_TIER + 1, Start, (RecoverItemQuest, ToontownGlobals.TheBrrrgh, 1, 3004, Hard, 'ls'), 3206, Same, NA, 5212, TTLocalizer.QuestDialogDict[5264]),
5265: (BR_TIER + 1, Start, (RecoverItemQuest, ToontownGlobals.TheBrrrgh, 1, 3004, Hard, 'm'), 3206, Same, NA, 5212, TTLocalizer.QuestDialogDict[5265]),
5266: (BR_TIER + 1, Start, (RecoverItemQuest, ToontownGlobals.TheBrrrgh, 1, 3004, Hard, 'cr'), 3206, Same, NA, 5212, TTLocalizer.QuestDialogDict[5266]),
5212: (BR_TIER + 1, Cont, (DeliverItemQuest, 3004), Same, 3111, NA, 5213, TTLocalizer.QuestDialogDict[5212]),
5213: (BR_TIER + 1, Cont, (RecoverItemQuest, ToontownGlobals.TheBrrrgh, 10, 3005, Hard, Any), Same, Same, NA, 5214, TTLocalizer.QuestDialogDict[5213]),
5214: (BR_TIER + 1, Cont, (VisitQuest,), Same, 3119, NA, 5215, TTLocalizer.QuestDialogDict[5214]),
5215: (BR_TIER + 1, Cont, (CogLevelQuest, Anywhere, 10, 8), Same, Same, NA, 5216, TTLocalizer.QuestDialogDict[5215]),
5216: (BR_TIER + 1, Cont, (DeliverItemQuest, 3006), Same, 3206, 704, NA, TTLocalizer.QuestDialogDict[5216]),
5217: (BR_TIER + 1, Start, (VisitQuest,), Any, 3113, NA, 5218, TTLocalizer.QuestDialogDict[5217]),
5218: (BR_TIER + 1, Start, (CogQuest, Anywhere, 10, 'm'), 3113, Same, NA, 5219, TTLocalizer.QuestDialogDict[5218]),
5219: (BR_TIER + 1, Cont, (CogQuest, Anywhere, 10, 'cr'), Same, Same, NA, 5220, TTLocalizer.QuestDialogDict[5219]),
5220: (BR_TIER + 1, Cont, (CogQuest, Anywhere, 10, 'ls'), Same, Same, NA, 5221, TTLocalizer.QuestDialogDict[5220]),
5221: (BR_TIER + 1, Cont, (VisitQuest,), Same, 3211, NA, 5222, TTLocalizer.QuestDialogDict[5221]),
5222: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 2, 3007, Hard, AnyFish), Same, Same, NA, 5223, TTLocalizer.QuestDialogDict[5222]),
5223: (BR_TIER + 1, Cont, (DeliverItemQuest, 3008), Same, 3113, NA, 5224, TTLocalizer.QuestDialogDict[5223]),
5224: (BR_TIER + 1, Cont, (CogQuest, Anywhere, 5, 'le'), Same, Same, 502, NA, TTLocalizer.QuestDialogDict[5224]),
5225: (BR_TIER + 1, Start, (VisitQuest,), Any, 3106, NA, 5226, TTLocalizer.QuestDialogDict[5225]),
5226: (BR_TIER + 1, Start, (BuildingQuest, Anywhere, 3, 'm', 4, 0), 3106, Same, NA, 5227, TTLocalizer.QuestDialogDict[5226]),
5227: (BR_TIER + 1, Cont, (VisitQuest,), Same, 3208, NA, 5228, TTLocalizer.QuestDialogDict[5227]),
5228: (BR_TIER + 1, Cont, (DeliverItemQuest, 3009), Same, 3207, NA, (5229, 5267, 5268, 5269), TTLocalizer.QuestDialogDict[5228]),
5229: (BR_TIER + 1, Cont, (CogTrackQuest, ToontownGlobals.TheBrrrgh, 8, 'm'), Same, Same, NA, 5230, TTLocalizer.QuestDialogDict[5229]),
5267: (BR_TIER + 1, Cont, (CogTrackQuest, ToontownGlobals.TheBrrrgh, 8, 's'), Same, Same, NA, 5230, TTLocalizer.QuestDialogDict[5267]),
5268: (BR_TIER + 1, Cont, (CogTrackQuest, ToontownGlobals.TheBrrrgh, 8, 'l'), Same, Same, NA, 5230, TTLocalizer.QuestDialogDict[5268]),
5269: (BR_TIER + 1, Cont, (CogTrackQuest, ToontownGlobals.TheBrrrgh, 8, 'c'), Same, Same, NA, (5230, 5270, 5271, 5272), TTLocalizer.QuestDialogDict[5269]),
5230: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 3010, Hard, 'rb'), Same, Same, NA, 5231, TTLocalizer.QuestDialogDict[5230]),
5270: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 3010, Hard, 'tbc'), Same, Same, NA, 5231, TTLocalizer.QuestDialogDict[5270]),
5271: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 3010, Hard, 'mh'), Same, Same, NA, 5231, TTLocalizer.QuestDialogDict[5271]),
5272: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 3010, Medium, 'bw'), Same, Same, NA, 5231, TTLocalizer.QuestDialogDict[5272]),
5231: (BR_TIER + 1, Cont, (DeliverItemQuest, 3010), Same, 3208, NA, 5232, TTLocalizer.QuestDialogDict[5231]),
5232: (BR_TIER + 1, Cont, (VisitQuest,), Same, 3106, NA, 5233, TTLocalizer.QuestDialogDict[5232]),
5233: (BR_TIER + 1, Cont, (DeliverItemQuest, 3011), Same, 3208, 304, NA, TTLocalizer.QuestDialogDict[5233]),
5243: (BR_TIER + 1, Start, (VisitQuest,), Any, 3217, NA, 5244, TTLocalizer.QuestDialogDict[5243]),
5244: (BR_TIER + 1, Start, (RecoverItemQuest, Anywhere, 1, 2007, VeryHard, 'mm'), 3217, Same, NA, 5245, TTLocalizer.QuestDialogDict[5244]),
5245: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 3017, Hard, AnyFish), Same, Same, NA, 5246, TTLocalizer.QuestDialogDict[5245]),
5246: (BR_TIER + 1, Cont, (BuildingQuest, ToontownGlobals.TheBrrrgh, 5, Any, 1, 0), Same, Same, 101, NA, TTLocalizer.QuestDialogDict[5246]),
5251: (BR_TIER + 1, Start, (VisitQuest,), Any, 3134, NA, 5252, TTLocalizer.QuestDialogDict[5251]),
5252: (BR_TIER + 1, Start, (RecoverItemQuest, Anywhere, 1, 3019, VeryHard, Any), 3134, Same, NA, (5253, 5273, 5274, 5275), TTLocalizer.QuestDialogDict[5252]),
5253: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 3020, VeryHard, 'cr'), Same, Same, NA, (5254, 5282, 5283, 5284), TTLocalizer.QuestDialogDict[5253]),
5273: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 3020, VeryHard, 'm'), Same, Same, NA, (5254, 5282, 5283, 5284), TTLocalizer.QuestDialogDict[5273]),
5274: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 3020, VeryHard, 'ls'), Same, Same, NA, (5254, 5282, 5283, 5284), TTLocalizer.QuestDialogDict[5274]),
5275: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 3020, Hard, 'le'), Same, Same, NA, (5254, 5282, 5283, 5284), TTLocalizer.QuestDialogDict[5275]),
5254: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 3021, VeryHard, 'mh'), Same, Same, 102, NA, TTLocalizer.QuestDialogDict[5254]),
5282: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 3021, VeryHard, 'tbc'), Same, Same, 102, NA, TTLocalizer.QuestDialogDict[5282]),
5283: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 3021, VeryHard, 'rb'), Same, Same, 102, NA, TTLocalizer.QuestDialogDict[5283]),
5284: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 1, 3021, Hard, 'bw'), Same, Same, 102, NA, TTLocalizer.QuestDialogDict[5284]),
5255: (BR_TIER + 1, Start, (VisitQuest,), Any, 3228, NA, (5256, 5276), TTLocalizer.QuestDialogDict[5255]),
5256: (BR_TIER + 1, Cont, (CogTrackQuest, Anywhere, 45, 'c'), 3228, Same, NA, (5257, 5277), TTLocalizer.QuestDialogDict[5256]),
5276: (BR_TIER + 1, Cont, (CogTrackQuest, Anywhere, 40, 'l'), 3228, Same, NA, (5257, 5277), TTLocalizer.QuestDialogDict[5276]),
5257: (BR_TIER + 1, Cont, (CogTrackQuest, Anywhere, 45, 's'), Same, Same, 100, NA, TTLocalizer.QuestDialogDict[5257]),
5277: (BR_TIER + 1, Cont, (CogTrackQuest, Anywhere, 45, 'm'), Same, Same, 100, NA, TTLocalizer.QuestDialogDict[5277]),
5301: (BR_TIER + 1, Start, (VisitQuest,), Any, 3304, NA, 5302, TTLocalizer.QuestDialogDict[5301]),
5302: (BR_TIER + 1, Cont, (CogTrackQuest, Anywhere, 90, 'l'), Same, Same, 100, NA, TTLocalizer.QuestDialogDict[5302]),
5303: (BR_TIER + 1, Start, (VisitQuest,), Any, 3318, NA, 5304, TTLocalizer.QuestDialogDict[5303]),
5304: (BR_TIER + 1, Cont, (RecoverItemQuest, ToontownGlobals.TheBrrrgh, 1, 3024, VeryHard, 'l', 'track'), Same, Same, NA, 5305, TTLocalizer.QuestDialogDict[5304]),
5305: (BR_TIER + 1, Cont, (CogLevelQuest, Anywhere, 20, 7), Same, Same, NA, 5306, TTLocalizer.QuestDialogDict[5305]),
5306: (BR_TIER + 1, Cont, (RecoverItemQuest, ToontownGlobals.TheBrrrgh, 2, 3025, Hard, AnyFish), Same, Same, NA, 5307, TTLocalizer.QuestDialogDict[5306]),
5307: (BR_TIER + 1, Cont, (BuildingQuest, Anywhere, 5, Any, 4, 0), Same, Same, 204, NA, TTLocalizer.QuestDialogDict[5307]),
5308: (BR_TIER + 1, Start, (VisitQuest,), Any, 3312, NA, 5309, TTLocalizer.QuestDialogDict[5308]),
5309: (BR_TIER + 1, Start, (CogTrackQuest, ToontownGlobals.PolarPlace, 30, 'l'), Same, Same, NA, 5310, TTLocalizer.QuestDialogDict[5309]),
5310: (BR_TIER + 1, Cont, (VisitQuest,), Same, 3113, NA, 5311, TTLocalizer.QuestDialogDict[5310]),
5311: (BR_TIER + 1, Cont, (RecoverItemQuest, Anywhere, 2, 3026, Medium, 'le'), Same, Same, NA, 5312, TTLocalizer.QuestDialogDict[5311]),
5312: (BR_TIER + 1, Cont, (DeliverItemQuest, 3026), Same, 3312, 502, NA, TTLocalizer.QuestDialogDict[5312]),
5500: (BR_TIER + 1, Start, (CogQuest, ToontownGlobals.TheBrrrgh, 75, Any), Any, ToonHQ, NA, 5501, DefaultDialog),
5501: (BR_TIER + 1, Cont, (DeliverItemQuest, 1000), Any, 3008, 1000, NA, DefaultDialog),
5502: (BR_TIER + 1, Start, (RescueQuest, InVP, 3), Any, ToonHQ, Any, NA, DefaultDialog),
5503: (BR_TIER + 1, Start, (RescueQuest, InFO, 6), Any, ToonHQ, Any, NA, DefaultDialog),
903: (BR_TIER + 2, Start, (VisitQuest,), Any, 3112, NA, (5234, 5278), TTLocalizer.QuestDialogDict[903]),
5234: (BR_TIER + 2, Start, (RecoverItemQuest, Anywhere, 6, 3012, Medium, 'tbc'), 3112, Same, NA, (5235, 5279), TTLocalizer.QuestDialogDict[5234]),
5278: (BR_TIER + 2, Start, (RecoverItemQuest, Anywhere, 6, 3022, Medium, 'mh'), 3112, Same, NA, (5235, 5279), TTLocalizer.QuestDialogDict[5278]),
5235: (BR_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 1, 3013, Hard, 'rb'), Same, Same, NA, 5236, TTLocalizer.QuestDialogDict[5235]),
5279: (BR_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 1, 3013, Medium, 'bw'), Same, Same, NA, 5236, TTLocalizer.QuestDialogDict[5279]),
5236: (BR_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 1, 3014, VeryHard, AnyFish), Same, Same, NA, 5237, TTLocalizer.QuestDialogDict[5236]),
5237: (BR_TIER + 2, Cont, (VisitQuest,), Same, 3128, NA, (5238, 5280), TTLocalizer.QuestDialogDict[5237]),
5238: (BR_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 10, 3015, VeryEasy, 'mh'), Same, Same, NA, 5239, TTLocalizer.QuestDialogDict[5238]),
5280: (BR_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 10, 3015, VeryEasy, 'tbc'), Same, Same, NA, 5239, TTLocalizer.QuestDialogDict[5280]),
5239: (BR_TIER + 2, Cont, (DeliverItemQuest, 3015), Same, 3112, NA, (5240, 5281), TTLocalizer.QuestDialogDict[5239]),
5240: (BR_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 1, 3016, Hard, 'bw'), Same, Same, NA, 5241, TTLocalizer.QuestDialogDict[5240]),
5281: (BR_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 1, 3023, Hard, 'mh'), Same, Same, NA, 5241, TTLocalizer.QuestDialogDict[5281]),
5241: (BR_TIER + 2, Cont, (BuildingQuest, Anywhere, 20, Any, 4, 0), Same, Same, NA, 5242, TTLocalizer.QuestDialogDict[5241]),
5242: (BR_TIER + 2, Cont, (RecoverItemQuest, Anywhere, 1, 3014, VeryHard, AnyFish), Same, Same, 900, NA, TTLocalizer.QuestDialogDict[5242]),
5320: (BR_TIER + 2, Start, (CogQuest, Anywhere, 36, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5321: (BR_TIER + 2, Start, (CogQuest, Anywhere, 38, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5322: (BR_TIER + 2, Start, (CogQuest, Anywhere, 40, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5323: (BR_TIER + 2, Start, (CogQuest, Anywhere, 42, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5324: (BR_TIER + 2, Start, (CogQuest, Anywhere, 44, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5325: (BR_TIER + 2, Start, (CogQuest, Anywhere, 46, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5326: (BR_TIER + 2, Start, (CogQuest, Anywhere, 48, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5327: (BR_TIER + 2, Start, (CogQuest, Anywhere, 53, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5328: (BR_TIER + 2, Start, (CogQuest, Anywhere, 52, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5329: (BR_TIER + 2, Start, (CogQuest, Anywhere, 54, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5330: (BR_TIER + 2, Start, (CogLevelQuest, Anywhere, 25, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5331: (BR_TIER + 2, Start, (CogLevelQuest, Anywhere, 30, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5332: (BR_TIER + 2, Start, (CogLevelQuest, Anywhere, 35, 6), Any, ToonHQ, Any, NA, DefaultDialog),
5333: (BR_TIER + 2, Start, (CogLevelQuest, Anywhere, 6, 7), Any, ToonHQ, Any, NA, DefaultDialog),
5334: (BR_TIER + 2, Start, (CogLevelQuest, Anywhere, 10, 7), Any, ToonHQ, Any, NA, DefaultDialog),
5335: (BR_TIER + 2, Start, (CogLevelQuest, Anywhere, 20, 7), Any, ToonHQ, Any, NA, DefaultDialog),
5336: (BR_TIER + 2, Start, (CogLevelQuest, Anywhere, 2, 8), Any, ToonHQ, Any, NA, DefaultDialog),
5337: (BR_TIER + 2, Start, (CogLevelQuest, Anywhere, 8, 8), Any, ToonHQ, Any, NA, DefaultDialog),
5338: (BR_TIER + 2, Start, (CogLevelQuest, Anywhere, 10, 8), Any, ToonHQ, Any, NA, DefaultDialog),
5339: (BR_TIER + 2, Start, (CogLevelQuest, Anywhere, 12, 8), Any, ToonHQ, Any, NA, DefaultDialog),
5340: (BR_TIER + 2, Start, (CogQuest, ToontownGlobals.TheBrrrgh, 75, Any), Any, ToonHQ, NA, 5341, DefaultDialog),
5341: (BR_TIER + 2, Cont, (DeliverItemQuest, 1000), Any, 3008, 1000, NA, DefaultDialog),
5370: (BR_TIER + 2, Start, (CogQuest, ToontownGlobals.SellbotHQ, 22, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5371: (BR_TIER + 2, Start, (CogQuest, ToontownGlobals.SellbotHQ, 25, Any), Any, ToonHQ, Any, NA, DefaultDialog),
5372: (BR_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.SellbotHQ, 16, 4), Any, ToonHQ, Any, NA, DefaultDialog),
5373: (BR_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.SellbotHQ, 12, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5374: (BR_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 14, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5375: (BR_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 10, 6), Any, ToonHQ, Any, NA, DefaultDialog),
5376: (BR_TIER + 2, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5377: (BR_TIER + 2, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 2), Any, ToonHQ, Any, NA, DefaultDialog),
5378: (BR_TIER + 2, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5379: (BR_TIER + 2, Start, (FactoryQuest, ToontownGlobals.SellbotHQ, 2), Any, ToonHQ, Any, NA, DefaultDialog),
5380: (BR_TIER + 2, Start, (SkelecogQuest, ToontownGlobals.SellbotFactoryInt, 12), Any, ToonHQ, Any, NA, DefaultDialog),
5381: (BR_TIER + 2, Start, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 6, 5), Any, ToonHQ, Any, NA, DefaultDialog),
5382: (BR_TIER + 2, Start, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 3, 6), Any, ToonHQ, Any, NA, DefaultDialog),
5383: (BR_TIER + 2, Start, (ForemanQuest, ToontownGlobals.SellbotHQ, 1), Any, ToonHQ, Any, NA, DefaultDialog),
5384: (BR_TIER + 2, Start, (ForemanQuest, ToontownGlobals.SellbotHQ, 2), Any, ToonHQ, Any, NA, DefaultDialog),
5385: (BR_TIER + 2, Start, (RescueQuest, InVP, 3), Any, ToonHQ, Any, NA, DefaultDialog),
5386: (BR_TIER + 2, Start, (RescueQuest, InFO, 6), Any, ToonHQ, Any, NA, DefaultDialog),
6101: (DL_TIER, Start, (CogQuest, ToontownGlobals.DonaldsDreamland, 60, Any), Any, ToonHQ, Any, NA, DefaultDialog),
6102: (DL_TIER, Start, (CogQuest, ToontownGlobals.DonaldsDreamland, 65, Any), Any, ToonHQ, Any, NA, DefaultDialog),
6103: (DL_TIER, OBSOLETE, (CogQuest, ToontownGlobals.DonaldsDreamland, 70, Any), Any, ToonHQ, Any, NA, DefaultDialog),
6104: (DL_TIER, Start, (CogQuest, Anywhere, 80, Any), Any, ToonHQ, Any, NA, DefaultDialog),
6105: (DL_TIER, Start, (CogQuest, Anywhere, 90, Any), Any, ToonHQ, Any, NA, DefaultDialog),
6106: (DL_TIER, Start, (CogQuest, Anywhere, 100, Any), Any, ToonHQ, Any, NA, DefaultDialog),
6107: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'ym'), Any, ToonHQ, Any, NA, DefaultDialog),
6108: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'mm'), Any, ToonHQ, Any, NA, DefaultDialog),
6109: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'ds'), Any, ToonHQ, Any, NA, DefaultDialog),
6110: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'hh'), Any, ToonHQ, Any, NA, DefaultDialog),
6111: (DL_TIER, Start, (CogQuest, Anywhere, 15, 'cr'), Any, ToonHQ, Any, NA, DefaultDialog),
6112: (DL_TIER, Start, (CogQuest, Anywhere, 8, 'tbc'), Any, ToonHQ, Any, NA, DefaultDialog),
6113: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'nd'), Any, ToonHQ, Any, NA, DefaultDialog),
6114: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'gh'), Any, ToonHQ, Any, NA, DefaultDialog),
6115: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'ms'), Any, ToonHQ, Any, NA, DefaultDialog),
6116: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'tf'), Any, ToonHQ, Any, NA, DefaultDialog),
6117: (DL_TIER, Start, (CogQuest, Anywhere, 15, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
6118: (DL_TIER, Start, (CogQuest, Anywhere, 8, 'mh'), Any, ToonHQ, Any, NA, DefaultDialog),
6119: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'tw'), Any, ToonHQ, Any, NA, DefaultDialog),
6120: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'bc'), Any, ToonHQ, Any, NA, DefaultDialog),
6121: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'nc'), Any, ToonHQ, Any, NA, DefaultDialog),
6122: (DL_TIER, OBSOLETE, (CogQuest, Anywhere, 25, 'mb'), Any, ToonHQ, Any, NA, DefaultDialog),
6123: (DL_TIER, Start, (CogQuest, Anywhere, 15, 'ls'), Any, ToonHQ, Any, NA, DefaultDialog),
6124: (DL_TIER, Start, (CogQuest, Anywhere, 8, 'rb'), Any, ToonHQ, Any, NA, DefaultDialog),
6125: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'dt'), Any, ToonHQ, Any, NA, DefaultDialog),
6126: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'ac'), Any, ToonHQ, Any, NA, DefaultDialog),
6127: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'bs'), Any, ToonHQ, Any, NA, DefaultDialog),
6128: (DL_TIER, Start, (CogQuest, Anywhere, 25, 'sd'), Any, ToonHQ, Any, NA, DefaultDialog),
6129: (DL_TIER, Start, (CogQuest, Anywhere, 15, 'le'), Any, ToonHQ, Any, NA, DefaultDialog),
6130: (DL_TIER, Start, (CogQuest, Anywhere, 8, 'bw'), Any, ToonHQ, Any, NA, DefaultDialog),
6131: (DL_TIER, Start, (CogLevelQuest, Anywhere, 50, 5), Any, ToonHQ, Any, NA, DefaultDialog),
6132: (DL_TIER, Start, (CogLevelQuest, Anywhere, 40, 6), Any, ToonHQ, Any, NA, DefaultDialog),
6133: (DL_TIER, Start, (CogLevelQuest, Anywhere, 35, 7), Any, ToonHQ, Any, NA, DefaultDialog),
6134: (DL_TIER, Start, (CogLevelQuest, Anywhere, 30, 8), Any, ToonHQ, Any, NA, DefaultDialog),
6135: (DL_TIER, Start, (CogLevelQuest, Anywhere, 25, 9), Any, ToonHQ, Any, NA, DefaultDialog),
6136: (DL_TIER, Start, (CogLevelQuest, Anywhere, 20, 9), Any, ToonHQ, Any, NA, DefaultDialog),
6137: (DL_TIER, Start, (CogLevelQuest, Anywhere, 15, 9), Any, ToonHQ, Any, NA, DefaultDialog),
6138: (DL_TIER, Start, (CogLevelQuest, Anywhere, 10, 10), Any, ToonHQ, Any, NA, DefaultDialog),
6139: (DL_TIER, Start, (CogTrackQuest, ToontownGlobals.DonaldsDreamland, 50, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
6140: (DL_TIER, Start, (CogTrackQuest, ToontownGlobals.DonaldsDreamland, 50, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
6141: (DL_TIER, OBSOLETE, (CogTrackQuest, ToontownGlobals.DonaldsDreamland, 50, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
6142: (DL_TIER, Start, (CogTrackQuest, ToontownGlobals.DonaldsDreamland, 50, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
6143: (DL_TIER, OBSOLETE, (CogTrackQuest, ToontownGlobals.DonaldsDreamland, 55, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
6144: (DL_TIER, Start, (CogTrackQuest, ToontownGlobals.DonaldsDreamland, 55, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
6145: (DL_TIER, Start, (CogTrackQuest, ToontownGlobals.DonaldsDreamland, 55, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
6146: (DL_TIER, Start, (CogTrackQuest, ToontownGlobals.DonaldsDreamland, 55, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
6147: (DL_TIER, OBSOLETE, (CogTrackQuest, Anywhere, 70, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
6148: (DL_TIER, Start, (CogTrackQuest, Anywhere, 70, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
6149: (DL_TIER, Start, (CogTrackQuest, Anywhere, 70, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
6150: (DL_TIER, Start, (CogTrackQuest, Anywhere, 70, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
6151: (DL_TIER, Start, (BuildingQuest, Anywhere, 10, Any, 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
6152: (DL_TIER, Start, (BuildingQuest, Anywhere, 6, Any, 4, 0), Any, ToonHQ, Any, NA, DefaultDialog),
6153: (DL_TIER, OBSOLETE, (BuildingQuest, Anywhere, 8, Any, 4, 0), Any, ToonHQ, Any, NA, DefaultDialog),
6154: (DL_TIER, Start, (BuildingQuest, Anywhere, 6, Any, 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
6155: (DL_TIER, Start, (BuildingQuest, Anywhere, 2, 'm', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
6156: (DL_TIER, Start, (BuildingQuest, Anywhere, 2, 's', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
6157: (DL_TIER, Start, (BuildingQuest, Anywhere, 2, 'c', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
6158: (DL_TIER, Start, (BuildingQuest, Anywhere, 2, 'l', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
6170: (DL_TIER, OBSOLETE, (CogQuest, ToontownGlobals.SellbotHQ, 40, Any), Any, ToonHQ, Any, NA, DefaultDialog),
6171: (DL_TIER, OBSOLETE, (CogQuest, ToontownGlobals.SellbotHQ, 45, Any), Any, ToonHQ, Any, NA, DefaultDialog),
6172: (DL_TIER, OBSOLETE, (CogQuest, ToontownGlobals.SellbotHQ, 50, Any), Any, ToonHQ, Any, NA, DefaultDialog),
6173: (DL_TIER, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotHQ, 30, 4), Any, ToonHQ, Any, NA, DefaultDialog),
6174: (DL_TIER, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotHQ, 20, 5), Any, ToonHQ, Any, NA, DefaultDialog),
6175: (DL_TIER, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotHQ, 20, 5), Any, ToonHQ, Any, NA, DefaultDialog),
6176: (DL_TIER, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 15, 5), Any, ToonHQ, Any, NA, DefaultDialog),
6177: (DL_TIER, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 10, 6), Any, ToonHQ, Any, NA, DefaultDialog),
6178: (DL_TIER, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 10, 6), Any, ToonHQ, Any, NA, DefaultDialog),
6179: (DL_TIER, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 3), Any, ToonHQ, Any, NA, DefaultDialog),
6180: (DL_TIER, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 4), Any, ToonHQ, Any, NA, DefaultDialog),
6181: (DL_TIER, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 3), Any, ToonHQ, Any, NA, DefaultDialog),
6182: (DL_TIER, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 4), Any, ToonHQ, Any, NA, DefaultDialog),
6183: (DL_TIER, OBSOLETE, (SkelecogQuest, ToontownGlobals.SellbotFactoryInt, 20), Any, ToonHQ, Any, NA, DefaultDialog),
6184: (DL_TIER, OBSOLETE, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 10, 5), Any, ToonHQ, Any, NA, DefaultDialog),
6185: (DL_TIER, OBSOLETE, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 4, 6), Any, ToonHQ, Any, NA, DefaultDialog),
6186: (DL_TIER, OBSOLETE, (ForemanQuest, ToontownGlobals.SellbotHQ, 3), Any, ToonHQ, Any, NA, DefaultDialog),
6187: (DL_TIER, OBSOLETE, (ForemanQuest, ToontownGlobals.SellbotHQ, 4), Any, ToonHQ, Any, NA, DefaultDialog),
6197: (DL_TIER, Start, (BuildingQuest, Anywhere, 10, Any, 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
6198: (DL_TIER, Start, (BuildingQuest, Anywhere, 8, Any, 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
6199: (DL_TIER, Start, (BuildingQuest, Anywhere, 6, 's', 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
6200: (DL_TIER, Start, (BuildingQuest, Anywhere, 5, 'l', 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
6201: (DL_TIER, Start, (VisitQuest,), Any, 9111, NA, 6202, TTLocalizer.QuestDialogDict[6201]),
6202: (DL_TIER, Start, (CogQuest, ToontownGlobals.DonaldsDreamland, 70, Any), 9111, Same, 100, NA, TTLocalizer.QuestDialogDict[6202]),
6206: (DL_TIER, Start, (VisitQuest,), Any, 9131, NA, 6207, TTLocalizer.QuestDialogDict[6206]),
6207: (DL_TIER, Start, (BuildingQuest, ToontownGlobals.DonaldsDreamland, 8, Any, 4, 0), 9131, Same, 205, NA, TTLocalizer.QuestDialogDict[6207]),
6211: (DL_TIER, Start, (VisitQuest,), Any, 9217, NA, 6212, TTLocalizer.QuestDialogDict[6211]),
6212: (DL_TIER, Start, (RecoverItemQuest, Anywhere, 3, 6002, Medium, 'bc'), 9217, Same, NA, 6213, TTLocalizer.QuestDialogDict[6212]),
6213: (DL_TIER, Cont, (RecoverItemQuest, Anywhere, 1, 6003, Hard, 'mb'), Same, Same, NA, 6214, TTLocalizer.QuestDialogDict[6213]),
6214: (DL_TIER, Cont, (RecoverItemQuest, Anywhere, 1, 6004, VeryHard, 'pp'), Same, Same, 101, NA, TTLocalizer.QuestDialogDict[6214]),
6221: (DL_TIER, Start, (VisitQuest,), Any, 9119, NA, 6222, TTLocalizer.QuestDialogDict[6221]),
6222: (DL_TIER, Start, (CogTrackQuest, ToontownGlobals.DonaldsDreamland, 50, 'c'), 9119, Same, 102, NA, TTLocalizer.QuestDialogDict[6222]),
6231: (DL_TIER, Start, (VisitQuest,), Any, 9203, NA, 6232, TTLocalizer.QuestDialogDict[6231]),
6232: (DL_TIER, Start, (VisitQuest,), 9203, 9103, NA, 6233, TTLocalizer.QuestDialogDict[6232]),
6233: (DL_TIER, Cont, (CogTrackQuest, ToontownGlobals.CashbotHQ, 10, 'm'), Same, Same, NA, 6234, TTLocalizer.QuestDialogDict[6233]),
6234: (DL_TIER, Cont, (VisitQuest,), Same, 9203, NA, 6235, TTLocalizer.QuestDialogDict[6234]),
6235: (DL_TIER, Cont, (RecoverItemQuest, ToontownGlobals.CashbotHQ, 1, 6001, VeryHard, 'm', 'track'), Same, Same, 4000, NA, TTLocalizer.QuestDialogDict[6235]),
6241: (DL_TIER, Start, (VisitQuest,), Any, 9219, NA, 6242, TTLocalizer.QuestDialogDict[6241]),
6242: (DL_TIER, Start, (CogQuest, ToontownGlobals.DonaldsDreamland, 25, 'nc'), 9219, Same, 705, NA, TTLocalizer.QuestDialogDict[6242]),
6251: (DL_TIER, Start, (VisitQuest,), Any, 9221, NA, 6252, TTLocalizer.QuestDialogDict[6251]),
6252: (DL_TIER, Start, (DeliverItemQuest, 6006), 9221, 9222, NA, 6253, TTLocalizer.QuestDialogDict[6252]),
6253: (DL_TIER, Cont, (VisitQuest,), Same, 9221, NA, 6254, TTLocalizer.QuestDialogDict[6253]),
6254: (DL_TIER, Cont, (DeliverItemQuest, 6007), Same, 9210, NA, 6255, TTLocalizer.QuestDialogDict[6254]),
6255: (DL_TIER, Cont, (CogTrackQuest, Anywhere, 70, 'm'), Same, Same, NA, 6256, TTLocalizer.QuestDialogDict[6255]),
6256: (DL_TIER, Cont, (VisitQuest,), Same, 9221, NA, 6257, TTLocalizer.QuestDialogDict[6256]),
6257: (DL_TIER, Cont, (DeliverItemQuest, 6008), Same, 9205, NA, 6258, TTLocalizer.QuestDialogDict[6257]),
6258: (DL_TIER, Cont, (CogQuest, Anywhere, 25, 'ms'), Same, Same, NA, 6259, TTLocalizer.QuestDialogDict[6258]),
6259: (DL_TIER, Cont, (VisitQuest,), Same, 9221, NA, 6260, TTLocalizer.QuestDialogDict[6259]),
6260: (DL_TIER, Cont, (DeliverItemQuest, 6009), Same, 9229, NA, 6261, TTLocalizer.QuestDialogDict[6260]),
6261: (DL_TIER, Cont, (VisitQuest,), Same, 9221, NA, 6262, TTLocalizer.QuestDialogDict[6261]),
6262: (DL_TIER, Cont, (DeliverItemQuest, 6010), Same, 9126, NA, 6263, TTLocalizer.QuestDialogDict[6262]),
6263: (DL_TIER, Cont, (DeliverItemQuest, 6010), Same, 9112, NA, 6264, TTLocalizer.QuestDialogDict[6263]),
6264: (DL_TIER, Cont, (DeliverItemQuest, 6011), Same, 9221, NA, 6265, TTLocalizer.QuestDialogDict[6264]),
6265: (DL_TIER, Cont, (DeliverItemQuest, 6012), Same, 9115, NA, 6266, TTLocalizer.QuestDialogDict[6265]),
6266: (DL_TIER, Cont, (VisitQuest,), Same, 9221, 103, NA, TTLocalizer.QuestDialogDict[6266]),
6271: (DL_TIER, Start, (VisitQuest,), Any, 9208, NA, 6272, TTLocalizer.QuestDialogDict[6271]),
6272: (DL_TIER, Start, (BuildingQuest, ToontownGlobals.DonaldsDreamland, 2, 'm', 5, 0), 9208, Same, 305, NA, TTLocalizer.QuestDialogDict[6272]),
6281: (DL_TIER, Start, (VisitQuest,), Any, 9123, NA, 6282, TTLocalizer.QuestDialogDict[6281]),
6282: (DL_TIER, Start, (CogTrackQuest, ToontownGlobals.DonaldsDreamland, 55, 'm'), 9123, Same, 4001, NA, TTLocalizer.QuestDialogDict[6282]),
6291: (DL_TIER, Start, (VisitQuest,), Any, 9226, NA, 6292, TTLocalizer.QuestDialogDict[6291]),
6292: (DL_TIER, Start, (RecoverItemQuest, ToontownGlobals.DonaldsDreamland, 1, 6005, VeryHard, 'm', 'track'), 9226, Same, 4002, NA, TTLocalizer.QuestDialogDict[6292]),
6301: (DL_TIER, Start, (CogQuest, ToontownGlobals.CashbotHQ, 40, Any), Any, ToonHQ, Any, NA, DefaultDialog),
6302: (DL_TIER, Start, (CogQuest, ToontownGlobals.CashbotHQ, 45, Any), Any, ToonHQ, Any, NA, DefaultDialog),
6303: (DL_TIER, Start, (CogQuest, ToontownGlobals.CashbotHQ, 50, Any), Any, ToonHQ, Any, NA, DefaultDialog),
6304: (DL_TIER, Start, (CogLevelQuest, ToontownGlobals.CashbotHQ, 30, 7), Any, ToonHQ, Any, NA, DefaultDialog),
6305: (DL_TIER, Start, (CogLevelQuest, ToontownGlobals.CashbotHQ, 20, 8), Any, ToonHQ, Any, NA, DefaultDialog),
6306: (DL_TIER, Start, (CogLevelQuest, ToontownGlobals.CashbotHQ, 15, 9), Any, ToonHQ, Any, NA, DefaultDialog),
6307: (DL_TIER, Start, (CogLevelQuest, ToontownGlobals.CashbotMintIntA, 12, 10), Any, ToonHQ, Any, NA, DefaultDialog),
6308: (DL_TIER, OBSOLETE, (CogLevelQuest, ToontownGlobals.CashbotMintIntB, 10, 10), Any, ToonHQ, Any, NA, DefaultDialog),
6309: (DL_TIER, OBSOLETE, (CogLevelQuest, ToontownGlobals.CashbotMintIntC, 8, 10), Any, ToonHQ, Any, NA, DefaultDialog),
6310: (DL_TIER, Start, (MintQuest, ToontownGlobals.CashbotMintIntA, 5), Any, ToonHQ, Any, NA, DefaultDialog),
6311: (DL_TIER, OBSOLETE, (MintQuest, ToontownGlobals.CashbotMintIntB, 4), Any, ToonHQ, Any, NA, DefaultDialog),
6312: (DL_TIER, OBSOLETE, (MintQuest, ToontownGlobals.CashbotMintIntC, 3), Any, ToonHQ, Any, NA, DefaultDialog),
6313: (DL_TIER, Start, (SkelecogQuest, ToontownGlobals.CashbotHQ, 20), Any, ToonHQ, Any, NA, DefaultDialog),
6314: (DL_TIER, Start, (SkelecogLevelQuest, ToontownGlobals.CashbotHQ, 10, 11), Any, ToonHQ, Any, NA, DefaultDialog),
6315: (DL_TIER, Start, (SkelecogLevelQuest, ToontownGlobals.CashbotHQ, 6, 12), Any, ToonHQ, Any, NA, DefaultDialog),
6318: (DL_TIER, Start, (SupervisorQuest, ToontownGlobals.CashbotMintIntA, 5), Any, ToonHQ, Any, NA, DefaultDialog),
6319: (DL_TIER, OBSOLETE, (SupervisorQuest, ToontownGlobals.CashbotMintIntB, 4), Any, ToonHQ, Any, NA, DefaultDialog),
6320: (DL_TIER, OBSOLETE, (SupervisorQuest, ToontownGlobals.CashbotMintIntC, 3), Any, ToonHQ, Any, NA, DefaultDialog),
6321: (DL_TIER, Start, (CogLevelQuest, ToontownGlobals.CashbotMintIntA, 10, 10), Any, ToonHQ, Any, NA, DefaultDialog),
6322: (DL_TIER, Start, (CogLevelQuest, ToontownGlobals.CashbotMintIntA, 8, 10), Any, ToonHQ, Any, NA, DefaultDialog),
6323: (DL_TIER, Start, (MintQuest, ToontownGlobals.CashbotMintIntA, 4), Any, ToonHQ, Any, NA, DefaultDialog),
6324: (DL_TIER, Start, (MintQuest, ToontownGlobals.CashbotMintIntA, 3), Any, ToonHQ, Any, NA, DefaultDialog),
6325: (DL_TIER, Start, (SupervisorQuest, ToontownGlobals.CashbotMintIntA, 4), Any, ToonHQ, Any, NA, DefaultDialog),
6326: (DL_TIER, Start, (SupervisorQuest, ToontownGlobals.CashbotMintIntA, 3), Any, ToonHQ, Any, NA, DefaultDialog),
6327: (DL_TIER, Start, (RescueQuest, InVP, 3), Any, ToonHQ, Any, NA, DefaultDialog),
6328: (DL_TIER, Start, (RescueQuest, InFO, 6), Any, ToonHQ, Any, NA, DefaultDialog),
7101: (DL_TIER + 1, Start, (CogQuest, Anywhere, 120, Any), Any, ToonHQ, Any, NA, DefaultDialog),
7102: (DL_TIER + 1, Start, (CogQuest, Anywhere, 130, Any), Any, ToonHQ, Any, NA, DefaultDialog),
7103: (DL_TIER + 1, OBSOLETE, (CogQuest, Anywhere, 140, Any), Any, ToonHQ, Any, NA, DefaultDialog),
7104: (DL_TIER + 1, Start, (CogQuest, Anywhere, 160, Any), Any, ToonHQ, Any, NA, DefaultDialog),
7105: (DL_TIER + 1, Start, (CogQuest, Anywhere, 180, Any), Any, ToonHQ, Any, NA, DefaultDialog),
7106: (DL_TIER + 1, Start, (CogQuest, Anywhere, 200, Any), Any, ToonHQ, Any, NA, DefaultDialog),
7107: (DL_TIER + 1, Start, (CogQuest, Anywhere, 70, 'ym'), Any, ToonHQ, Any, NA, DefaultDialog),
7108: (DL_TIER + 1, Start, (CogQuest, Anywhere, 60, 'mm'), Any, ToonHQ, Any, NA, DefaultDialog),
7109: (DL_TIER + 1, Start, (CogQuest, Anywhere, 50, 'ds'), Any, ToonHQ, Any, NA, DefaultDialog),
7110: (DL_TIER + 1, Start, (CogQuest, Anywhere, 50, 'hh'), Any, ToonHQ, Any, NA, DefaultDialog),
7111: (DL_TIER + 1, Start, (CogQuest, Anywhere, 30, 'cr'), Any, ToonHQ, Any, NA, DefaultDialog),
7112: (DL_TIER + 1, Start, (CogQuest, Anywhere, 20, 'tbc'), Any, ToonHQ, Any, NA, DefaultDialog),
7113: (DL_TIER + 1, Start, (CogQuest, Anywhere, 70, 'nd'), Any, ToonHQ, Any, NA, DefaultDialog),
7114: (DL_TIER + 1, Start, (CogQuest, Anywhere, 60, 'gh'), Any, ToonHQ, Any, NA, DefaultDialog),
7115: (DL_TIER + 1, Start, (CogQuest, Anywhere, 50, 'ms'), Any, ToonHQ, Any, NA, DefaultDialog),
7116: (DL_TIER + 1, Start, (CogQuest, Anywhere, 50, 'tf'), Any, ToonHQ, Any, NA, DefaultDialog),
7117: (DL_TIER + 1, Start, (CogQuest, Anywhere, 30, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
7118: (DL_TIER + 1, Start, (CogQuest, Anywhere, 20, 'mh'), Any, ToonHQ, Any, NA, DefaultDialog),
7119: (DL_TIER + 1, Start, (CogQuest, Anywhere, 70, 'tw'), Any, ToonHQ, Any, NA, DefaultDialog),
7120: (DL_TIER + 1, Start, (CogQuest, Anywhere, 60, 'bc'), Any, ToonHQ, Any, NA, DefaultDialog),
7121: (DL_TIER + 1, OBSOLETE, (CogQuest, Anywhere, 50, 'nc'), Any, ToonHQ, Any, NA, DefaultDialog),
7122: (DL_TIER + 1, Start, (CogQuest, Anywhere, 50, 'mb'), Any, ToonHQ, Any, NA, DefaultDialog),
7123: (DL_TIER + 1, Start, (CogQuest, Anywhere, 30, 'ls'), Any, ToonHQ, Any, NA, DefaultDialog),
7124: (DL_TIER + 1, Start, (CogQuest, Anywhere, 20, 'rb'), Any, ToonHQ, Any, NA, DefaultDialog),
7125: (DL_TIER + 1, Start, (CogQuest, Anywhere, 70, 'dt'), Any, ToonHQ, Any, NA, DefaultDialog),
7126: (DL_TIER + 1, Start, (CogQuest, Anywhere, 60, 'ac'), Any, ToonHQ, Any, NA, DefaultDialog),
7127: (DL_TIER + 1, Start, (CogQuest, Anywhere, 50, 'bs'), Any, ToonHQ, Any, NA, DefaultDialog),
7128: (DL_TIER + 1, Start, (CogQuest, Anywhere, 50, 'sd'), Any, ToonHQ, Any, NA, DefaultDialog),
7129: (DL_TIER + 1, Start, (CogQuest, Anywhere, 30, 'le'), Any, ToonHQ, Any, NA, DefaultDialog),
7130: (DL_TIER + 1, Start, (CogQuest, Anywhere, 20, 'bw'), Any, ToonHQ, Any, NA, DefaultDialog),
7131: (DL_TIER + 1, Start, (CogLevelQuest, Anywhere, 100, 7), Any, ToonHQ, Any, NA, DefaultDialog),
7132: (DL_TIER + 1, Start, (CogLevelQuest, Anywhere, 80, 8), Any, ToonHQ, Any, NA, DefaultDialog),
7133: (DL_TIER + 1, Start, (CogLevelQuest, Anywhere, 60, 9), Any, ToonHQ, Any, NA, DefaultDialog),
7134: (DL_TIER + 1, Start, (CogLevelQuest, Anywhere, 70, 9), Any, ToonHQ, Any, NA, DefaultDialog),
7135: (DL_TIER + 1, Start, (CogLevelQuest, Anywhere, 40, 10), Any, ToonHQ, Any, NA, DefaultDialog),
7136: (DL_TIER + 1, Start, (CogLevelQuest, Anywhere, 50, 10), Any, ToonHQ, Any, NA, DefaultDialog),
7137: (DL_TIER + 1, Start, (CogLevelQuest, Anywhere, 20, 11), Any, ToonHQ, Any, NA, DefaultDialog),
7138: (DL_TIER + 1, Start, (CogLevelQuest, Anywhere, 30, 11), Any, ToonHQ, Any, NA, DefaultDialog),
7139: (DL_TIER + 1, Start, (CogTrackQuest, Anywhere, 100, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
7140: (DL_TIER + 1, Start, (CogTrackQuest, Anywhere, 100, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
7141: (DL_TIER + 1, Start, (CogTrackQuest, Anywhere, 100, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
7142: (DL_TIER + 1, Start, (CogTrackQuest, Anywhere, 100, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
7143: (DL_TIER + 1, OBSOLETE, (CogTrackQuest, Anywhere, 120, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
7144: (DL_TIER + 1, Start, (CogTrackQuest, Anywhere, 120, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
7145: (DL_TIER + 1, Start, (CogTrackQuest, Anywhere, 120, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
7146: (DL_TIER + 1, Start, (CogTrackQuest, Anywhere, 120, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
7147: (DL_TIER + 1, Start, (CogTrackQuest, Anywhere, 140, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
7148: (DL_TIER + 1, Start, (CogTrackQuest, Anywhere, 140, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
7149: (DL_TIER + 1, Start, (CogTrackQuest, Anywhere, 140, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
7150: (DL_TIER + 1, Start, (CogTrackQuest, Anywhere, 140, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
7151: (DL_TIER + 1, Start, (BuildingQuest, Anywhere, 20, Any, 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
7152: (DL_TIER + 1, OBSOLETE, (BuildingQuest, Anywhere, 10, Any, 3, 0), Any, ToonHQ, Any, NA, DefaultDialog),
7153: (DL_TIER + 1, Start, (BuildingQuest, Anywhere, 10, Any, 4, 0), Any, ToonHQ, Any, NA, DefaultDialog),
7154: (DL_TIER + 1, Start, (BuildingQuest, Anywhere, 10, Any, 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
7155: (DL_TIER + 1, OBSOLETE, (BuildingQuest, Anywhere, 5, 'm', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
7156: (DL_TIER + 1, Start, (BuildingQuest, Anywhere, 5, 's', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
7157: (DL_TIER + 1, Start, (BuildingQuest, Anywhere, 5, 'c', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
7158: (DL_TIER + 1, Start, (BuildingQuest, Anywhere, 5, 'l', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
7170: (DL_TIER + 1, OBSOLETE, (CogQuest, ToontownGlobals.SellbotHQ, 80, Any), Any, ToonHQ, Any, NA, DefaultDialog),
7171: (DL_TIER + 1, OBSOLETE, (CogQuest, ToontownGlobals.SellbotHQ, 90, Any), Any, ToonHQ, Any, NA, DefaultDialog),
7172: (DL_TIER + 1, OBSOLETE, (CogQuest, ToontownGlobals.SellbotHQ, 100, Any), Any, ToonHQ, Any, NA, DefaultDialog),
7173: (DL_TIER + 1, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotHQ, 50, 4), Any, ToonHQ, Any, NA, DefaultDialog),
7174: (DL_TIER + 1, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotHQ, 35, 5), Any, ToonHQ, Any, NA, DefaultDialog),
7175: (DL_TIER + 1, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotHQ, 35, 5), Any, ToonHQ, Any, NA, DefaultDialog),
7176: (DL_TIER + 1, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 30, 5), Any, ToonHQ, Any, NA, DefaultDialog),
7177: (DL_TIER + 1, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 20, 6), Any, ToonHQ, Any, NA, DefaultDialog),
7178: (DL_TIER + 1, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 20, 6), Any, ToonHQ, Any, NA, DefaultDialog),
7179: (DL_TIER + 1, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 6), Any, ToonHQ, Any, NA, DefaultDialog),
7180: (DL_TIER + 1, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 8), Any, ToonHQ, Any, NA, DefaultDialog),
7181: (DL_TIER + 1, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 6), Any, ToonHQ, Any, NA, DefaultDialog),
7182: (DL_TIER + 1, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 8), Any, ToonHQ, Any, NA, DefaultDialog),
7183: (DL_TIER + 1, OBSOLETE, (SkelecogQuest, ToontownGlobals.SellbotFactoryInt, 40), Any, ToonHQ, Any, NA, DefaultDialog),
7184: (DL_TIER + 1, OBSOLETE, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 20, 5), Any, ToonHQ, Any, NA, DefaultDialog),
7185: (DL_TIER + 1, OBSOLETE, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 8, 6), Any, ToonHQ, Any, NA, DefaultDialog),
7186: (DL_TIER + 1, OBSOLETE, (ForemanQuest, ToontownGlobals.SellbotHQ, 6), Any, ToonHQ, Any, NA, DefaultDialog),
7187: (DL_TIER + 1, OBSOLETE, (ForemanQuest, ToontownGlobals.SellbotHQ, 8), Any, ToonHQ, Any, NA, DefaultDialog),
7201: (DL_TIER + 1, Start, (VisitQuest,), Any, 9124, NA, 7202, TTLocalizer.QuestDialogDict[7201]),
7202: (DL_TIER + 1, Start, (VisitQuest,), 9124, 9128, NA, 7203, TTLocalizer.QuestDialogDict[7202]),
7203: (DL_TIER + 1, Cont, (DeliverItemQuest, 7001), Same, 9124, NA, 7204, TTLocalizer.QuestDialogDict[7203]),
7204: (DL_TIER + 1, Cont, (VisitQuest,), Same, 9128, NA, 7205, TTLocalizer.QuestDialogDict[7204]),
7205: (DL_TIER + 1, Cont, (CogQuest, ToontownGlobals.DonaldsDreamland, 140, Any), Same, Same, NA, 7206, TTLocalizer.QuestDialogDict[7205]),
7206: (DL_TIER + 1, Cont, (DeliverItemQuest, 7002), Same, 9124, 4003, NA, TTLocalizer.QuestDialogDict[7206]),
7209: (DL_TIER + 1, Start, (VisitQuest,), Any, 9232, NA, 7210, TTLocalizer.QuestDialogDict[7209]),
7210: (DL_TIER + 1, Start, (VisitQuest,), 9232, 9101, NA, 7211, TTLocalizer.QuestDialogDict[7210]),
7211: (DL_TIER + 1, Cont, (CogQuest, Anywhere, 30, 'nc'), Same, Same, NA, 7212, TTLocalizer.QuestDialogDict[7211]),
7212: (DL_TIER + 1, Cont, (DeliverItemQuest, 7003), Same, 9232, NA, 7213, TTLocalizer.QuestDialogDict[7212]),
7213: (DL_TIER + 1, Cont, (VisitQuest,), Same, 9101, NA, 7214, TTLocalizer.QuestDialogDict[7213]),
7214: (DL_TIER + 1, Cont, (CogTrackQuest, Anywhere, 65, 'm'), Same, Same, NA, 7215, TTLocalizer.QuestDialogDict[7214]),
7215: (DL_TIER + 1, Cont, (DeliverItemQuest, 7004), Same, 9232, 4004, NA, TTLocalizer.QuestDialogDict[7215]),
7218: (DL_TIER + 1, Start, (VisitQuest,), Any, 9109, NA, 7219, TTLocalizer.QuestDialogDict[7218]),
7219: (DL_TIER + 1, Start, (VisitQuest,), 9109, 9230, NA, 7220, TTLocalizer.QuestDialogDict[7219]),
7220: (DL_TIER + 1, Cont, (DeliverItemQuest, 7005), Same, 9109, NA, 7221, TTLocalizer.QuestDialogDict[7220]),
7221: (DL_TIER + 1, Cont, (VisitQuest,), Same, 9230, NA, 7222, TTLocalizer.QuestDialogDict[7221]),
7222: (DL_TIER + 1, Cont, (BuildingQuest, Anywhere, 10, Any, 3, 0), Same, Same, NA, 7223, TTLocalizer.QuestDialogDict[7222]),
7223: (DL_TIER + 1, Cont, (DeliverItemQuest, 7006), Same, 9109, 4005, NA, TTLocalizer.QuestDialogDict[7223]),
7226: (DL_TIER + 1, Start, (VisitQuest,), Any, 9224, NA, 7227, TTLocalizer.QuestDialogDict[7226]),
7227: (DL_TIER + 1, Start, (VisitQuest,), 9224, 9102, NA, 7228, TTLocalizer.QuestDialogDict[7227]),
7228: (DL_TIER + 1, Cont, (DeliverItemQuest, 7007), Same, 9224, NA, 7229, TTLocalizer.QuestDialogDict[7228]),
7229: (DL_TIER + 1, Cont, (VisitQuest,), Same, 9102, NA, 7230, TTLocalizer.QuestDialogDict[7229]),
7230: (DL_TIER + 1, Cont, (DeliverItemQuest, 7008), Same, 9224, NA, 7231, TTLocalizer.QuestDialogDict[7230]),
7231: (DL_TIER + 1, Cont, (VisitQuest,), Same, 9102, NA, 7232, TTLocalizer.QuestDialogDict[7231]),
7232: (DL_TIER + 1, Cont, (VisitQuest,), Same, 9216, NA, 7233, TTLocalizer.QuestDialogDict[7232]),
7233: (DL_TIER + 1, Cont, (DeliverItemQuest, 7009), Same, 9224, NA, 7234, TTLocalizer.QuestDialogDict[7233]),
7234: (DL_TIER + 1, Cont, (VisitQuest,), Same, 9216, NA, 7235, TTLocalizer.QuestDialogDict[7234]),
7235: (DL_TIER + 1, Cont, (BuildingQuest, Anywhere, 5, 'm', 5, 0), Same, Same, NA, 7236, TTLocalizer.QuestDialogDict[7235]),
7236: (DL_TIER + 1, Cont, (DeliverItemQuest, 7010), Same, 9224, 4006, NA, TTLocalizer.QuestDialogDict[7236]),
7239: (DL_TIER + 1, Start, (VisitQuest,), Any, 9114, NA, 7240, TTLocalizer.QuestDialogDict[7239]),
7240: (DL_TIER + 1, Start, (VisitQuest,), 9114, 9215, NA, 7241, TTLocalizer.QuestDialogDict[7240]),
7241: (DL_TIER + 1, Cont, (RecoverItemQuest, ToontownGlobals.DonaldsDreamland, 1, 7011, Hard, AnyFish), Same, Same, NA, 7242, TTLocalizer.QuestDialogDict[7241]),
7242: (DL_TIER + 1, Cont, (RecoverItemQuest, ToontownGlobals.DonaldsDreamland, 1, 7012, VeryHard, AnyFish), Same, Same, NA, 7243, TTLocalizer.QuestDialogDict[7242]),
7243: (DL_TIER + 1, Cont, (RecoverItemQuest, ToontownGlobals.CashbotHQ, 1, 7013, Hard, 'ls'), Same, Same, NA, 7244, TTLocalizer.QuestDialogDict[7243]),
7244: (DL_TIER + 1, Cont, (DeliverItemQuest, 7014), Same, 9114, 4007, NA, TTLocalizer.QuestDialogDict[7244]),
7250: (DL_TIER + 1, Start, (CogQuest, ToontownGlobals.CashbotHQ, 80, Any), Any, ToonHQ, Any, NA, DefaultDialog),
7251: (DL_TIER + 1, Start, (CogQuest, ToontownGlobals.CashbotHQ, 90, Any), Any, ToonHQ, Any, NA, DefaultDialog),
7252: (DL_TIER + 1, Start, (CogQuest, ToontownGlobals.CashbotHQ, 100, Any), Any, ToonHQ, Any, NA, DefaultDialog),
7253: (DL_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.CashbotHQ, 50, 7), Any, ToonHQ, Any, NA, DefaultDialog),
7254: (DL_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.CashbotHQ, 35, 8), Any, ToonHQ, Any, NA, DefaultDialog),
7255: (DL_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.CashbotHQ, 35, 9), Any, ToonHQ, Any, NA, DefaultDialog),
7256: (DL_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.CashbotMintIntA, 30, 10), Any, ToonHQ, Any, NA, DefaultDialog),
7257: (DL_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.CashbotMintIntB, 25, 11), Any, ToonHQ, Any, NA, DefaultDialog),
7258: (DL_TIER + 1, OBSOLETE, (CogLevelQuest, ToontownGlobals.CashbotMintIntC, 20, 11), Any, ToonHQ, Any, NA, DefaultDialog),
7259: (DL_TIER + 1, Start, (MintQuest, ToontownGlobals.CashbotMintIntA, 8), Any, ToonHQ, Any, NA, DefaultDialog),
7260: (DL_TIER + 1, Start, (MintQuest, ToontownGlobals.CashbotMintIntB, 7), Any, ToonHQ, Any, NA, DefaultDialog),
7261: (DL_TIER + 1, OBSOLETE, (MintQuest, ToontownGlobals.CashbotMintIntC, 6), Any, ToonHQ, Any, NA, DefaultDialog),
7262: (DL_TIER + 1, Start, (SkelecogQuest, ToontownGlobals.CashbotHQ, 30), Any, ToonHQ, Any, NA, DefaultDialog),
7263: (DL_TIER + 1, Start, (SkelecogLevelQuest, ToontownGlobals.CashbotHQ, 20, 11), Any, ToonHQ, Any, NA, DefaultDialog),
7264: (DL_TIER + 1, Start, (SkelecogLevelQuest, ToontownGlobals.CashbotHQ, 10, 12), Any, ToonHQ, Any, NA, DefaultDialog),
7265: (DL_TIER + 1, Start, (SupervisorQuest, ToontownGlobals.CashbotMintIntA, 10), Any, ToonHQ, Any, NA, DefaultDialog),
7266: (DL_TIER + 1, Start, (SupervisorQuest, ToontownGlobals.CashbotMintIntB, 8), Any, ToonHQ, Any, NA, DefaultDialog),
7267: (DL_TIER + 1, OBSOLETE, (SupervisorQuest, ToontownGlobals.CashbotMintIntC, 6), Any, ToonHQ, Any, NA, DefaultDialog),
7268: (DL_TIER + 1, Start, (CogLevelQuest, ToontownGlobals.CashbotMintIntB, 20, 11), Any, ToonHQ, Any, NA, DefaultDialog),
7269: (DL_TIER + 1, Start, (MintQuest, ToontownGlobals.CashbotMintIntB, 6), Any, ToonHQ, Any, NA, DefaultDialog),
7270: (DL_TIER + 1, Start, (SupervisorQuest, ToontownGlobals.CashbotMintIntB, 6), Any, ToonHQ, Any, NA, DefaultDialog),
7500: (DL_TIER + 1, Start, (CogQuest, ToontownGlobals.DonaldsDreamland, 100, Any), Any, ToonHQ, NA, 7501, DefaultDialog),
7501: (DL_TIER + 1, Cont, (DeliverItemQuest, 1000), Any, 9010, 1000, NA, DefaultDialog),
7502: (DL_TIER + 1, Start, (BuildingQuest, Anywhere, 20, Any, 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
7503: (DL_TIER + 1, Start, (BuildingQuest, Anywhere, 15, Any, 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
7504: (DL_TIER + 1, Start, (BuildingQuest, Anywhere, 10, 's', 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
7505: (DL_TIER + 1, Start, (BuildingQuest, Anywhere, 10, 'l', 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
7506: (DL_TIER + 1, Start, (RescueQuest, InVP, 3), Any, ToonHQ, Any, NA, DefaultDialog),
7507: (DL_TIER + 1, Start, (RescueQuest, InFO, 6), Any, ToonHQ, Any, NA, DefaultDialog),
8101: (DL_TIER + 2, Start, (CogQuest, Anywhere, 240, Any), Any, ToonHQ, Any, NA, DefaultDialog),
8102: (DL_TIER + 2, Start, (CogQuest, Anywhere, 260, Any), Any, ToonHQ, Any, NA, DefaultDialog),
8103: (DL_TIER + 2, Start, (CogQuest, Anywhere, 280, Any), Any, ToonHQ, Any, NA, DefaultDialog),
8104: (DL_TIER + 2, Start, (CogQuest, Anywhere, 320, Any), Any, ToonHQ, Any, NA, DefaultDialog),
8105: (DL_TIER + 2, Start, (CogQuest, Anywhere, 360, Any), Any, ToonHQ, Any, NA, DefaultDialog),
8106: (DL_TIER + 2, Start, (CogQuest, Anywhere, 400, Any), Any, ToonHQ, Any, NA, DefaultDialog),
8107: (DL_TIER + 2, Start, (CogQuest, Anywhere, 140, 'ym'), Any, ToonHQ, Any, NA, DefaultDialog),
8108: (DL_TIER + 2, Start, (CogQuest, Anywhere, 120, 'mm'), Any, ToonHQ, Any, NA, DefaultDialog),
8109: (DL_TIER + 2, Start, (CogQuest, Anywhere, 100, 'ds'), Any, ToonHQ, Any, NA, DefaultDialog),
8110: (DL_TIER + 2, Start, (CogQuest, Anywhere, 100, 'hh'), Any, ToonHQ, Any, NA, DefaultDialog),
8111: (DL_TIER + 2, Start, (CogQuest, Anywhere, 60, 'cr'), Any, ToonHQ, Any, NA, DefaultDialog),
8112: (DL_TIER + 2, Start, (CogQuest, Anywhere, 40, 'tbc'), Any, ToonHQ, Any, NA, DefaultDialog),
8113: (DL_TIER + 2, Start, (CogQuest, Anywhere, 140, 'nd'), Any, ToonHQ, Any, NA, DefaultDialog),
8114: (DL_TIER + 2, Start, (CogQuest, Anywhere, 120, 'gh'), Any, ToonHQ, Any, NA, DefaultDialog),
8115: (DL_TIER + 2, Start, (CogQuest, Anywhere, 100, 'ms'), Any, ToonHQ, Any, NA, DefaultDialog),
8116: (DL_TIER + 2, Start, (CogQuest, Anywhere, 100, 'tf'), Any, ToonHQ, Any, NA, DefaultDialog),
8117: (DL_TIER + 2, Start, (CogQuest, Anywhere, 60, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
8118: (DL_TIER + 2, Start, (CogQuest, Anywhere, 40, 'mh'), Any, ToonHQ, Any, NA, DefaultDialog),
8119: (DL_TIER + 2, Start, (CogQuest, Anywhere, 140, 'tw'), Any, ToonHQ, Any, NA, DefaultDialog),
8120: (DL_TIER + 2, Start, (CogQuest, Anywhere, 120, 'bc'), Any, ToonHQ, Any, NA, DefaultDialog),
8121: (DL_TIER + 2, Start, (CogQuest, Anywhere, 100, 'nc'), Any, ToonHQ, Any, NA, DefaultDialog),
8122: (DL_TIER + 2, Start, (CogQuest, Anywhere, 100, 'mb'), Any, ToonHQ, Any, NA, DefaultDialog),
8123: (DL_TIER + 2, Start, (CogQuest, Anywhere, 60, 'ls'), Any, ToonHQ, Any, NA, DefaultDialog),
8124: (DL_TIER + 2, Start, (CogQuest, Anywhere, 40, 'rb'), Any, ToonHQ, Any, NA, DefaultDialog),
8125: (DL_TIER + 2, Start, (CogQuest, Anywhere, 140, 'dt'), Any, ToonHQ, Any, NA, DefaultDialog),
8126: (DL_TIER + 2, Start, (CogQuest, Anywhere, 120, 'ac'), Any, ToonHQ, Any, NA, DefaultDialog),
8127: (DL_TIER + 2, Start, (CogQuest, Anywhere, 100, 'bs'), Any, ToonHQ, Any, NA, DefaultDialog),
8128: (DL_TIER + 2, Start, (CogQuest, Anywhere, 100, 'sd'), Any, ToonHQ, Any, NA, DefaultDialog),
8129: (DL_TIER + 2, Start, (CogQuest, Anywhere, 60, 'le'), Any, ToonHQ, Any, NA, DefaultDialog),
8130: (DL_TIER + 2, Start, (CogQuest, Anywhere, 40, 'bw'), Any, ToonHQ, Any, NA, DefaultDialog),
8131: (DL_TIER + 2, Start, (CogLevelQuest, Anywhere, 160, 9), Any, ToonHQ, Any, NA, DefaultDialog),
8132: (DL_TIER + 2, Start, (CogLevelQuest, Anywhere, 200, 9), Any, ToonHQ, Any, NA, DefaultDialog),
8133: (DL_TIER + 2, Start, (CogLevelQuest, Anywhere, 120, 10), Any, ToonHQ, Any, NA, DefaultDialog),
8134: (DL_TIER + 2, Start, (CogLevelQuest, Anywhere, 140, 10), Any, ToonHQ, Any, NA, DefaultDialog),
8135: (DL_TIER + 2, Start, (CogLevelQuest, Anywhere, 80, 11), Any, ToonHQ, Any, NA, DefaultDialog),
8136: (DL_TIER + 2, Start, (CogLevelQuest, Anywhere, 100, 11), Any, ToonHQ, Any, NA, DefaultDialog),
8137: (DL_TIER + 2, Start, (CogLevelQuest, Anywhere, 40, 12), Any, ToonHQ, Any, NA, DefaultDialog),
8138: (DL_TIER + 2, Start, (CogLevelQuest, Anywhere, 60, 12), Any, ToonHQ, Any, NA, DefaultDialog),
8139: (DL_TIER + 2, Start, (CogTrackQuest, Anywhere, 200, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
8140: (DL_TIER + 2, Start, (CogTrackQuest, Anywhere, 200, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
8141: (DL_TIER + 2, Start, (CogTrackQuest, Anywhere, 200, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
8142: (DL_TIER + 2, Start, (CogTrackQuest, Anywhere, 200, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
8143: (DL_TIER + 2, Start, (CogTrackQuest, Anywhere, 250, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
8144: (DL_TIER + 2, Start, (CogTrackQuest, Anywhere, 250, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
8145: (DL_TIER + 2, Start, (CogTrackQuest, Anywhere, 250, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
8146: (DL_TIER + 2, Start, (CogTrackQuest, Anywhere, 250, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
8147: (DL_TIER + 2, Start, (CogTrackQuest, Anywhere, 300, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
8148: (DL_TIER + 2, Start, (CogTrackQuest, Anywhere, 300, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
8149: (DL_TIER + 2, Start, (CogTrackQuest, Anywhere, 300, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
8150: (DL_TIER + 2, Start, (CogTrackQuest, Anywhere, 300, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
8151: (DL_TIER + 2, Start, (BuildingQuest, Anywhere, 40, Any, 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
8152: (DL_TIER + 2, Start, (BuildingQuest, Anywhere, 20, Any, 3, 0), Any, ToonHQ, Any, NA, DefaultDialog),
8153: (DL_TIER + 2, Start, (BuildingQuest, Anywhere, 20, Any, 4, 0), Any, ToonHQ, Any, NA, DefaultDialog),
8154: (DL_TIER + 2, Start, (BuildingQuest, Anywhere, 20, Any, 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
8155: (DL_TIER + 2, Start, (BuildingQuest, Anywhere, 10, 'm', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
8156: (DL_TIER + 2, Start, (BuildingQuest, Anywhere, 10, 's', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
8157: (DL_TIER + 2, Start, (BuildingQuest, Anywhere, 10, 'c', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
8158: (DL_TIER + 2, Start, (BuildingQuest, Anywhere, 10, 'l', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
8170: (DL_TIER + 2, OBSOLETE, (CogQuest, ToontownGlobals.SellbotHQ, 160, Any), Any, ToonHQ, Any, NA, DefaultDialog),
8171: (DL_TIER + 2, OBSOLETE, (CogQuest, ToontownGlobals.SellbotHQ, 180, Any), Any, ToonHQ, Any, NA, DefaultDialog),
8172: (DL_TIER + 2, OBSOLETE, (CogQuest, ToontownGlobals.SellbotHQ, 200, Any), Any, ToonHQ, Any, NA, DefaultDialog),
8173: (DL_TIER + 2, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotHQ, 100, 4), Any, ToonHQ, Any, NA, DefaultDialog),
8174: (DL_TIER + 2, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotHQ, 70, 5), Any, ToonHQ, Any, NA, DefaultDialog),
8175: (DL_TIER + 2, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotHQ, 70, 5), Any, ToonHQ, Any, NA, DefaultDialog),
8176: (DL_TIER + 2, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 60, 5), Any, ToonHQ, Any, NA, DefaultDialog),
8177: (DL_TIER + 2, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 40, 6), Any, ToonHQ, Any, NA, DefaultDialog),
8178: (DL_TIER + 2, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 40, 6), Any, ToonHQ, Any, NA, DefaultDialog),
8179: (DL_TIER + 2, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 12), Any, ToonHQ, Any, NA, DefaultDialog),
8180: (DL_TIER + 2, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 16), Any, ToonHQ, Any, NA, DefaultDialog),
8181: (DL_TIER + 2, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 12), Any, ToonHQ, Any, NA, DefaultDialog),
8182: (DL_TIER + 2, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 16), Any, ToonHQ, Any, NA, DefaultDialog),
8183: (DL_TIER + 2, OBSOLETE, (SkelecogQuest, ToontownGlobals.SellbotFactoryInt, 80), Any, ToonHQ, Any, NA, DefaultDialog),
8184: (DL_TIER + 2, OBSOLETE, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 40, 5), Any, ToonHQ, Any, NA, DefaultDialog),
8185: (DL_TIER + 2, OBSOLETE, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 16, 6), Any, ToonHQ, Any, NA, DefaultDialog),
8186: (DL_TIER + 2, OBSOLETE, (ForemanQuest, ToontownGlobals.SellbotHQ, 12), Any, ToonHQ, Any, NA, DefaultDialog),
8187: (DL_TIER + 2, OBSOLETE, (ForemanQuest, ToontownGlobals.SellbotHQ, 16), Any, ToonHQ, Any, NA, DefaultDialog),
8188: (DL_TIER + 2, Start, (BossQuest, ToontownGlobals.SellbotHQ, 2), Any, ToonHQ, Any, NA, DefaultDialog),
8189: (DL_TIER + 2, Start, (RescueQuest, InVP, 4), Any, ToonHQ, Any, NA, DefaultDialog),
8197: (DL_TIER + 2, Start, (RescueQuest, InFO, 8), Any, ToonHQ, Any, NA, DefaultDialog),
8201: (DL_TIER + 2, Start, (CogQuest, ToontownGlobals.CashbotHQ, 160, Any), Any, ToonHQ, Any, NA, DefaultDialog),
8202: (DL_TIER + 2, Start, (CogQuest, ToontownGlobals.CashbotHQ, 180, Any), Any, ToonHQ, Any, NA, DefaultDialog),
8203: (DL_TIER + 2, Start, (CogQuest, ToontownGlobals.CashbotHQ, 200, Any), Any, ToonHQ, Any, NA, DefaultDialog),
8204: (DL_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.CashbotHQ, 100, 7), Any, ToonHQ, Any, NA, DefaultDialog),
8205: (DL_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.CashbotHQ, 90, 8), Any, ToonHQ, Any, NA, DefaultDialog),
8206: (DL_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.CashbotHQ, 80, 9), Any, ToonHQ, Any, NA, DefaultDialog),
8207: (DL_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.CashbotMintIntA, 60, 10), Any, ToonHQ, Any, NA, DefaultDialog),
8208: (DL_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.CashbotMintIntB, 50, 11), Any, ToonHQ, Any, NA, DefaultDialog),
8209: (DL_TIER + 2, Start, (CogLevelQuest, ToontownGlobals.CashbotMintIntC, 40, 11), Any, ToonHQ, Any, NA, DefaultDialog),
8210: (DL_TIER + 2, Start, (MintQuest, ToontownGlobals.CashbotMintIntA, 16), Any, ToonHQ, Any, NA, DefaultDialog),
8211: (DL_TIER + 2, Start, (MintQuest, ToontownGlobals.CashbotMintIntB, 14), Any, ToonHQ, Any, NA, DefaultDialog),
8212: (DL_TIER + 2, Start, (MintQuest, ToontownGlobals.CashbotMintIntC, 12), Any, ToonHQ, Any, NA, DefaultDialog),
8213: (DL_TIER + 2, Start, (SkelecogQuest, ToontownGlobals.CashbotMintIntA, 80), Any, ToonHQ, Any, NA, DefaultDialog),
8214: (DL_TIER + 2, Start, (SkelecogQuest, ToontownGlobals.CashbotMintIntB, 60), Any, ToonHQ, Any, NA, DefaultDialog),
8215: (DL_TIER + 2, Start, (SkelecogQuest, ToontownGlobals.CashbotMintIntC, 40), Any, ToonHQ, Any, NA, DefaultDialog),
8216: (DL_TIER + 2, Start, (SupervisorQuest, ToontownGlobals.CashbotMintIntA, 16), Any, ToonHQ, Any, NA, DefaultDialog),
8217: (DL_TIER + 2, Start, (SupervisorQuest, ToontownGlobals.CashbotMintIntB, 14), Any, ToonHQ, Any, NA, DefaultDialog),
8218: (DL_TIER + 2, Start, (SupervisorQuest, ToontownGlobals.CashbotMintIntC, 12), Any, ToonHQ, Any, NA, DefaultDialog),
8219: (DL_TIER + 2, Start, (BossQuest, ToontownGlobals.CashbotHQ, 2), Any, ToonHQ, 621, NA, DefaultDialog),
8220: (DL_TIER + 2, Start, (BuildingQuest, Anywhere, 25, Any, 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
8221: (DL_TIER + 2, Start, (BuildingQuest, Anywhere, 20, Any, 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
8224: (DL_TIER + 2, Start, (BuildingQuest, Anywhere, 15, 's', 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
8225: (DL_TIER + 2, Start, (BuildingQuest, Anywhere, 15, 'l', 0, 1), Any, ToonHQ, Any, NA, DefaultDialog),
8226: (DL_TIER + 2, Start, (RescueQuest, InFO, 8), Any, ToonHQ, Any, NA, DefaultDialog),
9101: (DL_TIER + 3, Start, (CogQuest, Anywhere, 500, Any), Any, ToonHQ, Any, NA, DefaultDialog),
9102: (DL_TIER + 3, Start, (CogQuest, Anywhere, 600, Any), Any, ToonHQ, Any, NA, DefaultDialog),
9103: (DL_TIER + 3, Start, (CogQuest, Anywhere, 700, Any), Any, ToonHQ, Any, NA, DefaultDialog),
9104: (DL_TIER + 3, Start, (CogQuest, Anywhere, 800, Any), Any, ToonHQ, Any, NA, DefaultDialog),
9105: (DL_TIER + 3, Start, (CogQuest, Anywhere, 900, Any), Any, ToonHQ, Any, NA, DefaultDialog),
9106: (DL_TIER + 3, Start, (CogQuest, Anywhere, 1000, Any), Any, ToonHQ, Any, NA, DefaultDialog),
9107: (DL_TIER + 3, Start, (CogQuest, Anywhere, 300, 'ym'), Any, ToonHQ, Any, NA, DefaultDialog),
9108: (DL_TIER + 3, Start, (CogQuest, Anywhere, 250, 'mm'), Any, ToonHQ, Any, NA, DefaultDialog),
9109: (DL_TIER + 3, Start, (CogQuest, Anywhere, 200, 'ds'), Any, ToonHQ, Any, NA, DefaultDialog),
9110: (DL_TIER + 3, Start, (CogQuest, Anywhere, 200, 'hh'), Any, ToonHQ, Any, NA, DefaultDialog),
9111: (DL_TIER + 3, Start, (CogQuest, Anywhere, 120, 'cr'), Any, ToonHQ, Any, NA, DefaultDialog),
9112: (DL_TIER + 3, Start, (CogQuest, Anywhere, 80, 'tbc'), Any, ToonHQ, Any, NA, DefaultDialog),
9113: (DL_TIER + 3, Start, (CogQuest, Anywhere, 280, 'nd'), Any, ToonHQ, Any, NA, DefaultDialog),
9114: (DL_TIER + 3, Start, (CogQuest, Anywhere, 240, 'gh'), Any, ToonHQ, Any, NA, DefaultDialog),
9115: (DL_TIER + 3, Start, (CogQuest, Anywhere, 200, 'ms'), Any, ToonHQ, Any, NA, DefaultDialog),
9116: (DL_TIER + 3, Start, (CogQuest, Anywhere, 200, 'tf'), Any, ToonHQ, Any, NA, DefaultDialog),
9117: (DL_TIER + 3, Start, (CogQuest, Anywhere, 120, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
9118: (DL_TIER + 3, Start, (CogQuest, Anywhere, 80, 'mh'), Any, ToonHQ, Any, NA, DefaultDialog),
9119: (DL_TIER + 3, Start, (CogQuest, Anywhere, 280, 'tw'), Any, ToonHQ, Any, NA, DefaultDialog),
9120: (DL_TIER + 3, Start, (CogQuest, Anywhere, 240, 'bc'), Any, ToonHQ, Any, NA, DefaultDialog),
9121: (DL_TIER + 3, Start, (CogQuest, Anywhere, 200, 'nc'), Any, ToonHQ, Any, NA, DefaultDialog),
9122: (DL_TIER + 3, Start, (CogQuest, Anywhere, 200, 'mb'), Any, ToonHQ, Any, NA, DefaultDialog),
9123: (DL_TIER + 3, Start, (CogQuest, Anywhere, 120, 'ls'), Any, ToonHQ, Any, NA, DefaultDialog),
9124: (DL_TIER + 3, Start, (CogQuest, Anywhere, 80, 'rb'), Any, ToonHQ, Any, NA, DefaultDialog),
9125: (DL_TIER + 3, Start, (CogQuest, Anywhere, 280, 'dt'), Any, ToonHQ, Any, NA, DefaultDialog),
9126: (DL_TIER + 3, Start, (CogQuest, Anywhere, 240, 'ac'), Any, ToonHQ, Any, NA, DefaultDialog),
9127: (DL_TIER + 3, Start, (CogQuest, Anywhere, 200, 'bs'), Any, ToonHQ, Any, NA, DefaultDialog),
9128: (DL_TIER + 3, Start, (CogQuest, Anywhere, 200, 'sd'), Any, ToonHQ, Any, NA, DefaultDialog),
9129: (DL_TIER + 3, Start, (CogQuest, Anywhere, 120, 'le'), Any, ToonHQ, Any, NA, DefaultDialog),
9130: (DL_TIER + 3, Start, (CogQuest, Anywhere, 80, 'bw'), Any, ToonHQ, Any, NA, DefaultDialog),
9131: (DL_TIER + 3, Start, (CogLevelQuest, Anywhere, 320, 9), Any, ToonHQ, Any, NA, DefaultDialog),
9132: (DL_TIER + 3, Start, (CogLevelQuest, Anywhere, 400, 9), Any, ToonHQ, Any, NA, DefaultDialog),
9133: (DL_TIER + 3, Start, (CogLevelQuest, Anywhere, 240, 10), Any, ToonHQ, Any, NA, DefaultDialog),
9134: (DL_TIER + 3, Start, (CogLevelQuest, Anywhere, 280, 10), Any, ToonHQ, Any, NA, DefaultDialog),
9135: (DL_TIER + 3, Start, (CogLevelQuest, Anywhere, 160, 11), Any, ToonHQ, Any, NA, DefaultDialog),
9136: (DL_TIER + 3, Start, (CogLevelQuest, Anywhere, 200, 11), Any, ToonHQ, Any, NA, DefaultDialog),
9137: (DL_TIER + 3, Start, (CogLevelQuest, Anywhere, 80, 12), Any, ToonHQ, Any, NA, DefaultDialog),
9138: (DL_TIER + 3, Start, (CogLevelQuest, Anywhere, 120, 12), Any, ToonHQ, Any, NA, DefaultDialog),
9139: (DL_TIER + 3, Start, (CogTrackQuest, Anywhere, 400, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
9140: (DL_TIER + 3, Start, (CogTrackQuest, Anywhere, 400, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
9141: (DL_TIER + 3, Start, (CogTrackQuest, Anywhere, 400, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
9142: (DL_TIER + 3, Start, (CogTrackQuest, Anywhere, 400, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
9143: (DL_TIER + 3, Start, (CogTrackQuest, Anywhere, 500, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
9144: (DL_TIER + 3, Start, (CogTrackQuest, Anywhere, 500, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
9145: (DL_TIER + 3, Start, (CogTrackQuest, Anywhere, 500, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
9146: (DL_TIER + 3, Start, (CogTrackQuest, Anywhere, 500, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
9147: (DL_TIER + 3, Start, (CogTrackQuest, Anywhere, 600, 'm'), Any, ToonHQ, Any, NA, DefaultDialog),
9148: (DL_TIER + 3, Start, (CogTrackQuest, Anywhere, 600, 's'), Any, ToonHQ, Any, NA, DefaultDialog),
9149: (DL_TIER + 3, Start, (CogTrackQuest, Anywhere, 600, 'c'), Any, ToonHQ, Any, NA, DefaultDialog),
9150: (DL_TIER + 3, Start, (CogTrackQuest, Anywhere, 600, 'l'), Any, ToonHQ, Any, NA, DefaultDialog),
9151: (DL_TIER + 3, Start, (BuildingQuest, Anywhere, 400, Any, 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
9152: (DL_TIER + 3, Start, (BuildingQuest, Anywhere, 200, Any, 3, 0), Any, ToonHQ, Any, NA, DefaultDialog),
9153: (DL_TIER + 3, Start, (BuildingQuest, Anywhere, 200, Any, 4, 0), Any, ToonHQ, Any, NA, DefaultDialog),
9154: (DL_TIER + 3, Start, (BuildingQuest, Anywhere, 200, Any, 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
9155: (DL_TIER + 3, Start, (BuildingQuest, Anywhere, 100, Any, 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
9156: (DL_TIER + 3, Start, (BuildingQuest, Anywhere, 100, Any, 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
9157: (DL_TIER + 3, Start, (BuildingQuest, Anywhere, 100, Any, 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
9158: (DL_TIER + 3, Start, (BuildingQuest, Anywhere, 100, Any, 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
9170: (DL_TIER + 3, OBSOLETE, (CogQuest, ToontownGlobals.SellbotHQ, 350, Any), Any, ToonHQ, Any, NA, DefaultDialog),
9171: (DL_TIER + 3, OBSOLETE, (CogQuest, ToontownGlobals.SellbotHQ, 400, Any), Any, ToonHQ, Any, NA, DefaultDialog),
9172: (DL_TIER + 3, OBSOLETE, (CogQuest, ToontownGlobals.SellbotHQ, 500, Any), Any, ToonHQ, Any, NA, DefaultDialog),
9173: (DL_TIER + 3, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotHQ, 200, 4), Any, ToonHQ, Any, NA, DefaultDialog),
9174: (DL_TIER + 3, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotHQ, 150, 5), Any, ToonHQ, Any, NA, DefaultDialog),
9175: (DL_TIER + 3, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotHQ, 150, 5), Any, ToonHQ, Any, NA, DefaultDialog),
9176: (DL_TIER + 3, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 150, 5), Any, ToonHQ, Any, NA, DefaultDialog),
9177: (DL_TIER + 3, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 100, 6), Any, ToonHQ, Any, NA, DefaultDialog),
9178: (DL_TIER + 3, OBSOLETE, (CogLevelQuest, ToontownGlobals.SellbotFactoryInt, 100, 6), Any, ToonHQ, Any, NA, DefaultDialog),
9179: (DL_TIER + 3, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 25), Any, ToonHQ, Any, NA, DefaultDialog),
9180: (DL_TIER + 3, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 35), Any, ToonHQ, Any, NA, DefaultDialog),
9181: (DL_TIER + 3, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 25), Any, ToonHQ, Any, NA, DefaultDialog),
9182: (DL_TIER + 3, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 35), Any, ToonHQ, Any, NA, DefaultDialog),
9183: (DL_TIER + 3, OBSOLETE, (SkelecogQuest, ToontownGlobals.SellbotFactoryInt, 150), Any, ToonHQ, Any, NA, DefaultDialog),
9184: (DL_TIER + 3, OBSOLETE, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 80, 5), Any, ToonHQ, Any, NA, DefaultDialog),
9185: (DL_TIER + 3, OBSOLETE, (SkelecogLevelQuest, ToontownGlobals.SellbotHQ, 32, 6), Any, ToonHQ, Any, NA, DefaultDialog),
9186: (DL_TIER + 3, OBSOLETE, (ForemanQuest, ToontownGlobals.SellbotHQ, 25), Any, ToonHQ, Any, NA, DefaultDialog),
9187: (DL_TIER + 3, OBSOLETE, (ForemanQuest, ToontownGlobals.SellbotHQ, 35), Any, ToonHQ, Any, NA, DefaultDialog),
9188: (DL_TIER + 3, Start, (BossQuest, ToontownGlobals.SellbotHQ, 3), Any, ToonHQ, Any, NA, DefaultDialog),
9189: (DL_TIER + 3, Start, (RescueQuest, InVP, 5), Any, ToonHQ, Any, NA, DefaultDialog),
9201: (DL_TIER + 3, Start, (CogQuest, ToontownGlobals.CashbotHQ, 350, Any), Any, ToonHQ, Any, NA, DefaultDialog),
9202: (DL_TIER + 3, Start, (CogQuest, ToontownGlobals.CashbotHQ, 400, Any), Any, ToonHQ, Any, NA, DefaultDialog),
9203: (DL_TIER + 3, Start, (CogQuest, ToontownGlobals.CashbotHQ, 450, Any), Any, ToonHQ, Any, NA, DefaultDialog),
9204: (DL_TIER + 3, Start, (CogLevelQuest, ToontownGlobals.CashbotHQ, 200, 7), Any, ToonHQ, Any, NA, DefaultDialog),
9205: (DL_TIER + 3, Start, (CogLevelQuest, ToontownGlobals.CashbotHQ, 150, 8), Any, ToonHQ, Any, NA, DefaultDialog),
9206: (DL_TIER + 3, Start, (CogLevelQuest, ToontownGlobals.CashbotHQ, 100, 9), Any, ToonHQ, Any, NA, DefaultDialog),
9207: (DL_TIER + 3, Start, (CogLevelQuest, ToontownGlobals.CashbotMintIntA, 200, 10), Any, ToonHQ, Any, NA, DefaultDialog),
9208: (DL_TIER + 3, Start, (CogLevelQuest, ToontownGlobals.CashbotMintIntB, 150, 10), Any, ToonHQ, Any, NA, DefaultDialog),
9209: (DL_TIER + 3, Start, (CogLevelQuest, ToontownGlobals.CashbotMintIntC, 100, 11), Any, ToonHQ, Any, NA, DefaultDialog),
9210: (DL_TIER + 3, Start, (MintQuest, ToontownGlobals.CashbotMintIntA, 35), Any, ToonHQ, Any, NA, DefaultDialog),
9211: (DL_TIER + 3, Start, (MintQuest, ToontownGlobals.CashbotMintIntB, 30), Any, ToonHQ, Any, NA, DefaultDialog),
9212: (DL_TIER + 3, Start, (MintQuest, ToontownGlobals.CashbotMintIntC, 25), Any, ToonHQ, Any, NA, DefaultDialog),
9213: (DL_TIER + 3, Start, (SkelecogQuest, ToontownGlobals.CashbotMintIntA, 150), Any, ToonHQ, Any, NA, DefaultDialog),
9214: (DL_TIER + 3, Start, (SkelecogQuest, ToontownGlobals.CashbotMintIntB, 100), Any, ToonHQ, Any, NA, DefaultDialog),
9215: (DL_TIER + 3, Start, (SkelecogQuest, ToontownGlobals.CashbotMintIntC, 50), Any, ToonHQ, Any, NA, DefaultDialog),
9216: (DL_TIER + 3, Start, (SupervisorQuest, ToontownGlobals.CashbotMintIntA, 35), Any, ToonHQ, Any, NA, DefaultDialog),
9217: (DL_TIER + 3, Start, (SupervisorQuest, ToontownGlobals.CashbotMintIntB, 30), Any, ToonHQ, Any, NA, DefaultDialog),
9218: (DL_TIER + 3, Start, (SupervisorQuest, ToontownGlobals.CashbotMintIntC, 25), Any, ToonHQ, Any, NA, DefaultDialog),
9219: (DL_TIER + 3, Start, (BossQuest, ToontownGlobals.CashbotHQ, 3), Any, ToonHQ, 622, NA, DefaultDialog),
9500: (DL_TIER + 3, Start, (CogQuest, ToontownGlobals.DonaldsDreamland, 1000, Any), Any, ToonHQ, NA, 9501, DefaultDialog),
9501: (DL_TIER + 3, Cont, (DeliverItemQuest, 1000), Any, 2004, 1000, NA, DefaultDialog),
9502: (DL_TIER + 3, Start, (BuildingQuest, Anywhere, 30, Any, 2, 1), Any, ToonHQ, Any, NA, DefaultDialog),
9503: (DL_TIER + 3, Start, (BuildingQuest, Anywhere, 25, Any, 3, 1), Any, ToonHQ, Any, NA, DefaultDialog),
9504: (DL_TIER + 3, Start, (BuildingQuest, Anywhere, 20, 's', 5, 1), Any, ToonHQ, Any, NA, DefaultDialog),
9505: (DL_TIER + 3, Start, (BuildingQuest, Anywhere, 20, 'l', 5, 1), Any, ToonHQ, Any, NA, DefaultDialog),
9506: (DL_TIER + 3, Start, (RescueQuest, InFO, 10), Any, ToonHQ, Any, NA, DefaultDialog),
10100: (ELDER_TIER, Start, (CogQuest, Anywhere, 80, Any), Any, ToonHQ, Any, NA, DefaultDialog),
10101: (ELDER_TIER, Start, (CogQuest, Anywhere, 100, Any), Any, ToonHQ, Any, NA, DefaultDialog),
10102: (ELDER_TIER, Start, (CogQuest, Anywhere, 120, Any), Any, ToonHQ, Any, NA, DefaultDialog),
10103: (ELDER_TIER, Start, (CogQuest, Anywhere, 200, Any), Any, ToonHQ, 613, NA, DefaultDialog),
10104: (ELDER_TIER, Start, (CogQuest, Anywhere, 250, Any), Any, ToonHQ, 615, NA, DefaultDialog),
10105: (ELDER_TIER, Start, (CogQuest, Anywhere, 300, Any), Any, ToonHQ, 616, NA, DefaultDialog),
10106: (ELDER_TIER, Start, (CogQuest, Anywhere, 400, Any), Any, ToonHQ, 618, NA, DefaultDialog),
10110: (ELDER_TIER, Start, (BuildingQuest, Anywhere, 40, Any, 2, 0), Any, ToonHQ, Any, NA, DefaultDialog),
10111: (ELDER_TIER, Start, (BuildingQuest, Anywhere, 30, Any, 3, 0), Any, ToonHQ, Any, NA, DefaultDialog),
10112: (ELDER_TIER, Start, (BuildingQuest, Anywhere, 25, Any, 4, 0), Any, ToonHQ, Any, NA, DefaultDialog),
10113: (ELDER_TIER, Start, (BuildingQuest, Anywhere, 20, Any, 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
10114: (ELDER_TIER, Start, (BuildingQuest, Anywhere, 20, 'm', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
10115: (ELDER_TIER, Start, (BuildingQuest, Anywhere, 20, 's', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
10116: (ELDER_TIER, Start, (BuildingQuest, Anywhere, 20, 'c', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
10117: (ELDER_TIER, Start, (BuildingQuest, Anywhere, 20, 'l', 5, 0), Any, ToonHQ, Any, NA, DefaultDialog),
10118: (ELDER_TIER, Start, (BuildingQuest, Anywhere, 50, Any, 1, 0), Any, ToonHQ, 620, NA, DefaultDialog),
10120: (ELDER_TIER, OBSOLETE, (CogQuest, ToontownGlobals.SellbotHQ, 60, Any), Any, ToonHQ, Any, NA, DefaultDialog),
10121: (ELDER_TIER, OBSOLETE, (FactoryQuest, ToontownGlobals.SellbotHQ, 10), Any, ToonHQ, Any, NA, DefaultDialog),
10122: (ELDER_TIER, OBSOLETE, (ForemanQuest, ToontownGlobals.SellbotHQ, 10), Any, ToonHQ, Any, NA, DefaultDialog),
10123: (ELDER_TIER, Start, (BossQuest, ToontownGlobals.SellbotHQ, 2), Any, ToonHQ, Any, NA, DefaultDialog),
10124: (ELDER_TIER, Start, (RescueQuest, InVP, 6), Any, ToonHQ, Any, NA, DefaultDialog),
10125: (ELDER_TIER, Start, (RescueQuest, InFO, 12), Any, ToonHQ, Any, NA, DefaultDialog),
10140: (ELDER_TIER, Start, (CogQuest, ToontownGlobals.CashbotHQ, 60, Any), Any, ToonHQ, Any, NA, DefaultDialog),
10141: (ELDER_TIER, Start, (MintQuest, ToontownGlobals.CashbotHQ, 10), Any, ToonHQ, Any, NA, DefaultDialog),
10142: (ELDER_TIER, Start, (SupervisorQuest, ToontownGlobals.CashbotHQ, 10), Any, ToonHQ, Any, NA, DefaultDialog),
10143: (ELDER_TIER, Start, (BossQuest, ToontownGlobals.CashbotHQ, 2), Any, ToonHQ, 623, NA, DefaultDialog),
10148: (ELDER_TIER, Start, (BossQuest, ToontownGlobals.LawbotHQ, 2), Any, ToonHQ, Any, NA, DefaultDialog),
10149: (ELDER_TIER, Start, (BossQuest, ToontownGlobals.BossbotHQ, 2), Any, ToonHQ, Any, NA, DefaultDialog),
10150: (ELDER_TIER, Start, (BossQuest, Anywhere, 3), Any, ToonHQ, Any, NA, DefaultDialog),
10200: (ELDER_TIER, Start, (CogQuest, Anywhere, 100, Any), Any, ToonHQ, NA, 10201, DefaultDialog),
10201: (ELDER_TIER, Cont, (DeliverItemQuest, 1000), Any, ToonTailor, 1000, NA, DefaultDialog),
10202: (ELDER_TIER, Start, (BuildingQuest, Anywhere, 25, Any, 1, 0), Any, ToonHQ, NA, 10203, DefaultDialog),
10203: (ELDER_TIER, Cont, (DeliverItemQuest, 1000), Any, ToonTailor, 1000, NA, DefaultDialog),
10208: (ELDER_TIER, Start, (BuildingQuest, Anywhere, 25, Any, 4, 1), Any, ToonHQ, Any, NA, DefaultDialog),
10209: (ELDER_TIER, Start, (BuildingQuest, Anywhere, 20, 's', 5, 1), Any, ToonHQ, Any, NA, DefaultDialog),
10210: (ELDER_TIER, Start, (BuildingQuest, Anywhere, 20, 'l', 5, 1), Any, ToonHQ, Any, NA, DefaultDialog),
11000: (LAWBOT_HQ_TIER, Start, (VisitQuest,), Any, 3310, NA, 11001, TTLocalizer.QuestDialogDict[11000]),
11001: (LAWBOT_HQ_TIER, Start, (RecoverItemQuest, ToontownGlobals.SillyStreet, 1, 3027, Hard, Any), Same, Same, 4100, NA, TTLocalizer.QuestDialogDict[11001]),
11002: (LAWBOT_HQ_TIER + 1, Start, (VisitQuest,), Any, 3310, NA, 11003, TTLocalizer.QuestDialogDict[11002]),
11003: (LAWBOT_HQ_TIER + 1, Start, (RecoverItemQuest, ToontownGlobals.LoopyLane, 1, 3027, Hard, Any), Same, Same, 4101, NA, TTLocalizer.QuestDialogDict[11003]),
11004: (LAWBOT_HQ_TIER + 2, Start, (VisitQuest,), Any, 3310, NA, 11005, TTLocalizer.QuestDialogDict[11004]),
11005: (LAWBOT_HQ_TIER + 2, Start, (RecoverItemQuest, ToontownGlobals.PunchlinePlace, 1, 3027, Hard, Any), Same, Same, 4102, NA, TTLocalizer.QuestDialogDict[11005]),
11006: (LAWBOT_HQ_TIER + 3, Start, (VisitQuest,), Any, 3310, NA, 11007, TTLocalizer.QuestDialogDict[11006]),
11007: (LAWBOT_HQ_TIER + 3, Start, (RecoverItemQuest, ToontownGlobals.BarnacleBoulevard, 1, 3027, Hard, Any), Same, Same, 4103, NA, TTLocalizer.QuestDialogDict[11007]),
11008: (LAWBOT_HQ_TIER + 4, Start, (VisitQuest,), Any, 3310, NA, 11009, TTLocalizer.QuestDialogDict[11008]),
11009: (LAWBOT_HQ_TIER + 4, Start, (RecoverItemQuest, ToontownGlobals.SeaweedStreet, 1, 3027, Hard, Any), Same, Same, 4104, NA, TTLocalizer.QuestDialogDict[11009]),
11010: (LAWBOT_HQ_TIER + 5, Start, (VisitQuest,), Any, 3310, NA, 11011, TTLocalizer.QuestDialogDict[11010]),
11011: (LAWBOT_HQ_TIER + 5, Start, (RecoverItemQuest, ToontownGlobals.LighthouseLane, 1, 3027, Hard, Any), Same, Same, 4105, NA, TTLocalizer.QuestDialogDict[11011]),
11012: (LAWBOT_HQ_TIER + 6, Start, (VisitQuest,), Any, 3310, NA, 11013, TTLocalizer.QuestDialogDict[11012]),
11013: (LAWBOT_HQ_TIER + 6, Start, (RecoverItemQuest, ToontownGlobals.ElmStreet, 1, 3027, Hard, Any), Same, Same, 4106, NA, TTLocalizer.QuestDialogDict[11013]),
11014: (LAWBOT_HQ_TIER + 7, Start, (VisitQuest,), Any, 3310, NA, 11015, TTLocalizer.QuestDialogDict[11014]),
11015: (LAWBOT_HQ_TIER + 7, Start, (RecoverItemQuest, ToontownGlobals.MapleStreet, 1, 3027, Hard, Any), Same, Same, 4107, NA, TTLocalizer.QuestDialogDict[11015]),
11016: (LAWBOT_HQ_TIER + 8, Start, (VisitQuest,), Any, 3310, NA, 11017, TTLocalizer.QuestDialogDict[11016]),
11017: (LAWBOT_HQ_TIER + 8, Start, (RecoverItemQuest, ToontownGlobals.OakStreet, 1, 3027, Hard, Any), Same, Same, 4108, NA, TTLocalizer.QuestDialogDict[11017]),
11018: (LAWBOT_HQ_TIER + 9, Start, (VisitQuest,), Any, 3310, NA, 11019, TTLocalizer.QuestDialogDict[11018]),
11019: (LAWBOT_HQ_TIER + 9, Start, (RecoverItemQuest, ToontownGlobals.AltoAvenue, 1, 3027, Hard, Any), Same, Same, 4109, NA, TTLocalizer.QuestDialogDict[11019]),
11020: (LAWBOT_HQ_TIER + 10, Start, (VisitQuest,), Any, 3310, NA, 11021, TTLocalizer.QuestDialogDict[11020]),
11021: (LAWBOT_HQ_TIER + 10, Start, (RecoverItemQuest, ToontownGlobals.BaritoneBoulevard, 1, 3027, Hard, Any), Same, Same, 4110, NA, TTLocalizer.QuestDialogDict[11021]),
11022: (LAWBOT_HQ_TIER + 11, Start, (VisitQuest,), Any, 3310, NA, 11023, TTLocalizer.QuestDialogDict[11022]),
11023: (LAWBOT_HQ_TIER + 11, Start, (RecoverItemQuest, ToontownGlobals.TenorTerrace, 1, 3027, Hard, Any), Same, Same, 4111, NA, TTLocalizer.QuestDialogDict[11023]),
11024: (LAWBOT_HQ_TIER + 12, Start, (VisitQuest,), Any, 3310, NA, 11025, TTLocalizer.QuestDialogDict[11024]),
11025: (LAWBOT_HQ_TIER + 12, Start, (RecoverItemQuest, ToontownGlobals.LullabyLane, 1, 3027, Hard, Any), Same, Same, 4112, NA, TTLocalizer.QuestDialogDict[11025]),
11026: (LAWBOT_HQ_TIER + 13, Start, (VisitQuest,), Any, 3310, NA, 11027, TTLocalizer.QuestDialogDict[11026]),
11027: (LAWBOT_HQ_TIER + 13, Start, (RecoverItemQuest, ToontownGlobals.PajamaPlace, 1, 3027, Hard, Any), Same, Same, 4113, NA, TTLocalizer.QuestDialogDict[11027]),
12000: (BOSSBOT_HQ_TIER, Start, (VisitQuest,), Any, 1222, NA, 12001, TTLocalizer.QuestDialogDict[12000]),
12001: (BOSSBOT_HQ_TIER, Start, (CogQuest, Anywhere, 1, 'f'), Same, Same, 4200, NA, TTLocalizer.QuestDialogDict[12001]),
12002: (BOSSBOT_HQ_TIER + 1, Start, (VisitQuest,), Any, 1222, NA, 12003, TTLocalizer.QuestDialogDict[12002]),
12003: (BOSSBOT_HQ_TIER + 1, Start, (CogQuest, Anywhere, 1, 'p'), Same, Same, 4201, NA, TTLocalizer.QuestDialogDict[12003]),
12004: (BOSSBOT_HQ_TIER + 2, Start, (VisitQuest,), Any, 1222, NA, 12005, TTLocalizer.QuestDialogDict[12004]),
12005: (BOSSBOT_HQ_TIER + 2, Start, (CogQuest, Anywhere, 1, 'ym'), Same, Same, 4202, NA, TTLocalizer.QuestDialogDict[12005]),
12006: (BOSSBOT_HQ_TIER + 3, Start, (VisitQuest,), Any, 1222, NA, 12007, TTLocalizer.QuestDialogDict[12006]),
12007: (BOSSBOT_HQ_TIER + 3, Start, (CogQuest, Anywhere, 1, 'mm'), Same, Same, 4203, NA, TTLocalizer.QuestDialogDict[12007]),
12008: (BOSSBOT_HQ_TIER + 4, Start, (VisitQuest,), Any, 1222, NA, 12009, TTLocalizer.QuestDialogDict[12008]),
12009: (BOSSBOT_HQ_TIER + 4, Start, (CogQuest, Anywhere, 1, 'ds'), Same, Same, 4204, NA, TTLocalizer.QuestDialogDict[12009]),
12010: (BOSSBOT_HQ_TIER + 5, Start, (VisitQuest,), Any, 1222, NA, 12011, TTLocalizer.QuestDialogDict[12010]),
12011: (BOSSBOT_HQ_TIER + 5, Start, (CogQuest, Anywhere, 1, 'hh'), Same, Same, 4205, NA, TTLocalizer.QuestDialogDict[12011]),
12012: (BOSSBOT_HQ_TIER + 6, Start, (VisitQuest,), Any, 1222, NA, 12013, TTLocalizer.QuestDialogDict[12012]),
12013: (BOSSBOT_HQ_TIER + 6, Start, (CogQuest, Anywhere, 1, 'cr'), Same, Same, 4206, NA, TTLocalizer.QuestDialogDict[12013]),
12014: (BOSSBOT_HQ_TIER + 7, Start, (VisitQuest,), Any, 1222, NA, 12015, TTLocalizer.QuestDialogDict[12014]),
12015: (BOSSBOT_HQ_TIER + 7, Start, (CogQuest, Anywhere, 1, 'tbc'), Same, Same, 4207, NA, TTLocalizer.QuestDialogDict[12015]),
12016: (BOSSBOT_HQ_TIER + 8, Start, (VisitQuest,), Any, 1222, NA, 12017, TTLocalizer.QuestDialogDict[12016]),
12017: (BOSSBOT_HQ_TIER + 8, Start, (SkeleReviveQuest, Anywhere, 1), Same, Same, 4208, NA, TTLocalizer.QuestDialogDict[12017]),
12018: (BOSSBOT_HQ_TIER + 9, Start, (VisitQuest,), Any, 1222, NA, 12019, TTLocalizer.QuestDialogDict[12018]),
12019: (BOSSBOT_HQ_TIER + 9, Start, (SkeleReviveQuest, Anywhere, 1), Same, Same, 4209, NA, TTLocalizer.QuestDialogDict[12019]),
12020: (BOSSBOT_HQ_TIER + 10, Start, (VisitQuest,), Any, 1222, NA, 12021, TTLocalizer.QuestDialogDict[12020]),
12021: (BOSSBOT_HQ_TIER + 10, Start, (SkeleReviveQuest, Anywhere, 1), Same, Same, 4210, NA, TTLocalizer.QuestDialogDict[12021]),
12022: (BOSSBOT_HQ_TIER + 11, Start, (VisitQuest,), Any, 1222, NA, 12023, TTLocalizer.QuestDialogDict[12022]),
12023: (BOSSBOT_HQ_TIER + 11, Start, (SkeleReviveQuest, Anywhere, 1), Same, Same, 4211, NA, TTLocalizer.QuestDialogDict[12023]),
12024: (BOSSBOT_HQ_TIER + 12, Start, (VisitQuest,), Any, 1222, NA, 12025, TTLocalizer.QuestDialogDict[12024]),
12025: (BOSSBOT_HQ_TIER + 12, Start, (SkeleReviveQuest, Anywhere, 1), Same, Same, 4212, NA, TTLocalizer.QuestDialogDict[12025]),
12026: (BOSSBOT_HQ_TIER + 13, Start, (VisitQuest,), Any, 1222, NA, 12027, TTLocalizer.QuestDialogDict[12026]),
12027: (BOSSBOT_HQ_TIER + 13, Start, (SkeleReviveQuest, Anywhere, 1), Same, Same, 4213, NA, TTLocalizer.QuestDialogDict[12027]),
12028: (BOSSBOT_HQ_TIER + 14, Start, (VisitQuest,), Any, 1222, NA, 12029, TTLocalizer.QuestDialogDict[12028]),
12029: (BOSSBOT_HQ_TIER + 14, Start, (SkeleReviveQuest, Anywhere, 1), Same, Same, 4214, NA, TTLocalizer.QuestDialogDict[12029]),
12030: (BOSSBOT_HQ_TIER + 15, Start, (VisitQuest,), Any, 1222, NA, 12031, TTLocalizer.QuestDialogDict[12030]),
12031: (BOSSBOT_HQ_TIER + 15, Start, (SkeleReviveQuest, Anywhere, 1), Same, Same, 4215, NA, TTLocalizer.QuestDialogDict[12031]),
12032: (BOSSBOT_HQ_TIER + 16, Start, (VisitQuest,), Any, 2001, 4216, NA, TTLocalizer.QuestDialogDict[12032])}
Tier2QuestsDict = {}
for questId, questDesc in QuestDict.items():
if questDesc[QuestDictStartIndex] == Start:
tier = questDesc[QuestDictTierIndex]
if tier in Tier2QuestsDict:
Tier2QuestsDict[tier].append(questId)
else:
Tier2QuestsDict[tier] = [questId]
Quest2RewardDict = {}
Tier2Reward2QuestsDict = {}
Quest2RemainingStepsDict = {}
def getAllRewardIdsForReward(rewardId):
if rewardId is AnyCashbotSuitPart:
return range(4000, 4011 + 1)
if rewardId is AnyLawbotSuitPart:
return range(4100, 4113 + 1)
if rewardId is AnyBossbotSuitPart:
return range(4200, 4216 + 1)
return (rewardId,)
def findFinalRewardId(questId):
finalRewardId = Quest2RewardDict.get(questId)
if finalRewardId:
remainingSteps = Quest2RemainingStepsDict.get(questId)
else:
try:
questDesc = QuestDict[questId]
except KeyError:
print 'findFinalRewardId: Quest ID: %d not found' % questId
return -1
nextQuestId = questDesc[QuestDictNextQuestIndex]
if nextQuestId == NA:
finalRewardId = questDesc[QuestDictRewardIndex]
remainingSteps = 1
else:
if type(nextQuestId) == type(()):
finalRewardId, remainingSteps = findFinalRewardId(nextQuestId[0])
for id in nextQuestId[1:]:
findFinalRewardId(id)
else:
finalRewardId, remainingSteps = findFinalRewardId(nextQuestId)
remainingSteps += 1
if finalRewardId != OBSOLETE:
if questDesc[QuestDictStartIndex] == Start:
tier = questDesc[QuestDictTierIndex]
tier2RewardDict = Tier2Reward2QuestsDict.setdefault(tier, {})
rewardIds = getAllRewardIdsForReward(finalRewardId)
for rewardId in rewardIds:
questList = tier2RewardDict.setdefault(rewardId, [])
questList.append(questId)
else:
finalRewardId = None
Quest2RewardDict[questId] = finalRewardId
Quest2RemainingStepsDict[questId] = remainingSteps
return (finalRewardId, remainingSteps)
for questId in QuestDict.keys():
findFinalRewardId(questId)
def getStartingQuests(tier = None):
startingQuests = []
for questId in QuestDict.keys():
if isStartingQuest(questId):
if tier is None:
startingQuests.append(questId)
elif questId in Tier2QuestsDict[tier]:
startingQuests.append(questId)
startingQuests.sort()
return startingQuests
def getFinalRewardId(questId, fAll = 0):
if fAll or isStartingQuest(questId):
return Quest2RewardDict.get(questId)
else:
return None
return None
def isStartingQuest(questId):
try:
return QuestDict[questId][QuestDictStartIndex] == Start
except KeyError:
return None
return None
def getNumChoices(tier):
if tier in (0,):
return 0
if tier in (1,):
return 2
else:
return 3
def getAvatarRewardId(av, questId):
for quest in av.quests:
if questId == quest[0]:
return quest[3]
notify.warning('getAvatarRewardId(): quest not found on avatar')
return None
def getNextQuest(id, currentNpc, av):
validTrackTiers = [MM_TIER, BR_TIER, DD_TIER, TT_TIER + 1]
nextQuest = QuestDict[id][QuestDictNextQuestIndex]
if nextQuest == NA:
return (NA, NA)
elif type(nextQuest) == type(()):
nextReward = QuestDict[nextQuest[0]][QuestDictRewardIndex]
nextNextQuest, nextNextToNpcId = getNextQuest(nextQuest[0], currentNpc, av)
if nextReward == 400 and nextNextQuest == NA and av.getRewardTier() in validTrackTiers:
nextQuest = chooseTrackChoiceQuest(av.getRewardTier(), av)
else:
nextQuest = random.choice(nextQuest)
if not getQuestClass(nextQuest).filterFunc(av):
return getNextQuest(nextQuest, currentNpc, av)
nextToNpcId = getQuestToNpcId(nextQuest)
if nextToNpcId == Any:
nextToNpcId = 2004
elif nextToNpcId == Same:
if currentNpc.getHq():
nextToNpcId = ToonHQ
else:
nextToNpcId = currentNpc.getNpcId()
elif nextToNpcId == ToonHQ:
nextToNpcId = ToonHQ
return (nextQuest, nextToNpcId)
def filterQuests(entireQuestPool, currentNpc, av):
if notify.getDebug():
notify.debug('filterQuests: entireQuestPool: %s' % entireQuestPool)
validQuestPool = dict([ (questId, 1) for questId in entireQuestPool ])
if isLoopingFinalTier(av.getRewardTier()):
history = map(lambda questDesc: questDesc[0], av.quests)
else:
history = av.getQuestHistory()
if notify.getDebug():
notify.debug('filterQuests: av quest history: %s' % history)
currentQuests = av.quests
for questId in entireQuestPool:
if questId in history:
if notify.getDebug():
notify.debug('filterQuests: Removed %s because in history' % questId)
validQuestPool[questId] = 0
continue
potentialFromNpc = getQuestFromNpcId(questId)
if not npcMatches(potentialFromNpc, currentNpc):
if notify.getDebug():
notify.debug('filterQuests: Removed %s: potentialFromNpc does not match currentNpc' % questId)
validQuestPool[questId] = 0
continue
potentialToNpc = getQuestToNpcId(questId)
if currentNpc.getNpcId() == potentialToNpc:
if notify.getDebug():
notify.debug('filterQuests: Removed %s because potentialToNpc is currentNpc' % questId)
validQuestPool[questId] = 0
continue
if not getQuestClass(questId).filterFunc(av):
if notify.getDebug():
notify.debug('filterQuests: Removed %s because of filterFunc' % questId)
validQuestPool[questId] = 0
continue
for quest in currentQuests:
fromNpcId = quest[1]
toNpcId = quest[2]
if potentialToNpc == toNpcId and toNpcId != ToonHQ:
validQuestPool[questId] = 0
if notify.getDebug():
notify.debug('filterQuests: Removed %s because npc involved' % questId)
break
finalQuestPool = filter(lambda key: validQuestPool[key], validQuestPool.keys())
if notify.getDebug():
notify.debug('filterQuests: finalQuestPool: %s' % finalQuestPool)
return finalQuestPool
def chooseTrackChoiceQuest(tier, av, fixed = 0):
def fixAndCallAgain():
if not fixed and av.fixTrackAccess():
notify.info('av %s trackAccess fixed: %s' % (av.getDoId(), trackAccess))
return chooseTrackChoiceQuest(tier, av, fixed=1)
else:
return None
return None
bestQuest = None
trackAccess = av.getTrackAccess()
if tier == MM_TIER:
if trackAccess[ToontownBattleGlobals.HEAL_TRACK] == 1:
bestQuest = 4002
elif trackAccess[ToontownBattleGlobals.SOUND_TRACK] == 1:
bestQuest = 4001
else:
notify.warning('av %s has bogus trackAccess: %s' % (av.getDoId(), trackAccess))
return fixAndCallAgain()
elif tier == BR_TIER:
if trackAccess[ToontownBattleGlobals.SOUND_TRACK] + trackAccess[ToontownBattleGlobals.DROP_TRACK] == 0:
bestQuest = 5001
elif trackAccess[ToontownBattleGlobals.SOUND_TRACK] + trackAccess[ToontownBattleGlobals.LURE_TRACK] == 0:
bestQuest = 5002
elif trackAccess[ToontownBattleGlobals.HEAL_TRACK] + trackAccess[ToontownBattleGlobals.DROP_TRACK] == 0:
bestQuest = 5003
elif trackAccess[ToontownBattleGlobals.HEAL_TRACK] + trackAccess[ToontownBattleGlobals.LURE_TRACK] == 0:
bestQuest = 5004
elif trackAccess[ToontownBattleGlobals.TRAP_TRACK] + trackAccess[ToontownBattleGlobals.SOUND_TRACK] == 0:
bestQuest = 5005
elif trackAccess[ToontownBattleGlobals.TRAP_TRACK] + trackAccess[ToontownBattleGlobals.HEAL_TRACK] == 0:
bestQuest = 5006
elif trackAccess[ToontownBattleGlobals.TRAP_TRACK] + trackAccess[ToontownBattleGlobals.DROP_TRACK] == 0:
bestQuest = 5007
elif trackAccess[ToontownBattleGlobals.TRAP_TRACK] + trackAccess[ToontownBattleGlobals.LURE_TRACK] == 0:
bestQuest = 5008
else:
notify.warning('av %s has bogus trackAccess: %s' % (av.getDoId(), trackAccess))
return fixAndCallAgain()
else:
if notify.getDebug():
notify.debug('questPool for reward 400 had no dynamic choice, tier: %s' % tier)
bestQuest = seededRandomChoice(Tier2Reward2QuestsDict[tier][400])
if notify.getDebug():
notify.debug('chooseTrackChoiceQuest: avId: %s trackAccess: %s tier: %s bestQuest: %s' % (av.getDoId(),
trackAccess,
tier,
bestQuest))
return bestQuest
def chooseMatchingQuest(tier, validQuestPool, rewardId, npc, av):
questsMatchingReward = Tier2Reward2QuestsDict[tier].get(rewardId, [])
if notify.getDebug():
notify.debug('questsMatchingReward: %s tier: %s = %s' % (rewardId, tier, questsMatchingReward))
if rewardId == 400 and QuestDict[questsMatchingReward[0]][QuestDictNextQuestIndex] == NA:
bestQuest = chooseTrackChoiceQuest(tier, av)
if notify.getDebug():
notify.debug('single part track choice quest: %s tier: %s avId: %s trackAccess: %s bestQuest: %s' % (rewardId,
tier,
av.getDoId(),
av.getTrackAccess(),
bestQuest))
else:
validQuestsMatchingReward = PythonUtil.intersection(questsMatchingReward, validQuestPool)
if notify.getDebug():
notify.debug('validQuestsMatchingReward: %s tier: %s = %s' % (rewardId, tier, validQuestsMatchingReward))
if validQuestsMatchingReward:
bestQuest = seededRandomChoice(validQuestsMatchingReward)
else:
questsMatchingReward = Tier2Reward2QuestsDict[tier].get(AnyCashbotSuitPart, [])
if notify.getDebug():
notify.debug('questsMatchingReward: AnyCashbotSuitPart tier: %s = %s' % (tier, questsMatchingReward))
validQuestsMatchingReward = PythonUtil.intersection(questsMatchingReward, validQuestPool)
if validQuestsMatchingReward:
if notify.getDebug():
notify.debug('validQuestsMatchingReward: AnyCashbotSuitPart tier: %s = %s' % (tier, validQuestsMatchingReward))
bestQuest = seededRandomChoice(validQuestsMatchingReward)
else:
questsMatchingReward = Tier2Reward2QuestsDict[tier].get(AnyLawbotSuitPart, [])
if notify.getDebug():
notify.debug('questsMatchingReward: AnyLawbotSuitPart tier: %s = %s' % (tier, questsMatchingReward))
validQuestsMatchingReward = PythonUtil.intersection(questsMatchingReward, validQuestPool)
if validQuestsMatchingReward:
if notify.getDebug():
notify.debug('validQuestsMatchingReward: AnyLawbotSuitPart tier: %s = %s' % (tier, validQuestsMatchingReward))
bestQuest = seededRandomChoice(validQuestsMatchingReward)
else:
questsMatchingReward = Tier2Reward2QuestsDict[tier].get(Any, [])
if notify.getDebug():
notify.debug('questsMatchingReward: Any tier: %s = %s' % (tier, questsMatchingReward))
if not questsMatchingReward:
notify.warning('chooseMatchingQuests, no questsMatchingReward')
return None
validQuestsMatchingReward = PythonUtil.intersection(questsMatchingReward, validQuestPool)
if not validQuestsMatchingReward:
notify.warning('chooseMatchingQuests, no validQuestsMatchingReward')
return None
if notify.getDebug():
notify.debug('validQuestsMatchingReward: Any tier: %s = %s' % (tier, validQuestsMatchingReward))
bestQuest = seededRandomChoice(validQuestsMatchingReward)
return bestQuest
def transformReward(baseRewardId, av):
if baseRewardId == 900:
trackId, progress = av.getTrackProgress()
if trackId == -1:
notify.warning('transformReward: asked to transform 900 but av is not training')
actualRewardId = baseRewardId
else:
actualRewardId = 900 + 1 + trackId
return actualRewardId
elif baseRewardId > 800 and baseRewardId < 900:
trackId, progress = av.getTrackProgress()
if trackId < 0:
notify.warning('transformReward: av: %s is training a track with none chosen!' % av.getDoId())
return 601
else:
actualRewardId = baseRewardId + 200 + trackId * 100
return actualRewardId
else:
return baseRewardId
def chooseBestQuests(tier, currentNpc, av):
if isLoopingFinalTier(tier):
rewardHistory = map(lambda questDesc: questDesc[3], av.quests)
else:
rewardHistory = av.getRewardHistory()[1]
seedRandomGen(currentNpc.getNpcId(), av.getDoId(), tier, rewardHistory)
numChoices = getNumChoices(tier)
rewards = getNextRewards(numChoices, tier, av)
if not rewards:
return []
possibleQuests = []
possibleRewards = list(rewards)
if Any not in possibleRewards:
possibleRewards.append(Any)
for rewardId in possibleRewards:
possibleQuests.extend(Tier2Reward2QuestsDict[tier].get(rewardId, []))
validQuestPool = filterQuests(possibleQuests, currentNpc, av)
if not validQuestPool:
return []
if numChoices == 0:
numChoices = 1
bestQuests = []
for i in xrange(numChoices):
if len(validQuestPool) == 0:
break
if len(rewards) == 0:
break
rewardId = rewards.pop(0)
bestQuestId = chooseMatchingQuest(tier, validQuestPool, rewardId, currentNpc, av)
if bestQuestId is None:
continue
validQuestPool.remove(bestQuestId)
bestQuestToNpcId = getQuestToNpcId(bestQuestId)
if bestQuestToNpcId == Any:
bestQuestToNpcId = 2003
elif bestQuestToNpcId == Same:
if currentNpc.getHq():
bestQuestToNpcId = ToonHQ
else:
bestQuestToNpcId = currentNpc.getNpcId()
elif bestQuestToNpcId == ToonHQ:
bestQuestToNpcId = ToonHQ
bestQuests.append([bestQuestId, rewardId, bestQuestToNpcId])
for quest in bestQuests:
quest[1] = transformReward(quest[1], av)
return bestQuests
def questExists(id):
return id in QuestDict
def getQuest(id):
questEntry = QuestDict.get(id)
if questEntry:
questDesc = questEntry[QuestDictDescIndex]
questClass = questDesc[0]
return questClass(id, questDesc[1:])
else:
return None
return None
def getQuestClass(id):
questEntry = QuestDict.get(id)
if questEntry:
return questEntry[QuestDictDescIndex][0]
else:
return None
return None
def getVisitSCStrings(npcId):
if npcId == ToonHQ:
strings = [TTLocalizer.QuestsRecoverItemQuestSeeHQSCString, TTLocalizer.QuestsRecoverItemQuestGoToHQSCString]
elif npcId == ToonTailor:
strings = [TTLocalizer.QuestsTailorQuestSCString]
elif npcId:
npcName, hoodName, buildingArticle, buildingName, toStreet, streetName, isInPlayground = getNpcInfo(npcId)
strings = [TTLocalizer.QuestsVisitQuestSeeSCString % npcName]
if isInPlayground:
strings.append(TTLocalizer.QuestsRecoverItemQuestGoToPlaygroundSCString % hoodName)
else:
strings.append(TTLocalizer.QuestsRecoverItemQuestGoToStreetSCString % {'to': toStreet,
'street': streetName,
'hood': hoodName})
strings.extend([TTLocalizer.QuestsRecoverItemQuestVisitBuildingSCString % (buildingArticle, buildingName), TTLocalizer.QuestsRecoverItemQuestWhereIsBuildingSCString % (buildingArticle, buildingName)])
return strings
def getFinishToonTaskSCStrings(npcId):
return [TTLocalizer.QuestsGenericFinishSCString] + getVisitSCStrings(npcId)
def chooseQuestDialog(id, status):
questDialog = getQuestDialog(id).get(status)
if questDialog == None:
if status == QUEST:
quest = getQuest(id)
questDialog = quest.getDefaultQuestDialog()
else:
questDialog = DefaultDialog[status]
if type(questDialog) == type(()):
return random.choice(questDialog)
else:
return questDialog
return
def chooseQuestDialogReject():
return random.choice(DefaultReject)
def chooseQuestDialogTierNotDone():
return random.choice(DefaultTierNotDone)
def getNpcInfo(npcId):
npcName = NPCToons.getNPCName(npcId)
npcZone = NPCToons.getNPCZone(npcId)
hoodId = ZoneUtil.getCanonicalHoodId(npcZone)
hoodName = base.cr.hoodMgr.getFullnameFromId(hoodId)
buildingArticle = NPCToons.getBuildingArticle(npcZone)
buildingName = NPCToons.getBuildingTitle(npcZone)
branchId = ZoneUtil.getCanonicalBranchZone(npcZone)
toStreet = ToontownGlobals.StreetNames[branchId][0]
streetName = ToontownGlobals.StreetNames[branchId][-1]
isInPlayground = ZoneUtil.isPlayground(branchId)
return (npcName,
hoodName,
buildingArticle,
buildingName,
toStreet,
streetName,
isInPlayground)
def getNpcLocationDialog(fromNpcId, toNpcId):
if not toNpcId:
return (None, None, None)
fromNpcZone = None
fromBranchId = None
if fromNpcId:
fromNpcZone = NPCToons.getNPCZone(fromNpcId)
fromBranchId = ZoneUtil.getCanonicalBranchZone(fromNpcZone)
toNpcZone = NPCToons.getNPCZone(toNpcId)
toBranchId = ZoneUtil.getCanonicalBranchZone(toNpcZone)
toNpcName, toHoodName, toBuildingArticle, toBuildingName, toStreetTo, toStreetName, isInPlayground = getNpcInfo(toNpcId)
if fromBranchId == toBranchId:
if isInPlayground:
streetDesc = TTLocalizer.QuestsStreetLocationThisPlayground
else:
streetDesc = TTLocalizer.QuestsStreetLocationThisStreet
elif isInPlayground:
streetDesc = TTLocalizer.QuestsStreetLocationNamedPlayground % toHoodName
else:
streetDesc = TTLocalizer.QuestsStreetLocationNamedStreet % {'toStreetName': toStreetName,
'toHoodName': toHoodName}
paragraph = TTLocalizer.QuestsLocationParagraph % {'building': TTLocalizer.QuestsLocationBuilding % toNpcName,
'buildingName': toBuildingName,
'buildingVerb': TTLocalizer.QuestsLocationBuildingVerb,
'street': streetDesc}
return (paragraph, toBuildingName, streetDesc)
def fillInQuestNames(text, avName = None, fromNpcId = None, toNpcId = None):
text = copy.deepcopy(text)
if avName != None:
text = text.replace('_avName_', avName)
if toNpcId:
if toNpcId == ToonHQ:
toNpcName = TTLocalizer.QuestsHQOfficerFillin
where = TTLocalizer.QuestsHQWhereFillin
buildingName = TTLocalizer.QuestsHQBuildingNameFillin
streetDesc = TTLocalizer.QuestsHQLocationNameFillin
elif toNpcId == ToonTailor:
toNpcName = TTLocalizer.QuestsTailorFillin
where = TTLocalizer.QuestsTailorWhereFillin
buildingName = TTLocalizer.QuestsTailorBuildingNameFillin
streetDesc = TTLocalizer.QuestsTailorLocationNameFillin
else:
toNpcName = str(NPCToons.getNPCName(toNpcId))
where, buildingName, streetDesc = getNpcLocationDialog(fromNpcId, toNpcId)
text = text.replace('_toNpcName_', toNpcName)
text = text.replace('_where_', where)
text = text.replace('_buildingName_', buildingName)
text = text.replace('_streetDesc_', streetDesc)
return text
def getVisitingQuest():
return VisitQuest(VISIT_QUEST_ID)
class Reward:
def __init__(self, id, reward):
self.id = id
self.reward = reward
def getId(self):
return self.id
def getType(self):
return self.__class__
def getAmount(self):
return None
def sendRewardAI(self, av):
raise 'not implemented'
def countReward(self, qrc):
raise 'not implemented'
def getString(self):
return 'undefined'
def getPosterString(self):
return 'base class'
class MaxHpReward(Reward):
def __init__(self, id, reward):
Reward.__init__(self, id, reward)
def getAmount(self):
return self.reward[0]
def sendRewardAI(self, av):
maxHp = av.getMaxHp()
maxHp = min(ToontownGlobals.MaxHpLimit, maxHp + self.getAmount())
av.b_setMaxHp(maxHp)
av.toonUp(maxHp)
def countReward(self, qrc):
qrc.maxHp += self.getAmount()
def getString(self):
return TTLocalizer.QuestsMaxHpReward % self.getAmount()
def getPosterString(self):
return TTLocalizer.QuestsMaxHpRewardPoster % self.getAmount()
class MoneyReward(Reward):
def __init__(self, id, reward):
Reward.__init__(self, id, reward)
def getAmount(self):
return self.reward[0]
def sendRewardAI(self, av):
money = av.getMoney()
maxMoney = av.getMaxMoney()
av.addMoney(self.getAmount())
def countReward(self, qrc):
qrc.money += self.getAmount()
def getString(self):
amt = self.getAmount()
if amt == 1:
return TTLocalizer.QuestsMoneyRewardSingular
else:
return TTLocalizer.QuestsMoneyRewardPlural % amt
def getPosterString(self):
amt = self.getAmount()
if amt == 1:
return TTLocalizer.QuestsMoneyRewardPosterSingular
else:
return TTLocalizer.QuestsMoneyRewardPosterPlural % amt
class MaxMoneyReward(Reward):
def __init__(self, id, reward):
Reward.__init__(self, id, reward)
def getAmount(self):
return self.reward[0]
def sendRewardAI(self, av):
av.b_setMaxMoney(self.getAmount())
def countReward(self, qrc):
qrc.maxMoney = self.getAmount()
def getString(self):
amt = self.getAmount()
if amt == 1:
return TTLocalizer.QuestsMaxMoneyRewardSingular
else:
return TTLocalizer.QuestsMaxMoneyRewardPlural % amt
def getPosterString(self):
amt = self.getAmount()
if amt == 1:
return TTLocalizer.QuestsMaxMoneyRewardPosterSingular
else:
return TTLocalizer.QuestsMaxMoneyRewardPosterPlural % amt
class MaxGagCarryReward(Reward):
def __init__(self, id, reward):
Reward.__init__(self, id, reward)
def getAmount(self):
return self.reward[0]
def getName(self):
return self.reward[1]
def sendRewardAI(self, av):
av.b_setMaxCarry(self.getAmount())
def countReward(self, qrc):
qrc.maxCarry = self.getAmount()
def getString(self):
name = self.getName()
amt = self.getAmount()
return TTLocalizer.QuestsMaxGagCarryReward % {'name': name,
'num': amt}
def getPosterString(self):
name = self.getName()
amt = self.getAmount()
return TTLocalizer.QuestsMaxGagCarryRewardPoster % {'name': name,
'num': amt}
class MaxQuestCarryReward(Reward):
def __init__(self, id, reward):
Reward.__init__(self, id, reward)
def getAmount(self):
return self.reward[0]
def sendRewardAI(self, av):
av.b_setQuestCarryLimit(self.getAmount())
def countReward(self, qrc):
qrc.questCarryLimit = self.getAmount()
def getString(self):
amt = self.getAmount()
return TTLocalizer.QuestsMaxQuestCarryReward % amt
def getPosterString(self):
amt = self.getAmount()
return TTLocalizer.QuestsMaxQuestCarryRewardPoster % amt
class TeleportReward(Reward):
def __init__(self, id, reward):
Reward.__init__(self, id, reward)
def getZone(self):
return self.reward[0]
def sendRewardAI(self, av):
av.addTeleportAccess(self.getZone())
def countReward(self, qrc):
qrc.addTeleportAccess(self.getZone())
def getString(self):
hoodName = ToontownGlobals.hoodNameMap[self.getZone()][-1]
return TTLocalizer.QuestsTeleportReward % hoodName
def getPosterString(self):
hoodName = ToontownGlobals.hoodNameMap[self.getZone()][-1]
return TTLocalizer.QuestsTeleportRewardPoster % hoodName
TrackTrainingQuotas = {ToontownBattleGlobals.HEAL_TRACK: 15,
ToontownBattleGlobals.TRAP_TRACK: 15,
ToontownBattleGlobals.LURE_TRACK: 15,
ToontownBattleGlobals.SOUND_TRACK: 15,
ToontownBattleGlobals.THROW_TRACK: 15,
ToontownBattleGlobals.SQUIRT_TRACK: 15,
ToontownBattleGlobals.DROP_TRACK: 15}
class TrackTrainingReward(Reward):
def __init__(self, id, reward):
Reward.__init__(self, id, reward)
def getTrack(self):
track = self.reward[0]
if track == None:
track = 0
return track
def sendRewardAI(self, av):
av.b_setTrackProgress(self.getTrack(), 0)
def countReward(self, qrc):
qrc.trackProgressId = self.getTrack()
qrc.trackProgress = 0
def getString(self):
trackName = ToontownBattleGlobals.Tracks[self.getTrack()].capitalize()
return TTLocalizer.QuestsTrackTrainingReward % trackName
def getPosterString(self):
return TTLocalizer.QuestsTrackTrainingRewardPoster
class TrackProgressReward(Reward):
def __init__(self, id, reward):
Reward.__init__(self, id, reward)
def getTrack(self):
track = self.reward[0]
if track == None:
track = 0
return track
def getProgressIndex(self):
return self.reward[1]
def sendRewardAI(self, av):
av.addTrackProgress(self.getTrack(), self.getProgressIndex())
def countReward(self, qrc):
qrc.addTrackProgress(self.getTrack(), self.getProgressIndex())
def getString(self):
trackName = ToontownBattleGlobals.Tracks[self.getTrack()].capitalize()
return TTLocalizer.QuestsTrackProgressReward % {'frameNum': self.getProgressIndex(),
'trackName': trackName}
def getPosterString(self):
trackName = ToontownBattleGlobals.Tracks[self.getTrack()].capitalize()
return TTLocalizer.QuestsTrackProgressRewardPoster % {'trackName': trackName,
'frameNum': self.getProgressIndex()}
class TrackCompleteReward(Reward):
def __init__(self, id, reward):
Reward.__init__(self, id, reward)
def getTrack(self):
track = self.reward[0]
if track == None:
track = 0
return track
def sendRewardAI(self, av):
av.addTrackAccess(self.getTrack())
av.clearTrackProgress()
def countReward(self, qrc):
qrc.addTrackAccess(self.getTrack())
qrc.clearTrackProgress()
def getString(self):
trackName = ToontownBattleGlobals.Tracks[self.getTrack()].capitalize()
return TTLocalizer.QuestsTrackCompleteReward % trackName
def getPosterString(self):
trackName = ToontownBattleGlobals.Tracks[self.getTrack()].capitalize()
return TTLocalizer.QuestsTrackCompleteRewardPoster % trackName
class ClothingTicketReward(Reward):
def __init__(self, id, reward):
Reward.__init__(self, id, reward)
def sendRewardAI(self, av):
pass
def countReward(self, qrc):
pass
def getString(self):
return TTLocalizer.QuestsClothingTicketReward
def getPosterString(self):
return TTLocalizer.QuestsClothingTicketRewardPoster
class TIPClothingTicketReward(ClothingTicketReward):
def __init__(self, id, reward):
ClothingTicketReward.__init__(self, id, reward)
def getString(self):
return TTLocalizer.TIPQuestsClothingTicketReward
def getPosterString(self):
return TTLocalizer.TIPQuestsClothingTicketRewardPoster
class CheesyEffectReward(Reward):
def __init__(self, id, reward):
Reward.__init__(self, id, reward)
def getEffect(self):
return self.reward[0]
def getHoodId(self):
return self.reward[1]
def getDurationMinutes(self):
return self.reward[2]
def sendRewardAI(self, av):
expireTime = int(time.time() / 60 + 0.5) + self.getDurationMinutes()
av.b_setCheesyEffect(self.getEffect(), self.getHoodId(), expireTime)
def countReward(self, qrc):
pass
def getString(self):
effect = self.getEffect()
hoodId = self.getHoodId()
duration = self.getDurationMinutes()
string = TTLocalizer.CheesyEffectMinutes
if duration > 90:
duration = int((duration + 30) / 60)
string = TTLocalizer.CheesyEffectHours
if duration > 36:
duration = int((duration + 12) / 24)
string = TTLocalizer.CheesyEffectDays
desc = TTLocalizer.CheesyEffectDescriptions[effect][1]
if hoodId == 0:
whileStr = ''
elif hoodId == 1:
whileStr = TTLocalizer.CheesyEffectExceptIn % TTLocalizer.ToontownCentral[-1]
else:
hoodName = base.cr.hoodMgr.getFullnameFromId(hoodId)
whileStr = TTLocalizer.CheesyEffectWhileYouAreIn % hoodName
if duration:
return string % {'time': duration,
'effectName': desc,
'whileIn': whileStr}
else:
return TTLocalizer.CheesyEffectIndefinite % {'effectName': desc,
'whileIn': whileStr}
def getPosterString(self):
effect = self.getEffect()
desc = TTLocalizer.CheesyEffectDescriptions[effect][0]
return TTLocalizer.QuestsCheesyEffectRewardPoster % desc
class CogSuitPartReward(Reward):
trackNames = [TTLocalizer.Bossbot,
TTLocalizer.Lawbot,
TTLocalizer.Cashbot,
TTLocalizer.Sellbot]
def __init__(self, id, reward):
Reward.__init__(self, id, reward)
def getCogTrack(self):
return self.reward[0]
def getCogPart(self):
return self.reward[1]
def sendRewardAI(self, av):
dept = self.getCogTrack()
part = self.getCogPart()
av.giveCogPart(part, dept)
def countReward(self, qrc):
pass
def getCogTrackName(self):
index = ToontownGlobals.cogDept2index[self.getCogTrack()]
return CogSuitPartReward.trackNames[index]
def getCogPartName(self):
index = ToontownGlobals.cogDept2index[self.getCogTrack()]
return CogDisguiseGlobals.PartsQueryNames[index][self.getCogPart()]
def getString(self):
return TTLocalizer.QuestsCogSuitPartReward % {'cogTrack': self.getCogTrackName(),
'part': self.getCogPartName()}
def getPosterString(self):
return TTLocalizer.QuestsCogSuitPartRewardPoster % {'cogTrack': self.getCogTrackName(),
'part': self.getCogPartName()}
class BuffReward(Reward):
def sendRewardAI(self, av):
av.addBuff(self.getBuffId(), self.getBuffTime())
def getBuffId(self):
return self.reward[0]
def getBuffTime(self):
return self.reward[1]
def getString(self):
return TTLocalizer.getBuffString(self.getBuffId(), self.getBuffTime())
def getPosterString(self):
return TTLocalizer.getBuffPosterString(self.getBuffId())
class EPPReward(Reward):
trackNames = [TTLocalizer.Bossbot,
TTLocalizer.Lawbot,
TTLocalizer.Cashbot,
TTLocalizer.Sellbot]
def sendRewardAI(self, av):
av.addEPP(self.reward[0])
def countReward(self, qrc):
pass
def getCogTrackName(self):
return EPPReward.trackNames[self.reward[0]]
def getString(self):
return TTLocalizer.QuestsEPPReward % self.getCogTrackName()
def getPosterString(self):
return TTLocalizer.QuestsEPPRewardPoster % self.getCogTrackName()
def getRewardClass(id):
reward = RewardDict.get(id)
if reward:
return reward[0]
else:
return None
return None
def getReward(id):
reward = RewardDict.get(id)
if reward:
rewardClass = reward[0]
return rewardClass(id, reward[1:])
else:
notify.warning('getReward(): id %s not found.' % id)
return None
return None
def getNextRewards(numChoices, tier, av):
rewardTier = list(getRewardsInTier(tier))
optRewards = list(getOptionalRewardsInTier(tier))
if tier == TT_TIER + 3:
optRewards = []
if isLoopingFinalTier(tier):
rewardHistory = map(lambda questDesc: questDesc[3], av.quests)
if notify.getDebug():
notify.debug('getNextRewards: current rewards (history): %s' % rewardHistory)
else:
rewardHistory = av.getRewardHistory()[1]
if notify.getDebug():
notify.debug('getNextRewards: rewardHistory: %s' % rewardHistory)
if notify.getDebug():
notify.debug('getNextRewards: rewardTier: %s' % rewardTier)
notify.debug('getNextRewards: numChoices: %s' % numChoices)
for rewardId in getRewardsInTier(tier):
if getRewardClass(rewardId) == CogSuitPartReward:
deptStr = RewardDict.get(rewardId)[1]
cogPart = RewardDict.get(rewardId)[2]
dept = ToontownGlobals.cogDept2index[deptStr]
if av.hasCogPart(cogPart, dept):
notify.debug('getNextRewards: already has cog part: %s dept: %s' % (cogPart, dept))
rewardTier.remove(rewardId)
else:
notify.debug('getNextRewards: keeping quest for cog part: %s dept: %s' % (cogPart, dept))
for rewardId in rewardHistory:
if rewardId in rewardTier:
rewardTier.remove(rewardId)
elif rewardId in optRewards:
optRewards.remove(rewardId)
elif rewardId in (901, 902, 903, 904, 905, 906, 907):
genericRewardId = 900
if genericRewardId in rewardTier:
rewardTier.remove(genericRewardId)
elif rewardId > 1000 and rewardId < 1699:
index = rewardId % 100
genericRewardId = 800 + index
if genericRewardId in rewardTier:
rewardTier.remove(genericRewardId)
if numChoices == 0:
if len(rewardTier) == 0:
return []
else:
return [rewardTier[0]]
rewardPool = rewardTier[:numChoices]
for i in xrange(len(rewardPool), numChoices * 2):
if optRewards:
optionalReward = seededRandomChoice(optRewards)
optRewards.remove(optionalReward)
rewardPool.append(optionalReward)
else:
break
if notify.getDebug():
notify.debug('getNextRewards: starting reward pool: %s' % rewardPool)
if len(rewardPool) == 0:
if notify.getDebug():
notify.debug('getNextRewards: no rewards left at all')
return []
finalRewardPool = [rewardPool.pop(0)]
for i in xrange(numChoices - 1):
if len(rewardPool) == 0:
break
selectedReward = seededRandomChoice(rewardPool)
rewardPool.remove(selectedReward)
finalRewardPool.append(selectedReward)
if notify.getDebug():
notify.debug('getNextRewards: final reward pool: %s' % finalRewardPool)
return finalRewardPool
RewardDict = {
100: (MaxHpReward, 1),
101: (MaxHpReward, 2),
102: (MaxHpReward, 3),
103: (MaxHpReward, 4),
104: (MaxHpReward, 5),
105: (MaxHpReward, 6),
106: (MaxHpReward, 7),
107: (MaxHpReward, 8),
108: (MaxHpReward, 9),
109: (MaxHpReward, 10),
200: (MaxGagCarryReward, 25, TTLocalizer.QuestsMediumPouch),
201: (MaxGagCarryReward, 30, TTLocalizer.QuestsLargePouch),
202: (MaxGagCarryReward, 35, TTLocalizer.QuestsSmallBag),
203: (MaxGagCarryReward, 40, TTLocalizer.QuestsMediumBag),
204: (MaxGagCarryReward, 50, TTLocalizer.QuestsLargeBag),
205: (MaxGagCarryReward, 60, TTLocalizer.QuestsSmallBackpack),
206: (MaxGagCarryReward, 70, TTLocalizer.QuestsMediumBackpack),
207: (MaxGagCarryReward, 80, TTLocalizer.QuestsLargeBackpack),
300: (TeleportReward, ToontownGlobals.ToontownCentral),
301: (TeleportReward, ToontownGlobals.DonaldsDock),
302: (TeleportReward, ToontownGlobals.DaisyGardens),
303: (TeleportReward, ToontownGlobals.MinniesMelodyland),
304: (TeleportReward, ToontownGlobals.TheBrrrgh),
305: (TeleportReward, ToontownGlobals.DonaldsDreamland),
400: (TrackTrainingReward, None),
401: (TrackTrainingReward, ToontownBattleGlobals.HEAL_TRACK),
402: (TrackTrainingReward, ToontownBattleGlobals.TRAP_TRACK),
403: (TrackTrainingReward, ToontownBattleGlobals.LURE_TRACK),
404: (TrackTrainingReward, ToontownBattleGlobals.SOUND_TRACK),
405: (TrackTrainingReward, ToontownBattleGlobals.THROW_TRACK),
406: (TrackTrainingReward, ToontownBattleGlobals.SQUIRT_TRACK),
407: (TrackTrainingReward, ToontownBattleGlobals.DROP_TRACK),
500: (MaxQuestCarryReward, 2),
501: (MaxQuestCarryReward, 3),
502: (MaxQuestCarryReward, 4),
600: (MoneyReward, 10),
601: (MoneyReward, 20),
602: (MoneyReward, 40),
603: (MoneyReward, 60),
604: (MoneyReward, 100),
605: (MoneyReward, 150),
606: (MoneyReward, 200),
607: (MoneyReward, 250),
608: (MoneyReward, 300),
609: (MoneyReward, 400),
610: (MoneyReward, 500),
611: (MoneyReward, 600),
612: (MoneyReward, 700),
613: (MoneyReward, 800),
614: (MoneyReward, 900),
615: (MoneyReward, 1000),
616: (MoneyReward, 1100),
617: (MoneyReward, 1200),
618: (MoneyReward, 1300),
619: (MoneyReward, 1400),
620: (MoneyReward, 1500),
621: (MoneyReward, 1750),
622: (MoneyReward, 2000),
623: (MoneyReward, 2500),
700: (MaxMoneyReward, 50),
701: (MaxMoneyReward, 60),
702: (MaxMoneyReward, 80),
703: (MaxMoneyReward, 100),
704: (MaxMoneyReward, 120),
705: (MaxMoneyReward, 150),
706: (MaxMoneyReward, 200),
707: (MaxMoneyReward, 250),
801: (TrackProgressReward, None, 1),
802: (TrackProgressReward, None, 2),
803: (TrackProgressReward, None, 3),
804: (TrackProgressReward, None, 4),
805: (TrackProgressReward, None, 5),
806: (TrackProgressReward, None, 6),
807: (TrackProgressReward, None, 7),
808: (TrackProgressReward, None, 8),
809: (TrackProgressReward, None, 9),
810: (TrackProgressReward, None, 10),
811: (TrackProgressReward, None, 11),
812: (TrackProgressReward, None, 12),
813: (TrackProgressReward, None, 13),
814: (TrackProgressReward, None, 14),
815: (TrackProgressReward, None, 15),
110: (TIPClothingTicketReward,),
1000: (ClothingTicketReward,),
1001: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 1),
1002: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 2),
1003: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 3),
1004: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 4),
1005: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 5),
1006: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 6),
1007: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 7),
1008: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 8),
1009: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 9),
1010: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 10),
1011: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 11),
1012: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 12),
1013: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 13),
1014: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 14),
1015: (TrackProgressReward, ToontownBattleGlobals.HEAL_TRACK, 15),
1101: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 1),
1102: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 2),
1103: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 3),
1104: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 4),
1105: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 5),
1106: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 6),
1107: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 7),
1108: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 8),
1109: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 9),
1110: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 10),
1111: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 11),
1112: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 12),
1113: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 13),
1114: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 14),
1115: (TrackProgressReward, ToontownBattleGlobals.TRAP_TRACK, 15),
1201: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 1),
1202: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 2),
1203: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 3),
1204: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 4),
1205: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 5),
1206: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 6),
1207: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 7),
1208: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 8),
1209: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 9),
1210: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 10),
1211: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 11),
1212: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 12),
1213: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 13),
1214: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 14),
1215: (TrackProgressReward, ToontownBattleGlobals.LURE_TRACK, 15),
1301: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 1),
1302: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 2),
1303: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 3),
1304: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 4),
1305: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 5),
1306: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 6),
1307: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 7),
1308: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 8),
1309: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 9),
1310: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 10),
1311: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 11),
1312: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 12),
1313: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 13),
1314: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 14),
1315: (TrackProgressReward, ToontownBattleGlobals.SOUND_TRACK, 15),
1601: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 1),
1602: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 2),
1603: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 3),
1604: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 4),
1605: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 5),
1606: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 6),
1607: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 7),
1608: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 8),
1609: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 9),
1610: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 10),
1611: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 11),
1612: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 12),
1613: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 13),
1614: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 14),
1615: (TrackProgressReward, ToontownBattleGlobals.DROP_TRACK, 15),
900: (TrackCompleteReward, None),
901: (TrackCompleteReward, ToontownBattleGlobals.HEAL_TRACK),
902: (TrackCompleteReward, ToontownBattleGlobals.TRAP_TRACK),
903: (TrackCompleteReward, ToontownBattleGlobals.LURE_TRACK),
904: (TrackCompleteReward, ToontownBattleGlobals.SOUND_TRACK),
905: (TrackCompleteReward, ToontownBattleGlobals.THROW_TRACK),
906: (TrackCompleteReward, ToontownBattleGlobals.SQUIRT_TRACK),
907: (TrackCompleteReward, ToontownBattleGlobals.DROP_TRACK),
2205: (CheesyEffectReward, ToontownGlobals.CEBigToon, 2000, 10),
2206: (CheesyEffectReward, ToontownGlobals.CESmallToon, 2000, 10),
2101: (CheesyEffectReward, ToontownGlobals.CEBigHead, 1000, 10),
2102: (CheesyEffectReward, ToontownGlobals.CESmallHead, 1000, 10),
2105: (CheesyEffectReward, ToontownGlobals.CEBigToon, 0, 20),
2106: (CheesyEffectReward, ToontownGlobals.CESmallToon, 0, 20),
2501: (CheesyEffectReward, ToontownGlobals.CEBigHead, 5000, 60),
2502: (CheesyEffectReward, ToontownGlobals.CESmallHead, 5000, 60),
2503: (CheesyEffectReward, ToontownGlobals.CEBigLegs, 5000, 20),
2504: (CheesyEffectReward, ToontownGlobals.CESmallLegs, 5000, 20),
2505: (CheesyEffectReward, ToontownGlobals.CEBigToon, 0, 60),
2506: (CheesyEffectReward, ToontownGlobals.CESmallToon, 0, 60),
2401: (CheesyEffectReward, ToontownGlobals.CEBigHead, 1, 120),
2402: (CheesyEffectReward, ToontownGlobals.CESmallHead, 1, 120),
2403: (CheesyEffectReward, ToontownGlobals.CEBigLegs, 4000, 60),
2404: (CheesyEffectReward, ToontownGlobals.CESmallLegs, 4000, 60),
2405: (CheesyEffectReward, ToontownGlobals.CEBigToon, 0, 120),
2406: (CheesyEffectReward, ToontownGlobals.CESmallToon, 0, 120),
2407: (CheesyEffectReward, ToontownGlobals.CEFlatPortrait, 4000, 30),
2408: (CheesyEffectReward, ToontownGlobals.CEFlatProfile, 4000, 30),
2409: (CheesyEffectReward, ToontownGlobals.CETransparent, 4000, 30),
2410: (CheesyEffectReward, ToontownGlobals.CENoColor, 4000, 30),
2301: (CheesyEffectReward, ToontownGlobals.CEBigHead, 1, 360),
2302: (CheesyEffectReward, ToontownGlobals.CESmallHead, 1, 360),
2303: (CheesyEffectReward, ToontownGlobals.CEBigLegs, 1, 360),
2304: (CheesyEffectReward, ToontownGlobals.CESmallLegs, 1, 360),
2305: (CheesyEffectReward, ToontownGlobals.CEBigToon, 0, 1440),
2306: (CheesyEffectReward, ToontownGlobals.CESmallToon, 0, 1440),
2307: (CheesyEffectReward, ToontownGlobals.CEFlatPortrait, 3000, 240),
2308: (CheesyEffectReward, ToontownGlobals.CEFlatProfile, 3000, 240),
2309: (CheesyEffectReward, ToontownGlobals.CETransparent, 1, 120),
2310: (CheesyEffectReward, ToontownGlobals.CENoColor, 1, 120),
2311: (CheesyEffectReward, ToontownGlobals.CEInvisible, 3000, 120),
2900: (CheesyEffectReward, ToontownGlobals.CENormal, 0, 0),
2901: (CheesyEffectReward, ToontownGlobals.CEBigHead, 1, 1440),
2902: (CheesyEffectReward, ToontownGlobals.CESmallHead, 1, 1440),
2903: (CheesyEffectReward, ToontownGlobals.CEBigLegs, 1, 1440),
2904: (CheesyEffectReward, ToontownGlobals.CESmallLegs, 1, 1440),
2905: (CheesyEffectReward, ToontownGlobals.CEBigToon, 0, 1440),
2906: (CheesyEffectReward, ToontownGlobals.CESmallToon, 0, 1440),
2907: (CheesyEffectReward, ToontownGlobals.CEFlatPortrait, 1, 1440),
2908: (CheesyEffectReward, ToontownGlobals.CEFlatProfile, 1, 1440),
2909: (CheesyEffectReward, ToontownGlobals.CETransparent, 1, 1440),
2910: (CheesyEffectReward, ToontownGlobals.CENoColor, 1, 1440),
2911: (CheesyEffectReward, ToontownGlobals.CEInvisible, 1, 1440),
2920: (CheesyEffectReward, ToontownGlobals.CENormal, 0, 0),
2921: (CheesyEffectReward, ToontownGlobals.CEBigHead, 1, 2880),
2922: (CheesyEffectReward, ToontownGlobals.CESmallHead, 1, 2880),
2923: (CheesyEffectReward, ToontownGlobals.CEBigLegs, 1, 2880),
2924: (CheesyEffectReward, ToontownGlobals.CESmallLegs, 1, 2880),
2925: (CheesyEffectReward, ToontownGlobals.CEBigToon, 0, 2880),
2926: (CheesyEffectReward, ToontownGlobals.CESmallToon, 0, 2880),
2927: (CheesyEffectReward, ToontownGlobals.CEFlatPortrait, 1, 2880),
2928: (CheesyEffectReward, ToontownGlobals.CEFlatProfile, 1, 2880),
2929: (CheesyEffectReward, ToontownGlobals.CETransparent, 1, 2880),
2930: (CheesyEffectReward, ToontownGlobals.CENoColor, 1, 2880),
2931: (CheesyEffectReward, ToontownGlobals.CEInvisible, 1, 2880),
2940: (CheesyEffectReward, ToontownGlobals.CENormal, 0, 0),
2941: (CheesyEffectReward, ToontownGlobals.CEBigHead, 1, 10080),
2942: (CheesyEffectReward, ToontownGlobals.CESmallHead, 1, 10080),
2943: (CheesyEffectReward, ToontownGlobals.CEBigLegs, 1, 10080),
2944: (CheesyEffectReward, ToontownGlobals.CESmallLegs, 1, 10080),
2945: (CheesyEffectReward, ToontownGlobals.CEBigToon, 0, 10080),
2946: (CheesyEffectReward, ToontownGlobals.CESmallToon, 0, 10080),
2947: (CheesyEffectReward, ToontownGlobals.CEFlatPortrait, 1, 10080),
2948: (CheesyEffectReward, ToontownGlobals.CEFlatProfile, 1, 10080),
2949: (CheesyEffectReward, ToontownGlobals.CETransparent, 1, 10080),
2950: (CheesyEffectReward, ToontownGlobals.CENoColor, 1, 10080),
2951: (CheesyEffectReward, ToontownGlobals.CEInvisible, 1, 10080),
2960: (CheesyEffectReward, ToontownGlobals.CENormal, 0, 0),
2961: (CheesyEffectReward, ToontownGlobals.CEBigHead, 1, 43200),
2962: (CheesyEffectReward, ToontownGlobals.CESmallHead, 1, 43200),
2963: (CheesyEffectReward, ToontownGlobals.CEBigLegs, 1, 43200),
2964: (CheesyEffectReward, ToontownGlobals.CESmallLegs, 1, 43200),
2965: (CheesyEffectReward, ToontownGlobals.CEBigToon, 0, 43200),
2966: (CheesyEffectReward, ToontownGlobals.CESmallToon, 0, 43200),
2967: (CheesyEffectReward, ToontownGlobals.CEFlatPortrait, 1, 43200),
2968: (CheesyEffectReward, ToontownGlobals.CEFlatProfile, 1, 43200),
2969: (CheesyEffectReward, ToontownGlobals.CETransparent, 1, 43200),
2970: (CheesyEffectReward, ToontownGlobals.CENoColor, 1, 43200),
2971: (CheesyEffectReward, ToontownGlobals.CEInvisible, 1, 43200),
4000: (CogSuitPartReward, 'm', CogDisguiseGlobals.leftLegUpper),
4001: (CogSuitPartReward, 'm', CogDisguiseGlobals.leftLegLower),
4002: (CogSuitPartReward, 'm', CogDisguiseGlobals.leftLegFoot),
4003: (CogSuitPartReward, 'm', CogDisguiseGlobals.rightLegUpper),
4004: (CogSuitPartReward, 'm', CogDisguiseGlobals.rightLegLower),
4005: (CogSuitPartReward, 'm', CogDisguiseGlobals.rightLegFoot),
4006: (CogSuitPartReward, 'm', CogDisguiseGlobals.upperTorso),
4007: (CogSuitPartReward, 'm', CogDisguiseGlobals.torsoPelvis),
4008: (CogSuitPartReward, 'm', CogDisguiseGlobals.leftArmUpper),
4009: (CogSuitPartReward, 'm', CogDisguiseGlobals.leftArmLower),
4010: (CogSuitPartReward, 'm', CogDisguiseGlobals.rightArmUpper),
4011: (CogSuitPartReward, 'm', CogDisguiseGlobals.rightArmLower),
4100: (CogSuitPartReward, 'l', CogDisguiseGlobals.leftLegUpper),
4101: (CogSuitPartReward, 'l', CogDisguiseGlobals.leftLegLower),
4102: (CogSuitPartReward, 'l', CogDisguiseGlobals.leftLegFoot),
4103: (CogSuitPartReward, 'l', CogDisguiseGlobals.rightLegUpper),
4104: (CogSuitPartReward, 'l', CogDisguiseGlobals.rightLegLower),
4105: (CogSuitPartReward, 'l', CogDisguiseGlobals.rightLegFoot),
4106: (CogSuitPartReward, 'l', CogDisguiseGlobals.upperTorso),
4107: (CogSuitPartReward, 'l', CogDisguiseGlobals.torsoPelvis),
4108: (CogSuitPartReward, 'l', CogDisguiseGlobals.leftArmUpper),
4109: (CogSuitPartReward, 'l', CogDisguiseGlobals.leftArmLower),
4110: (CogSuitPartReward, 'l', CogDisguiseGlobals.leftArmHand),
4111: (CogSuitPartReward, 'l', CogDisguiseGlobals.rightArmUpper),
4112: (CogSuitPartReward, 'l', CogDisguiseGlobals.rightArmLower),
4113: (CogSuitPartReward, 'l', CogDisguiseGlobals.rightArmHand),
4200: (CogSuitPartReward, 'c', CogDisguiseGlobals.leftLegUpper),
4201: (CogSuitPartReward, 'c', CogDisguiseGlobals.leftLegLower),
4202: (CogSuitPartReward, 'c', CogDisguiseGlobals.leftLegFoot),
4203: (CogSuitPartReward, 'c', CogDisguiseGlobals.rightLegUpper),
4204: (CogSuitPartReward, 'c', CogDisguiseGlobals.rightLegLower),
4205: (CogSuitPartReward, 'c', CogDisguiseGlobals.rightLegFoot),
4206: (CogSuitPartReward, 'c', CogDisguiseGlobals.torsoLeftShoulder),
4207: (CogSuitPartReward, 'c', CogDisguiseGlobals.torsoRightShoulder),
4208: (CogSuitPartReward, 'c', CogDisguiseGlobals.torsoChest),
4209: (CogSuitPartReward, 'c', CogDisguiseGlobals.torsoHealthMeter),
4210: (CogSuitPartReward, 'c', CogDisguiseGlobals.torsoPelvis),
4211: (CogSuitPartReward, 'c', CogDisguiseGlobals.leftArmUpper),
4212: (CogSuitPartReward, 'c', CogDisguiseGlobals.leftArmLower),
4213: (CogSuitPartReward, 'c', CogDisguiseGlobals.leftArmHand),
4214: (CogSuitPartReward, 'c', CogDisguiseGlobals.rightArmUpper),
4215: (CogSuitPartReward, 'c', CogDisguiseGlobals.rightArmLower),
4216: (CogSuitPartReward, 'c', CogDisguiseGlobals.rightArmHand),
# Buff rewards (BuffID, Time):
# Movement Speed Increase
3001: (BuffReward, ToontownGlobals.BMovementSpeed, 30),
3002: (BuffReward, ToontownGlobals.BMovementSpeed, 60),
3003: (BuffReward, ToontownGlobals.BMovementSpeed, 180),
3004: (BuffReward, ToontownGlobals.BMovementSpeed, 360),
10000: (EPPReward, 0), # Bossbot
10001: (EPPReward, 1), # Lawbot
10002: (EPPReward, 2), # Cashbot
10003: (EPPReward, 3) # Sellbot
}
BuffRewardIds = [3001, 3002, 3003, 3004]
def getNumTiers():
return len(RequiredRewardTrackDict) - 1
def isLoopingFinalTier(tier):
return tier == LOOPING_FINAL_TIER
def getRewardsInTier(tier):
return RequiredRewardTrackDict.get(tier, [])
def getNumRewardsInTier(tier):
return len(RequiredRewardTrackDict.get(tier, []))
def rewardTierExists(tier):
return tier in RequiredRewardTrackDict
def getOptionalRewardsInTier(tier):
return OptionalRewardTrackDict.get(tier, [])
def getRewardIdFromTrackId(trackId):
return 401 + trackId
RequiredRewardTrackDict = {
TT_TIER: (100,),
TT_TIER + 1: (400,),
TT_TIER + 2: (100, 801, 200, 802, 803, 101, 804, 805, 102, 806, 807, 100, 808, 809, 101, 810, 811, 500, 812, 813, 700, 814, 815, 300),
TT_TIER + 3: (900,),
DD_TIER: (400,),
DD_TIER + 1: (100, 801, 802, 201, 803, 804, 101, 805, 806, 102, 807, 808, 100, 809, 810, 101, 811, 812, 701, 813, 814, 815, 301),
DD_TIER + 2: (900,),
DG_TIER: (100, 202, 101, 102, 100, 101, 501, 702, 302),
MM_TIER: (400,),
MM_TIER + 1: (100, 801, 802, 203, 803, 804, 101, 805, 806, 102, 807, 808, 100, 809, 810, 101, 811, 812, 703, 813, 814, 815, 303),
MM_TIER + 2: (900,),
BR_TIER: (400,),
BR_TIER + 1: (100, 801, 802, 704, 803, 804, 101, 805, 806, 502, 807, 808, 102, 809, 810, 204, 811, 812, 100, 813, 814, 101, 815, 304, 10003),
BR_TIER + 2: (900,),
DL_TIER: (4000, 100, 205, 101, 102, 705, 103, 305, 4001, 4002),
DL_TIER + 1: (100, 206, 101, 4003, 4004, 4005, 102, 4006, 4007, 4008, 706, 103, 4009, 4010, 4011, 4000, 4001, 4002),
DL_TIER + 2: (4006, 4007, 4008, 100, 4000, 4001, 4002, 4003, 101, 4004, 4005, 4009, 102, 103, 4010, 4011),
DL_TIER + 3: (4009, 4010, 4011, 100, 4000, 4001, 101, 4002, 4003, 102, 4004, 4005, 102, 4006, 4007, 707, 207, 4008, 10002),
LAWBOT_HQ_TIER: (4100,),
LAWBOT_HQ_TIER + 1: (4101,),
LAWBOT_HQ_TIER + 2: (4102,),
LAWBOT_HQ_TIER + 3: (4103,),
LAWBOT_HQ_TIER + 4: (4104,),
LAWBOT_HQ_TIER + 5: (4105,),
LAWBOT_HQ_TIER + 6: (4106,),
LAWBOT_HQ_TIER + 7: (4107,),
LAWBOT_HQ_TIER + 8: (4108,),
LAWBOT_HQ_TIER + 9: (4109,),
LAWBOT_HQ_TIER + 10: (4110,),
LAWBOT_HQ_TIER + 11: (4111,),
LAWBOT_HQ_TIER + 12: (4112,),
LAWBOT_HQ_TIER + 13: (4113,),
BOSSBOT_HQ_TIER: (4200,),
BOSSBOT_HQ_TIER + 1: (4201,),
BOSSBOT_HQ_TIER + 2: (4202,),
BOSSBOT_HQ_TIER + 3: (4203,),
BOSSBOT_HQ_TIER + 4: (4204,),
BOSSBOT_HQ_TIER + 5: (4205,),
BOSSBOT_HQ_TIER + 6: (4206,),
BOSSBOT_HQ_TIER + 7: (4207,),
BOSSBOT_HQ_TIER + 8: (4208,),
BOSSBOT_HQ_TIER + 9: (4209,),
BOSSBOT_HQ_TIER + 10: (4210,),
BOSSBOT_HQ_TIER + 11: (4211,),
BOSSBOT_HQ_TIER + 12: (4212,),
BOSSBOT_HQ_TIER + 13: (4213,),
BOSSBOT_HQ_TIER + 14: (4214,),
BOSSBOT_HQ_TIER + 15: (4215,),
BOSSBOT_HQ_TIER + 16: (4216,),
PRE_ELDER_TIER: (10001, 10000),
ELDER_TIER: (4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011)}
OptionalRewardTrackDict = {
TT_TIER: (),
TT_TIER + 1: (),
TT_TIER + 2: (1000, 601, 601, 602, 602, 2205, 2206, 2205, 2206, 3001, 3001, 3001, 3001),
TT_TIER + 3: (601, 601, 602, 602, 2205, 2206, 2205, 2206, 3002, 3001, 3001, 3001),
DD_TIER: (1000, 602, 602, 603, 603, 2101, 2102, 2105, 2106, 3002, 3002, 3002, 3001),
DD_TIER + 1: (1000, 602, 602, 603, 603, 2101, 2102, 2105, 2106, 3002, 3002, 3002, 3001),
DD_TIER + 2: (1000, 602, 602, 603, 603, 2101, 2102, 2105, 2106, 3002, 3002, 3002, 3002),
DG_TIER: (1000, 603, 603, 604, 604, 2501, 2502, 2503, 2504, 2505, 2506, 3002, 3002, 3002, 3002),
MM_TIER: (1000, 604, 604, 605, 605, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 3002, 3002, 3002, 3002),
MM_TIER + 1: (1000, 604, 604, 605, 605, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 3003, 3003, 3002, 3002),
MM_TIER + 2: (1000, 604, 604, 605, 605, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 3003, 3003, 3002, 3002),
BR_TIER: (1000, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 3003, 3003, 3003, 3003),
BR_TIER + 1: (1000, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 3003, 3003, 3003, 3003),
BR_TIER + 2: (1000, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 3003, 3003, 3003, 3003),
DL_TIER: (2901, 2902, 2907, 2908, 2909, 2910, 2911, 3003, 3003, 3004, 3004),
DL_TIER + 1: (1000, 2923, 2924, 2927, 2928, 2929, 2930, 2931, 3003, 3003, 3004, 3004),
DL_TIER + 2: (2941, 2942, 2943, 2944, 2947, 2948, 2949, 2950, 2951, 3004, 3004, 3004, 3004),
DL_TIER + 3: (1000, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 3004, 3004, 3004, 3004),
ELDER_TIER: (1000, 1000, 613, 614, 615, 616, 617, 618, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 3004, 3004, 3004)
}
def isRewardOptional(tier, rewardId):
return tier in OptionalRewardTrackDict and rewardId in OptionalRewardTrackDict[tier]
def getItemName(itemId):
return ItemDict[itemId][0]
def getPluralItemName(itemId):
return ItemDict[itemId][1]
def avatarHasTrolleyQuest(av):
return len(av.quests) == 1 and av.quests[0][0] == TROLLEY_QUEST_ID
def avatarHasCompletedTrolleyQuest(av):
return av.quests[0][4] > 0
def avatarHasFirstCogQuest(av):
return len(av.quests) == 1 and av.quests[0][0] == FIRST_COG_QUEST_ID
def avatarHasCompletedFirstCogQuest(av):
return av.quests[0][4] > 0
def avatarHasFriendQuest(av):
return len(av.quests) == 1 and av.quests[0][0] == FRIEND_QUEST_ID
def avatarHasCompletedFriendQuest(av):
return av.quests[0][4] > 0
def avatarHasPhoneQuest(av):
return len(av.quests) == 1 and av.quests[0][0] == PHONE_QUEST_ID
def avatarHasCompletedPhoneQuest(av):
return av.quests[0][4] > 0
def avatarWorkingOnRequiredRewards(av):
tier = av.getRewardTier()
rewardList = list(getRewardsInTier(tier))
for i in xrange(len(rewardList)):
actualRewardId = transformReward(rewardList[i], av)
rewardList[i] = actualRewardId
for questDesc in av.quests:
questId = questDesc[0]
rewardId = questDesc[3]
if rewardId in rewardList:
return 1
elif rewardId == NA:
rewardId = transformReward(getFinalRewardId(questId, fAll=1), av)
if rewardId in rewardList:
return 1
return 0
def avatarHasAllRequiredRewards(av, tier):
# Get the reward history.
rewardHistory = list(av.getRewardHistory()[1])
# Delete quests we're working on from the reward History.
avQuests = av.getQuests()
# Iterate through the current quests.
for i in xrange(0, len(avQuests), 5):
questDesc = avQuests[i:i + 5]
questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
transformedRewardId = transformReward(rewardId, av)
if rewardId in rewardHistory:
rewardHistory.remove(rewardId)
if transformedRewardId in rewardHistory:
rewardHistory.remove(transformedRewardId)
rewardList = getRewardsInTier(tier)
notify.debug('checking avatarHasAllRequiredRewards: history: %s, tier: %s' % (rewardHistory, rewardList))
for rewardId in rewardList:
if rewardId == 900:
found = 0
for actualRewardId in (901, 902, 903, 904, 905, 906, 907):
if actualRewardId in rewardHistory:
found = 1
rewardHistory.remove(actualRewardId)
if notify.getDebug():
notify.debug('avatarHasAllRequiredRewards: rewardId 900 found as: %s' % actualRewardId)
break
if not found:
if notify.getDebug():
notify.debug('avatarHasAllRequiredRewards: rewardId 900 not found')
return 0
else:
actualRewardId = transformReward(rewardId, av)
if actualRewardId in rewardHistory:
rewardHistory.remove(actualRewardId)
elif getRewardClass(rewardId) == CogSuitPartReward:
deptStr = RewardDict.get(rewardId)[1]
cogPart = RewardDict.get(rewardId)[2]
dept = ToontownGlobals.cogDept2index[deptStr]
if av.hasCogPart(cogPart, dept):
if notify.getDebug():
notify.debug('avatarHasAllRequiredRewards: rewardId: %s counts, avatar has cog part: %s dept: %s' % (actualRewardId, cogPart, dept))
else:
if notify.getDebug():
notify.debug('avatarHasAllRequiredRewards: CogSuitPartReward: %s not found' % actualRewardId)
return 0
else:
if notify.getDebug():
notify.debug('avatarHasAllRequiredRewards: rewardId %s not found' % actualRewardId)
return 0
if notify.getDebug():
notify.debug('avatarHasAllRequiredRewards: remaining rewards: %s' % rewardHistory)
for rewardId in rewardHistory:
if not isRewardOptional(tier, rewardId):
notify.warning('required reward found, expected only optional: %s' % rewardId)
return 1
def nextQuestList(nextQuest):
if nextQuest == NA:
return None
seqTypes = (types.ListType, types.TupleType)
if type(nextQuest) in seqTypes:
return nextQuest
else:
return (nextQuest,)
return None
def checkReward(questId, forked = 0):
quest = QuestDict[questId]
reward = quest[5]
nextQuests = nextQuestList(quest[6])
if nextQuests is None:
validRewards = RewardDict.keys() + [Any,
AnyCashbotSuitPart,
AnyLawbotSuitPart,
OBSOLETE]
if reward is OBSOLETE:
print 'warning: quest %s is obsolete' % questId
return reward
else:
forked = forked or len(nextQuests) > 1
firstReward = checkReward(nextQuests[0], forked)
for qId in nextQuests[1:]:
thisReward = checkReward(qId, forked)
return firstReward
return
def assertAllQuestsValid():
print 'checking quests...'
for questId in QuestDict.keys():
try:
quest = getQuest(questId)
except AssertionError, e:
err = 'invalid quest: %s' % questId
print err
raise
for questId in QuestDict.keys():
quest = QuestDict[questId]
tier, start, questDesc, fromNpc, toNpc, reward, nextQuest, dialog = quest
if start:
checkReward(questId)