From 8864582cedcce538c8f8263beccc193392517e71 Mon Sep 17 00:00:00 2001 From: Loudrob Date: Thu, 12 Mar 2015 19:10:42 -0400 Subject: [PATCH 1/3] Revert "fuck you daniel, and fixed snapshot length and added some rental item shit that i cant test because of daniel" This reverts commit 8fcd4968740a2a2fdbb7dc6f1e18fa2858b2828d. --- toontown/catalog/CatalogRentalItem.py | 11 +-- toontown/estate/DistributedCannonAI.py | 105 ++++++-------------- toontown/estate/DistributedEstateAI.py | 126 +----------------------- toontown/estate/DistributedTargetAI.py | 94 ++++-------------- toontown/estate/EstateManagerAI.py | 4 - toontown/shtiker/PhotoAlbumPage.py | 4 +- toontown/toonbase/TTLocalizerEnglish.py | 6 +- 7 files changed, 62 insertions(+), 288 deletions(-) diff --git a/toontown/catalog/CatalogRentalItem.py b/toontown/catalog/CatalogRentalItem.py index 3d27d55d..41a3abac 100644 --- a/toontown/catalog/CatalogRentalItem.py +++ b/toontown/catalog/CatalogRentalItem.py @@ -47,14 +47,15 @@ class CatalogRentalItem(CatalogItem.CatalogItem): return TTLocalizer.RentalTypeName def recordPurchase(self, avatar, optional): + self.notify.debug('rental -- record purchase') if avatar: - self.notify.debug('rental -- has avatar') - estate = simbase.air.estateManager._lookupEstate(avatar) + self.notify.debug('rental -- has avater') + estate = simbase.air.estateManager._lookupEstate(avatar.doId) if estate: self.notify.debug('rental -- has estate') estate.rentItem(self.typeIndex, self.duration) else: - self.notify.warning('rental -- something not there') + self.notify.debug('rental -- something not there') return ToontownGlobals.P_ItemAvailable def getPicture(self, avatar): @@ -105,9 +106,6 @@ class CatalogRentalItem(CatalogItem.CatalogItem): dg.addUint16(self.duration) dg.addUint16(self.typeIndex) - def getDeliveryTime(self): - return 1 - def isRental(self): return 1 @@ -132,4 +130,3 @@ def getAllRentalItems(): list.append(CatalogRentalItem(rentalType, 2880, 1000)) return list - diff --git a/toontown/estate/DistributedCannonAI.py b/toontown/estate/DistributedCannonAI.py index 22f7d734..b98eda66 100644 --- a/toontown/estate/DistributedCannonAI.py +++ b/toontown/estate/DistributedCannonAI.py @@ -1,102 +1,57 @@ from direct.directnotify import DirectNotifyGlobal from direct.distributed.DistributedObjectAI import DistributedObjectAI -from direct.distributed.ClockDelta import * -from toontown.minigame import CannonGameGlobals -from toontown.toonbase import ToontownGlobals -import CannonGlobals class DistributedCannonAI(DistributedObjectAI): notify = DirectNotifyGlobal.directNotify.newCategory("DistributedCannonAI") - def __init__(self, air): - DistributedObjectAI.__init__(self, air) - self.estateId = 0 - self.targetId = 0 - self.posHpr = (0, 0, 0, 0, 0, 0) - self.bumperPos = ToontownGlobals.PinballCannonBumperInitialPos - self.active = 0 - self.avId = 0 - - def setEstateId(self, estateId): - self.estateId = estateId - - def getEstateId(self): - return self.estateId + def setEstateId(self, todo0): + pass - def setTargetId(self, targetId): - self.targetId = targetId - - def getTargetId(self): - return self.targetId + def setTargetId(self, todo0): + pass - def setPosHpr(self, x, y, z, h, p, r): - self.posHpr = (x, y, z, h, p, r) - - def getPosHpr(self): - return self.posHpr + def setPosHpr(self, todo0, todo1, todo2, todo3, todo4, todo5): + pass - def setActive(self, active): - self.active = active - self.sendUpdate("setActiveState", [active]) + def setActive(self, todo0): + pass + + def setActiveState(self, todo0): + pass def requestEnter(self): - avId = self.air.getAvatarIdFromSender() - av = self.air.doId2do.get(avId) - if not av: - return - - if not self.avId: - self.avId = avId - self.d_setMovie(CannonGlobals.CANNON_MOVIE_LOAD) - self.acceptOnce(self.air.getAvatarExitEvent(avId), self.__handleUnexpectedExit, extraArgs=[avId]) - - else: - self.air.writeServerEvent('suspicious', avId, 'DistributedCannonAI.requestEnter cannon already occupied') - self.notify.warning('requestEnter() - cannon already occupied') - - def setMovie(self, mode, avId, extraInfo): - self.avId = avId - self.sendUpdate('setMovie', [mode, avId, extraInfo]) - - def __handleUnexpectedExit(self, avId): - self.notify.warning('avatar:' + str(avId) + ' has exited unexpectedly') - self.__doExit() - - def __doExit(self, movie=CannonGlobals.CANNON_MOVIE_FORCE_EXIT): - self.ignore(self.air.getAvatarExitEvent(self.avId)) - self.d_setMovie(movie) - self.avId = 0 + pass def requestExit(self): pass - def d_setMovie(self, movie): - self.sendUpdate("setMovie", [movie, self.avId]) + def setMovie(self, todo0, todo1): + pass - def setCannonPosition(self, zRot, angle): - self.sendUpdate("updateCannonPosition", [self.avId, zRot, angle]) + def setCannonPosition(self, todo0, todo1): + pass - def setCannonLit(self, zRot, angle): - avId = self.air.getAvatarIdFromSender() - if avId != self.avId: - return + def setCannonLit(self, todo0, todo1): + pass - fireTime = CannonGameGlobals.FUSE_TIME - self.sendUpdate('setCannonWillFire', [avId, fireTime, zRot, angle, globalClockDelta.getRealNetworkTime()]) - def setFired(self): pass def setLanded(self): - self.__doExit(CannonGlobals.CANNON_MOVIE_CLEAR) - self.sendUpdate('setCannonExit', [self.avId]) + pass + + def updateCannonPosition(self, todo0, todo1, todo2): + pass + + def setCannonWillFire(self, todo0, todo1, todo2, todo3, todo4): + pass def setCannonExit(self, todo0): pass - def requestBumperMove(self, x, y, z): - self.bumperPos = (x, y, z) - self.sendUpdate('setCannonBumperPos', self.getCannonBumperPos()) + def requestBumperMove(self, todo0, todo1, todo2): + pass + + def setCannonBumperPos(self, todo0, todo1, todo2): + pass - def getCannonBumperPos(self): - return self.bumperPos diff --git a/toontown/estate/DistributedEstateAI.py b/toontown/estate/DistributedEstateAI.py index 18231b32..280ca6bd 100644 --- a/toontown/estate/DistributedEstateAI.py +++ b/toontown/estate/DistributedEstateAI.py @@ -147,82 +147,6 @@ class GardenManager: return packGardenData(NULL_FLOWERS + NULL_TREES, NULL_STATUARY, False) return packGardenData(g.flowersData + g.treesData, g.statuaryIndex) -class Rental: - def __init__(self, estate): - self.estate = estate - self.objects = set() - - def destroy(self): - del self.estate - for object in self.objects: - if not object.isDeleted(): - object.requestDelete() - taskMgr.remove(object.uniqueName('delete')) - self.objects = set() - -class CannonRental(Rental): - def generateObjects(self): - target = DistributedTargetAI(self.estate.air) - target.generateWithRequired(self.estate.zoneId) - - for drop in CannonGlobals.cannonDrops: - cannon = DistributedCannonAI(self.estate.air) - cannon.setEstateId(self.estate.doId) - cannon.setTargetId(target.doId) - cannon.setPosHpr(*drop) - cannon.generateWithRequired(self.estate.zoneId) - self.objects.add(cannon) - - self.generateTreasures() - self.estate.b_setClouds(1) - - def destroy(self): - self.estate.b_setClouds(0) - Rental.destroy(self) - - def generateTreasures(self): - doIds = [] - z = 35 - - for i in xrange(20): - x = random.randint(100, 300) - 200 - y = random.randint(100, 300) - 200 - treasure = DistributedTreasureAI.DistributedTreasureAI(self.estate.air, self, 9, x, y, z) - treasure.generateWithRequired(self.estate.zoneId) - self.objects.add(treasure) - doIds.append(treasure.doId) - - self.estate.sendUpdate("setTreasureIds", [doIds]) - - def grabAttempt(self, avId, treasureId): - av = self.estate.air.doId2do.get(avId) - if av == None: - self.estate.air.writeServerEvent('suspicious', avId, 'TreasurePlannerAI.grabAttempt unknown avatar') - self.estate.notify.warning('avid: %s does not exist' % avId) - return - - treasure = self.estate.air.doId2do.get(treasureId) - if self.validAvatar(av): - treasure.d_setGrab(avId) - self.deleteTreasureSoon(treasure) - - else: - treasure.d_setReject() - - def deleteTreasureSoon(self, treasure): - taskName = treasure.uniqueName('delete') - taskMgr.doMethodLater(5, self.__deleteTreasureNow, taskName, extraArgs=(treasure, taskName)) - - def __deleteTreasureNow(self, treasure, taskName): - treasure.requestDelete() - - def validAvatar(self, av): - if av.getMaxHp() == av.getHp(): - return 0 - - av.toonUp(3) - return 1 - class DistributedEstateAI(DistributedObjectAI): notify = DirectNotifyGlobal.directNotify.newCategory("DistributedEstateAI") def __init__(self, air): @@ -293,7 +217,6 @@ class DistributedEstateAI(DistributedObjectAI): if started: self.gardenManager.handleSingleGarden(self.toons[index], garden[1:]) self.__pendingGardens = {} - self.placeStarterGarden(100000001) #temporary def destroy(self): for house in self.houses: @@ -397,56 +320,17 @@ class DistributedEstateAI(DistributedObjectAI): self.sendUpdate('setRentalTimeStamp', [rental]) def b_setRentalTimeStamp(self, rental): - self.b_setRentalTimeStamp(rental) + self.setRentalTimeStamp(self, rental) + self.b_setRentalTimeStamp(self, rental) def getRentalTimeStamp(self): return self.rentalTimestamp - def b_setRentalType(self, type): - self.d_setRentalType(type) - self.setRentalType(type) - - def d_setRentalType(self, type): - self.sendUpdate("setRentalType", [type]) - - def setRentalType(self, type): - expirestamp = self.getRentalTimeStamp() - if expirestamp == 0: - expire = 0 - - else: - expire = int(expirestamp - time.time()) - - if expire < 0: - self.rentalType = 0 - self.d_setRentalType(0) - self.b_setRentalTimeStamp(0) - - else: - if self.rentalType == type: - return - - self.rentalType = type - if self.rentalHandle: - self.rentalHandle.destroy() - self.rentalHandle = None - - if self.rentalType == ToontownGlobals.RentalCannon: - self.rentalHandle = CannonRental(self) - - else: - self.notify.warning('Unknown rental %s' % self.rentalType) - return - - self.rentalHandle.generateObjects() + def setRentalType(self, todo0): + pass def getRentalType(self): - return self.rentalType - - def rentItem(self, rentType, duration): - self.rentalType = rentType - self.b_setRentalTimeStamp(time.time() + duration * 60) - self.b_setRentalType(rentType) + return 0 def setSlot0ToonId(self, id): self.toons[0] = id diff --git a/toontown/estate/DistributedTargetAI.py b/toontown/estate/DistributedTargetAI.py index 1e73dd4b..4d9a3a37 100644 --- a/toontown/estate/DistributedTargetAI.py +++ b/toontown/estate/DistributedTargetAI.py @@ -1,88 +1,30 @@ from direct.directnotify import DirectNotifyGlobal from direct.distributed.DistributedObjectAI import DistributedObjectAI -import CannonGlobals class DistributedTargetAI(DistributedObjectAI): notify = DirectNotifyGlobal.directNotify.newCategory("DistributedTargetAI") - def __init__(self, air): - DistributedObjectAI.__init__(self, air) - self.enabled = 0 - self.highscore = 0 - self.scoreDict = {} - - self.__newGame() - - def announceGenerate(self): - DistributedObjectAI.announceGenerate(self) - taskMgr.doMethodLater(10, self.__startNewGame, self.taskName('newGame')) - - def __newGame(self): - self.power = 1 - self.time = CannonGlobals.CANNON_TIMEOUT - - def getPosition(self): - return (0, 0, 40) - - def getState(self): - return self.enabled, 2**self.power, self.time - - def d_updateState(self): - self.sendUpdate("setState", self.getState()) - - def d_setReward(self, reward): - self.sendUpdate("setReward", [reward]) - - def setResult(self, avId): - if avId and self.enabled: - self.power += 1 - self.time = int(CannonGlobals.CANNON_TIMEOUT / self.power) - taskMgr.remove(self.taskName('gameover')) - taskMgr.doMethodLater(self.time, self.__gameOver, self.taskName('gameover')) - self.d_updateState() - - def __gameOver(self, task): - self.enabled = 0 - self.time = 0 - self.d_updateState() - taskMgr.doMethodLater(10, self.__startNewGame, self.taskName('newGame')) - - for avId in self.scoreDict: - av = self.air.doId2do.get(avId) - if av: - if av.zoneId == self.zoneId: - av.toonUp(2 ** self.power) - - return task.done - - def __startNewGame(self, task): - self.enabled = 1 - self.__newGame() - self.d_updateState() - taskMgr.doMethodLater(self.time, self.__gameOver, self.taskName('gameover')) - return task.done - - def setBonus(self, bonus): + def setPosition(self, todo0, todo1, todo2): pass - def setCurPinballScore(self, avId, score, bonus): - av = self.air.doId2do.get(avId) - if not av: - return - - S = score * bonus - self.scoreDict[avId] = S - if S > self.highscore: - self.highscore = S - self.d_updateHighscore(av, S) + def setState(self, todo0, todo1, todo2): + pass - def d_updateHighscore(self, av, score): - self.sendUpdate("setPinballHiScorer", [av.getName()]) - self.sendUpdate("setPinballHiScore", [score]) + def setReward(self, todo0): + pass - def delete(self): - taskMgr.remove(self.taskName('newGame')) - taskMgr.remove(self.taskName('gameover')) - + def setResult(self, todo0): + pass + def setBonus(self, todo0): + pass + + def setCurPinballScore(self, todo0, todo1, todo2): + pass + + def setPinballHiScorer(self, todo0): + pass + + def setPinballHiScore(self, todo0): + pass diff --git a/toontown/estate/EstateManagerAI.py b/toontown/estate/EstateManagerAI.py index c6ce87ae..da5a4a01 100644 --- a/toontown/estate/EstateManagerAI.py +++ b/toontown/estate/EstateManagerAI.py @@ -74,10 +74,6 @@ class LoadHouseFSM(FSM): self.demand('LoadHouse') def enterLoadHouse(self): - # Load the garden if they have one. - if self.toon['setGardenStarted'][0]: - self.estate.spawnGarden(self.houseIndex) - # Activate the house: self.mgr.air.sendActivate(self.houseId, self.mgr.air.districtId, self.estate.zoneId, self.mgr.air.dclassesByName['DistributedHouseAI'], diff --git a/toontown/shtiker/PhotoAlbumPage.py b/toontown/shtiker/PhotoAlbumPage.py index bdb93d32..074e4539 100644 --- a/toontown/shtiker/PhotoAlbumPage.py +++ b/toontown/shtiker/PhotoAlbumPage.py @@ -121,7 +121,7 @@ class PhotoAlbumPage(ShtikerPage.ShtikerPage): oldName = self.selectedFileName numUnders = oldName.count(separator) if numUnders == 0: - newName = oldName[0:18] + separator + str + separator + oldName[17:] + newName = oldName[0:21] + separator + str + separator + oldName[20:] elif numUnders == 2: sp = oldName.split(separator) newName = sp[0] + separator + str + separator + sp[2] @@ -232,7 +232,7 @@ class PhotoAlbumPage(ShtikerPage.ShtikerPage): files = os.listdir(self.photoPath) photos = [] for fileName in files: - if fileName[0:17] == 'united-screenshot' and fileName[-4:] == '.jpg': + if fileName[0:20] == 'united-screenshot' and fileName[-4:] == '.jpg': photos.append(fileName) return photos diff --git a/toontown/toonbase/TTLocalizerEnglish.py b/toontown/toonbase/TTLocalizerEnglish.py index cae95a0b..02f67c58 100644 --- a/toontown/toonbase/TTLocalizerEnglish.py +++ b/toontown/toonbase/TTLocalizerEnglish.py @@ -5446,9 +5446,9 @@ NumToColor = ['White', 'Gray', 'Neon Orange', 'Sapphire', - 'Hacker Red', - 'Hacker Blue', - 'Hacker Green', + 'Pure Red', + 'Pure Blue', + 'Pure Green', 'Crimson', 'Emerald', 'Bronze'] From 556db6b6b63aa58d77b34d0300c8f9123ebd6626 Mon Sep 17 00:00:00 2001 From: Zach Date: Thu, 12 Mar 2015 21:12:43 -0500 Subject: [PATCH 2/3] gardens generate correctly :) --- toontown/estate/DistributedEstateAI.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/toontown/estate/DistributedEstateAI.py b/toontown/estate/DistributedEstateAI.py index 18231b32..5f866a9a 100644 --- a/toontown/estate/DistributedEstateAI.py +++ b/toontown/estate/DistributedEstateAI.py @@ -1,5 +1,7 @@ from direct.directnotify import DirectNotifyGlobal from direct.distributed.DistributedObjectAI import DistributedObjectAI +from direct.distributed.PyDatagramIterator import * +from direct.distributed.PyDatagram import * from toontown.toonbase import ToontownGlobals import HouseGlobals import time @@ -235,7 +237,7 @@ class DistributedEstateAI(DistributedObjectAI): self.dawnTime = 0 self.lastEpochTimestamp = 0 self.rentalTimestamp = 0 - self.houses = [None] * 6 + self.houses = [None, None, None, None, None, None] self.rentalType = 0 self.rentalHandle = None self.pond = None @@ -259,7 +261,6 @@ class DistributedEstateAI(DistributedObjectAI): target.generateWithRequired(self.zoneId) self.targets.append(target) - spot = DistributedFishingSpotAI(self.air) spot.setPondDoId(self.pond.getDoId()) spot.setPosHpr(49.1029, -124.805, 0.344704, 90, 0, 0) @@ -292,8 +293,8 @@ class DistributedEstateAI(DistributedObjectAI): started = garden[0] if started: self.gardenManager.handleSingleGarden(self.toons[index], garden[1:]) + self.placeStarterGarden(self.toons[index]) self.__pendingGardens = {} - self.placeStarterGarden(100000001) #temporary def destroy(self): for house in self.houses: @@ -377,7 +378,7 @@ class DistributedEstateAI(DistributedObjectAI): def getDecorData(self): return self.decorData - def setLastEpochTimeStamp(self, last): #how do I do this + def setLastEpochTimeStamp(self, last): self.lastEpochTimestamp = last def d_setLastEpochTimeStamp(self, last): @@ -696,7 +697,6 @@ class DistributedEstateAI(DistributedObjectAI): av = self.air.doId2do.get(avId) if not av: return - av.b_setGardenStarted(1) self.notify.info('placeStarterGarden %d' % avId) self.gardenManager.placeGarden(avId) self.d_updateGarden() From a5fcaa8426aa65784a08ef3b135d7b4795d26701 Mon Sep 17 00:00:00 2001 From: Zach Date: Thu, 12 Mar 2015 22:06:36 -0500 Subject: [PATCH 3/3] gardening stuff --- toontown/estate/DistributedEstateAI.py | 5 ++--- toontown/estate/DistributedLawnDecorAI.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/toontown/estate/DistributedEstateAI.py b/toontown/estate/DistributedEstateAI.py index 96e6bb7c..57043889 100644 --- a/toontown/estate/DistributedEstateAI.py +++ b/toontown/estate/DistributedEstateAI.py @@ -215,9 +215,8 @@ class DistributedEstateAI(DistributedObjectAI): DistributedObjectAI.announceGenerate(self) for index, garden in self.__pendingGardens.items(): started = garden[0] - if started: - self.gardenManager.handleSingleGarden(self.toons[index], garden[1:]) - self.placeStarterGarden(self.toons[index]) + self.gardenManager.handleSingleGarden(self.toons[index], garden[1:]) + self.placeStarterGarden(self.toons[index]) self.__pendingGardens = {} def destroy(self): diff --git a/toontown/estate/DistributedLawnDecorAI.py b/toontown/estate/DistributedLawnDecorAI.py index eb8dbd08..bedeed6d 100644 --- a/toontown/estate/DistributedLawnDecorAI.py +++ b/toontown/estate/DistributedLawnDecorAI.py @@ -7,15 +7,27 @@ class DistributedLawnDecorAI(DistributedNodeAI): def setPlot(self, todo0): pass + def getPlot(self, todo0): + pass + def setHeading(self, todo0): pass + def getHeading(self, todo0): + pass + def setPosition(self, todo0, todo1, todo2): pass + def getPosition(self, todo0, todo1, todo2): + pass + def setOwnerIndex(self, todo0): pass + def getOwnerIndex(self, todo1): + pass + def plotEntered(self): pass