Bye Yin and Yang

This commit is contained in:
Daniel 2015-03-07 15:29:52 +02:00
parent bf279ca444
commit 8c20235947
13 changed files with 0 additions and 470 deletions

View file

@ -112,8 +112,6 @@ from toontown.toon import DistributedNPCFisherman/AI
from toontown.toon import DistributedNPCPartyPerson/AI
from toontown.toon import DistributedNPCPetclerk/AI
from toontown.toon import DistributedNPCKartClerk/AI
from toontown.toon import DistributedNPCYin/AI
from toontown.toon import DistributedNPCYang/AI
from toontown.building import DistributedKnockKnockDoor/AI
from toontown.building import DistributedElevator/AI
from toontown.building import DistributedElevatorFSM/AI
@ -1848,16 +1846,6 @@ dclass DistributedNPCKartClerk : DistributedNPCToonBase {
transactionDone() airecv clsend;
};
dclass DistributedNPCYin : DistributedNPCToonBase {
doTransformation(uint32 avId) broadcast;
requestTransformation() airecv clsend;
};
dclass DistributedNPCYang : DistributedNPCToonBase {
doTransformation(uint32 avId) broadcast;
requestTransformation() airecv clsend;
};
dclass DistributedKnockKnockDoor : DistributedAnimatedProp {
};

View file

@ -36,4 +36,3 @@ want-parties #t
# Optional:
want-talkative-tyler #f
want-yin-yang #f

View file

@ -121,7 +121,6 @@ show-total-population #t
want-mat-all-tailors #t
want-long-pattern-game #f
want-talkative-tyler #f
want-yin-yang #f
# Developer options:
want-dev #f

View file

@ -33,9 +33,6 @@ want-resistance-toonup #t
want-resistance-restock #t
want-resistance-dance #t
# Optional:
want-yin-yang #t
# Developer options:
show-population #t
force-skip-tutorial #t

View file

@ -87,7 +87,6 @@ class ToontownAIRepository(ToontownInternalRepository):
self.doLiveUpdates = self.config.GetBool('want-live-updates', False)
self.wantTrackClsends = self.config.GetBool('want-track-clsends', False)
self.wantAchievements = self.config.GetBool('want-achievements', True)
self.wantYinYang = self.config.GetBool('want-yin-yang', False)
self.baseXpMultiplier = self.config.GetFloat('base-xp-multiplier', 1.0)
self.wantHalloween = self.config.GetBool('want-halloween', False)
self.wantChristmas = self.config.GetBool('want-christmas', False)

View file

@ -32,16 +32,6 @@ class TTHoodAI(HoodAI.HoodAI):
if simbase.config.GetBool('want-butterflies', True):
self.createButterflies()
if simbase.air.wantYinYang:
NPCToons.createNPC(
simbase.air, 2021,
(ToontownGlobals.ToontownCentral, TTLocalizer.NPCToonNames[2021], ('css', 'ms', 'm', 'm', 26, 0, 26, 26, 0, 27, 0, 27, 0, 27), 'm', 1, NPCToons.NPC_YIN),
ToontownGlobals.ToontownCentral, posIndex=0)
NPCToons.createNPC(
simbase.air, 2022,
(ToontownGlobals.ToontownCentral, TTLocalizer.NPCToonNames[2022], ('bss', 'ms', 'm', 'm', 0, 0, 0, 0, 0, 31, 0, 31, 0, 31), 'm', 1, NPCToons.NPC_YANG),
ToontownGlobals.ToontownCentral, posIndex=0)
if simbase.air.wantHalloween:
self.TrickOrTreatTargetManager = DistributedTrickOrTreatTargetAI.DistributedTrickOrTreatTargetAI(self.air)
self.TrickOrTreatTargetManager.generateWithRequired(2649)

View file

@ -24,12 +24,6 @@ class ColorShop(StateData.StateData):
else:
colorList = ToonDNA.defaultGirlColorList
if base.wantYinYang: # Free black/white Toons event.
if dna.head[0] == 'c':
colorList = colorList + [26]
elif dna.head[0] == 'b':
colorList = [0] + colorList
return colorList
def enter(self, toon, shopsVisited = []):

View file

