mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2025-01-09 17:53:50 +00:00
Merge branch 'master' of https://gitlab.com/ToontownUnited/src
Conflicts: otp/distributed/DCClassImports.py
This commit is contained in:
commit
64aafa769c
36 changed files with 39 additions and 735 deletions
|
@ -503,7 +503,6 @@ from toontown.safezone import DistributedCheckers/AI
|
|||
from toontown.safezone import DistributedFindFour/AI
|
||||
from toontown.uberdog.DistributedPartyManager/AI/UD import DistributedPartyManager/AI/UD
|
||||
from toontown.coderedemption.TTCodeRedemptionMgr/AI import TTCodeRedemptionMgr/AI
|
||||
from toontown.friends.TrueFriendsMgr/AI import TrueFriendsMgr/AI
|
||||
from toontown.cogdominium import DistributedCogdoInterior/AI
|
||||
from toontown.cogdominium import DistributedCogdoBattleBldg/AI
|
||||
from toontown.cogdominium import DistributedCogdoElevatorExt/AI
|
||||
|
@ -664,7 +663,6 @@ dclass DistributedToon : DistributedPlayer {
|
|||
takeDamage(uint16) broadcast ownrecv;
|
||||
setBattleId(uint32 = 0) required broadcast ram;
|
||||
setExperience(blob = [0*14]) required broadcast db;
|
||||
setTrueFriends(uint32[]) required ownrecv db;
|
||||
setIgnored(uint32[]) required clsend airecv ownrecv db;
|
||||
setReported(uint32[]) required ownrecv db;
|
||||
setMaxCarry(uint8 = 20) required ownrecv db;
|
||||
|
@ -3295,13 +3293,6 @@ dclass TTCodeRedemptionMgr : DistributedObject {
|
|||
redeemCodeResult(uint32);
|
||||
};
|
||||
|
||||
dclass TrueFriendsMgr : DistributedObject {
|
||||
requestId() airecv clsend;
|
||||
requestIdResult(uint32, string, string);
|
||||
redeemId(string) airecv clsend;
|
||||
redeemIdResult(uint32, string);
|
||||
};
|
||||
|
||||
struct Friend
|
||||
{
|
||||
uint32 doId;
|
||||
|
@ -3345,12 +3336,6 @@ dclass TTUFriendsManager : DistributedObjectGlobal {
|
|||
whisperSCEmoteTo(uint32 toId, uint16 emoteId) clsend;
|
||||
setWhisperSCEmoteFrom(uint32 fromId, uint16 emoteId);
|
||||
|
||||
requestSecret() clsend;
|
||||
requestSecretResponse(int8 status, string secret);
|
||||
|
||||
submitSecret(string(0-256) secret) clsend;
|
||||
submitSecretResponse(int8 status, int32 avId);
|
||||
|
||||
sendTalkWhisper(uint32 toId, string message) clsend;
|
||||
receiveTalkWhisper(uint32 fromId, string message);
|
||||
|
||||
|
|
|
@ -26,20 +26,14 @@ want-lawbot-cogdo #t
|
|||
want-achievements #f
|
||||
want-anim-props #t
|
||||
want-game-tables #t
|
||||
want-find-four #f
|
||||
want-find-four #t
|
||||
want-chinese-checkers #t
|
||||
want-checkers #f
|
||||
want-checkers #t
|
||||
|
||||
# Chat:
|
||||
want-whitelist #f
|
||||
|
||||
# Cashbot boss:
|
||||
want-resistance-toonup #t
|
||||
want-resistance-restock #t
|
||||
want-resistance-dance #t
|
||||
|
||||
# Optional:
|
||||
want-glove-npc #t
|
||||
want-jor-el-cam #f
|
||||
|
||||
# Developer options:
|
||||
|
|
|
@ -57,10 +57,6 @@ AIMsgName2Id = {'STATESERVER_OBJECT_GENERATE_WITH_REQUIRED': 2001,
|
|||
'CHANNEL_PUPPET_ACTION': 4004,
|
||||
'DBSERVER_MAKE_FRIENDS': 1017,
|
||||
'DBSERVER_MAKE_FRIENDS_RESP': 1031,
|
||||
'DBSERVER_REQUEST_SECRET': 1025,
|
||||
'DBSERVER_REQUEST_SECRET_RESP': 1026,
|
||||
'DBSERVER_SUBMIT_SECRET': 1027,
|
||||
'DBSERVER_SUBMIT_SECRET_RESP': 1028,
|
||||
'DBSERVER_CREATE_STORED_OBJECT': 1003,
|
||||
'DBSERVER_CREATE_STORED_OBJECT_RESP': 1004,
|
||||
'DBSERVER_DELETE_STORED_OBJECT': 1008,
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
from pandac.PandaModules import *
|
||||
|
||||
|
||||
hashVal = 3191861370L
|
||||
hashVal = 4170776848L
|
||||
|
||||
|
||||
from toontown.coghq import DistributedCashbotBossSafe, DistributedCashbotBossCrane, DistributedBattleFactory, DistributedCashbotBossTreasure, DistributedCogHQDoor, DistributedSellbotHQDoor, DistributedFactoryElevatorExt, DistributedMintElevatorExt, DistributedLawOfficeElevatorExt, DistributedLawOfficeElevatorInt, LobbyManager, DistributedMegaCorp, DistributedFactory, DistributedLawOffice, DistributedLawOfficeFloor, DistributedLift, DistributedDoorEntity, DistributedSwitch, DistributedButton, DistributedTrigger, DistributedCrushableEntity, DistributedCrusherEntity, DistributedStomper, DistributedStomperPair, DistributedLaserField, DistributedGolfGreenGame, DistributedSecurityCamera, DistributedMover, DistributedElevatorMarker, DistributedBarrelBase, DistributedGagBarrel, DistributedBeanBarrel, DistributedHealBarrel, DistributedGrid, ActiveCell, DirectionalCell, CrusherCell, DistributedCrate, DistributedSinkingPlatform, BattleBlocker, DistributedMint, DistributedMintRoom, DistributedMintBattle, DistributedStage, DistributedStageRoom, DistributedStageBattle, DistributedLawbotBossGavel, DistributedLawbotCannon, DistributedLawbotChair, DistributedCogKart, DistributedCountryClub, DistributedCountryClubRoom, DistributedMoleField, DistributedCountryClubBattle, DistributedMaze, DistributedFoodBelt, DistributedBanquetTable, DistributedGolfSpot
|
||||
|
@ -28,7 +28,6 @@ from toontown.minigame import DistributedMinigame, DistributedMinigameTemplate,
|
|||
from toontown.racing import DistributedVehicle, DistributedStartingBlock, DistributedRace, DistributedKartPad, DistributedRacePad, DistributedViewPad, DistributedStartingBlock, DistributedLeaderBoard, DistributedGag, DistributedProjectile
|
||||
from toontown.catalog import CatalogManager, AccountDate
|
||||
from toontown.parties import DistributedParty, DistributedPartyActivity, DistributedPartyTeamActivity, DistributedPartyCannon, DistributedPartyCannonActivity, DistributedPartyCatchActivity, DistributedPartyWinterCatchActivity, DistributedPartyCogActivity, DistributedPartyWinterCogActivity, DistributedPartyFireworksActivity, DistributedPartyDanceActivityBase, DistributedPartyDanceActivity, DistributedPartyDance20Activity, DistributedPartyValentineDanceActivity, DistributedPartyValentineDance20Activity, DistributedPartyTrampolineActivity, DistributedPartyValentineTrampolineActivity, DistributedPartyVictoryTrampolineActivity, DistributedPartyWinterTrampolineActivity, DistributedPartyTugOfWarActivity, DistributedPartyJukeboxActivityBase, DistributedPartyJukeboxActivity, DistributedPartyJukebox40Activity, DistributedPartyValentineJukeboxActivity, DistributedPartyValentineJukebox40Activity
|
||||
from toontown.friends.TrueFriendsMgr import TrueFriendsMgr
|
||||
from toontown.friends import TTUFriendsManager
|
||||
from toontown.cogdominium import DistributedCogdoInterior, DistributedCogdoBattleBldg, DistributedCogdoElevatorExt, DistributedCogdoElevatorInt, DistributedCogdoBarrel, DistCogdoGame, DistCogdoLevelGame, DistCogdoBoardroomGame, DistCogdoCraneGame, DistCogdoMazeGame, DistCogdoFlyingGame, DistCogdoCrane, DistCogdoCraneMoneyBag, DistCogdoCraneCog
|
||||
from toontown.uberdog.ARGManager import ARGManager
|
||||
|
|
|
@ -90,17 +90,4 @@ class FriendManager(DistributedObject.DistributedObject):
|
|||
def inviteeCancelFriendQuery(self, context):
|
||||
self.notify.debug('Client: inviteeCancelFriendQuery(%d)' % context)
|
||||
messenger.send('cancelFriendInvitation', [context])
|
||||
self.up_inviteeAcknowledgeCancel(context)
|
||||
|
||||
def up_requestSecret(self):
|
||||
self.notify.warning('Sending Request')
|
||||
self.sendUpdate('requestSecret', [])
|
||||
|
||||
def requestSecretResponse(self, result, secret):
|
||||
messenger.send('requestSecretResponse', [result, secret])
|
||||
|
||||
def up_submitSecret(self, secret):
|
||||
self.sendUpdate('submitSecret', [secret])
|
||||
|
||||
def submitSecretResponse(self, result, avId):
|
||||
messenger.send('submitSecretResponse', [result, avId])
|
||||
self.up_inviteeAcknowledgeCancel(context)
|
|
@ -110,16 +110,4 @@ class FriendManagerAI(DistributedObjectAI):
|
|||
pass
|
||||
|
||||
def inviteeCancelFriendQuery(self, todo0):
|
||||
pass
|
||||
|
||||
def requestSecret(self):
|
||||
pass
|
||||
|
||||
def requestSecretResponse(self, todo0, todo1):
|
||||
pass
|
||||
|
||||
def submitSecret(self, todo0):
|
||||
pass
|
||||
|
||||
def submitSecretResponse(self, todo0, todo1):
|
||||
pass
|
||||
pass
|
|
@ -201,14 +201,10 @@ FriendInviterConfirmRemove = 'Remove'
|
|||
FriendInviterYes = lYes
|
||||
FriendInviterNo = lNo
|
||||
FriendInviterClickToon = 'Click on the toon you would like to make friends with.'
|
||||
FriendInviterTooMany = 'You have too many friends on your list to add another one now. You will have to remove some friends if you want to make friends with %s.'
|
||||
FriendInviterToonTooMany = 'You have too many toon friends on your list to add another one now. You will have to remove some toon friends if you want to make friends with %s.'
|
||||
FriendInviterNotYet = 'Would you like to make friends with %s?'
|
||||
FriendInviterCheckAvailability = 'Seeing if %s is available.'
|
||||
FriendInviterNotAvailable = '%s is busy right now; try again later.'
|
||||
FriendInviterCantSee = 'This only works if you can see %s.'
|
||||
FriendInviterNotOnline = 'This only works if %s is online'
|
||||
FriendInviterNotOpen = '%s does not have open chat, use secrets to make friends'
|
||||
FriendInviterWentAway = '%s went away.'
|
||||
FriendInviterAlready = '%s is already your friend.'
|
||||
FriendInviterAlreadyInvited = '%s has already been invited.'
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
from direct.directnotify import DirectNotifyGlobal
|
||||
from direct.distributed.ClockDelta import *
|
||||
from direct.interval.IntervalGlobal import *
|
||||
import HolidayDecorator
|
||||
from toontown.toonbase import ToontownGlobals
|
||||
from pandac.PandaModules import Vec4, TransformState, NodePath, TransparencyAttrib
|
||||
from toontown.hood import GSHood
|
||||
|
||||
class CrashedLeaderBoardDecorator(HolidayDecorator.HolidayDecorator):
|
||||
notify = DirectNotifyGlobal.directNotify.newCategory('CrashedLeaderBoardDecorator')
|
||||
|
||||
def __init__(self):
|
||||
HolidayDecorator.HolidayDecorator.__init__(self)
|
||||
|
||||
def decorate(self):
|
||||
self.updateHoodDNAStore()
|
||||
self.swapIval = self.getSwapVisibleIval()
|
||||
if self.swapIval:
|
||||
self.swapIval.start()
|
||||
holidayIds = base.cr.newsManager.getDecorationHolidayId()
|
||||
if ToontownGlobals.CRASHED_LEADERBOARD not in holidayIds:
|
||||
return
|
||||
if base.config.GetBool('want-crashedLeaderBoard-Smoke', 1):
|
||||
self.startSmokeEffect()
|
||||
|
||||
def startSmokeEffect(self):
|
||||
if isinstance(base.cr.playGame.getPlace().loader.hood, GSHood.GSHood):
|
||||
base.cr.playGame.getPlace().loader.startSmokeEffect()
|
||||
|
||||
def stopSmokeEffect(self):
|
||||
if isinstance(base.cr.playGame.getPlace().loader.hood, GSHood.GSHood):
|
||||
base.cr.playGame.getPlace().loader.stopSmokeEffect()
|
||||
|
||||
def undecorate(self):
|
||||
if base.config.GetBool('want-crashedLeaderBoard-Smoke', 1):
|
||||
self.stopSmokeEffect()
|
||||
holidayIds = base.cr.newsManager.getDecorationHolidayId()
|
||||
if len(holidayIds) > 0:
|
||||
self.decorate()
|
||||
return
|
||||
storageFile = base.cr.playGame.hood.storageDNAFile
|
||||
if storageFile:
|
||||
loadDNAFile(self.dnaStore, storageFile, CSDefault)
|
||||
self.swapIval = self.getSwapVisibleIval()
|
||||
if self.swapIval:
|
||||
self.swapIval.start()
|
|
@ -1,30 +1,22 @@
|
|||
from otp.ai.MagicWordGlobal import *
|
||||
from pandac.PandaModules import *
|
||||
from direct.distributed import DistributedObject
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
from toontown.toonbase import ToontownGlobals
|
||||
from toontown.toonbase import ToontownBattleGlobals
|
||||
from toontown.battle import SuitBattleGlobals
|
||||
from toontown.toonbase import TTLocalizer
|
||||
import HolidayDecorator
|
||||
import HalloweenHolidayDecorator
|
||||
import CrashedLeaderBoardDecorator
|
||||
from direct.interval.IntervalGlobal import *
|
||||
import calendar
|
||||
from copy import deepcopy
|
||||
from toontown.toonbase import TTLocalizer, ToontownGlobals, ToontownBattleGlobals
|
||||
from toontown.battle import SuitBattleGlobals
|
||||
from toontown.suit import SuitDNA
|
||||
from otp.ai.MagicWordGlobal import *
|
||||
|
||||
from copy import deepcopy
|
||||
import HolidayDecorator, HalloweenHolidayDecorator, calendar
|
||||
|
||||
decorationHolidays = [ToontownGlobals.WINTER_DECORATIONS,
|
||||
ToontownGlobals.WACKY_WINTER_DECORATIONS,
|
||||
ToontownGlobals.HALLOWEEN_PROPS,
|
||||
ToontownGlobals.SPOOKY_PROPS,
|
||||
ToontownGlobals.HALLOWEEN_COSTUMES,
|
||||
ToontownGlobals.SPOOKY_COSTUMES,
|
||||
ToontownGlobals.CRASHED_LEADERBOARD]
|
||||
ToontownGlobals.SPOOKY_COSTUMES]
|
||||
promotionalSpeedChatHolidays = []
|
||||
|
||||
|
||||
class NewsManager(DistributedObject.DistributedObject):
|
||||
notify = DirectNotifyGlobal.directNotify.newCategory('NewsManager')
|
||||
neverDisable = 1
|
||||
|
@ -186,8 +178,6 @@ class NewsManager(DistributedObject.DistributedObject):
|
|||
if hasattr(base.cr.playGame, 'dnaStore') and hasattr(base.cr.playGame, 'hood') and hasattr(base.cr.playGame.hood, 'loader'):
|
||||
if holidayId == ToontownGlobals.HALLOWEEN_COSTUMES or holidayId == ToontownGlobals.SPOOKY_COSTUMES:
|
||||
self.holidayDecorator = HalloweenHolidayDecorator.HalloweenHolidayDecorator()
|
||||
elif holidayId == ToontownGlobals.CRASHED_LEADERBOARD:
|
||||
self.holidayDecorator = CrashedLeaderBoardDecorator.CrashedLeaderBoardDecorator()
|
||||
else:
|
||||
self.holidayDecorator = HolidayDecorator.HolidayDecorator()
|
||||
self.holidayDecorator.decorate()
|
||||
|
@ -303,8 +293,6 @@ class NewsManager(DistributedObject.DistributedObject):
|
|||
if hasattr(base.cr.playGame, 'dnaStore') and hasattr(base.cr.playGame, 'hood') and hasattr(base.cr.playGame.hood, 'loader'):
|
||||
if holidayId == ToontownGlobals.HALLOWEEN_COSTUMES or holidayId == ToontownGlobals.SPOOKY_COSTUMES:
|
||||
self.holidayDecorator = HalloweenHolidayDecorator.HalloweenHolidayDecorator()
|
||||
elif holidayId == ToontownGlobals.CRASHED_LEADERBOARD:
|
||||
self.holidayDecorator = CrashedLeaderBoardDecorator.CrashedLeaderBoardDecorator()
|
||||
else:
|
||||
self.holidayDecorator = HolidayDecorator.HolidayDecorator()
|
||||
self.holidayDecorator.undecorate()
|
||||
|
|
|
@ -30,7 +30,6 @@ from toontown.distributed.ToontownInternalRepository import ToontownInternalRepo
|
|||
from toontown.coderedemption.TTCodeRedemptionMgrAI import TTCodeRedemptionMgrAI
|
||||
from toontown.dna.DNAParser import loadDNAFileAI
|
||||
from toontown.estate.EstateManagerAI import EstateManagerAI
|
||||
from toontown.friends.TrueFriendsMgrAI import TrueFriendsMgrAI
|
||||
from toontown.hood import BRHoodAI
|
||||
from toontown.hood import BossbotHQAI
|
||||
from toontown.hood import CashbotHQAI
|
||||
|
@ -87,7 +86,6 @@ class ToontownAIRepository(ToontownInternalRepository):
|
|||
self.wantCogbuildings = self.config.GetBool('want-cogbuildings', True)
|
||||
self.wantCogdominiums = self.config.GetBool('want-cogdominiums', True)
|
||||
self.wantTrackClsends = self.config.GetBool('want-track-clsends', False)
|
||||
self.wantGloveNpc = self.config.GetBool('want-glove-npc', True)
|
||||
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)
|
||||
|
@ -128,8 +126,6 @@ class ToontownAIRepository(ToontownInternalRepository):
|
|||
self.buildingQueryMgr = DistributedBuildingQueryMgrAI(self)
|
||||
self.buildingQueryMgr.generateWithRequired(2)
|
||||
self.groupManager.generateWithRequired(2)
|
||||
self.trueFriendsMgr = TrueFriendsMgrAI(self)
|
||||
self.trueFriendsMgr.generateWithRequired(2)
|
||||
if self.wantFishing:
|
||||
self.fishManager = FishManagerAI(self)
|
||||
if self.wantHousing:
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
from direct.particles.ParticleEffect import *
|
||||
import os
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
from direct.showbase import AppRunnerGlobal
|
||||
import ParticleDefs
|
||||
|
||||
notify = DirectNotifyGlobal.directNotify.newCategory('BattleParticles')
|
||||
TutorialParticleEffects = ('gearExplosionBig.ptf', 'gearExplosionSmall.ptf', 'gearExplosion.ptf')
|
||||
ParticleNames = ('audit-div', 'audit-five', 'audit-four', 'audit-minus', 'audit-mult', 'audit-one', 'audit-plus', 'audit-six', 'audit-three', 'audit-two', 'blah', 'brainstorm-box', 'brainstorm-env', 'brainstorm-track', 'buzzwords-crash', 'buzzwords-inc', 'buzzwords-main', 'buzzwords-over', 'buzzwords-syn', 'confetti', 'doubletalk-double', 'doubletalk-dup', 'doubletalk-good', 'filibuster-cut', 'filibuster-fiscal', 'filibuster-impeach', 'filibuster-inc', 'jargon-brow', 'jargon-deep', 'jargon-hoop', 'jargon-ipo', 'legalese-hc', 'legalese-qpq', 'legalese-vd', 'mumbojumbo-boiler', 'mumbojumbo-creative', 'mumbojumbo-deben', 'mumbojumbo-high', 'mumbojumbo-iron', 'poundsign', 'schmooze-genius', 'schmooze-instant', 'schmooze-master', 'schmooze-viz', 'roll-o-dex', 'rollodex-card', 'dagger', 'fire', 'snow-particle', 'raindrop', 'gear', 'checkmark', 'dollar-sign', 'spark')
|
||||
|
@ -13,8 +12,6 @@ def loadParticles():
|
|||
global particleModel
|
||||
if particleModel == None:
|
||||
particleModel = loader.loadModel('phase_3.5/models/props/suit-particles')
|
||||
return
|
||||
|
||||
|
||||
def unloadParticles():
|
||||
global particleModel
|
||||
|
@ -22,8 +19,6 @@ def unloadParticles():
|
|||
particleModel.removeNode()
|
||||
del particleModel
|
||||
particleModel = None
|
||||
return
|
||||
|
||||
|
||||
def getParticle(name):
|
||||
if name in ParticleNames:
|
||||
|
@ -34,7 +29,6 @@ def getParticle(name):
|
|||
return None
|
||||
return None
|
||||
|
||||
|
||||
def loadParticleFile(name):
|
||||
assert name.endswith('.ptf')
|
||||
name = name[:-4] # Strip .ptf
|
||||
|
@ -44,7 +38,6 @@ def loadParticleFile(name):
|
|||
particleFunc(effect)
|
||||
return effect
|
||||
|
||||
|
||||
def createParticleEffect(name = None, file = None, numParticles = None, color = None):
|
||||
if not name:
|
||||
fileName = file + '.ptf'
|
||||
|
@ -111,7 +104,6 @@ def createParticleEffect(name = None, file = None, numParticles = None, color =
|
|||
notify.warning('createParticleEffect() - no name: %s' % name)
|
||||
return None
|
||||
|
||||
|
||||
def setEffectTexture(effect, name, color = None):
|
||||
particles = effect.getParticlesNamed('particles-1')
|
||||
np = getParticle(name)
|
||||
|
@ -119,7 +111,6 @@ def setEffectTexture(effect, name, color = None):
|
|||
particles.renderer.setColor(color)
|
||||
particles.renderer.setFromNode(np)
|
||||
|
||||
|
||||
def __makeGearExplosion(numParticles = None, style = 'Normal'):
|
||||
if style == 'Normal':
|
||||
effect = loadParticleFile('gearExplosion.ptf')
|
||||
|
@ -132,7 +123,6 @@ def __makeGearExplosion(numParticles = None, style = 'Normal'):
|
|||
particles.setPoolSize(numParticles)
|
||||
return effect
|
||||
|
||||
|
||||
def __makeRubOut(color = None):
|
||||
effect = loadParticleFile('demotionUnFreeze.ptf')
|
||||
loadParticles()
|
||||
|
@ -148,7 +138,6 @@ def __makeRubOut(color = None):
|
|||
particles.renderer.setColor(Vec4(0.54, 0.92, 0.32, 0.7))
|
||||
return effect
|
||||
|
||||
|
||||
def __makeShiftLift():
|
||||
effect = loadParticleFile('pixieDrop.ptf')
|
||||
particles = effect.getParticlesNamed('particles-1')
|
||||
|
@ -157,4 +146,4 @@ def __makeShiftLift():
|
|||
particles.emitter.setRadius(0.01)
|
||||
effect.setHpr(0, 180, 0)
|
||||
effect.setPos(0, 0, 0)
|
||||
return effect
|
||||
return effect
|
|
@ -1,7 +1,5 @@
|
|||
from pandac.PandaModules import *
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
from direct.showbase import AppRunnerGlobal
|
||||
import os
|
||||
|
||||
class BattleSounds:
|
||||
notify = DirectNotifyGlobal.directNotify.newCategory('BattleSounds')
|
||||
|
@ -15,7 +13,6 @@ class BattleSounds:
|
|||
self.mgr.setCacheLimit(limit)
|
||||
base.addSfxManager(self.mgr)
|
||||
self.setupSearchPath()
|
||||
return
|
||||
|
||||
def setupSearchPath(self):
|
||||
self.sfxSearchPath = DSearchPath()
|
||||
|
@ -46,5 +43,4 @@ class BattleSounds:
|
|||
return self.mgr.getSound(filename.getFullpath())
|
||||
return self.mgr.getNullSound()
|
||||
|
||||
|
||||
globalBattleSoundCache = BattleSounds()
|
||||
globalBattleSoundCache = BattleSounds()
|
|
@ -65,61 +65,6 @@ def gearExplosion(self):
|
|||
f0.addForce(force0)
|
||||
self.addForceGroup(f0)
|
||||
|
||||
|
||||
@particle
|
||||
def smokeTest4(self):
|
||||
self.reset()
|
||||
self.setPos(0.000, 0.000, 0.000)
|
||||
self.setHpr(0.000, 0.000, 0.000)
|
||||
self.setScale(1.000, 1.000, 1.000)
|
||||
p0 = Particles.Particles('particles-1')
|
||||
|
||||
p0.setFactory("PointParticleFactory")
|
||||
p0.setRenderer("SpriteParticleRenderer")
|
||||
p0.setEmitter("DiscEmitter")
|
||||
p0.setPoolSize(30)
|
||||
p0.setBirthRate(0.1000)
|
||||
p0.setLitterSize(1)
|
||||
p0.setLitterSpread(0)
|
||||
p0.setSystemLifespan(0.0000)
|
||||
p0.setLocalVelocityFlag(1)
|
||||
p0.setSystemGrowsOlderFlag(0)
|
||||
|
||||
p0.factory.setLifespanBase(2.0000)
|
||||
p0.factory.setLifespanSpread(0.5000)
|
||||
p0.factory.setMassBase(1.0000)
|
||||
p0.factory.setMassSpread(0.0000)
|
||||
p0.factory.setTerminalVelocityBase(400.0000)
|
||||
p0.factory.setTerminalVelocitySpread(0.0000)
|
||||
|
||||
p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAINOUT)
|
||||
p0.renderer.setUserAlpha(0.57)
|
||||
|
||||
p0.renderer.addTextureFromFile('../../ttmodels/src/maps/tt_t_efx_ext_smoke.tif')
|
||||
p0.renderer.setColor(Vec4(1.00, 1.00, 1.00, 1.00))
|
||||
p0.renderer.setXScaleFlag(1)
|
||||
p0.renderer.setYScaleFlag(1)
|
||||
p0.renderer.setAnimAngleFlag(0)
|
||||
p0.renderer.setInitialXScale(2.0000)
|
||||
p0.renderer.setFinalXScale(4.0000)
|
||||
p0.renderer.setInitialYScale(2.0000)
|
||||
p0.renderer.setFinalYScale(4.0000)
|
||||
p0.renderer.setNonanimatedTheta(0.0000)
|
||||
p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPBLENDLINEAR)
|
||||
p0.renderer.setAlphaDisable(0)
|
||||
p0.renderer.getColorInterpolationManager().addLinear(0.0,1.0,Vec4(0.28235295414924622,0.28235295414924622,0.28235295414924622,1.0),Vec4(0.28235295414924622,0.28235295414924622,0.28235295414924622,1.0),1)
|
||||
|
||||
p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
|
||||
p0.emitter.setAmplitude(0.4000)
|
||||
p0.emitter.setAmplitudeSpread(0.0000)
|
||||
p0.emitter.setOffsetForce(Vec3(0.0000, 0.0000, 6.0000))
|
||||
p0.emitter.setExplicitLaunchVector(Vec3(1.0000, 0.0000, 0.0000))
|
||||
p0.emitter.setRadiateOrigin(Point3(0.0000, 0.0000, 0.0000))
|
||||
|
||||
p0.emitter.setRadius(1.0000)
|
||||
self.addParticles(p0)
|
||||
|
||||
|
||||
@particle
|
||||
def gearExplosionSmall(self):
|
||||
self.reset()
|
||||
|
|
|
@ -28,7 +28,6 @@ from toontown.toonbase.ToontownGlobals import *
|
|||
from toontown.distributed import DelayDelete
|
||||
from toontown.friends import FriendHandle
|
||||
from toontown.friends import FriendsListPanel
|
||||
from toontown.friends import ToontownFriendSecret
|
||||
from toontown.login import AvatarChooser
|
||||
from toontown.makeatoon import MakeAToon
|
||||
from toontown.pets import DistributedPet, PetDetail, PetHandle
|
||||
|
@ -407,7 +406,6 @@ class ToontownClientRepository(OTPClientRepository.OTPClientRepository):
|
|||
if self.objectManager != None:
|
||||
self.objectManager.destroy()
|
||||
self.objectManager = None
|
||||
ToontownFriendSecret.unloadFriendSecret()
|
||||
FriendsListPanel.unloadFriendsList()
|
||||
messenger.send('cancelFriendInvitation')
|
||||
base.removeGlitchMessage()
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
from pandac.PandaModules import *
|
||||
from direct.particles import ParticleEffect
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
from direct.showbase import AppRunnerGlobal
|
||||
import os
|
||||
|
||||
class CarSmoke(NodePath):
|
||||
|
||||
def __init__(self, parent):
|
||||
NodePath.__init__(self)
|
||||
notify = DirectNotifyGlobal.directNotify.newCategory('CarSmokeParticles')
|
||||
self.effectNode = parent.attachNewNode('carSmoke')
|
||||
self.effectNode.setBin('fixed', 1)
|
||||
self.effectNode.setDepthWrite(0)
|
||||
self.effect = ParticleEffect.ParticleEffect()
|
||||
particleSearchPath = DSearchPath()
|
||||
if AppRunnerGlobal.appRunner:
|
||||
particleSearchPath.appendDirectory(Filename.expandFrom('$TT_3_5_ROOT/phase_3.5/etc'))
|
||||
else:
|
||||
basePath = os.path.expandvars('$TOONTOWN') or './toontown'
|
||||
particleSearchPath.appendDirectory(Filename.fromOsSpecific(basePath + '/src/effects'))
|
||||
particleSearchPath.appendDirectory(Filename('phase_3.5/etc'))
|
||||
particleSearchPath.appendDirectory(Filename('phase_4/etc'))
|
||||
particleSearchPath.appendDirectory(Filename('phase_5/etc'))
|
||||
particleSearchPath.appendDirectory(Filename('phase_6/etc'))
|
||||
particleSearchPath.appendDirectory(Filename('phase_7/etc'))
|
||||
particleSearchPath.appendDirectory(Filename('phase_8/etc'))
|
||||
particleSearchPath.appendDirectory(Filename('phase_9/etc'))
|
||||
particleSearchPath.appendDirectory(Filename('.'))
|
||||
pfile = Filename('smokeTest4.ptf')
|
||||
found = vfs.resolveFilename(pfile, particleSearchPath)
|
||||
if not found:
|
||||
notify.warning('loadParticleFile() - no path: %s' % pfile)
|
||||
return
|
||||
notify.debug('Loading particle file: %s' % pfile)
|
||||
self.effect.loadConfig(pfile)
|
||||
ren = self.effect.getParticlesNamed('particles-1').getRenderer()
|
||||
ren.setTextureFromNode('phase_4/models/props/tt_m_efx_ext_smoke', '**/*')
|
||||
|
||||
def start(self):
|
||||
self.effect.start(parent=self.effectNode)
|
||||
|
||||
def stop(self):
|
||||
try:
|
||||
self.effect.disable()
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
def destroy(self):
|
||||
self.stop()
|
||||
self.effect.cleanup()
|
||||
self.effectNode.removeNode()
|
||||
del self.effect
|
||||
del self.effectNode
|
|
@ -5,7 +5,6 @@ import FriendInvitee
|
|||
import FriendNotifier
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
from toontown.toon import ToonTeleportPanel
|
||||
from toontown.friends import ToontownFriendSecret
|
||||
from toontown.pets import PetAvatarPanel
|
||||
from toontown.toon import ToonAvatarPanel
|
||||
from toontown.suit import SuitAvatarPanel
|
||||
|
@ -74,7 +73,6 @@ class FriendsListManager:
|
|||
self.ignore('friendAvatar')
|
||||
self.ignore('avatarDetails')
|
||||
FriendsListPanel.hideFriendsList()
|
||||
ToontownFriendSecret.hideFriendSecret()
|
||||
if base.cr.friendManager:
|
||||
base.cr.friendManager.setAvailable(0)
|
||||
self.ignore('friendInvitation')
|
||||
|
|
|
@ -3,7 +3,6 @@ from direct.gui.DirectGui import *
|
|||
from pandac.PandaModules import *
|
||||
from direct.fsm import StateData
|
||||
from toontown.toon import ToonAvatarPanel
|
||||
from toontown.friends import ToontownFriendSecret
|
||||
from toontown.toonbase import ToontownGlobals
|
||||
from toontown.toonbase import TTLocalizer
|
||||
from otp.otpbase import OTPGlobals
|
||||
|
@ -247,7 +246,7 @@ class FriendsListPanel(DirectFrame, StateData.StateData):
|
|||
|
||||
def __secrets(self):
|
||||
messenger.send('wakeup')
|
||||
ToontownFriendSecret.showFriendSecret()
|
||||
# TODO
|
||||
|
||||
def __newFriend(self):
|
||||
messenger.send('wakeup')
|
||||
|
|
|
@ -1,197 +0,0 @@
|
|||
from pandac.PandaModules import *
|
||||
from direct.gui.DirectGui import *
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
from toontown.toonbase import TTLocalizer
|
||||
from otp.otpbase import OTPGlobals
|
||||
from toontown.nametag import NametagGlobals
|
||||
|
||||
globalFriendSecret = None
|
||||
|
||||
def showFriendSecret():
|
||||
global globalFriendSecret
|
||||
if not settings['trueFriends']:
|
||||
chatMgr = base.localAvatar.chatMgr
|
||||
chatMgr.fsm.request('noSecretChatAtAll')
|
||||
else:
|
||||
if globalFriendSecret != None:
|
||||
globalFriendSecret.unload()
|
||||
globalFriendSecret = ToontownFriendSecret()
|
||||
globalFriendSecret.enter()
|
||||
|
||||
def hideFriendSecret():
|
||||
if globalFriendSecret != None:
|
||||
globalFriendSecret.exit()
|
||||
|
||||
def unloadFriendSecret():
|
||||
global globalFriendSecret
|
||||
if globalFriendSecret != None:
|
||||
globalFriendSecret.unload()
|
||||
globalFriendSecret = None
|
||||
return
|
||||
|
||||
class ToontownFriendSecret(DirectFrame):
|
||||
notify = DirectNotifyGlobal.directNotify.newCategory('ToontownFriendSecret')
|
||||
|
||||
def __init__(self):
|
||||
DirectFrame.__init__(self, parent=aspect2dp, pos=(0, 0, 0.3), relief=None, image=DGG.getDefaultDialogGeom(), image_scale=(1.6, 1, 1.4), image_pos=(0, 0, -0.05), image_color=OTPGlobals.GlobalDialogColor, borderWidth=(0.01, 0.01))
|
||||
self.initialiseoptions(ToontownFriendSecret)
|
||||
self.isLoaded = 0
|
||||
self.isEntered = 0
|
||||
|
||||
def unload(self):
|
||||
if self.isLoaded == 0:
|
||||
return None
|
||||
self.isLoaded = 0
|
||||
self.exit()
|
||||
del self.introText
|
||||
del self.getSecret
|
||||
del self.enterSecretText
|
||||
del self.enterSecret
|
||||
del self.ok1
|
||||
del self.ok2
|
||||
del self.cancel
|
||||
del self.secretText
|
||||
DirectFrame.destroy(self)
|
||||
return None
|
||||
|
||||
def load(self):
|
||||
if self.isLoaded == 1:
|
||||
return None
|
||||
self.isLoaded = 1
|
||||
self.introText = DirectLabel(parent=self, relief=None, pos=(0, 0, 0.4), scale=0.05, text=TTLocalizer.FriendSecretIntro, text_fg=(0, 0, 0, 1), text_wordwrap=30)
|
||||
self.introText.hide()
|
||||
guiButton = loader.loadModel('phase_3/models/gui/quit_button')
|
||||
self.getSecret = DirectButton(parent=self, relief=None, pos=(0, 0, -0.11), image=(guiButton.find('**/QuitBtn_UP'), guiButton.find('**/QuitBtn_DN'), guiButton.find('**/QuitBtn_RLVR')), image_scale=TTLocalizer.FSgetSecret, text=TTLocalizer.FriendSecretGetSecret, text_scale=TTLocalizer.FSgetSecretButton, text_pos=(0, -0.02), command=self.__getSecret)
|
||||
self.getSecret.hide()
|
||||
self.enterSecretText = DirectLabel(parent=self, relief=None, pos=TTLocalizer.FSenterSecretTextPos, scale=0.05, text=TTLocalizer.FriendSecretEnterSecret, text_fg=(0, 0, 0, 1), text_wordwrap=30)
|
||||
self.enterSecretText.hide()
|
||||
self.enterSecret = DirectEntry(parent=self, relief=DGG.SUNKEN, scale=0.06, pos=(-0.6, 0, -0.38), frameColor=(0.8, 0.8, 0.5, 1), borderWidth=(0.1, 0.1), numLines=1, width=20, frameSize=(-0.4,
|
||||
20.4,
|
||||
-0.4,
|
||||
1.1), command=self.__enterSecret)
|
||||
self.enterSecret.resetFrameSize()
|
||||
self.enterSecret.hide()
|
||||
self.ok1 = DirectButton(parent=self, relief=None, image=(guiButton.find('**/QuitBtn_UP'), guiButton.find('**/QuitBtn_DN'), guiButton.find('**/QuitBtn_RLVR')), image_scale=TTLocalizer.FSok1, text=TTLocalizer.FriendSecretEnter, text_scale=0.06, text_pos=(0, -0.02), pos=(0, 0, -0.5), command=self.__ok1)
|
||||
self.ok1.hide()
|
||||
self.ok2 = DirectButton(parent=self, relief=None, image=(guiButton.find('**/QuitBtn_UP'), guiButton.find('**/QuitBtn_DN'), guiButton.find('**/QuitBtn_RLVR')), image_scale=TTLocalizer.FSok2, text=TTLocalizer.FriendSecretOK, text_scale=0.06, text_pos=(0, -0.02), pos=(0, 0, -0.57), command=self.__ok2)
|
||||
self.ok2.hide()
|
||||
self.cancel = DirectButton(parent=self, relief=None, text=TTLocalizer.FriendSecretCancel, image=(guiButton.find('**/QuitBtn_UP'), guiButton.find('**/QuitBtn_DN'), guiButton.find('**/QuitBtn_RLVR')), image_scale=TTLocalizer.FScancel, text_scale=0.06, text_pos=(0, -0.02), pos=(0, 0, -0.57), command=self.__cancel)
|
||||
self.cancel.hide()
|
||||
self.nextText = DirectLabel(parent=self, relief=None, pos=(0, 0, 0.3), scale=0.06, text='', text_scale=TTLocalizer.FSnextText, text_fg=(0, 0, 0, 1), text_wordwrap=25.5)
|
||||
self.nextText.hide()
|
||||
self.secretText = DirectLabel(parent=self, relief=None, pos=(0, 0, -0.42), scale=0.08, text='', text_fg=(0, 0, 0, 1), text_wordwrap=30)
|
||||
self.secretText.hide()
|
||||
guiButton.removeNode()
|
||||
|
||||
def enter(self):
|
||||
if self.isEntered == 1:
|
||||
return
|
||||
self.isEntered = 1
|
||||
if self.isLoaded == 0:
|
||||
self.load()
|
||||
self.show()
|
||||
self.introText.show()
|
||||
self.getSecret.show()
|
||||
self.enterSecretText.show()
|
||||
self.enterSecret.show()
|
||||
self.ok1.show()
|
||||
self.ok2.hide()
|
||||
self.cancel.hide()
|
||||
self.nextText.hide()
|
||||
self.secretText.hide()
|
||||
base.localAvatar.chatMgr.fsm.request('otherDialog')
|
||||
self.enterSecret['focus'] = 1
|
||||
NametagGlobals.setForceOnscreenChat(True)
|
||||
|
||||
def exit(self):
|
||||
if self.isEntered == 0:
|
||||
return
|
||||
self.isEntered = 0
|
||||
NametagGlobals.setForceOnscreenChat(False)
|
||||
self.__cleanupFirstPage()
|
||||
self.hide()
|
||||
|
||||
def __getSecret(self):
|
||||
self.__cleanupFirstPage()
|
||||
self.nextText['text'] = TTLocalizer.FriendSecretGettingSecret
|
||||
self.nextText.setPos(0, 0, 0.3)
|
||||
self.nextText.show()
|
||||
self.ok1.hide()
|
||||
self.cancel.show()
|
||||
base.cr.trueFriendsMgr.requestId(self.gotSecret)
|
||||
|
||||
def gotSecret(self, id, result1, result2):
|
||||
if id == 0:
|
||||
self.rejectGetSecret(TTLocalizer.FriendSecretNoServer)
|
||||
elif id == 1:
|
||||
self.rejectGetSecret(TTLocalizer.FriendSecretNoServerResponse if not result1 else result1)
|
||||
elif id == 2:
|
||||
self.successGetSecret(result1, result2)
|
||||
|
||||
def rejectGetSecret(self, reason):
|
||||
self.nextText['text'] = reason
|
||||
self.nextText.show()
|
||||
self.secretText.show()
|
||||
self.cancel.hide()
|
||||
self.ok1.hide()
|
||||
self.ok2.show()
|
||||
|
||||
def successGetSecret(self, secret, expires):
|
||||
self.nextText['text'] = TTLocalizer.FriendSecretGotSecret % expires
|
||||
self.nextText.setPos(*TTLocalizer.FSgotSecretPos)
|
||||
self.secretText['text'] = secret
|
||||
self.nextText.show()
|
||||
self.secretText.show()
|
||||
self.cancel.hide()
|
||||
self.ok1.hide()
|
||||
self.ok2.show()
|
||||
|
||||
def __enterSecret(self, secret):
|
||||
self.enterSecret.set('')
|
||||
secret = secret.strip()
|
||||
|
||||
if not secret:
|
||||
self.exit()
|
||||
return
|
||||
|
||||
self.__cleanupFirstPage()
|
||||
self.nextText['text'] = TTLocalizer.FriendSecretTryingSecret
|
||||
base.cr.trueFriendsMgr.redeemId(secret, self.gotResponse)
|
||||
self.nextText.setPos(0, 0, 0.3)
|
||||
self.nextText.show()
|
||||
self.cancel.hide()
|
||||
self.ok1.hide()
|
||||
self.ok2.show()
|
||||
|
||||
def gotResponse(self, id, name):
|
||||
if id == 0:
|
||||
self.nextText['text'] = TTLocalizer.FriendSecretNoServer
|
||||
elif id == 1:
|
||||
self.nextText['text'] = TTLocalizer.FriendSecretNoServerResponse if not result1 else result1
|
||||
elif id == 2:
|
||||
self.nextText['text'] = TTLocalizer.FriendSecretEnteredCodeSelf
|
||||
elif id == 3:
|
||||
self.nextText['text'] = TTLocalizer.FriendSecretAlreadyTrueFriend
|
||||
elif id == 4:
|
||||
self.nextText['text'] = TTLocalizer.FriendSecretSuccess % name
|
||||
self.nextText.show()
|
||||
self.cancel.hide()
|
||||
self.ok1.hide()
|
||||
self.ok2.show()
|
||||
|
||||
def __ok1(self):
|
||||
secret = self.enterSecret.get()
|
||||
self.__enterSecret(secret)
|
||||
|
||||
def __ok2(self):
|
||||
self.exit()
|
||||
|
||||
def __cancel(self):
|
||||
self.exit()
|
||||
|
||||
def __cleanupFirstPage(self):
|
||||
self.introText.hide()
|
||||
self.getSecret.hide()
|
||||
self.enterSecretText.hide()
|
||||
self.enterSecret.hide()
|
||||
base.localAvatar.chatMgr.fsm.request('mainMenu')
|
|
@ -1,34 +0,0 @@
|
|||
from direct.distributed.DistributedObject import DistributedObject
|
||||
from direct.directnotify.DirectNotifyGlobal import directNotify
|
||||
|
||||
class TrueFriendsMgr(DistributedObject):
|
||||
neverDisable = 1
|
||||
notify = directNotify.newCategory('TrueFriendsMgr')
|
||||
|
||||
def __init__(self, cr):
|
||||
DistributedObject.__init__(self, cr)
|
||||
self.requestCallback = None
|
||||
self.redeemCallback = None
|
||||
|
||||
def announceGenerate(self):
|
||||
DistributedObject.announceGenerate(self)
|
||||
base.cr.trueFriendsMgr = self
|
||||
|
||||
def delete(self):
|
||||
if hasattr(base.cr, 'trueFriendsMgr'):
|
||||
del base.cr.trueFriendsMgr
|
||||
DistributedObject.delete(self)
|
||||
|
||||
def requestId(self, callback):
|
||||
self.requestCallback = callback
|
||||
self.sendUpdate('requestId')
|
||||
|
||||
def redeemId(self, id, callback):
|
||||
self.redeemCallback = callback
|
||||
self.sendUpdate('redeemId', [id])
|
||||
|
||||
def requestIdResult(self, id, result1, result2):
|
||||
self.requestCallback(id, result1, result2)
|
||||
|
||||
def redeemIdResult(self, id, name):
|
||||
self.redeemCallback(id, name)
|
|
@ -1,90 +0,0 @@
|
|||
from direct.directnotify import DirectNotifyGlobal
|
||||
from direct.distributed.DistributedObjectAI import DistributedObjectAI
|
||||
from toontown.uberdog.ClientServicesManagerUD import executeHttpRequestAndLog
|
||||
|
||||
class TrueFriendsMgrAI(DistributedObjectAI):
|
||||
notify = DirectNotifyGlobal.directNotify.newCategory("TrueFriendsMgrAI")
|
||||
|
||||
def announceGenerate(self):
|
||||
DistributedObjectAI.announceGenerate(self)
|
||||
|
||||
def requestId(self):
|
||||
avId = self.air.getAvatarIdFromSender()
|
||||
av = self.air.doId2do.get(avId)
|
||||
|
||||
if not av:
|
||||
return
|
||||
|
||||
if config.GetString('accountdb-type', 'developer') != 'remote':
|
||||
self.sendUpdateToAvatarId(avId, 'requestIdResult', [0, None, None])
|
||||
return
|
||||
|
||||
result = executeHttpRequestAndLog('truefriend', avid=avId)
|
||||
|
||||
if result is None:
|
||||
self.sendUpdateToAvatarId(avId, 'requestIdResult', [1, None, None])
|
||||
return
|
||||
elif 'error' in result:
|
||||
self.sendUpdateToAvatarId(avId, 'requestIdResult', [1, result['error'], None])
|
||||
return
|
||||
|
||||
self.sendUpdateToAvatarId(avId, 'requestIdResult', [2, result['id'], result['expires']])
|
||||
|
||||
def redeemId(self, id):
|
||||
avId = self.air.getAvatarIdFromSender()
|
||||
av = self.air.doId2do.get(avId)
|
||||
|
||||
if not av:
|
||||
return
|
||||
|
||||
if simbase.config.GetString('accountdb-type', 'developer') != 'remote':
|
||||
self.sendUpdateToAvatarId(avId, 'redeemIdResult', [0, None])
|
||||
return
|
||||
|
||||
result = executeHttpRequestAndLog('truefriend', id=id)
|
||||
|
||||
if result is None:
|
||||
self.sendUpdateToAvatarId(avId, 'redeemIdResult', [1, None])
|
||||
return
|
||||
elif 'error' in result:
|
||||
self.sendUpdateToAvatarId(avId, 'redeemIdResult', [1, result['error']])
|
||||
return
|
||||
|
||||
targetId = int(result['avId'])
|
||||
|
||||
if targetId == avId:
|
||||
self.sendUpdateToAvatarId(avId, 'redeemIdResult', [2, None])
|
||||
return
|
||||
elif av.isTrueFriend(targetId):
|
||||
self.sendUpdateToAvatarId(avId, 'redeemIdResult', [3, None])
|
||||
return
|
||||
|
||||
av.addTrueFriend(targetId)
|
||||
target = self.air.doId2do.get(targetId)
|
||||
|
||||
if target:
|
||||
target.addTrueFriend(avId)
|
||||
self.sendUpdateToAvatarId(avId, 'redeemIdResult', [4, target.getName()])
|
||||
else:
|
||||
TrueFriendsOperation(targetId, avId)
|
||||
|
||||
class TrueFriendsOperation:
|
||||
|
||||
def __init__(self, targetId, avId):
|
||||
self.targetId = targetId
|
||||
self.avId = avId
|
||||
simbase.air.dbInterface.queryObject(simbase.air.dbId, self.targetId, self.gotResponse)
|
||||
|
||||
def gotResponse(self, dclass, fields):
|
||||
if dclass != simbase.air.dclassesByName['DistributedToonAI'] or not 'setName' in fields:
|
||||
return
|
||||
|
||||
trueFriends = fields['setTrueFriends']
|
||||
|
||||
if self.avId in trueFriends:
|
||||
self.sendUpdateToAvatarId(self.avId, 'redeemIdResult', [3, None])
|
||||
return
|
||||
|
||||
trueFriends.append(self.avId)
|
||||
simbase.air.dbInterface.updateObject(simbase.air.dbId, self.targetId, simbase.air.dclassesByName['DistributedToonAI'], {'setTrueFriends': [trueFriends]})
|
||||
self.sendUpdateToAvatarId(self.avId, 'redeemIdResult', [4, fields['setName']])
|
|
@ -2,7 +2,6 @@ from toontown.safezone.GSSafeZoneLoader import GSSafeZoneLoader
|
|||
from toontown.toonbase import ToontownGlobals
|
||||
from toontown.hood.ToonHood import ToonHood
|
||||
|
||||
|
||||
class GSHood(ToonHood):
|
||||
notify = directNotify.newCategory('GSHood')
|
||||
|
||||
|
@ -13,9 +12,6 @@ class GSHood(ToonHood):
|
|||
SPOOKY_SKY_FILE = 'phase_3.5/models/props/BR_sky'
|
||||
TITLE_COLOR = (1.0, 0.5, 0.4, 1.0)
|
||||
|
||||
HOLIDAY_DNA = {
|
||||
ToontownGlobals.CRASHED_LEADERBOARD: ['phase_6/dna/crashed_leaderboard_storage_GS.pdna']}
|
||||
|
||||
def enter(self, requestStatus):
|
||||
ToonHood.enter(self, requestStatus)
|
||||
|
||||
|
|
|
@ -28,11 +28,10 @@ class TTHoodAI(HoodAI.HoodAI):
|
|||
if simbase.config.GetBool('want-butterflies', True):
|
||||
self.createButterflies()
|
||||
|
||||
if simbase.air.wantGloveNpc:
|
||||
NPCToons.createNPC(
|
||||
simbase.air, 2021,
|
||||
(ToontownGlobals.ToontownCentral, TTLocalizer.NPCToonNames[2021], ('dss', 'ls', 's', 'm', 13, 41, 13, 13, 1, 6, 1, 6, 0, 18, 0), 'm', 1, NPCToons.NPC_GLOVE),
|
||||
ToontownGlobals.ToontownCentral, posIndex=0)
|
||||
NPCToons.createNPC(
|
||||
simbase.air, 2021,
|
||||
(ToontownGlobals.ToontownCentral, TTLocalizer.NPCToonNames[2021], ('dss', 'ls', 's', 'm', 13, 41, 13, 13, 1, 6, 1, 6, 0, 18, 0), 'm', 1, NPCToons.NPC_GLOVE),
|
||||
ToontownGlobals.ToontownCentral, posIndex=0)
|
||||
|
||||
if simbase.air.wantHalloween:
|
||||
self.TrickOrTreatTargetManager = DistributedTrickOrTreatTargetAI.DistributedTrickOrTreatTargetAI(self.air)
|
||||
|
|
|
@ -1,12 +1,7 @@
|
|||
from pandac.PandaModules import *
|
||||
import random
|
||||
import string
|
||||
import copy
|
||||
from toontown.toonbase import ToontownGlobals
|
||||
from toontown.toonbase import TTLocalizer
|
||||
import os
|
||||
from direct.showbase import AppRunnerGlobal
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
from toontown.toonbase import TTLocalizer, ToontownGlobals
|
||||
import random
|
||||
|
||||
class NameGenerator:
|
||||
text = TextNode('text')
|
||||
|
@ -364,4 +359,4 @@ class NameGenerator:
|
|||
totalTitleFirstLasts = neutralTitleFirstLasts + boyTitleFirstLasts + girlTitleFirstLasts
|
||||
print 'Total title first lasts: ' + str(totalTitleFirstLasts)
|
||||
totalNames = firsts + lasts + totalTitleFirsts + totalTitleLasts + totalFirstLasts + totalTitleFirstLasts
|
||||
print 'Total Names: ' + str(totalNames)
|
||||
print 'Total Names: ' + str(totalNames)
|
|
@ -67,4 +67,4 @@ CornerPosTable = {'daisys_garden_5200_english': [Point3(781.219727, 476.963623,
|
|||
'daisys_garden_5100_english': [Point3(760.089722, 526.236206, 0), Point3(-139.510132, -373.3638, 0)],
|
||||
'toontown_central_2300_english': [Point3(870.224243, 536.165771, 0), Point3(-89.175751, -423.234344, 0)],
|
||||
'toontown_central_2100_english': [Point3(161.735336, -59.985107, 0), Point3(-512.664612, -734.385193, 0)],
|
||||
'the_burrrgh_3200_english': [Point3(429.647949, 561.224304, 0), Point3(-31.951935, 99.624283, 0)]}
|
||||
'the_burrrgh_3200_english': [Point3(429.647949, 561.224304, 0), Point3(-31.951935, 99.624283, 0)]}
|
|
@ -1,17 +1,12 @@
|
|||
from pandac.PandaModules import *
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
from direct.interval.IntervalGlobal import *
|
||||
from direct.showbase import AppRunnerGlobal
|
||||
from direct.showbase import DirectObject
|
||||
from direct.showbase import PythonUtil
|
||||
from pandac.PandaModules import *
|
||||
from otp.speedchat import SpeedChatGlobals
|
||||
from toontown.ai import DistributedBlackCatMgr
|
||||
from toontown.chat.ChatGlobals import *
|
||||
from toontown.suit import Suit
|
||||
from toontown.suit import SuitDNA
|
||||
from toontown.suit import Suit, SuitDNA
|
||||
from toontown.toon import ToonHeadFrame
|
||||
from toontown.toonbase import TTLocalizer
|
||||
from toontown.toonbase import ToontownBattleGlobals
|
||||
from toontown.toonbase import TTLocalizer, ToontownBattleGlobals
|
||||
from toontown.quest import QuestScripts
|
||||
import copy, re, tokenize, BlinkingArrows, StringIO
|
||||
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
from pandac.PandaModules import *
|
||||
from direct.distributed import DistributedObject
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
from toontown.toonbase import TTLocalizer
|
||||
from toontown.racing import KartShopGlobals
|
||||
from toontown.toonbase import TTLocalizer
|
||||
from toontown.toonbase.ToonBaseGlobal import *
|
||||
from pandac.PandaModules import *
|
||||
from toontown.toonbase.ToontownGlobals import *
|
||||
import random
|
||||
import cPickle
|
||||
|
||||
class DistributedLeaderBoard(DistributedObject.DistributedObject):
|
||||
|
@ -20,7 +19,6 @@ class DistributedLeaderBoard(DistributedObject.DistributedObject):
|
|||
self.updateCount = 0
|
||||
self.board = None
|
||||
self.surface = None
|
||||
return
|
||||
|
||||
def generateInit(self):
|
||||
DistributedObject.DistributedObject.generateInit(self)
|
||||
|
@ -33,18 +31,6 @@ class DistributedLeaderBoard(DistributedObject.DistributedObject):
|
|||
def announceGenerate(self):
|
||||
DistributedObject.DistributedObject.announceGenerate(self)
|
||||
self.board.reparentTo(render)
|
||||
self.accept('decorator-holiday-%d-ending' % ToontownGlobals.CRASHED_LEADERBOARD, self.showLists)
|
||||
self.accept('decorator-holiday-%d-starting' % ToontownGlobals.CRASHED_LEADERBOARD, self.hideLists)
|
||||
newsManager = base.cr.newsManager
|
||||
if newsManager:
|
||||
if ToontownGlobals.CRASHED_LEADERBOARD in newsManager.holidayIdList:
|
||||
self.hideLists()
|
||||
|
||||
def showLists(self):
|
||||
self.board.show()
|
||||
|
||||
def hideLists(self):
|
||||
self.board.hide()
|
||||
|
||||
def setPosHpr(self, x, y, z, h, p, r):
|
||||
self.surface.setPosHpr(x, y, z, h, p, r)
|
||||
|
@ -165,4 +151,4 @@ class DistributedLeaderBoard(DistributedObject.DistributedObject):
|
|||
self.notify.debug('delete: deleting local leaderboard')
|
||||
self.ignoreAll()
|
||||
self.board.removeNode()
|
||||
DistributedObject.DistributedObject.delete(self)
|
||||
DistributedObject.DistributedObject.delete(self)
|
|
@ -1,13 +1,9 @@
|
|||
from pandac.PandaModules import *
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
from direct.fsm import ClassicFSM, State
|
||||
from direct.fsm import State
|
||||
from pandac.PandaModules import *
|
||||
from toontown.hood import ZoneUtil
|
||||
from toontown.safezone.SafeZoneLoader import SafeZoneLoader
|
||||
from toontown.safezone.GSPlayground import GSPlayground
|
||||
from toontown.effects.CarSmoke import CarSmoke
|
||||
from toontown.toonbase import ToontownGlobals
|
||||
import random
|
||||
|
||||
class GSSafeZoneLoader(SafeZoneLoader):
|
||||
|
||||
|
@ -24,23 +20,14 @@ class GSSafeZoneLoader(SafeZoneLoader):
|
|||
State.State('quietZone', self.enterQuietZone, self.exitQuietZone, ['playground', 'toonInterior', 'racetrack']),
|
||||
State.State('racetrack', self.enterRacetrack, self.exitRacetrack, ['quietZone', 'playground']),
|
||||
State.State('final', self.enterFinal, self.exitFinal, ['start'])], 'start', 'final')
|
||||
self.smoke = None
|
||||
return
|
||||
|
||||
def load(self):
|
||||
SafeZoneLoader.load(self)
|
||||
if base.cr.newsManager:
|
||||
holidayIds = base.cr.newsManager.getDecorationHolidayId()
|
||||
if ToontownGlobals.CRASHED_LEADERBOARD in holidayIds:
|
||||
self.startSmokeEffect()
|
||||
self.birdSound = map(base.loadSfx, ['phase_4/audio/sfx/SZ_TC_bird1.ogg', 'phase_4/audio/sfx/SZ_TC_bird2.ogg', 'phase_4/audio/sfx/SZ_TC_bird3.ogg'])
|
||||
|
||||
def unload(self):
|
||||
del self.birdSound
|
||||
if self.smoke != None:
|
||||
self.stopSmokeEffect()
|
||||
SafeZoneLoader.unload(self)
|
||||
return
|
||||
|
||||
def enterPlayground(self, requestStatus):
|
||||
self.playgroundClass = GSPlayground
|
||||
|
@ -51,7 +38,6 @@ class GSSafeZoneLoader(SafeZoneLoader):
|
|||
self.hood.hideTitleText()
|
||||
SafeZoneLoader.exitPlayground(self)
|
||||
self.playgroundClass = None
|
||||
return
|
||||
|
||||
def handlePlaygroundDone(self):
|
||||
status = self.place.doneStatus
|
||||
|
@ -63,7 +49,6 @@ class GSSafeZoneLoader(SafeZoneLoader):
|
|||
else:
|
||||
self.doneStatus = status
|
||||
messenger.send(self.doneEvent)
|
||||
return
|
||||
|
||||
def enteringARace(self, status):
|
||||
if not status['where'] == 'racetrack':
|
||||
|
@ -93,21 +78,4 @@ class GSSafeZoneLoader(SafeZoneLoader):
|
|||
'hoodId': 8000,
|
||||
'shardId': None}
|
||||
self.fsm.request('quietZone', [req])
|
||||
return
|
||||
|
||||
def startSmokeEffect(self):
|
||||
if base.config.GetBool('want-crashedLeaderBoard-Smoke', 1):
|
||||
leaderBoard = self.geom.find('**/*crashed*')
|
||||
locator = leaderBoard.find('**/*locator_smoke*')
|
||||
if locator != None:
|
||||
self.smoke = CarSmoke(locator)
|
||||
self.smoke.start()
|
||||
return
|
||||
|
||||
def stopSmokeEffect(self):
|
||||
if base.config.GetBool('want-crashedLeaderBoard-Smoke', 1):
|
||||
if self.smoke != None:
|
||||
self.smoke.stop()
|
||||
self.smoke.destroy()
|
||||
self.smoke = None
|
||||
return
|
||||
return
|
|
@ -1,19 +1,12 @@
|
|||
from direct.actor import Actor
|
||||
from otp.avatar import Avatar
|
||||
import SuitDNA
|
||||
from toontown.toonbase import ToontownGlobals
|
||||
from pandac.PandaModules import *
|
||||
from toontown.battle import SuitBattleGlobals
|
||||
from toontown.nametag import NametagGlobals
|
||||
from direct.actor import Actor
|
||||
from direct.task.Task import Task
|
||||
from toontown.battle import BattleProps
|
||||
from toontown.toonbase import TTLocalizer
|
||||
from pandac.PandaModules import VirtualFileMountHTTP, VirtualFileSystem, Filename, DSearchPath
|
||||
from direct.showbase import AppRunnerGlobal
|
||||
from toontown.nametag import NametagGroup
|
||||
import string
|
||||
import os
|
||||
from otp.avatar import Avatar
|
||||
from toontown.battle import BattleProps, SuitBattleGlobals
|
||||
from toontown.nametag import NametagGlobals
|
||||
from toontown.toonbase import TTLocalizer, ToontownGlobals
|
||||
from toontown.suit import SuitGlobals
|
||||
import SuitDNA, string
|
||||
|
||||
aSize = 6.06
|
||||
bSize = 5.29
|
||||
|
|
|
@ -182,7 +182,6 @@ class DistributedToon(DistributedPlayer.DistributedPlayer, Toon.Toon, Distribute
|
|||
self.gmNameTagString = ''
|
||||
self.buffs = []
|
||||
self.redeemedCodes = []
|
||||
self.trueFriends = []
|
||||
self.ignored = []
|
||||
self.reported = []
|
||||
|
||||
|
@ -2578,12 +2577,6 @@ class DistributedToon(DistributedPlayer.DistributedPlayer, Toon.Toon, Distribute
|
|||
def setRedeemedCodes(self, redeemedCodes):
|
||||
self.redeemedCodes = redeemedCodes
|
||||
|
||||
def setTrueFriends(self, trueFriends):
|
||||
self.trueFriends = trueFriends
|
||||
|
||||
def isTrueFriend(self, doId):
|
||||
return doId in self.trueFriends
|
||||
|
||||
def b_setIgnored(self, ignored):
|
||||
self.setIgnored(ignored)
|
||||
self.d_setIgnored(ignored)
|
||||
|
|
|
@ -179,7 +179,6 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
|
|||
self._gmDisabled = False
|
||||
self.buffs = []
|
||||
self.redeemedCodes = []
|
||||
self.trueFriends = []
|
||||
self.ignored = []
|
||||
self.reported = []
|
||||
|
||||
|
@ -431,27 +430,6 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
|
|||
def getExperience(self):
|
||||
return self.experience.makeNetString()
|
||||
|
||||
def b_setTrueFriends(self, trueFriends):
|
||||
self.d_setTrueFriends(trueFriends)
|
||||
self.setTrueFriends(trueFriends)
|
||||
|
||||
def d_setTrueFriends(self, trueFriends):
|
||||
self.sendUpdate('setTrueFriends', [trueFriends])
|
||||
|
||||
def setTrueFriends(self, trueFriends):
|
||||
self.trueFriends = trueFriends
|
||||
|
||||
def getTrueFriends(self):
|
||||
return self.trueFriends
|
||||
|
||||
def isTrueFriend(self, doId):
|
||||
return doId in self.trueFriends
|
||||
|
||||
def addTrueFriend(self, doId):
|
||||
if not self.isTrueFriend(doId):
|
||||
self.trueFriends.append(doId)
|
||||
self.d_setTrueFriends(self.trueFriends)
|
||||
|
||||
def b_setIgnored(self, ignored):
|
||||
self.d_setIgnored(ignored)
|
||||
self.setIgnored(ignored)
|
||||
|
|
|
@ -545,7 +545,4 @@ class DistributedToonUD(DistributedObjectUD):
|
|||
pass
|
||||
|
||||
def setRedeemedCodes(self, redeemedCodes):
|
||||
pass
|
||||
|
||||
def setTrueFriends(self, trueFriends):
|
||||
pass
|
|
@ -119,7 +119,7 @@ def createNPC(air, npcId, desc, zoneId, posIndex = 0, questCallback = None):
|
|||
npc = DistributedNPCScientistAI.DistributedNPCScientistAI(air, npcId)
|
||||
elif type == NPC_SMART:
|
||||
npc = DistributedSmartNPCAI.DistributedSmartNPCAI(air, npcId)
|
||||
elif type == NPC_GLOVE and simbase.air.wantGloveNpc:
|
||||
elif type == NPC_GLOVE:
|
||||
npc = DistributedNPCGloveAI.DistributedNPCGloveAI(air, npcId)
|
||||
elif type == NPC_LAFF_RESTOCK:
|
||||
npc = DistributedNPCLaffRestockAI.DistributedNPCLaffRestockAI(air, npcId)
|
||||
|
|
|
@ -10,7 +10,6 @@ from direct.distributed import DistributedObject
|
|||
from direct.directnotify import DirectNotifyGlobal
|
||||
from toontown.toonbase import ToontownGlobals
|
||||
from toontown.toonbase import TTLocalizer
|
||||
from toontown.friends import ToontownFriendSecret
|
||||
import ToonAvatarDetailPanel
|
||||
import AvatarPanelBase
|
||||
from toontown.toontowngui import TTDialog
|
||||
|
@ -369,7 +368,7 @@ class ToonAvatarPanel(AvatarPanelBase.AvatarPanelBase):
|
|||
|
||||
def __handleSecrets(self):
|
||||
base.localAvatar.chatMgr.noWhisper()
|
||||
ToontownFriendSecret.showFriendSecret()
|
||||
# TODO
|
||||
|
||||
def __handleFriend(self):
|
||||
base.localAvatar.chatMgr.noWhisper()
|
||||
|
|
|
@ -8346,20 +8346,6 @@ PickTrackTitle = 'Pick your third track!'
|
|||
PickTrackNotice = 'Choose a track!'
|
||||
CogLevelLabelOn = 'The cog level GUI is on.'
|
||||
CogLevelLabelOff = 'The cog level GUI is off.'
|
||||
FriendSecretIntro = "If you are playing Toontown United with someone you know in the real world, you can become True Friends. You can chat using the keyboard with your True Friends. Other Toons won't understand what you're saying.\n\nYou do this by getting a True Friend Code. Tell the True Friend Code to your friend, but not to anyone else. When your friend types in your True Friend Code on his or her screen, you'll be True Friends in Toontown!"
|
||||
FriendSecretGetSecret = 'Get a True Friend Code'
|
||||
FriendSecretEnterSecret = 'If you have a True Friend Code from someone you know, type it here.'
|
||||
FriendSecretOK = lOK
|
||||
FriendSecretEnter = 'Enter True Friend Code'
|
||||
FriendSecretCancel = lCancel
|
||||
FriendSecretGettingSecret = 'Getting True Friend Code...'
|
||||
FriendSecretGotSecret = "Here is your new True Friend Code. Be sure to write it down!\n\nYou may give this True Friend Code to one person only. Once someone types in your True Friend Code, it will not work for anyone else. If you want to give a True Friend Code to more than one person, get another True Friend Code.\n\nThe True Friend Code will only work until %s. Your friend will have to type it in before it goes away, or it won't work.\n\nYour True Friend Code is:"
|
||||
FriendSecretTryingSecret = 'Trying True Friend Code. . .'
|
||||
FriendSecretNoServer = 'True Friends is not set up on this server!'
|
||||
FriendSecretNoServerResponse = "Couldn't contact the True Friends server!"
|
||||
FriendSecretEnteredCodeSelf = 'You just typed in your own True Friend Code! Now no one else can use that True Friend Code.'
|
||||
FriendSecretAlreadyTrueFriend = 'You are True Friends with that toon already!'
|
||||
FriendSecretSuccess = 'Congratulations! You are now True Friends with %s!'
|
||||
|
||||
HouseNames = ("Bungalow", "Tiki", "Teepee", "Castle", "Cupcake", "Cabin")
|
||||
CatalogPurchaseHouseType = "When you buy a new house type, the current one is replaced by it. To recover the old type, you'll need to buy it back. Continue?"
|
||||
|
|
|
@ -42,16 +42,11 @@ DGGGscoreLabel = 0.075
|
|||
FPvaluePos = (0, 0, -0.35)
|
||||
FPvalue = 0.05
|
||||
FPinfo = 0.055
|
||||
FSGUIdirectFrame = 0.06
|
||||
FSGUIcancelButton = 0.06
|
||||
FSGUIokButton = 0.06
|
||||
GTenterPage2Wordwrap = 13.5
|
||||
GTenterPage4Wordwrap = 16.5
|
||||
BCGjpText = 0.04
|
||||
BCGjpTextWordwrap = 10.5
|
||||
BCGnextGame = 1.71
|
||||
FSGUIokButton = 0.06
|
||||
FSGUIcancelButton = 0.06
|
||||
FPnewEntry = 0.08
|
||||
FPnewRecord = 0.08
|
||||
GPgenus = 0.045
|
||||
|
@ -286,14 +281,6 @@ TPhaveFun = 0.1
|
|||
TPjoinUs = 0.1
|
||||
TBSOSPSPenter = 0.1
|
||||
TexitButton = 0.8
|
||||
FSenterSecretTextPos = (0, 0, -0.25)
|
||||
FSgotSecretPos = (0, 0, 0.47)
|
||||
FSgetSecretButton = 0.06
|
||||
FSnextText = 1.0
|
||||
FSgetSecret = (1.55, 1, 1)
|
||||
FSok1 = (1.55, 1, 1)
|
||||
FSok2 = (0.6, 1, 1)
|
||||
FScancel = (0.6, 1, 1)
|
||||
#Some languages need to change the word order
|
||||
SellbotFactoryPosPart1 = (0, -0.25)
|
||||
SellbotFactoryScalePart1 = 0.075
|
||||
|
|
|
@ -855,7 +855,6 @@ HALLOWEEN_PROPS = 26
|
|||
HALLOWEEN_COSTUMES = 27
|
||||
DECEMBER_INVASION = 28
|
||||
APRIL_FOOLS_COSTUMES = 29
|
||||
CRASHED_LEADERBOARD = 30
|
||||
OCTOBER31_FIREWORKS = 31
|
||||
NOVEMBER19_FIREWORKS = 32
|
||||
SELLBOT_SURPRISE_1 = 33
|
||||
|
|
Loading…
Reference in a new issue