From e1de301f2abf2c2534789e74b91807888161ff33 Mon Sep 17 00:00:00 2001 From: John Date: Thu, 23 Jul 2015 23:00:50 +0300 Subject: [PATCH] Revert "Loyalty items cum back. ;(. & add ctime so mongo doesn't complain." This reverts commit 881a8007dfb19824bfa339e9ba98dbf417b06440. --- dependencies/astron/dclass/stride.dc | 8 +- toontown/ai/ToontownAIRepository.py | 3 - toontown/catalog/AccountDate.py | 39 ---- toontown/catalog/AccountDateAI.py | 23 -- toontown/catalog/CatalogAccessoryItem.py | 17 +- .../catalog/CatalogAccessoryItemGlobals.py | 1 - toontown/catalog/CatalogClothingItem.py | 37 +-- toontown/catalog/CatalogEmoteItem.py | 20 +- toontown/catalog/CatalogGenerator.py | 211 ++++++------------ toontown/catalog/CatalogItem.py | 20 +- toontown/catalog/CatalogItemPanel.py | 3 - toontown/catalog/CatalogRentalItem.py | 9 +- toontown/catalog/CatalogScreen.py | 160 ++++++------- toontown/estate/DistributedPhoneAI.py | 2 +- toontown/toon/LocalToon.py | 3 - toontown/toonbase/TTLocalizerEnglish.py | 3 +- toontown/uberdog/ClientServicesManagerUD.py | 2 +- 17 files changed, 182 insertions(+), 379 deletions(-) delete mode 100644 toontown/catalog/AccountDate.py delete mode 100644 toontown/catalog/AccountDateAI.py diff --git a/dependencies/astron/dclass/stride.dc b/dependencies/astron/dclass/stride.dc index d825cb06..ddf3b618 100644 --- a/dependencies/astron/dclass/stride.dc +++ b/dependencies/astron/dclass/stride.dc @@ -27,7 +27,7 @@ dclass Account { uint32 ACCOUNT_AV_SET[] required db; uint32 ESTATE_ID db; AvatarPendingDel ACCOUNT_AV_SET_DEL[] db; - string CREATED db; + uint64 CREATED db; string LAST_LOGIN db; string ACCOUNT_ID db; uint16 ACCESS_LEVEL db; @@ -234,7 +234,6 @@ from toontown.shtiker import NewbiePurchaseManager/AI from toontown.safezone import SafeZoneManager/AI from toontown.tutorial import TutorialManager/AI from toontown.catalog import CatalogManager/AI -from toontown.catalog import AccountDate/AI from toontown.safezone import DistributedTreasure/AI from toontown.coghq import DistributedCashbotBossTreasure/AI from toontown.building import DistributedTrophyMgr/AI @@ -1520,11 +1519,6 @@ dclass CatalogManager : DistributedObject { startCatalog() airecv clsend; }; -dclass AccountDate : DistributedObject { - requestDate() airecv clsend; - requestDateResult(string); -}; - dclass DistributedTreasure : DistributedObject { setTreasureType(uint16) required broadcast ram; setPosition(int16/10, int16/10, int16/10) required broadcast ram; diff --git a/toontown/ai/ToontownAIRepository.py b/toontown/ai/ToontownAIRepository.py index 2c43d1bc..39a4b4c3 100755 --- a/toontown/ai/ToontownAIRepository.py +++ b/toontown/ai/ToontownAIRepository.py @@ -18,7 +18,6 @@ from toontown.ai.DistributedReportMgrAI import DistributedReportMgrAI from toontown.building.DistributedBuildingQueryMgrAI import DistributedBuildingQueryMgrAI from toontown.building.DistributedTrophyMgrAI import DistributedTrophyMgrAI from toontown.catalog.CatalogManagerAI import CatalogManagerAI -from toontown.catalog.AccountDateAI import AccountDateAI from toontown.coghq import CountryClubManagerAI from toontown.coghq import FactoryManagerAI from toontown.coghq import LawOfficeManagerAI @@ -119,8 +118,6 @@ class ToontownAIRepository(ToontownInternalRepository): self.cogPageManager = CogPageManagerAI.CogPageManagerAI() self.codeRedemptionMgr = TTCodeRedemptionMgrAI(self) self.codeRedemptionMgr.generateWithRequired(2) - self.accountDateMgr = AccountDateAI(self) - self.accountDateMgr.generateWithRequired(2) self.buildingQueryMgr = DistributedBuildingQueryMgrAI(self) self.buildingQueryMgr.generateWithRequired(2) self.groupManager.generateWithRequired(2) diff --git a/toontown/catalog/AccountDate.py b/toontown/catalog/AccountDate.py deleted file mode 100644 index 610227e1..00000000 --- a/toontown/catalog/AccountDate.py +++ /dev/null @@ -1,39 +0,0 @@ -from direct.distributed.DistributedObject import DistributedObject -from direct.directnotify.DirectNotifyGlobal import directNotify -from datetime import datetime - -class AccountDate(DistributedObject): - neverDisable = 1 - notify = directNotify.newCategory('AccountDate') - - def __init__(self, cr): - DistributedObject.__init__(self, cr) - self.accountDays = 0 - - def announceGenerate(self): - DistributedObject.announceGenerate(self) - base.cr.accountDateMgr = self - taskMgr.doMethodLater(10, self.requestDate, 'request-task') - - def delete(self): - if hasattr(base.cr, 'accountDateMgr'): - if base.cr.accountDateMgr is self: - del base.cr.accountDateMgr - DistributedObject.delete(self) - - def getAccountDays(self): - return self.accountDays - - def requestDate(self, task=None): - self.sendUpdate('requestDate') - - if task is not None: - return task.done - - def requestDateResult(self, result): - if result is None: - notify.warning('Invalid response from server.') - self.accountDays = 0 - else: - date = datetime.strptime(result, "%a %b %d %H:%M:%S %Y") - self.accountDays = (datetime.now() - date).days \ No newline at end of file diff --git a/toontown/catalog/AccountDateAI.py b/toontown/catalog/AccountDateAI.py deleted file mode 100644 index 654048ea..00000000 --- a/toontown/catalog/AccountDateAI.py +++ /dev/null @@ -1,23 +0,0 @@ -from direct.directnotify import DirectNotifyGlobal -from direct.distributed.DistributedObjectAI import DistributedObjectAI - -class AccountDateAI(DistributedObjectAI): - notify = DirectNotifyGlobal.directNotify.newCategory("AccountDateAI") - - def announceGenerate(self): - DistributedObjectAI.announceGenerate(self) - - def requestDate(self): - avId = self.air.getAvatarIdFromSender() - av = self.air.doId2do.get(avId) - - if not av: - return - - def callback(dclass, fields): - if dclass is not None and dclass == self.air.dclassesByName['AccountAI'] and fields.has_key('CREATED'): - self.sendUpdateToAvatarId(avId, 'requestDateResult', [fields.get('CREATED')]) - else: - self.sendUpdateToAvatarId(avId, 'requestDateResult', [None]) - - self.air.dbInterface.queryObject(self.air.dbId, av.DISLid, callback) \ No newline at end of file diff --git a/toontown/catalog/CatalogAccessoryItem.py b/toontown/catalog/CatalogAccessoryItem.py index 0b93190f..e71d6544 100755 --- a/toontown/catalog/CatalogAccessoryItem.py +++ b/toontown/catalog/CatalogAccessoryItem.py @@ -10,9 +10,9 @@ from panda3d.core import * class CatalogAccessoryItem(CatalogItem.CatalogItem): - def makeNewItem(self, accessoryType, loyaltyDays = 0): + def makeNewItem(self, accessoryType, isSpecial = False): self.accessoryType = accessoryType - self.loyaltyDays = loyaltyDays + self.isSpecial = isSpecial CatalogItem.CatalogItem.makeNewItem(self) def getPurchaseLimit(self): @@ -328,7 +328,7 @@ class CatalogAccessoryItem(CatalogItem.CatalogItem): def decodeDatagram(self, di, versionNumber, store): CatalogItem.CatalogItem.decodeDatagram(self, di, versionNumber, store) self.accessoryType = di.getUint16() - self.loyaltyDays = di.getUint16() + self.isSpecial = di.getBool() str = AccessoryTypes[self.accessoryType][ATString] if self.isHat(): defn = ToonDNA.HatStyles[str] @@ -343,17 +343,10 @@ class CatalogAccessoryItem(CatalogItem.CatalogItem): def encodeDatagram(self, dg, store): CatalogItem.CatalogItem.encodeDatagram(self, dg, store) dg.addUint16(self.accessoryType) - dg.addUint16(self.loyaltyDays) + dg.addBool(self.isSpecial) def isGift(self): - if self.getEmblemPrices(): - return 0 - if self.loyaltyRequirement() > 0: - return 0 - elif self.accessoryType in LoyaltyAccessoryItems: - return 0 - else: - return 1 + return not self.getEmblemPrices() def getAllAccessories(*accessoryTypes): list = [] diff --git a/toontown/catalog/CatalogAccessoryItemGlobals.py b/toontown/catalog/CatalogAccessoryItemGlobals.py index 2ac705e2..f72765a5 100755 --- a/toontown/catalog/CatalogAccessoryItemGlobals.py +++ b/toontown/catalog/CatalogAccessoryItemGlobals.py @@ -735,4 +735,3 @@ AccessoryTypes = {101: (AHat, 'shw2', APriceCool, 7)} -LoyaltyAccessoryItems = [] diff --git a/toontown/catalog/CatalogClothingItem.py b/toontown/catalog/CatalogClothingItem.py index a4b36bfd..c13d5362 100755 --- a/toontown/catalog/CatalogClothingItem.py +++ b/toontown/catalog/CatalogClothingItem.py @@ -17,8 +17,7 @@ ABoysShorts = 3 AGirlsShorts = 4 AGirlsSkirt = 5 AShorts = 6 -ClothingTypes = { - 101: (ABoysShirt, 'bss1', 40), +ClothingTypes = {101: (ABoysShirt, 'bss1', 40), 102: (ABoysShirt, 'bss2', 40), 103: (ABoysShirt, 'bss3', 40), 105: (ABoysShirt, 'bss4', 40), @@ -291,23 +290,15 @@ ClothingTypes = { 1817: (AGirlsSkirt, 'sa_gs19', 5000), 1818: (AGirlsSkirt, 'sa_gs20', 5000), 1819: (AGirlsSkirt, 'sa_gs21', 5000), - 1820: (AShirt, 'sa_ss55', 5000)} -LoyaltyClothingItems = (1600, - 1601, - 1602, - 1603, - 1604, - 1605, - 1606, - 1607, - 1608) + 1820: (AShirt, 'sa_ss55', 5000), + 1821: (AShirt, 'weed', 5000)} class CatalogClothingItem(CatalogItem.CatalogItem): - def makeNewItem(self, clothingType, colorIndex, loyaltyDays = 0): + def makeNewItem(self, clothingType, colorIndex, isSpecial = False): self.clothingType = clothingType self.colorIndex = colorIndex - self.loyaltyDays = loyaltyDays + self.isSpecial = isSpecial CatalogItem.CatalogItem.makeNewItem(self) def storedInCloset(self): @@ -347,8 +338,6 @@ class CatalogClothingItem(CatalogItem.CatalogItem): return 1 if avatar.mailboxContents.count(self) != 0: return 1 - if self in avatar.awardMailboxContents or self in avatar.onAwardOrder: - return 1 str = ClothingTypes[self.clothingType][CTString] dna = avatar.getStyle() if self.isShirt(): @@ -428,7 +417,7 @@ class CatalogClothingItem(CatalogItem.CatalogItem): return ToontownGlobals.P_ItemAvailable def getDeliveryTime(self): - return 60 + return 1 def getPicture(self, avatar): from toontown.toon import Toon @@ -565,7 +554,7 @@ class CatalogClothingItem(CatalogItem.CatalogItem): CatalogItem.CatalogItem.decodeDatagram(self, di, versionNumber, store) self.clothingType = di.getUint16() self.colorIndex = di.getUint8() - self.loyaltyDays = di.getUint16() + self.isSpecial = di.getBool() str = ClothingTypes[self.clothingType][CTString] if self.isShirt(): color = ToonDNA.ShirtStyles[str][2][self.colorIndex] @@ -576,18 +565,10 @@ class CatalogClothingItem(CatalogItem.CatalogItem): CatalogItem.CatalogItem.encodeDatagram(self, dg, store) dg.addUint16(self.clothingType) dg.addUint8(self.colorIndex) - dg.addUint16(self.loyaltyDays) + dg.addBool(self.isSpecial) def isGift(self): - if self.getEmblemPrices(): - return 0 - if self.loyaltyRequirement() > 0: - return 0 - elif self.clothingType in LoyaltyClothingItems: - return 0 - else: - return 1 - + return not self.getEmblemPrices() def getAllClothes(*clothingTypes): list = [] diff --git a/toontown/catalog/CatalogEmoteItem.py b/toontown/catalog/CatalogEmoteItem.py index 168240b2..2849a58c 100755 --- a/toontown/catalog/CatalogEmoteItem.py +++ b/toontown/catalog/CatalogEmoteItem.py @@ -3,22 +3,21 @@ from toontown.toonbase import ToontownGlobals from toontown.toonbase import TTLocalizer from otp.otpbase import OTPLocalizer from direct.interval.IntervalGlobal import * -LoyaltyEmoteItems = (20, 21, 22, 23, 24, 25, 26) class CatalogEmoteItem(CatalogItem.CatalogItem): sequenceNumber = 0 pictureToon = None - def makeNewItem(self, emoteIndex, loyaltyDays = 0): + def makeNewItem(self, emoteIndex, isSpecial = False): self.emoteIndex = emoteIndex - self.loyaltyDays = loyaltyDays + self.isSpecial = isSpecial CatalogItem.CatalogItem.makeNewItem(self) def getPurchaseLimit(self): return 1 def reachedPurchaseLimit(self, avatar): - if self in avatar.onOrder or self in avatar.mailboxContents or self in avatar.onGiftOrder or self in avatar.awardMailboxContents or self in avatar.onAwardOrder: + if self in avatar.onOrder or self in avatar.mailboxContents or self in avatar.onGiftOrder: return 1 if self.emoteIndex >= len(avatar.emoteAccess): return 0 @@ -115,21 +114,14 @@ class CatalogEmoteItem(CatalogItem.CatalogItem): def decodeDatagram(self, di, versionNumber, store): CatalogItem.CatalogItem.decodeDatagram(self, di, versionNumber, store) self.emoteIndex = di.getUint8() - self.loyaltyDays = di.getUint16() + self.isSpecial = di.getBool() if self.emoteIndex > len(OTPLocalizer.EmoteList): raise ValueError def encodeDatagram(self, dg, store): CatalogItem.CatalogItem.encodeDatagram(self, dg, store) dg.addUint8(self.emoteIndex) - dg.addUint16(self.loyaltyDays) + dg.addBool(self.isSpecial) def isGift(self): - if self.getEmblemPrices(): - return 0 - if self.loyaltyRequirement() > 0: - return 0 - elif self.emoteIndex in LoyaltyEmoteItems: - return 0 - else: - return 1 + return not self.getEmblemPrices() diff --git a/toontown/catalog/CatalogGenerator.py b/toontown/catalog/CatalogGenerator.py index 3d04a55e..40752063 100755 --- a/toontown/catalog/CatalogGenerator.py +++ b/toontown/catalog/CatalogGenerator.py @@ -12,8 +12,8 @@ from CatalogMouldingItem import CatalogMouldingItem, getAllMouldings from CatalogWainscotingItem import CatalogWainscotingItem, getAllWainscotings from CatalogWindowItem import CatalogWindowItem from CatalogPoleItem import nextAvailablePole, getAllPoles -from CatalogPetTrickItem import CatalogPetTrickItem, getAllPetTricks from CatalogTankItem import nextAvailableTank, getAllTanks +from CatalogPetTrickItem import CatalogPetTrickItem, getAllPetTricks from CatalogGardenItem import CatalogGardenItem from CatalogToonStatueItem import CatalogToonStatueItem from CatalogRentalItem import CatalogRentalItem @@ -26,7 +26,7 @@ from toontown.toonbase import ToontownGlobals import types import random import time -from pandac.PandaModules import * +from panda3d.core import * MetaItems = {100: getAllClothes(101, 102, 103, 104, 105, 106, 107, 108, 109, 109, 111, 115, 201, 202, 203, 204, 205, 206, 207, 208, 209, 209, 211, 215), 300: getAllClothes(301, 302, 303, 304, 305, 308, 401, 403, 404, 405, 407, 451, 452, 453), 2000: getChatRange(0, 1999), @@ -41,20 +41,25 @@ MetaItems = {100: getAllClothes(101, 102, 103, 104, 105, 106, 107, 108, 109, 109 2921: getChatRange(12050, 12099), 2930: getChatRange(13000, 13099), 2940: getChatRange(14000, 14099), + 3000: getWallpapers(1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100), 3010: getWallpapers(2200, 2300, 2400, 2500, 2600, 2700, 2800), 3020: getWallpapers(2900, 3000, 3100, 3200, 3300, 3400, 3500, 3600), 3030: getWallpapers(3700, 3800, 3900), + 3500: getAllWainscotings(1000, 1010), 3510: getAllWainscotings(1020), 3520: getAllWainscotings(1030), 3530: getAllWainscotings(1040), + 4000: getFloorings(1000, 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1100), 4010: getFloorings(1110, 1120, 1130), 4020: getFloorings(1140, 1150, 1160, 1170, 1180, 1190), + 4500: getAllMouldings(1000, 1010), 4510: getAllMouldings(1020, 1030, 1040), 4520: getAllMouldings(1070), + 5000: getAllPetTricks()} MetaItemChatKeysSold = (2000, 2010, @@ -396,29 +401,7 @@ MonthlySchedule = ((7, 15, 8, 15, - 2010, - 2010, ((4, 2940),)), - (9, - 1, - 9, - 30, - (CatalogGardenItem(135, 1),)), - (1, - 1, - 1, - 31, - (CatalogGardenItem(135, 1),)), - (4, - 1, - 4, - 30, - (CatalogGardenItem(135, 1),)), - (6, - 1, - 6, - 30, - (CatalogGardenItem(135, 1),)), (6, 26, 7, @@ -477,22 +460,16 @@ MonthlySchedule = ((7, 9, 7, 15, - 2010, - 2010, (CatalogClothingItem(1751, 0),)), (6, 14, 7, 15, - 2010, - 2010, (CatalogClothingItem(1754, 0), CatalogClothingItem(1755, 0), CatalogClothingItem(1756, 0))), (7, 21, 8, 17, - 2010, - 2010, (CatalogClothingItem(1749, 0), CatalogClothingItem(1750, 0), CatalogClothingItem(1757, 0), @@ -501,8 +478,6 @@ MonthlySchedule = ((7, 25, 9, 21, - 2010, - 2010, (CatalogClothingItem(1763, 0),)), (6, 5, @@ -513,48 +488,43 @@ MonthlySchedule = ((7, 1, 12, 31, - (CatalogGardenItem(100, 1), + ( + CatalogGardenItem(100, 1), CatalogGardenItem(101, 1), CatalogGardenItem(103, 1), CatalogGardenItem(104, 1), CatalogToonStatueItem(105, endPoseIndex=108), CatalogRentalItem(1, 2880, 1000), + CatalogRentalItem(2, 2890, 1000), CatalogGardenStarterItem(), CatalogFurnitureItem(1530), CatalogFurnitureItem(1531), - CatalogFurnitureItem(1532), - CatalogNametagItem(15), - CatalogNametagItem(16), - CatalogNametagItem(17), - CatalogClothingItem(1608, 0, 720), - CatalogClothingItem(1605, 0, 720), - CatalogClothingItem(1602, 0, 720), - CatalogClothingItem(1607, 0, 540), - CatalogClothingItem(1604, 0, 540), - CatalogClothingItem(1601, 0, 540), - CatalogClothingItem(1606, 0, 360), - CatalogClothingItem(1603, 0, 360), - CatalogClothingItem(1600, 0, 360), - CatalogEmoteItem(25, 30), - CatalogEmoteItem(26, 60), - CatalogEmoteItem(20, 90), - CatalogEmoteItem(21, 180), - CatalogEmoteItem(22, 360), - CatalogEmoteItem(23, 540), - CatalogEmoteItem(24, 720))), + CatalogFurnitureItem(1532), + CatalogClothingItem(1605, 0, True), + CatalogClothingItem(1602, 0, True), + CatalogClothingItem(1604, 0, True), + CatalogClothingItem(1601, 0, True), + CatalogClothingItem(1603, 0, True), + CatalogClothingItem(1600, 0, True), + CatalogEmoteItem(20, True), + CatalogEmoteItem(21, True), + CatalogEmoteItem(22, True), + CatalogEmoteItem(23, True), + CatalogEmoteItem(24, True), + CatalogEmoteItem(25, True), + CatalogEmoteItem(26, True), + CatalogNametagItem(15, True), + CatalogNametagItem(16, True), + CatalogNametagItem(17, True))), (5, 26, 6, 30, - 2013, - 2013, (CatalogAccessoryItem(175),)), (8, 27, 9, 5, - 2013, - 2013, ((3, 2900), CatalogChatItem(10003), CatalogClothingItem(1001, 0), @@ -604,8 +574,6 @@ MonthlySchedule = ((7, 3, 9, 12, - 2013, - 2013, ((3, 2910), CatalogFurnitureItem(680), CatalogFurnitureItem(681), @@ -640,8 +608,6 @@ MonthlySchedule = ((7, 20, 9, 19, - 2013, - 2013, (CatalogAccessoryItem(101), CatalogAccessoryItem(103), CatalogAccessoryItem(117), @@ -864,7 +830,9 @@ WeeklySchedule = ((100, CatalogFurnitureItem(1000), CatalogClothingItem(117, 0), CatalogClothingItem(217, 0), - nextAvailableCloset), + nextAvailableCloset, + nextAvailableBank, + nextAvailableTank), (100, (5, 2000), CatalogFurnitureItem(1430), @@ -1385,7 +1353,7 @@ WeeklySchedule = ((100, Sale(CatalogClothingItem(116, 0), CatalogClothingItem(216, 0), CatalogClothingItem(408, 0), CatalogClothingItem(117, 0), CatalogClothingItem(217, 0), CatalogClothingItem(409, 0), CatalogClothingItem(118, 0), CatalogClothingItem(218, 0), CatalogClothingItem(410, 0), CatalogClothingItem(119, 0), CatalogClothingItem(219, 0), CatalogClothingItem(120, 0), CatalogClothingItem(220, 0), CatalogClothingItem(121, 0), CatalogClothingItem(221, 0), CatalogClothingItem(222, 0), CatalogClothingItem(123, 0), CatalogClothingItem(224, 0), CatalogClothingItem(411, 0), CatalogClothingItem(311, 0), CatalogClothingItem(310, 0)), Sale(CatalogWindowItem(40), CatalogWindowItem(70), CatalogWindowItem(50), CatalogWindowItem(60), CatalogWindowItem(80), CatalogWindowItem(100), CatalogWindowItem(90), CatalogWindowItem(110)), Sale(CatalogEmoteItem(5), CatalogEmoteItem(9), CatalogEmoteItem(13), CatalogEmoteItem(11), CatalogEmoteItem(6), CatalogEmoteItem(8), CatalogNametagItem(10)), - Sale(CatalogFurnitureItem(600), CatalogFurnitureItem(610), CatalogFurnitureItem(620), CatalogFurnitureItem(630), CatalogFurnitureItem(640), CatalogFurnitureItem(650), CatalogFurnitureItem(660), CatalogFurnitureItem(900), CatalogFurnitureItem(910), CatalogFurnitureItem(920), CatalogFurnitureItem(930), CatalogFurnitureItem(940), CatalogFurnitureItem(1000), CatalogFurnitureItem(1010), CatalogFurnitureItem(1020), CatalogFurnitureItem(1030), CatalogFurnitureItem(1400), CatalogFurnitureItem(1410), CatalogFurnitureItem(1420), CatalogFurnitureItem(1430), CatalogFurnitureItem(1440), CatalogFurnitureItem(1441), CatalogFurnitureItem(1442), CatalogFurnitureItem(1443), CatalogFurnitureItem(1500), CatalogFurnitureItem(1510), CatalogFurnitureItem(1520), CatalogFurnitureItem(1530), CatalogFurnitureItem(1600), CatalogFurnitureItem(1531), CatalogFurnitureItem(1532), CatalogFurnitureItem(1610), CatalogFurnitureItem(1620), CatalogFurnitureItem(1630), CatalogFurnitureItem(1640), CatalogFurnitureItem(1650), CatalogFurnitureItem(1660), CatalogFurnitureItem(1661), CatalogFurnitureItem(1710), CatalogFurnitureItem(1800), CatalogFurnitureItem(1810), CatalogFurnitureItem(1900), CatalogFurnitureItem(1910)), + Sale(CatalogFurnitureItem(600), CatalogFurnitureItem(610), CatalogFurnitureItem(620), CatalogFurnitureItem(630), CatalogFurnitureItem(640), CatalogFurnitureItem(650), CatalogFurnitureItem(660), CatalogFurnitureItem(900), CatalogFurnitureItem(910), CatalogFurnitureItem(920), CatalogFurnitureItem(930), CatalogFurnitureItem(940), CatalogFurnitureItem(1000), CatalogFurnitureItem(1010), CatalogFurnitureItem(1020), CatalogFurnitureItem(1030), CatalogFurnitureItem(1400), CatalogFurnitureItem(1410), CatalogFurnitureItem(1420), CatalogFurnitureItem(1430), CatalogFurnitureItem(1440), CatalogFurnitureItem(1441), CatalogFurnitureItem(1442), CatalogFurnitureItem(1443), CatalogFurnitureItem(1500), CatalogFurnitureItem(1510), CatalogFurnitureItem(1520), CatalogFurnitureItem(1530), CatalogFurnitureItem(1531), CatalogFurnitureItem(1532), CatalogFurnitureItem(1600), CatalogFurnitureItem(1610), CatalogFurnitureItem(1620), CatalogFurnitureItem(1630), CatalogFurnitureItem(1640), CatalogFurnitureItem(1650), CatalogFurnitureItem(1660), CatalogFurnitureItem(1661), CatalogFurnitureItem(1710), CatalogFurnitureItem(1800), CatalogFurnitureItem(1810), CatalogFurnitureItem(1900), CatalogFurnitureItem(1910)), (300, (1, 2020), (2, 2030), @@ -1512,12 +1480,9 @@ class CatalogGenerator: def __init__(self): self.__itemLists = {} - self.__releasedItemLists = {} - def getReleasedCatalogList(self, weekStart): - dayNumber = int(weekStart / (24 * 60)) - itemLists = self.__getReleasedItemLists(dayNumber, weekStart) - return itemLists + if config.GetBool('save-catalog-schedule', False): + self.outputSchedule('catalog-schedule.txt') def generateMonthlyCatalog(self, avatar, weekStart): dayNumber = int(weekStart / (24 * 60)) @@ -1547,12 +1512,13 @@ class CatalogGenerator: if nextAvailableCloset not in schedule: weeklyCatalog += self.__selectItem(avatar, nextAvailableCloset, monthlyCatalog, saleItem=0) - + if nextAvailableBank not in schedule: - weeklyCatalog += self.__selectItem(avatar, nextAvailableBank, monthlyCatalog, saleItem = 0) + weeklyCatalog += self.__selectItem(avatar, nextAvailableBank, monthlyCatalog, saleItem=0) + if nextAvailableTank not in schedule: - weeklyCatalog += self.__selectItem(avatar, nextAvailableTank, monthlyCatalog, saleItem = 0) - if time.time() < 1096617600.0: + weeklyCatalog += self.__selectItem(avatar, nextAvailableTank, monthlyCatalog, saleItem=0) + if True: def hasPetTrick(catalog): for item in catalog: @@ -1562,7 +1528,6 @@ class CatalogGenerator: return 0 if not hasPetTrick(weeklyCatalog) and not hasPetTrick(avatar.weeklyCatalog) and not hasPetTrick(avatar.backCatalog): - self.notify.debug('Artificially adding pet trick to catalog') weeklyCatalog += self.__selectItem(avatar, 5000, monthlyCatalog, saleItem=saleItem) self.notify.debug('Generated catalog: %s' % weeklyCatalog) return weeklyCatalog @@ -1592,45 +1557,12 @@ class CatalogGenerator: return backCatalog - def __getReleasedItemLists(self, dayNumber, weekStart): - itemLists = self.__releasedItemLists.get(dayNumber) - if itemLists != None: - return itemLists - else: - self.__releasedItemLists.clear() - testDaysAhead = simbase.config.GetInt('test-server-holiday-days-ahead', 0) - nowtuple = time.localtime(weekStart * 60 + testDaysAhead * 24 * 60 * 60) - year = nowtuple[0] - month = nowtuple[1] - day = nowtuple[2] - itemLists = [] - for monthlyItems in MonthlySchedule: - startMM = monthlyItems[0] - startDD = monthlyItems[1] - endMM = monthlyItems[2] - endDD = monthlyItems[3] - if len(monthlyItems) == 7: - startYYYY = monthlyItems[4] - endYYYY = monthlyItems[5] - list = monthlyItems[6] - else: - startYYYY = 1969 - endYYYY = year - list = monthlyItems[4] - pastStart = year > startYYYY or (year == startYYYY and (month > startMM or (month == startMM and day >= startDD))) - if pastStart: - itemLists.append(list) - - self.__releasedItemLists[dayNumber] = itemLists - return itemLists - def __getMonthlyItemLists(self, dayNumber, weekStart): itemLists = self.__itemLists.get(dayNumber) if itemLists != None: return itemLists - testDaysAhead = simbase.config.GetInt('test-server-holiday-days-ahead', 0) + testDaysAhead = config.GetInt('test-server-holiday-days-ahead', 0) nowtuple = time.localtime(weekStart * 60 + testDaysAhead * 24 * 60 * 60) - year = nowtuple[0] month = nowtuple[1] day = nowtuple[2] self.notify.debug('Generating seasonal itemLists for %s/%s.' % (month, day)) @@ -1640,16 +1572,9 @@ class CatalogGenerator: startDD = monthlyItems[1] endMM = monthlyItems[2] endDD = monthlyItems[3] - if len(monthlyItems) == 7: - startYYYY = monthlyItems[4] - endYYYY = monthlyItems[5] - list = monthlyItems[6] - else: - startYYYY = 1969 - endYYYY = year - list = monthlyItems[4] - pastStart = year >= startYYYY and (month > startMM or (month == startMM and day >= startDD)) - beforeEnd = year <= endYYYY and (month < endMM or (month == endMM and day <= endDD)) + list = monthlyItems[4] + pastStart = month > startMM or (month == startMM and day >= startDD) + beforeEnd = month < endMM or (month == endMM and day <= endDD) if endMM < startMM: if pastStart or beforeEnd: itemLists.append(list) @@ -1780,31 +1705,33 @@ class CatalogGenerator: def __recordSchedule(self, sched, weekCode, schedule): if isinstance(schedule, Sale): schedule = schedule.args - for item in schedule: - if callable(item): - if item == nextAvailablePole: - item = getAllPoles() - elif item == nextAvailableCloset: - item = getAllClosets() - elif item == nextAvailableBank: - item = getAllBanks() - elif item == nextAvailableTank: - item == getAllTanks() - elif item == get50ItemCloset: - item = getMaxClosets() - else: - self.notify.warning("Don't know how to interpret function " % repr(name)) - item = None - elif isinstance(item, types.TupleType): - item = item[1] - if isinstance(item, types.IntType): - item = MetaItems[item] - if isinstance(item, CatalogItem.CatalogItem): - self.__recordScheduleItem(sched, weekCode, None, item) - elif item != None: - for i in item: - self.__recordScheduleItem(sched, None, weekCode, i) - + try: + for item in list(schedule): + if callable(item): + if item == nextAvailablePole: + item = getAllPoles() + elif item == nextAvailableCloset: + item = getAllClosets() + elif item == nextAvailableBank: + item = getAllBanks() + elif item == nextAvailableTank: + item = getAllTanks() + elif item == get50ItemCloset: + item = getMaxClosets() + else: + self.notify.warning("Don't know how to interpret function " % repr(name)) + item = None + elif isinstance(item, types.TupleType): + item = item[1] + if isinstance(item, types.IntType): + item = MetaItems[item] + if isinstance(item, CatalogItem.CatalogItem): + self.__recordScheduleItem(sched, weekCode, None, item) + elif item != None: + for i in item: + self.__recordScheduleItem(sched, None, weekCode, i) + except: + print 'Wrong: %s' % schedule return def __recordScheduleItem(self, sched, weekCode, maybeWeekCode, item): diff --git a/toontown/catalog/CatalogItem.py b/toontown/catalog/CatalogItem.py index fad5e86a..f4633050 100755 --- a/toontown/catalog/CatalogItem.py +++ b/toontown/catalog/CatalogItem.py @@ -20,7 +20,7 @@ CatalogTypeUnspecified = 0 CatalogTypeWeekly = 1 CatalogTypeBackorder = 2 CatalogTypeMonthly = 3 -CatalogTypeLoyalty = 4 +CatalogTypeSpecial = 4 class CatalogItem: notify = DirectNotifyGlobal.directNotify.newCategory('CatalogItem') @@ -32,6 +32,7 @@ class CatalogItem: self.giftTag = None self.giftCode = 0 self.hasPicture = False + self.isSpecial = False self.volume = 0 self.specialEventId = 0 if len(args) >= 1 and isinstance(args[0], DatagramIterator): @@ -124,14 +125,8 @@ class CatalogItem: def forGirlsOnly(self): return 0 - def setLoyaltyRequirement(self, days): - self.loyaltyDays = days - - def loyaltyRequirement(self): - if not hasattr(self, 'loyaltyDays'): - return 0 - else: - return self.loyaltyDays + def getIsSpecial(self): + return self.isSpecial def getPrice(self, catalogType): if catalogType == CatalogTypeBackorder: @@ -380,13 +375,6 @@ class CatalogItem: def getRequestPurchaseErrorTextTimeout(self): return 6 - - def getDaysToGo(self, avatar): - accountDays = avatar.getAccountDays() - daysToGo = self.loyaltyRequirement() - accountDays - if daysToGo < 0: - daysToGo = 0 - return int(daysToGo) def encodeCatalogItem(dg, item, store): import CatalogItemTypes diff --git a/toontown/catalog/CatalogItemPanel.py b/toontown/catalog/CatalogItemPanel.py index 40abaad8..0513e36d 100755 --- a/toontown/catalog/CatalogItemPanel.py +++ b/toontown/catalog/CatalogItemPanel.py @@ -306,9 +306,6 @@ class CatalogItemPanel(DirectFrame): elif hasattr(self['item'], 'isSkillTooLow') and self['item'].isSkillTooLow(base.localAvatar): auxText = TTLocalizer.SkillTooLow self.buyButton['state'] = DGG.DISABLED - elif hasattr(self['item'], 'getDaysToGo') and self['item'].getDaysToGo(base.localAvatar): - auxText = TTLocalizer.DaysToGo % self['item'].getDaysToGo(base.localAvatar) - self.buyButton['state'] = DGG.DISABLED elif self['item'].getEmblemPrices() and not base.localAvatar.isEnoughMoneyAndEmblemsToBuy(self['item'].getPrice(self['type']), self['item'].getEmblemPrices()): self.buyButton['state'] = DGG.DISABLED elif hasattr(self['item'], 'houseId') and self['item'].houseId == localAvatar.houseType: diff --git a/toontown/catalog/CatalogRentalItem.py b/toontown/catalog/CatalogRentalItem.py index 4230154a..40998d83 100755 --- a/toontown/catalog/CatalogRentalItem.py +++ b/toontown/catalog/CatalogRentalItem.py @@ -24,7 +24,7 @@ class CatalogRentalItem(CatalogItem.CatalogItem): return 0 def reachedPurchaseLimit(self, avatar): - return self in avatar.onOrder or self in avatar.mailboxContents or self in avatar.onGiftOrder #or self in avatar.awardMailboxContents or self in avatar.onAwardOrder + return self in avatar.onOrder or self in avatar.mailboxContents or self in avatar.onGiftOrder def saveHistory(self): return 1 @@ -45,15 +45,14 @@ 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 avater') + self.notify.debug('rental -- has avatar') estate = simbase.air.estateManager._lookupEstate(avatar) if estate: self.notify.debug('rental -- has estate') estate.rentItem(self.typeIndex, self.duration) else: - self.notify.debug('rental -- something not there') + self.notify.warning('rental -- something not there') return ToontownGlobals.P_ItemAvailable def getPicture(self, avatar): @@ -126,5 +125,7 @@ def getAllRentalItems(): list = [] for rentalType in (ToontownGlobals.RentalCannon,): list.append(CatalogRentalItem(rentalType, 2880, 1000)) + for rentalType in (ToontownGlobals.RentalGameTable,): + list.append(CatalogRentalItem(rentalType, 2890, 1000)) return list diff --git a/toontown/catalog/CatalogScreen.py b/toontown/catalog/CatalogScreen.py index e5c0bb6c..0278f052 100755 --- a/toontown/catalog/CatalogScreen.py +++ b/toontown/catalog/CatalogScreen.py @@ -101,8 +101,8 @@ class CatalogScreen(DirectFrame): def setNumBackPages(self, numBackPages): self.numBackPages = numBackPages - def setNumLoyaltyPages(self, numLoyaltyPages): - self.numLoyaltyPages = numLoyaltyPages + def setNumSpecialPages(self, numSpecialPages): + self.numSpecialPages = numSpecialPages def setNumEmblemPages(self, numEmblemPages): self.numEmblemPages = numEmblemPages @@ -116,49 +116,49 @@ class CatalogScreen(DirectFrame): def enableBackorderCatalogButton(self): self.backCatalogButton['state'] = DGG.NORMAL self.newCatalogButton['state'] = DGG.DISABLED - self.loyaltyCatalogButton['state'] = DGG.DISABLED + self.specialCatalogButton['state'] = DGG.DISABLED self.emblemCatalogButton['state'] = DGG.DISABLED def enableNewCatalogButton(self): self.backCatalogButton['state'] = DGG.DISABLED self.newCatalogButton['state'] = DGG.NORMAL - self.loyaltyCatalogButton['state'] = DGG.DISABLED + self.specialCatalogButton['state'] = DGG.DISABLED self.emblemCatalogButton['state'] = DGG.DISABLED - def enableLoyaltyCatalogButton(self): + def enableSpecialCatalogButton(self): self.backCatalogButton['state'] = DGG.DISABLED self.newCatalogButton['state'] = DGG.DISABLED - self.loyaltyCatalogButton['state'] = DGG.NORMAL + self.specialCatalogButton['state'] = DGG.NORMAL self.emblemCatalogButton['state'] = DGG.DISABLED def enableEmblemCatalogButton(self): self.backCatalogButton['state'] = DGG.DISABLED self.newCatalogButton['state'] = DGG.DISABLED - self.loyaltyCatalogButton['state'] = DGG.DISABLED + self.specialCatalogButton['state'] = DGG.DISABLED self.emblemCatalogButton['state'] = DGG.NORMAL def modeBackorderCatalog(self): self.backCatalogButton['state'] = DGG.DISABLED self.newCatalogButton['state'] = DGG.NORMAL - self.loyaltyCatalogButton['state'] = DGG.NORMAL + self.specialCatalogButton['state'] = DGG.NORMAL self.emblemCatalogButton['state'] = DGG.NORMAL def modeNewCatalog(self): self.backCatalogButton['state'] = DGG.NORMAL self.newCatalogButton['state'] = DGG.DISABLED - self.loyaltyCatalogButton['state'] = DGG.NORMAL + self.specialCatalogButton['state'] = DGG.NORMAL self.emblemCatalogButton['state'] = DGG.NORMAL - def modeLoyaltyCatalog(self): + def modeSpecialCatalog(self): self.backCatalogButton['state'] = DGG.NORMAL self.newCatalogButton['state'] = DGG.NORMAL - self.loyaltyCatalogButton['state'] = DGG.DISABLED + self.specialCatalogButton['state'] = DGG.DISABLED self.emblemCatalogButton['state'] = DGG.NORMAL def modeEmblemCatalog(self): self.backCatalogButton['state'] = DGG.NORMAL self.newCatalogButton['state'] = DGG.NORMAL - self.loyaltyCatalogButton['state'] = DGG.NORMAL + self.specialCatalogButton['state'] = DGG.NORMAL self.emblemCatalogButton['state'] = DGG.DISABLED def showNewItems(self, index = None): @@ -195,15 +195,15 @@ class CatalogScreen(DirectFrame): self.showPageItems() return - def showLoyaltyItems(self, index = None): + def showSpecialItems(self, index = None): if config.GetBool('want-qa-regression', 0): - self.notify.info('QA-REGRESSION: CATALOG: Loyalty item') + self.notify.info('QA-REGRESSION: CATALOG: Special item') taskMgr.remove('clarabelleHelpText1') messenger.send('wakeup') - self.viewing = 'Loyalty' - self.modeLoyaltyCatalog() - self.setMaxPageIndex(self.numLoyaltyPages) - if self.numLoyaltyPages == 0: + self.viewing = 'Special' + self.modeSpecialCatalog() + self.setMaxPageIndex(self.numSpecialPages) + if self.numSpecialPages == 0: self.setPageIndex(-1) elif index is not None: self.setPageIndex(index) @@ -238,11 +238,11 @@ class CatalogScreen(DirectFrame): self.viewing == 'New' if self.viewing == 'New' and self.pageIndex > self.maxPageIndex and self.numBackPages > 0: self.showBackorderItems() - if self.viewing == 'New' and self.pageIndex > self.maxPageIndex and self.numLoyaltyPages > 0: - self.showLoyaltyItems() - elif self.viewing == 'Backorder' and self.pageIndex > self.maxPageIndex and self.numLoyaltyPages > 0: - self.showLoyaltyItems() - elif self.viewing == 'Loyalty' and self.pageIndex > self.maxPageIndex and self.numEmblemPages > 0: + if self.viewing == 'New' and self.pageIndex > self.maxPageIndex and self.numSpecialPages > 0: + self.showSpecialItems() + elif self.viewing == 'Backorder' and self.pageIndex > self.maxPageIndex and self.numSpecialPages > 0: + self.showSpecialItems() + elif self.viewing == 'Special' and self.pageIndex > self.maxPageIndex and self.numEmblemPages > 0: self.showEmblemItems() else: self.pageIndex = min(self.pageIndex, self.maxPageIndex) @@ -255,10 +255,10 @@ class CatalogScreen(DirectFrame): self.pageIndex = self.pageIndex - 1 if self.viewing == 'Backorder' and self.pageIndex < 0 and self.numNewPages > 0: self.showNewItems(self.numNewPages - 1) - elif self.viewing == 'Loyalty' and self.pageIndex < 0 and self.numBackPages > 0: + elif self.viewing == 'Special' and self.pageIndex < 0 and self.numBackPages > 0: self.showBackorderItems(self.numBackPages - 1) - elif self.viewing == 'Emblem' and self.pageIndex < 0 and self.numLoyaltyPages > 0: - self.showLoyaltyItems(self.numLoyaltyPages - 1) + elif self.viewing == 'Emblem' and self.pageIndex < 0 and self.numSpecialPages > 0: + self.showSpecialItems(self.numSpecialPages - 1) else: self.pageIndex = max(self.pageIndex, -1) self.showPageItems() @@ -274,16 +274,16 @@ class CatalogScreen(DirectFrame): self.openCover() if self.viewing == 'New': page = self.pageList[self.pageIndex] - newOrBackOrLoyalty = 0 + newOrBackOrSpecial = 0 elif self.viewing == 'Backorder': page = self.backPageList[self.pageIndex] - newOrBackOrLoyalty = 1 - elif self.viewing == 'Loyalty': - page = self.loyaltyPageList[self.pageIndex] - newOrBackOrLoyalty = 2 + newOrBackOrSpecial = 1 + elif self.viewing == 'Special': + page = self.specialPageList[self.pageIndex] + newOrBackOrSpecial = 2 elif self.viewing == 'Emblem': page = self.emblemPageList[self.pageIndex] - newOrBackOrLoyalty = 3 + newOrBackOrSpecial = 3 page.show() for panel in self.panelDict[page.get_key()]: panel.load() @@ -293,7 +293,7 @@ class CatalogScreen(DirectFrame): pIndex = 0 randGen = random.Random() - randGen.seed(base.localAvatar.catalogScheduleCurrentWeek + (self.pageIndex << 8) + (newOrBackOrLoyalty << 16)) + randGen.seed(base.localAvatar.catalogScheduleCurrentWeek + (self.pageIndex << 8) + (newOrBackOrSpecial << 16)) for i in xrange(NUM_CATALOG_ROWS): for j in xrange(NUM_CATALOG_COLS): if pIndex < len(self.visiblePanels): @@ -308,8 +308,8 @@ class CatalogScreen(DirectFrame): if self.viewing == 'New': text = TTLocalizer.CatalogNew - elif self.viewing == 'Loyalty': - text = TTLocalizer.CatalogLoyalty + elif self.viewing == 'Special': + text = TTLocalizer.CatalogSpecial elif self.viewing == 'Backorder': text = TTLocalizer.CatalogBackorder elif self.viewing == 'Emblem': @@ -317,13 +317,13 @@ class CatalogScreen(DirectFrame): self.pageLabel['text'] = text + ' - %d' % (self.pageIndex + 1) if self.pageIndex < self.maxPageIndex: self.nextPageButton.show() - elif self.viewing == 'New' and self.numBackPages == 0 and self.numLoyaltyPages == 0: + elif self.viewing == 'New' and self.numBackPages == 0 and self.numSpecialPages == 0: self.nextPageButton.hide() - elif self.viewing == 'Backorder' and self.numLoyaltyPages == 0: + elif self.viewing == 'Backorder' and self.numSpecialPages == 0: self.nextPageButton.hide() - elif self.viewing == 'Loyalty' and self.numEmblemPages == 0: + elif self.viewing == 'Special' and self.numEmblemPages == 0: self.nextPageButton.hide() - elif self.viewing == 'Loyalty' and self.numEmblemPages > 0: + elif self.viewing == 'Special' and self.numEmblemPages > 0: self.nextPageButton.show() elif self.viewing == 'Emblem': self.nextPageButton.hide() @@ -358,7 +358,7 @@ class CatalogScreen(DirectFrame): for page in self.backPageList: page.hide() - for page in self.loyaltyPageList: + for page in self.specialPageList: page.hide() for page in self.emblemPageList: @@ -389,26 +389,26 @@ class CatalogScreen(DirectFrame): self.newCatalogButton2.show() if self.numBackPages > 0: self.backCatalogButton2.show() - if self.numLoyaltyPages > 0: - self.loyaltyCatalogButton2.show() + if self.numSpecialPages > 0: + self.specialCatalogButton2.show() if self.numEmblemPages > 0: self.emblemCatalogButton2.show() self.newCatalogButton.hide() self.backCatalogButton.hide() - self.loyaltyCatalogButton.hide() + self.specialCatalogButton.hide() self.emblemCatalogButton.hide() def hideDummyTabs(self): self.newCatalogButton2.hide() self.backCatalogButton2.hide() - self.loyaltyCatalogButton2.hide() + self.specialCatalogButton2.hide() self.emblemCatalogButton2.hide() if self.numNewPages > 0: self.newCatalogButton.show() if self.numBackPages > 0: self.backCatalogButton.show() - if self.numLoyaltyPages > 0: - self.loyaltyCatalogButton.show() + if self.numSpecialPages > 0: + self.specialCatalogButton.show() if self.numEmblemPages > 0: self.emblemCatalogButton.show() @@ -442,14 +442,14 @@ class CatalogScreen(DirectFrame): self.maxPageIndex = 0 self.numNewPages = 0 self.numBackPages = 5 - self.numLoyaltyPages = 0 + self.numSpecialPages = 0 self.viewing = 'New' self.panelList = [] self.backPanelList = [] self.pageList = [] self.backPageList = [] - self.loyaltyPanelList = [] - self.loyaltyPageList = [] + self.specialPanelList = [] + self.specialPageList = [] self.emblemPanelList = [] self.emblemPageList = [] self.panelDict = {} @@ -505,19 +505,19 @@ class CatalogScreen(DirectFrame): -0.2, 0.4), image_scale=(1.0, 1.0, smash), image_pos=(0.0, 0.0, lift), image=backDown, pressEffect=0, command=self.showBackorderItems, text=TTLocalizer.CatalogBackorder, text_font=ToontownGlobals.getSignFont(), text_pos=(0.25 - lift, 0.132), text_scale=TTLocalizer.CSbackCatalogButton, text_fg=(0.392, 0.549, 0.627, 1.0), text2_fg=(0.392, 0.349, 0.427, 1.0)) self.backCatalogButton2.hide() - self.loyaltyCatalogButton = DirectButton(self.base, relief=None, pos=(0, 0, 0.469), frameSize=(-0.2, + self.specialCatalogButton = DirectButton(self.base, relief=None, pos=(0, 0, 0.469), frameSize=(-0.2, 0.25, -0.85, -0.3), image=[newDown, newDown, newDown, - newUp], image_scale=(1.0, 1.0, smash), image_pos=(0.0, 0.0, -1.4 + lift), pressEffect=0, command=self.showLoyaltyItems, text=TTLocalizer.CatalogLoyalty, text_font=ToontownGlobals.getSignFont(), text_pos=(1.0 - lift, 0.132), text3_pos=(1.0 - lift, 0.112), text_scale=0.065, text_fg=(0.353, 0.627, 0.627, 1.0), text2_fg=(0.353, 0.427, 0.427, 1.0)) - self.loyaltyCatalogButton.hide() - self.loyaltyCatalogButton2 = DirectButton(self.base, relief=None, pos=(0, 0, 0.469), frameSize=(-0.2, + newUp], image_scale=(1.0, 1.0, smash), image_pos=(0.0, 0.0, -1.4 + lift), pressEffect=0, command=self.showSpecialItems, text=TTLocalizer.CatalogSpecial, text_font=ToontownGlobals.getSignFont(), text_pos=(1.0 - lift, 0.132), text3_pos=(1.0 - lift, 0.112), text_scale=0.065, text_fg=(0.353, 0.627, 0.627, 1.0), text2_fg=(0.353, 0.427, 0.427, 1.0)) + self.specialCatalogButton.hide() + self.specialCatalogButton2 = DirectButton(self.base, relief=None, pos=(0, 0, 0.469), frameSize=(-0.2, 0.25, -0.85, - -0.3), image_scale=(1.0, 1.0, smash), image_pos=(0.0, 0.0, -1.4 + lift), image=newDown, pressEffect=0, command=self.showLoyaltyItems, text=TTLocalizer.CatalogLoyalty, text_font=ToontownGlobals.getSignFont(), text_pos=(1.0 - lift, 0.132), text_scale=0.065, text_fg=(0.353, 0.627, 0.627, 1.0), text2_fg=(0.353, 0.427, 0.427, 1.0)) - self.loyaltyCatalogButton2.hide() + -0.3), image_scale=(1.0, 1.0, smash), image_pos=(0.0, 0.0, -1.4 + lift), image=newDown, pressEffect=0, command=self.showSpecialItems, text=TTLocalizer.CatalogSpecial, text_font=ToontownGlobals.getSignFont(), text_pos=(1.0 - lift, 0.132), text_scale=0.065, text_fg=(0.353, 0.627, 0.627, 1.0), text2_fg=(0.353, 0.427, 0.427, 1.0)) + self.specialCatalogButton2.hide() self.emblemCatalogButton = DirectButton(self.base, relief=None, pos=(0, 0, 1.05), frameSize=(-0.2, 0.25, -2.0, @@ -564,8 +564,8 @@ class CatalogScreen(DirectFrame): self.newCatalogButton2.component('text%d' % i).setR(90) self.backCatalogButton.component('text%d' % i).setR(90) self.backCatalogButton2.component('text%d' % i).setR(90) - self.loyaltyCatalogButton.component('text%d' % i).setR(90) - self.loyaltyCatalogButton2.component('text%d' % i).setR(90) + self.specialCatalogButton.component('text%d' % i).setR(90) + self.specialCatalogButton2.component('text%d' % i).setR(90) self.emblemCatalogButton.component('text%d' % i).setR(90) self.emblemCatalogButton2.component('text%d' % i).setR(90) @@ -609,8 +609,8 @@ class CatalogScreen(DirectFrame): continue if isMaxBankOffered and item in allBankItems and item.furnitureType != CatalogFurnitureItem.MaxBankId: continue - if item.loyaltyRequirement() != 0: - self.loyaltyPanelList.append(CatalogItemPanel.CatalogItemPanel(parent=hidden, item=item, type=CatalogItem.CatalogTypeLoyalty, parentCatalogScreen=self)) + if item.getIsSpecial(): + self.specialPanelList.append(CatalogItemPanel.CatalogItemPanel(parent=hidden, item=item, type=CatalogItem.CatalogTypeSpecial, parentCatalogScreen=self)) elif item.getEmblemPrices(): self.emblemPanelList.append(CatalogItemPanel.CatalogItemPanel(parent=hidden, item=item, type=CatalogItem.CatalogTypeWeekly, parentCatalogScreen=self)) else: @@ -627,8 +627,8 @@ class CatalogScreen(DirectFrame): continue if isMaxBankOffered and item in allBankItems and item.furnitureType != CatalogFurnitureItem.MaxBankId: continue - if item.loyaltyRequirement() != 0: - self.loyaltyPanelList.append(CatalogItemPanel.CatalogItemPanel(parent=hidden, item=item, type=CatalogItem.CatalogTypeLoyalty, parentCatalogScreen=self)) + if item.getIsSpecial(): + self.specialPanelList.append(CatalogItemPanel.CatalogItemPanel(parent=hidden, item=item, type=CatalogItem.CatalogTypeSpecial, parentCatalogScreen=self)) elif item.getEmblemPrices(): self.emblemPanelList.append(CatalogItemPanel.CatalogItemPanel(parent=hidden, item=item, type=CatalogItem.CatalogTypeBackorder, parentCatalogScreen=self)) else: @@ -638,8 +638,8 @@ class CatalogScreen(DirectFrame): self.setNumNewPages(numPages) numPages = self.packPages(self.backPanelList, self.backPageList, 'back') self.setNumBackPages(numPages) - numPages = self.packPages(self.loyaltyPanelList, self.loyaltyPageList, 'loyalty') - self.setNumLoyaltyPages(numPages) + numPages = self.packPages(self.specialPanelList, self.specialPageList, 'special') + self.setNumSpecialPages(numPages) numPages = self.packPages(self.emblemPanelList, self.emblemPageList, 'emblem') self.setNumEmblemPages(numPages) currentWeek = base.localAvatar.catalogScheduleCurrentWeek - 1 @@ -752,7 +752,7 @@ class CatalogScreen(DirectFrame): self.clarabelleFrame.setPosHprScale(-0.01, 0.0, -0.01, 0.0, 0.0, 0.0, 1.02, 1.0, 1.02) def reload(self): - for panel in self.panelList + self.backPanelList + self.loyaltyPanelList + self.emblemPanelList: + for panel in self.panelList + self.backPanelList + self.specialPanelList + self.emblemPanelList: panel.destroy() def priceSort(a, b, type): @@ -764,23 +764,23 @@ class CatalogScreen(DirectFrame): self.maxPageIndex = 0 self.numNewPages = 0 self.numBackPages = 5 - self.numLoyaltyPages = 0 + self.numSpecialPages = 0 self.viewing = 'New' self.panelList = [] self.backPanelList = [] - self.loyaltyList = [] + self.specialList = [] self.pageList = [] self.backPageList = [] - self.loyaltyPanelList = [] - self.loyaltyPageList = [] + self.specialPanelList = [] + self.specialPageList = [] self.panelDict = {} self.visiblePanels = [] itemList = base.localAvatar.monthlyCatalog + base.localAvatar.weeklyCatalog itemList.sort(lambda a, b: priceSort(a, b, CatalogItem.CatalogTypeWeekly)) itemList.reverse() for item in itemList: - if item.loyaltyRequirement() != 0: - self.loyaltyPanelList.append(CatalogItemPanel.CatalogItemPanel(parent=hidden, item=item, type=CatalogItem.CatalogTypeLoyalty, parentCatalogScreen=self)) + if item.getIsSpecial(): + self.specialPanelList.append(CatalogItemPanel.CatalogItemPanel(parent=hidden, item=item, type=CatalogItem.CatalogTypeSpecial, parentCatalogScreen=self)) else: self.panelList.append(CatalogItemPanel.CatalogItemPanel(parent=hidden, item=item, type=CatalogItem.CatalogTypeWeekly)) @@ -788,8 +788,8 @@ class CatalogScreen(DirectFrame): itemList.sort(lambda a, b: priceSort(a, b, CatalogItem.CatalogTypeBackorder)) itemList.reverse() for item in itemList: - if item.loyaltyRequirement() != 0: - self.loyaltyPanelList.append(CatalogItemPanel.CatalogItemPanel(parent=hidden, item=item, type=CatalogItem.CatalogTypeLoyalty, parentCatalogScreen=self)) + if item.getIsSpecial(): + self.specialPanelList.append(CatalogItemPanel.CatalogItemPanel(parent=hidden, item=item, type=CatalogItem.CatalogTypeSpecial, parentCatalogScreen=self)) else: self.backPanelList.append(CatalogItemPanel.CatalogItemPanel(parent=hidden, item=item, type=CatalogItem.CatalogTypeBackorder)) @@ -797,8 +797,8 @@ class CatalogScreen(DirectFrame): self.setNumNewPages(numPages) numPages = self.packPages(self.backPanelList, self.backPageList, 'back') self.setNumBackPages(numPages) - numPages = self.packPages(self.loyaltyPanelList, self.loyaltyPageList, 'loyalty') - self.setNumLoyaltyPages(numPages) + numPages = self.packPages(self.specialPanelList, self.specialPageList, 'special') + self.setNumSpecialPages(numPages) seriesNumber = (base.localAvatar.catalogScheduleCurrentWeek - 1) / ToontownGlobals.CatalogNumWeeksPerSeries + 1 self.catalogSeries['text'] = Localizer.CatalogSeriesLabel % seriesNumber weekNumber = (base.localAvatar.catalogScheduleCurrentWeek - 1) % ToontownGlobals.CatalogNumWeeksPerSeries + 1 @@ -820,7 +820,7 @@ class CatalogScreen(DirectFrame): self.destroy() del self.base del self.squares - for panel in self.panelList + self.backPanelList + self.loyaltyPanelList + self.emblemPanelList: + for panel in self.panelList + self.backPanelList + self.specialPanelList + self.emblemPanelList: panel.destroy() del self.panelList @@ -838,8 +838,8 @@ class CatalogScreen(DirectFrame): del self.newCatalogButton2 del self.backCatalogButton del self.backCatalogButton2 - del self.loyaltyCatalogButton - del self.loyaltyCatalogButton2 + del self.specialCatalogButton + del self.specialCatalogButton2 del self.pageLabel if self.createdGiftGui: del self.giftToggle @@ -878,8 +878,8 @@ class CatalogScreen(DirectFrame): self.newCatalogButton2.hide() self.backCatalogButton.hide() self.backCatalogButton2.hide() - self.loyaltyCatalogButton.hide() - self.loyaltyCatalogButton2.hide() + self.specialCatalogButton.hide() + self.specialCatalogButton2.hide() self.emblemCatalogButton.hide() self.emblemCatalogButton2.hide() self.hangup.hide() @@ -901,7 +901,7 @@ class CatalogScreen(DirectFrame): self.__giftToggle() if hasattr(self, 'beanBank'): self.beanBank['text'] = str(base.localAvatar.getTotalMoney()) - for item in self.panelList + self.backPanelList + self.loyaltyPanelList + self.emblemPanelList: + for item in self.panelList + self.backPanelList + self.specialPanelList + self.emblemPanelList: if type(item) != type(''): item.updateButtons(self.gifting) diff --git a/toontown/estate/DistributedPhoneAI.py b/toontown/estate/DistributedPhoneAI.py index 12c6851f..7c91051f 100755 --- a/toontown/estate/DistributedPhoneAI.py +++ b/toontown/estate/DistributedPhoneAI.py @@ -151,7 +151,7 @@ class DistributedPhoneAI(DistributedFurnitureItemAI): if isinstance(item, CatalogInvalidItem.CatalogInvalidItem): self.air.writeServerEvent('suspicious', avId, 'tried purchasing invalid item') self.notify.warning('%d tried purchasing invalid item' % avId) - return ToontownGlobals.P_NotInCatalog + return ToontownGlobals.P_NotInCatalog elif (not item.hasEmblemPrices()) and item not in av.backCatalog and item not in av.weeklyCatalog and item not in av.monthlyCatalog: self.air.writeServerEvent('suspicious', avId, 'tried purchasing non-existing item') self.notify.warning('%d tried purchasing non-existing item' % avId) diff --git a/toontown/toon/LocalToon.py b/toontown/toon/LocalToon.py index b54d601c..117f19fd 100755 --- a/toontown/toon/LocalToon.py +++ b/toontown/toon/LocalToon.py @@ -1662,9 +1662,6 @@ class LocalToon(DistributedToon.DistributedToon, LocalAvatar.LocalAvatar): def setPinkSlips(self, pinkSlips): DistributedToon.DistributedToon.setPinkSlips(self, pinkSlips) self.inventory.updateTotalPropsText() - - def getAccountDays(self): - return base.cr.accountDateMgr.getAccountDays() def hasActiveBoardingGroup(self): if hasattr(localAvatar, 'boardingParty') and localAvatar.boardingParty: diff --git a/toontown/toonbase/TTLocalizerEnglish.py b/toontown/toonbase/TTLocalizerEnglish.py index c924d2f8..a101d7d0 100755 --- a/toontown/toonbase/TTLocalizerEnglish.py +++ b/toontown/toonbase/TTLocalizerEnglish.py @@ -5451,7 +5451,7 @@ CatalogCurrency = 'beans' CatalogHangUp = 'Hang Up' CatalogNew = 'NEW' CatalogBackorder = 'BACKORDER' -CatalogLoyalty = 'SPECIAL' +CatalogSpecial = 'SPECIAL' CatalogEmblem = 'EMBLEM' CatalogPagePrefix = 'Page' CatalogGreeting = "Hello! Thanks for calling Clarabelle's Cattlelog. Can I help you?" @@ -8133,7 +8133,6 @@ ElevatorLawBotCourse0 = 'Office A' ElevatorLawBotCourse1 = 'Office B' ElevatorLawBotCourse2 = 'Office C' ElevatorLawBotCourse3 = 'Office D' -DaysToGo = 'Wait\n%s Days' IceGameTitle = 'Ice Slide' IceGameInstructions = 'Get as close to the center by the end of the second round. Use arrow keys to change direction and force. Press Ctrl to launch your toon. Hit barrels for extra points and avoid the TNT!' IceGameInstructionsNoTnt = 'Get as close to the center by the end of the second round. Use arrow keys to change direction and force. Press Ctrl to launch your toon. Hit barrels for extra points.' diff --git a/toontown/uberdog/ClientServicesManagerUD.py b/toontown/uberdog/ClientServicesManagerUD.py index f2d49683..6c11f7a7 100755 --- a/toontown/uberdog/ClientServicesManagerUD.py +++ b/toontown/uberdog/ClientServicesManagerUD.py @@ -329,7 +329,7 @@ class LoginAccountFSM(OperationFSM): 'ACCOUNT_AV_SET': [0] * 6, 'ESTATE_ID': 0, 'ACCOUNT_AV_SET_DEL': [], - 'CREATED': time.ctime(), + 'CREATED': time.time(), 'LAST_LOGIN': time.ctime(), 'LAST_LOGIN_TS': time.time(), 'ACCOUNT_ID': str(self.userId),