@ -1,191 +0,0 @@
from direct.fsm import ClassicFSM, State
from direct.gui.DirectGui import *
from direct.task.Task import Task
from pandac.PandaModules import *
import time
from DistributedNPCToonBase import *
from toontown.chat.ChatGlobals import *
from toontown.effects import DustCloud
from toontown.nametag.NametagGlobals import *
from toontown.toonbase import TTLocalizer
def getDustCloudIval(toon):
dustCloud = DustCloud.DustCloud(fBillboard=0)
dustCloud.setBillboardAxis(2.0)
dustCloud.setZ(3)
dustCloud.setScale(0.4)
dustCloud.createTrack()
if getattr(toon, 'laffMeter', None):
toon.laffMeter.color = toon.style.getWhiteColor()
seq = Sequence(Wait(0.5), Func(dustCloud.reparentTo, toon), dustCloud.track, Func(dustCloud.destroy))
if getattr(toon, 'laffMeter', None):
seq.append(Func(toon.laffMeter.adjustFace, toon.hp, toon.maxHp))
return seq
class DistributedNPCYang(DistributedNPCToonBase):
def __init__(self, cr):
DistributedNPCToonBase.__init__(self, cr)
self.pickColorGui = None
self.pickColorGuiDoneEvent = 'pickColorGuiDone'
self.nextCollision = 0
self.fsm = ClassicFSM.ClassicFSM(
'NPCYin',
[
State.State('off', self.enterOff, self.exitOff, ['pickColor']),
State.State('pickColor', self.enterPickColor, self.exitPickColor, ['off'])
], 'off', 'off')
self.fsm.enterInitialState()
self.title = None
self.yesButton = None
self.noButton = None
self.buttonModels = loader.loadModel('phase_3.5/models/gui/inventory_gui')
self.upButton = self.buttonModels.find('**//InventoryButtonUp')
self.downButton = self.buttonModels.find('**/InventoryButtonDown')
self.rolloverButton = self.buttonModels.find('**/InventoryButtonRollover')
def disable(self):
self.ignoreAll()
if self.title:
self.title.destroy()
self.title = None
if self.yesButton:
self.yesButton.destroy()
self.yesButton = None
if self.noButton:
self.noButton.destroy()
self.noButton = None
if self.buttonModels:
self.buttonModels.removeNode()
self.buttonModels = None
if self.upButton:
self.upButton.removeNode()
self.upButton = None
if self.downButton:
self.downButton.removeNode()
self.downButton = None
if self.rolloverButton:
self.rolloverButton.removeNode()
self.rolloverButton = None
if self.pickColorGui:
self.pickColorGui.destroy()
self.pickColorGui = None
self.nextCollision = 0
DistributedNPCToonBase.disable(self)
def initToonState(self):
self.setAnimState('neutral', 1.05, None, None)
self.setPosHpr(101, -14, 4, -305, 0, 0)
def getCollSphereRadius(self):
return 1.0
def handleCollisionSphereEnter(self, collEntry):
self.currentTime = time.time()
if self.nextCollision <= self.currentTime:
self.fsm.request('pickColor')
self.nextCollision = self.currentTime + 2
def enterOff(self):
pass
def exitOff(self):
pass
def enterPickColor(self):
base.cr.playGame.getPlace().setState('stopped')
taskMgr.doMethodLater(15, self.leave, 'npcSleepTask-%s' % self.doId)
self.setChatAbsolute('', CFSpeech)
if base.localAvatar.style.getAnimal() != 'bear':
self.setChatAbsolute(TTLocalizer.YangNotBear, CFSpeech|CFTimeout)
self.fsm.request('off')
base.cr.playGame.getPlace().setState('walk')
elif base.localAvatar.style.headColor == 0x00:
self.setChatAbsolute(TTLocalizer.YangAlreadyWhite, CFSpeech|CFTimeout)
self.fsm.request('off')
base.cr.playGame.getPlace().setState('walk')
else:
self.popupPickColorGUI()
def exitPickColor(self, task=None):
taskMgr.remove('npcSleepTask-%s' % self.doId)
if self.title:
self.title.destroy()
self.title = None
if self.yesButton:
self.yesButton.destroy()
self.yesButton = None
if self.noButton:
self.noButton.destroy()
self.noButton = None
if task is not None:
return task.done
def popupPickColorGUI(self):
self.setChatAbsolute('', CFSpeech)
self.setChatAbsolute(TTLocalizer.YangPickColor, CFSpeech)
base.setCellsActive(base.bottomCells, 0)
self.title = DirectLabel(
aspect2d, relief=None, text=TTLocalizer.YangTitle,
text_pos=(0, 0), text_fg=(1, 0, 0, 1), text_scale=0.09,
text_font=ToontownGlobals.getSignFont(),
pos=(0, 0, -0.55), text_shadow=(1, 1, 1, 1))
self.yesButton = DirectButton(
relief=None, text=TTLocalizer.lYes,
text_fg=(1, 1, 0.65, 1), text_pos=(0, -0.23),
text_scale=0.8, image=(self.upButton, self.downButton, self.rolloverButton),
image_color=(1, 0, 0, 1), image_scale=(20, 1, 11), pos=(-0.275, 0, -0.75), scale=0.15,
command=lambda self=self: self.d_requestTransformation())
self.noButton = DirectButton(
relief=None, text=TTLocalizer.lNo,
text_fg=(1, 1, 0.65, 1), text_pos=(0, -0.23),
text_scale=0.8, image=(self.upButton, self.downButton, self.rolloverButton),
image_color=(1, 0, 0, 1), image_scale=(20, 1, 11), pos=(0.275, 0, -0.75), scale=0.15,
command=lambda self=self: self.leave())
def doTransformation(self, avId):
av = self.cr.doId2do.get(avId)
if not av:
return
if av.style.getAnimal() != 'bear':
return
self.dustCloudIval = getDustCloudIval(av)
self.dustCloudIval.start()
self.setChatAbsolute('', CFSpeech)
self.setChatAbsolute(TTLocalizer.YangEnjoy, CFSpeech|CFTimeout)
base.setCellsActive(base.bottomCells, 1)
def d_requestTransformation(self):
self.sendUpdate('requestTransformation', [])
self.fsm.request('off')
base.cr.playGame.getPlace().setState('walk')
def leave(self, task=None):
self.setChatAbsolute('', CFSpeech)
self.setChatAbsolute(TTLocalizer.YangGoodbye, CFSpeech|CFTimeout)
self.fsm.request('off')
base.cr.playGame.getPlace().setState('walk')
base.setCellsActive(base.bottomCells, 1)
if task is not None:
return task.done

