2022-12-16 18:40:57 -06:00
|
|
|
from panda3d.core import *
|
2019-11-02 17:27:54 -05:00
|
|
|
from direct.interval.IntervalGlobal import *
|
2019-12-30 00:07:56 -06:00
|
|
|
from . import SafeZoneLoader
|
|
|
|
from . import BRPlayground
|
2019-11-02 17:27:54 -05:00
|
|
|
from toontown.battle import BattleParticles
|
|
|
|
|
|
|
|
class BRSafeZoneLoader(SafeZoneLoader.SafeZoneLoader):
|
|
|
|
SnowFadeLerpTime = 2.0
|
|
|
|
|
|
|
|
def __init__(self, hood, parentFSM, doneEvent):
|
|
|
|
SafeZoneLoader.SafeZoneLoader.__init__(self, hood, parentFSM, doneEvent)
|
|
|
|
self.playgroundClass = BRPlayground.BRPlayground
|
2020-01-14 13:28:52 -06:00
|
|
|
self.musicFile = 'phase_8/audio/bgm/TB_nbrhood.ogg'
|
|
|
|
self.activityMusicFile = 'phase_8/audio/bgm/TB_SZ_activity.ogg'
|
2019-11-02 17:27:54 -05:00
|
|
|
self.dnaFile = 'phase_8/dna/the_burrrgh_sz.dna'
|
|
|
|
self.safeZoneStorageDNAFile = 'phase_8/dna/storage_BR_sz.dna'
|
|
|
|
|
|
|
|
def load(self):
|
|
|
|
SafeZoneLoader.SafeZoneLoader.load(self)
|
2020-01-14 13:28:52 -06:00
|
|
|
self.wind1Sound = base.loader.loadSfx('phase_8/audio/sfx/SZ_TB_wind_1.ogg')
|
|
|
|
self.wind2Sound = base.loader.loadSfx('phase_8/audio/sfx/SZ_TB_wind_2.ogg')
|
|
|
|
self.wind3Sound = base.loader.loadSfx('phase_8/audio/sfx/SZ_TB_wind_3.ogg')
|
2019-11-02 17:27:54 -05:00
|
|
|
self.snow = BattleParticles.loadParticleFile('snowdisk.ptf')
|
|
|
|
self.snow.setPos(0, 0, 5)
|
|
|
|
self.snowRender = self.geom.attachNewNode('snowRender')
|
|
|
|
self.snowRender.setDepthWrite(0)
|
|
|
|
self.snowRender.setBin('fixed', 1)
|
|
|
|
self.snowFade = None
|
|
|
|
return
|
|
|
|
|
|
|
|
def unload(self):
|
|
|
|
del self.wind1Sound
|
|
|
|
del self.wind2Sound
|
|
|
|
del self.wind3Sound
|
|
|
|
del self.snow
|
|
|
|
del self.snowRender
|
|
|
|
SafeZoneLoader.SafeZoneLoader.unload(self)
|
|
|
|
|
|
|
|
def enter(self, requestStatus):
|
|
|
|
SafeZoneLoader.SafeZoneLoader.enter(self, requestStatus)
|
|
|
|
self.snow.start(camera, self.snowRender)
|
|
|
|
self.accept('enterigloo-interior', self.enterIgloo)
|
|
|
|
self.accept('exitigloo-interior', self.exitIgloo)
|
|
|
|
|
|
|
|
def exit(self):
|
|
|
|
self.ignore('enterigloo-interior')
|
|
|
|
self.ignore('exitigloo-interior')
|
|
|
|
self.resetSnowLerp()
|
|
|
|
self.snow.cleanup()
|
|
|
|
SafeZoneLoader.SafeZoneLoader.exit(self)
|
|
|
|
|
|
|
|
def enterIgloo(self, entry):
|
|
|
|
self.fadeOutSnow()
|
|
|
|
|
|
|
|
def exitIgloo(self, entry):
|
|
|
|
self.fadeInSnow()
|
|
|
|
|
|
|
|
def resetSnowLerp(self):
|
|
|
|
if self.snowFade != None:
|
|
|
|
self.snowFade.stop()
|
|
|
|
self.snowFade = None
|
|
|
|
return
|
|
|
|
|
|
|
|
def fadeInSnow(self):
|
|
|
|
self.resetSnowLerp()
|
|
|
|
currentScale = self.snowRender.getColorScale()[3]
|
|
|
|
ivals = [LerpFunctionInterval(self.snowRender.setAlphaScale, fromData=currentScale, toData=1.0, duration=self.SnowFadeLerpTime), FunctionInterval(self.snowRender.clearColorScale)]
|
|
|
|
self.snowFade = Track(ivals, 'snow-fade')
|
|
|
|
self.snowFade.play()
|
|
|
|
|
|
|
|
def fadeOutSnow(self):
|
|
|
|
self.resetSnowLerp()
|
|
|
|
currentScale = self.snowRender.getColorScale()[3]
|
|
|
|
ivals = [LerpFunctionInterval(self.snowRender.setAlphaScale, fromData=currentScale, toData=0.0, duration=self.SnowFadeLerpTime)]
|
|
|
|
self.snowFade = Track(ivals, 'snow-fade')
|
|
|
|
self.snowFade.play()
|