Poodletooth-iLand/toontown/battle/MovieSOS.py

49 lines
1.6 KiB
Python
Raw Normal View History

2015-03-03 16:10:12 -06:00
from direct.directnotify import DirectNotifyGlobal
from direct.interval.IntervalGlobal import *
from panda3d.core import *
2015-03-03 16:10:12 -06:00
import MovieCamera
from toontown.chat.ChatGlobals import *
from toontown.nametag.NametagGlobals import *
from toontown.toonbase import TTLocalizer
notify = DirectNotifyGlobal.directNotify.newCategory('MovieSOS')
def doSOSs(calls):
if len(calls) == 0:
return (None, None)
def callerFunc(toon, handle):
toon.setChatAbsolute(TTLocalizer.MovieSOSCallHelp % handle.getName(), CFSpeech | CFTimeout)
2015-05-11 14:05:59 -05:00
handle.d_battleSOS(handle.doId)
2015-03-03 16:10:12 -06:00
def calleeFunc(toon, handle):
toon.setChatAbsolute(TTLocalizer.MovieSOSCallHelp % handle.getName(), CFSpeech | CFTimeout)
def observerFunc(toon):
toon.setChatAbsolute(TTLocalizer.MovieSOSObserverHelp, CFSpeech | CFTimeout)
mtrack = Sequence()
for c in calls:
toon = c['toon']
targetType = c['targetType']
handle = c['target']
mtrack.append(Wait(0.5))
if targetType == 'observer':
ival = Func(observerFunc, toon)
elif targetType == 'caller':
ival = Func(callerFunc, toon, handle)
elif targetType == 'callee':
ival = Func(calleeFunc, toon, handle)
else:
notify.error('invalid target type: %s' % targetType)
mtrack.append(ival)
mtrack.append(Wait(2.0))
notify.debug('toon: %s calls for help' % toon.getName())
camDuration = mtrack.getDuration()
camTrack = MovieCamera.chooseSOSShot(toon, camDuration)
return (mtrack, camTrack)