View file

@ -1,20 +0,0 @@
from DistributedNPCToonBaseAI import *
from toontown.toon.ToonDNA import ToonDNA
class DistributedNPCYangAI(DistributedNPCToonBaseAI):
def requestTransformation(self):
avId = self.air.getAvatarIdFromSender()
av = self.air.doId2do.get(avId)
if av is None:
return
if not hasattr(av, 'dna'):
return
if (av.dna.getAnimal() == 'bear') and (av.dna.headColor != 0x00):
newDNA = ToonDNA()
newDNA.makeFromNetString(av.getDNAString())
newDNA.headColor = 0x00
newDNA.armColor = 0x00
newDNA.legColor = 0x00
taskMgr.doMethodLater(1.0, lambda task: av.b_setDNAString(newDNA.makeNetString()), 'transform-%d' % avId)
self.sendUpdate('doTransformation', [avId])

View file

@ -1,192 +0,0 @@
from direct.fsm import ClassicFSM, State
from direct.gui.DirectGui import *
from direct.task.Task import Task
from pandac.PandaModules import *
import time
from DistributedNPCToonBase import *
from toontown.chat.ChatGlobals import *
from toontown.effects import DustCloud
from toontown.nametag.NametagGlobals import *
from toontown.toonbase import TTLocalizer
def getDustCloudIval(toon):
dustCloud = DustCloud.DustCloud(fBillboard=0)
dustCloud.setBillboardAxis(2.0)
dustCloud.setZ(3)
dustCloud.setScale(0.4)
dustCloud.createTrack()
if getattr(toon, 'laffMeter', None):
toon.laffMeter.color = toon.style.getBlackColor()
seq = Sequence(Wait(0.5), Func(dustCloud.reparentTo, toon), dustCloud.track, Func(dustCloud.destroy))
if getattr(toon, 'laffMeter', None):
seq.append(Func(toon.laffMeter.adjustFace, toon.hp, toon.maxHp))
return seq
class DistributedNPCYin(DistributedNPCToonBase):
def __init__(self, cr):
DistributedNPCToonBase.__init__(self, cr)
self.pickColorGui = None
self.pickColorGuiDoneEvent = 'pickColorGuiDone'
self.nextCollision = 0
self.fsm = ClassicFSM.ClassicFSM(
'NPCYin',
[
State.State('off', self.enterOff, self.exitOff, ['pickColor']),
State.State('pickColor', self.enterPickColor, self.exitPickColor, ['off'])
], 'off', 'off')
self.fsm.enterInitialState()
self.title = None
self.yesButton = None
self.noButton = None
self.buttonModels = loader.loadModel('phase_3.5/models/gui/inventory_gui')
self.upButton = self.buttonModels.find('**//InventoryButtonUp')
self.downButton = self.buttonModels.find('**/InventoryButtonDown')
self.rolloverButton = self.buttonModels.find('**/InventoryButtonRollover')
def disable(self):
self.ignoreAll()
if self.title:
self.title.destroy()
self.title = None
if self.yesButton:
self.yesButton.destroy()
self.yesButton = None
if self.noButton:
self.noButton.destroy()
self.noButton = None
if self.buttonModels:
self.buttonModels.removeNode()
self.buttonModels = None
if self.upButton:
self.upButton.removeNode()
self.upButton = None
if self.downButton:
self.downButton.removeNode()
self.downButton = None
if self.rolloverButton:
self.rolloverButton.removeNode()
self.rolloverButton = None
if self.pickColorGui:
self.pickColorGui.destroy()
self.pickColorGui = None
self.nextCollision = 0
DistributedNPCToonBase.disable(self)
def initToonState(self):
self.setAnimState('neutral', 1.05, None, None)
self.setPosHpr(101, 15.5, 4, -245, 0, 0)
def getCollSphereRadius(self):
return 1.0
def handleCollisionSphereEnter(self, collEntry):
self.currentTime = time.time()
if self.nextCollision <= self.currentTime:
self.fsm.request('pickColor')
self.nextCollision = self.currentTime + 2
def enterOff(self):
pass
def exitOff(self):
pass
def enterPickColor(self):
base.cr.playGame.getPlace().setState('stopped')
taskMgr.doMethodLater(15, self.leave, 'npcSleepTask-%s' % self.doId)
self.setChatAbsolute('', CFSpeech)
if base.localAvatar.style.getAnimal() != 'cat':
self.setChatAbsolute(TTLocalizer.YinNotCat, CFSpeech|CFTimeout)
self.fsm.request('off')
base.cr.playGame.getPlace().setState('walk')
elif base.localAvatar.style.headColor == 0x1a:
self.setChatAbsolute(TTLocalizer.YinAlreadyBlack, CFSpeech|CFTimeout)
self.fsm.request('off')
base.cr.playGame.getPlace().setState('walk')
else:
self.popupPickColorGUI()
def exitPickColor(self, task=None):
taskMgr.remove('npcSleepTask-%s' % self.doId)
if self.title:
self.title.destroy()
self.title = None
if self.yesButton:
self.yesButton.destroy()
self.yesButton = None
if self.noButton:
self.noButton.destroy()
self.noButton = None
if task is not None:
return task.done
def popupPickColorGUI(self):
self.setChatAbsolute('', CFSpeech)
self.setChatAbsolute(TTLocalizer.YinPickColor, CFSpeech)
base.setCellsActive(base.bottomCells, 0)
self.title = DirectLabel(
aspect2d, relief=None, text=TTLocalizer.YinTitle,
text_pos=(0, 0), text_fg=(1, 0, 0, 1), text_scale=0.09,
text_font=ToontownGlobals.getSignFont(),
pos=(0, 0, -0.55), text_shadow=(1, 1, 1, 1))
self.yesButton = DirectButton(
relief=None, text=TTLocalizer.lYes,
text_fg=(1, 1, 0.65, 1), text_pos=(0, -0.23),
text_scale=0.8, image=(self.upButton, self.downButton, self.rolloverButton),
image_color=(1, 0, 0, 1), image_scale=(20, 1, 11), pos=(-0.275, 0, -0.75), scale=0.15,
command=lambda self=self: self.d_requestTransformation())
self.noButton = DirectButton(
relief=None, text=TTLocalizer.lNo,
text_fg=(1, 1, 0.65, 1), text_pos=(0, -0.23),
text_scale=0.8, image=(self.upButton, self.downButton, self.rolloverButton),
image_color=(1, 0, 0, 1), image_scale=(20, 1, 11), pos=(0.275, 0, -0.75), scale=0.15,
command=lambda self=self: self.leave())
def doTransformation(self, avId):
av = self.cr.doId2do.get(avId)
if not av:
return
if av.style.getAnimal() != 'cat':
return
self.dustCloudIval = getDustCloudIval(av)
self.dustCloudIval.start()
self.setChatAbsolute('', CFSpeech)
self.setChatAbsolute(TTLocalizer.YinEnjoy, CFSpeech|CFTimeout)
base.setCellsActive(base.bottomCells, 1)
def d_requestTransformation(self):
self.sendUpdate('requestTransformation', [])
self.fsm.request('off')
base.cr.playGame.getPlace().setState('walk')
def leave(self, task=None):
self.setChatAbsolute('', CFSpeech)
self.setChatAbsolute(TTLocalizer.YinGoodbye, CFSpeech|CFTimeout)
self.fsm.request('off')
base.cr.playGame.getPlace().setState('walk')
base.setCellsActive(base.bottomCells, 1)
if task is not None:
return task.done

