toontown-just-works/toontown/speedchat/TTSCToontaskMenu.py

48 lines
1.5 KiB
Python
Raw Normal View History

2024-07-07 18:08:39 -05:00
from otp.speedchat.SCMenu import SCMenu
from TTSCToontaskTerminal import TTSCToontaskTerminal
from otp.speedchat.SCStaticTextTerminal import SCStaticTextTerminal
from toontown.quest import Quests
class TTSCToontaskMenu(SCMenu):
def __init__(self):
SCMenu.__init__(self)
self.accept('questsChanged', self.__tasksChanged)
self.__tasksChanged()
def destroy(self):
SCMenu.destroy(self)
def __tasksChanged(self):
self.clearMenu()
try:
lt = base.localAvatar
except:
return
phrases = []
def addTerminal(terminal, self = self, phrases = phrases):
displayText = terminal.getDisplayText()
if displayText not in phrases:
self.append(terminal)
phrases.append(displayText)
for task in lt.quests:
taskId, fromNpcId, toNpcId, rewardId, toonProgress = task
q = Quests.getQuest(taskId)
if q is None:
continue
msgs = q.getSCStrings(toNpcId, toonProgress)
if type(msgs) != type([]):
msgs = [msgs]
for i in xrange(len(msgs)):
addTerminal(TTSCToontaskTerminal(msgs[i], taskId, toNpcId, toonProgress, i))
needToontask = 1
if hasattr(lt, 'questCarryLimit'):
needToontask = len(lt.quests) != lt.questCarryLimit
if needToontask:
addTerminal(SCStaticTextTerminal(1299))
return