Update NameShop.py

this is broken ik
This commit is contained in:
Open Toontown 2022-01-20 16:16:13 -05:00
parent b2e13f231c
commit b81908ad53
1 changed files with 99 additions and 201 deletions

View File

@ -13,6 +13,7 @@ from direct.fsm import ClassicFSM, State
from direct.fsm import State from direct.fsm import State
from toontown.toontowngui import TTDialog from toontown.toontowngui import TTDialog
import re import re
import string
from toontown.toonbase import TTLocalizer from toontown.toonbase import TTLocalizer
from . import NameGenerator from . import NameGenerator
import random import random
@ -536,10 +537,10 @@ class NameShop(StateData.StateData):
def match(npcName, name = name): def match(npcName, name = name):
name = TextEncoder().encodeWtext(name) name = TextEncoder().encodeWtext(name)
name = name.strip() name = string.strip(name)
return TextEncoder.upper(npcName) == TextEncoder.upper(name.decode('utf-8')) return TextEncoder.upper(npcName) == TextEncoder.upper(name)
for npcId in list(NPCToons.NPCToonDict.keys()): for npcId in NPCToons.NPCToonDict.keys():
npcName = NPCToons.NPCToonDict[npcId][1] npcName = NPCToons.NPCToonDict[npcId][1]
if match(npcName): if match(npcName):
self.notify.info('name matches NPC name "%s"' % npcName) self.notify.info('name matches NPC name "%s"' % npcName)
@ -773,10 +774,10 @@ class NameShop(StateData.StateData):
self.notify.debug('__typedAName') self.notify.debug('__typedAName')
self.nameEntry['focus'] = 0 self.nameEntry['focus'] = 0
name = self.nameEntry.get() name = self.nameEntry.get()
name = TextEncoder().decodeText(name.encode('utf-8')) name = TextEncoder().decodeText(name)
name = name.strip() name = name.strip()
name = TextEncoder().encodeWtext(name) name = TextEncoder().encodeWtext(name)
self.nameEntry.enterText(name.decode('utf-8')) self.nameEntry.enterText(name)
problem = self.nameIsValid(self.nameEntry.get()) problem = self.nameIsValid(self.nameEntry.get())
if problem: if problem:
self.rejectName(problem) self.rejectName(problem)
@ -865,70 +866,41 @@ class NameShop(StateData.StateData):
def checkNamePattern(self): def checkNamePattern(self):
self.notify.debug('checkNamePattern') self.notify.debug('checkNamePattern')
if __astron__: datagram = PyDatagram()
base.cr.astronLoginManager.sendSetNamePattern(self.avId, datagram.addUint16(CLIENT_SET_NAME_PATTERN)
self.nameIndices[0], self.nameFlags[0], datagram.addUint32(self.avId)
self.nameIndices[1], self.nameFlags[1], datagram.addInt16(self.nameIndices[0])
self.nameIndices[2], self.nameFlags[2], datagram.addInt16(self.nameFlags[0])
self.nameIndices[3], self.nameFlags[3], datagram.addInt16(self.nameIndices[1])
self.handleSetNamePatternAnswerMsg) datagram.addInt16(self.nameFlags[1])
else: datagram.addInt16(self.nameIndices[2])
datagram = PyDatagram() datagram.addInt16(self.nameFlags[2])
datagram.addUint16(CLIENT_SET_NAME_PATTERN) datagram.addInt16(self.nameIndices[3])
datagram.addUint32(self.avId) datagram.addInt16(self.nameFlags[3])
datagram.addInt16(self.nameIndices[0]) messenger.send('nameShopPost', [datagram])
datagram.addInt16(self.nameFlags[0])
datagram.addInt16(self.nameIndices[1])
datagram.addInt16(self.nameFlags[1])
datagram.addInt16(self.nameIndices[2])
datagram.addInt16(self.nameFlags[2])
datagram.addInt16(self.nameIndices[3])
datagram.addInt16(self.nameFlags[3])
messenger.send('nameShopPost', [datagram])
self.waitForServer() self.waitForServer()
if not __astron__: def handleSetNamePatternAnswerMsg(self, di):
def handleSetNamePatternAnswerMsg(self, di): self.notify.debug('handleSetNamePatternAnswerMsg')
self.notify.debug('handleSetNamePatternAnswerMsg') self.cleanupWaitForServer()
self.cleanupWaitForServer() newavId = di.getUint32()
newavId = di.getUint32() if newavId != self.avId:
if newavId != self.avId: self.notify.debug("doid's don't match up!")
self.notify.debug("doid's don't match up!") self.rejectName(TTLocalizer.NameError)
self.rejectName(TTLocalizer.NameError) returnCode = di.getUint8()
returnCode = di.getUint8() if returnCode == 0:
if returnCode == 0: style = self.toon.getStyle()
style = self.toon.getStyle() avDNA = style.makeNetString()
avDNA = style.makeNetString() self.notify.debug('pattern name accepted')
self.notify.debug('pattern name accepted') newPotAv = PotentialAvatar.PotentialAvatar(newavId, self.names, avDNA, self.index, 0)
newPotAv = PotentialAvatar.PotentialAvatar(newavId, self.names, avDNA, self.index, 0) self.avList.append(newPotAv)
self.avList.append(newPotAv) self.doneStatus = 'done'
self.doneStatus = 'done' self.storeSkipTutorialRequest()
self.storeSkipTutorialRequest() messenger.send(self.doneEvent)
messenger.send(self.doneEvent) else:
else: self.notify.debug('name pattern rejected')
self.notify.debug('name pattern rejected') self.rejectName(TTLocalizer.NameError)
self.rejectName(TTLocalizer.NameError) return None
return None
else:
def handleSetNamePatternAnswerMsg(self, newavId, returnCode):
self.notify.debug('handleSetNamePatternAnswerMsg')
self.cleanupWaitForServer()
if newavId != self.avId:
self.notify.debug("doid's don't match up!")
self.rejectName(TTLocalizer.NameError)
if returnCode == 1:
style = self.toon.getStyle()
avDNA = style.makeNetString()
self.notify.debug('pattern name accepted')
newPotAv = PotentialAvatar.PotentialAvatar(newavId, self.names, avDNA, self.index, 0)
self.avList.append(newPotAv)
self.doneStatus = 'done'
self.storeSkipTutorialRequest()
messenger.send(self.doneEvent)
else:
self.notify.debug('name pattern rejected')
self.rejectName(TTLocalizer.NameError)
return None
def _submitTypeANameAsPickAName(self): def _submitTypeANameAsPickAName(self):
pnp = TTPickANamePattern(self.nameEntry.get(), self.toon.style.gender) pnp = TTPickANamePattern(self.nameEntry.get(), self.toon.style.gender)
@ -937,7 +909,7 @@ class NameShop(StateData.StateData):
self.fsm.request('PickAName') self.fsm.request('PickAName')
flags = [pattern[0] != -1, pattern[1] != -1, pattern[2] != -1] flags = [pattern[0] != -1, pattern[1] != -1, pattern[2] != -1]
names = [] names = []
for i in range(len(pattern)): for i in xrange(len(pattern)):
if pattern[i] != -1: if pattern[i] != -1:
names.append(pnp.getNamePartString(self.toon.style.gender, i, pattern[i])) names.append(pnp.getNamePartString(self.toon.style.gender, i, pattern[i]))
else: else:
@ -953,124 +925,74 @@ class NameShop(StateData.StateData):
self.notify.debug('checkNameTyped') self.notify.debug('checkNameTyped')
if self._submitTypeANameAsPickAName(): if self._submitTypeANameAsPickAName():
return return
if not __astron__: datagram = PyDatagram()
datagram = PyDatagram() datagram.addUint16(CLIENT_SET_WISHNAME)
datagram.addUint16(CLIENT_SET_WISHNAME)
if justCheck: if justCheck:
avId = 0 avId = 0
else: else:
avId = self.avId avId = self.avId
if not __astron__: datagram.addUint32(avId)
datagram.addUint32(avId) datagram.addString(self.nameEntry.get())
datagram.addString(self.nameEntry.get()) messenger.send('nameShopPost', [datagram])
messenger.send('nameShopPost', [datagram])
else:
base.cr.astronLoginManager.sendSetNameTyped(avId, self.nameEntry.get(), self.handleSetNameTypedAnswerMsg)
self.waitForServer() self.waitForServer()
if not __astron__: def handleSetNameTypedAnswerMsg(self, di):
def handleSetNameTypedAnswerMsg(self, di): self.notify.debug('handleSetNameTypedAnswerMsg')
self.notify.debug('handleSetNameTypedAnswerMsg') self.cleanupWaitForServer()
self.cleanupWaitForServer() newavId = di.getUint32()
newavId = di.getUint32() if newavId and newavId != self.avId:
if newavId and newavId != self.avId: self.notify.debug("doid's don't match up!")
self.notify.debug("doid's don't match up!") self.rejectName(TTLocalizer.NameError)
self.rejectName(TTLocalizer.NameError) returnCode = di.getUint16()
returnCode = di.getUint16() if newavId == 0:
if newavId == 0: if returnCode == 0:
if returnCode == 0: pendingname = di.getString()
pendingname = di.getString()
approvedname = di.getString()
rejectedname = di.getString()
if pendingname != '':
self.notify.debug('name check pending')
self.fsm.request('Approval')
elif approvedname != '':
self.notify.debug('name check accepted')
self.nameAction = 2
self.serverCreateAvatar()
elif rejectedname != '':
self.notify.debug('name check rejected')
self.fsm.request('TypeAName')
self.rejectName(TTLocalizer.NameError)
else:
self.notify.debug('typed name response did not contain any return fields')
self.rejectName(TTLocalizer.NameError)
elif returnCode == 0:
wishname = di.getString()
approvedname = di.getString() approvedname = di.getString()
rejectedname = di.getString() rejectedname = di.getString()
if approvedname != '': if pendingname != '':
style = self.toon.getStyle()
avDNA = style.makeNetString()
self.names[0] = self.nameEntry.get()
self.notify.debug('typed name accepted')
newPotAv = PotentialAvatar.PotentialAvatar(newavId, self.names, avDNA, self.index, 0)
self.avList.append(newPotAv)
self.fsm.request('Accepted')
elif wishname != '':
style = self.toon.getStyle()
avDNA = style.makeNetString()
self.names[1] = self.nameEntry.get()
self.notify.debug('typed name needs approval')
newPotAv = PotentialAvatar.PotentialAvatar(newavId, self.names, avDNA, self.index, 1)
if not self.newwarp:
self.avList.append(newPotAv)
self.fsm.request('ApprovalAccepted')
elif rejectedname != '':
self.fsm.request('Rejected')
else:
self.notify.debug("name typed accepted but didn't fill any return fields")
self.rejectName(TTLocalizer.NameError)
else:
self.notify.debug('name typed rejected')
self.rejectName(TTLocalizer.NameError)
return None
else:
def handleSetNameTypedAnswerMsg(self, newavId, returnCode):
self.notify.debug('handleSetNameTypedAnswerMsg')
self.cleanupWaitForServer()
if newavId and newavId != self.avId:
self.notify.debug("doid's don't match up!")
self.rejectName(TTLocalizer.NameError)
if newavId == 0:
if returnCode == 1:
self.notify.debug('name check pending') self.notify.debug('name check pending')
self.fsm.request('Approval') self.fsm.request('Approval')
elif returnCode == 2: elif approvedname != '':
self.notify.debug('name check accepted') self.notify.debug('name check accepted')
self.nameAction = 2 self.nameAction = 2
self.serverCreateAvatar() self.serverCreateAvatar()
elif returnCode == 0: elif rejectedname != '':
self.notify.debug('name check rejected') self.notify.debug('name check rejected')
self.fsm.request('TypeAName') self.fsm.request('TypeAName')
self.rejectName(TTLocalizer.NameError) self.rejectName(TTLocalizer.NameError)
else: else:
self.notify.debug('typed name response did not contain any return fields') self.notify.debug('typed name response did not contain any return fields')
self.rejectName(TTLocalizer.NameError) self.rejectName(TTLocalizer.NameError)
else: elif returnCode == 0:
if returnCode == 2: wishname = di.getString()
style = self.toon.getStyle() approvedname = di.getString()
avDNA = style.makeNetString() rejectedname = di.getString()
self.names[0] = self.nameEntry.get() if approvedname != '':
self.notify.debug('typed name accepted') style = self.toon.getStyle()
newPotAv = PotentialAvatar.PotentialAvatar(newavId, self.names, avDNA, self.index, 0) avDNA = style.makeNetString()
self.names[0] = self.nameEntry.get()
self.notify.debug('typed name accepted')
newPotAv = PotentialAvatar.PotentialAvatar(newavId, self.names, avDNA, self.index, 0)
self.avList.append(newPotAv)
self.fsm.request('Accepted')
elif wishname != '':
style = self.toon.getStyle()
avDNA = style.makeNetString()
self.names[1] = self.nameEntry.get()
self.notify.debug('typed name needs approval')
newPotAv = PotentialAvatar.PotentialAvatar(newavId, self.names, avDNA, self.index, 1)
if not self.newwarp:
self.avList.append(newPotAv) self.avList.append(newPotAv)
self.fsm.request('Accepted') self.fsm.request('ApprovalAccepted')
elif returnCode == 1: elif rejectedname != '':
style = self.toon.getStyle() self.fsm.request('Rejected')
avDNA = style.makeNetString() else:
self.names[1] = self.nameEntry.get() self.notify.debug("name typed accepted but didn't fill any return fields")
self.notify.debug('typed name needs approval') self.rejectName(TTLocalizer.NameError)
newPotAv = PotentialAvatar.PotentialAvatar(newavId, self.names, avDNA, self.index, 1) else:
if not self.newwarp: self.notify.debug('name typed rejected')
self.avList.append(newPotAv) self.rejectName(TTLocalizer.NameError)
self.fsm.request('ApprovalAccepted') return None
elif returnCode == 0:
self.fsm.request('Rejected')
else:
self.notify.debug("name typed accepted but didn't fill any return fields")
self.rejectName(TTLocalizer.NameError)
def serverCreateAvatar(self, skipTutorial = False): def serverCreateAvatar(self, skipTutorial = False):
self.notify.debug('serverCreateAvatar') self.notify.debug('serverCreateAvatar')
@ -1082,46 +1004,18 @@ class NameShop(StateData.StateData):
self.requestingSkipTutorial = False self.requestingSkipTutorial = False
if not self.avExists or self.avExists and self.avId == 'deleteMe': if not self.avExists or self.avExists and self.avId == 'deleteMe':
messenger.send('nameShopCreateAvatar', [style, '', self.index]) messenger.send('nameShopCreateAvatar', [style, '', self.index])
if __astron__:
self.accept('nameShopCreateAvatarDone', self.handleCreateAvatarResponseMsg)
else: else:
self.checkNameTyped() self.checkNameTyped()
self.notify.debug('Ending Make A Toon: %s' % self.toon.style) self.notify.debug('Ending Make A Toon: %s' % self.toon.style)
base.cr.centralLogger.writeClientEvent('MAT - endingMakeAToon: %s' % self.toon.style) base.cr.centralLogger.writeClientEvent('MAT - endingMakeAToon: %s' % self.toon.style)
if not __astron__: def handleCreateAvatarResponseMsg(self, di):
def handleCreateAvatarResponseMsg(self, di): self.notify.debug('handleCreateAvatarResponseMsg')
self.notify.debug('handleCreateAvatarResponseMsg') echoContext = di.getUint16()
echoContext = di.getUint16() returnCode = di.getUint8()
returnCode = di.getUint8() if returnCode == 0:
if returnCode == 0:
self.notify.debug('avatar with default name accepted')
self.avId = di.getUint32()
self.avExists = 1
self.logAvatarCreation()
if self.nameAction == 0:
self.toon.setName(self.names[0])
newPotAv = PotentialAvatar.PotentialAvatar(self.avId, self.names, self.newDNA, self.index, 1)
self.avList.append(newPotAv)
self.doneStatus = 'done'
self.storeSkipTutorialRequest()
messenger.send(self.doneEvent)
elif self.nameAction == 1:
self.checkNamePattern()
elif self.nameAction == 2:
self.checkNameTyped()
else:
self.notify.debug('avatar invalid nameAction')
self.rejectName(TTLocalizer.NameError)
else:
self.notify.debug('avatar rejected')
self.rejectName(TTLocalizer.NameError)
return None
else:
def handleCreateAvatarResponseMsg(self, avId):
self.notify.debug('handleCreateAvatarResponseMsg')
self.notify.debug('avatar with default name accepted') self.notify.debug('avatar with default name accepted')
self.avId = avId self.avId = di.getUint32()
self.avExists = 1 self.avExists = 1
self.logAvatarCreation() self.logAvatarCreation()
if self.nameAction == 0: if self.nameAction == 0:
@ -1138,6 +1032,10 @@ class NameShop(StateData.StateData):
else: else:
self.notify.debug('avatar invalid nameAction') self.notify.debug('avatar invalid nameAction')
self.rejectName(TTLocalizer.NameError) self.rejectName(TTLocalizer.NameError)
else:
self.notify.debug('avatar rejected')
self.rejectName(TTLocalizer.NameError)
return None
def waitForServer(self): def waitForServer(self):
self.waitForServerDialog = TTDialog.TTDialog(text=TTLocalizer.WaitingForNameSubmission, style=TTDialog.NoButtons) self.waitForServerDialog = TTDialog.TTDialog(text=TTLocalizer.WaitingForNameSubmission, style=TTDialog.NoButtons)
@ -1170,7 +1068,7 @@ class NameShop(StateData.StateData):
self.promptTutorial() self.promptTutorial()
def promptTutorial(self): def promptTutorial(self):
self.promptTutorialDialog = TTDialog.TTDialog(parent=aspect2dp, text=TTLocalizer.PromptTutorial, text_scale=0.06, text_align=TextNode.ACenter, text_wordwrap=22, command=self.__openTutorialDialog, fadeScreen=0.5, style=TTDialog.TwoChoice, buttonTextList=[TTLocalizer.MakeAToonEnterTutorial, TTLocalizer.MakeAToonSkipTutorial], button_text_scale=0.06, buttonPadSF=5.5, sortOrder=DGG.NO_FADE_SORT_INDEX) self.promptTutorialDialog = TTDialog.TTDialog(parent=aspect2dp, text=TTLocalizer.PromptTutorial, text_scale=0.06, text_align=TextNode.ACenter, text_wordwrap=22, command=self.__openTutorialDialog, fadeScreen=0.5, style=TTDialog.TwoChoice, buttonTextList=[TTLocalizer.MakeAToonEnterTutorial, TTLocalizer.MakeAToonSkipTutorial], button_text_scale=0.06, buttonPadSF=5.5, sortOrder=NO_FADE_SORT_INDEX)
self.promptTutorialDialog.show() self.promptTutorialDialog.show()
def __openTutorialDialog(self, choice = 0): def __openTutorialDialog(self, choice = 0):