View file

@ -1,20 +0,0 @@
from DistributedNPCToonBaseAI import *
from toontown.toon.ToonDNA import ToonDNA
class DistributedNPCYinAI(DistributedNPCToonBaseAI):
def requestTransformation(self):
avId = self.air.getAvatarIdFromSender()
av = self.air.doId2do.get(avId)
if av is None:
return
if not hasattr(av, 'dna'):
return
if (av.dna.getAnimal() == 'cat') and (av.dna.headColor != 0x1a):
newDNA = ToonDNA()
newDNA.makeFromNetString(av.getDNAString())
newDNA.headColor = 0x1a
newDNA.armColor = 0x1a
newDNA.legColor = 0x1a
taskMgr.doMethodLater(1.0, lambda task: av.b_setDNAString(newDNA.makeNetString()), 'transform-%d' % avId)
self.sendUpdate('doTransformation', [avId])

View file

@ -70,8 +70,6 @@ NPC_FLIPPYTOONHALL = 10
NPC_SCIENTIST = 11
NPC_SMART = 13
NPC_BANKER = 14
NPC_YIN = 15
NPC_YANG = 16
CLERK_COUNTDOWN_TIME = 120
TAILOR_COUNTDOWN_TIME = 300
RTDNAFile = '/RTDNAFile.txt'
@ -97,8 +95,6 @@ def createNPC(air, npcId, desc, zoneId, posIndex = 0, questCallback = None):
import DistributedNPCScientistAI
import DistributedSmartNPCAI
import DistributedNPCBankerAI
import DistributedNPCYinAI
import DistributedNPCYangAI
canonicalZoneId, name, dnaType, gender, protected, type = desc
if type == NPC_REGULAR:
npc = DistributedNPCToonAI.DistributedNPCToonAI(air, npcId, questCallback=questCallback)
@ -128,12 +124,6 @@ def createNPC(air, npcId, desc, zoneId, posIndex = 0, questCallback = None):
npc = DistributedSmartNPCAI.DistributedSmartNPCAI(air, npcId)
elif type == NPC_BANKER:
npc = DistributedNPCBankerAI.DistributedNPCBankerAI(air, npcId)
elif type == NPC_YIN:
if simbase.air.wantYinYang:
npc = DistributedNPCYinAI.DistributedNPCYinAI(air, npcId)
elif type == NPC_YANG:
if simbase.air.wantYinYang:
npc = DistributedNPCYangAI.DistributedNPCYangAI(air, npcId)
else:
print 'createNPC() error!!!'
npc.setName(name)

View file

@ -236,9 +236,6 @@ class ToonBase(OTPBase.OTPBase):
self.filters = CommonFilters(self.win, self.cam)
# Free black/white Toons:
self.wantYinYang = config.GetBool('want-yin-yang', False)
def openMainWindow(self, *args, **kw):
result = OTPBase.OTPBase.openMainWindow(self, *args, **kw)
self.setCursorAndIcon()