def __init__(self, air, fireworkMgr=None):
     DistributedObjectAI.DistributedObjectAI.__init__(self, air)
     self.fireworkMgr = fireworkMgr
     self.eventId = None
     self.style = None
     self.timestamp = None
     self.throwAwayShow = FireworkShow()
예제 #2
0
 def __init__(self, air, fireworkMgr=None):
     DistributedObjectAI.DistributedObjectAI.__init__(self, air)
     self.fireworkMgr = fireworkMgr
     self.eventId = None # either a holiday name constant from ToontownGlobals
                         # or a FireworkShows from PartyGlobals
     self.style = None
     self.timestamp = None
     self.throwAwayShow = FireworkShow()
 def __init__(self, air, fireworkMgr = None):
     DistributedObjectAI.DistributedObjectAI.__init__(self, air)
     self.fireworkMgr = fireworkMgr
     self.eventId = None
     self.style = None
     self.timestamp = None
     self.throwAwayShow = FireworkShow()
     return
class DistributedFireworkShowAI(DistributedObjectAI.DistributedObjectAI):
    notify = DirectNotifyGlobal.directNotify.newCategory(
        'DistributedFireworkShowAI')

    def __init__(self, air, fireworkMgr=None):
        DistributedObjectAI.DistributedObjectAI.__init__(self, air)
        self.fireworkMgr = fireworkMgr
        self.eventId = None
        self.style = None
        self.timestamp = None
        self.throwAwayShow = FireworkShow()

    def delete(self):
        del self.throwAwayShow
        taskMgr.remove(self.taskName('waitForShowDone'))
        DistributedObjectAI.DistributedObjectAI.delete(self)

    def d_startShow(self, eventId, style):
        timestamp = ClockDelta.globalClockDelta.getRealNetworkTime()
        self.eventId = eventId
        self.style = style
        self.timestamp = timestamp
        self.sendUpdate('startShow',
                        (self.eventId, self.style, self.timestamp))
        if simbase.air.config.GetBool('want-old-fireworks', 0):
            duration = getShowDuration(self.eventId, self.style)
            taskMgr.doMethodLater(duration, self.fireworkShowDone,
                                  self.taskName('waitForShowDone'))
        else:
            duration = self.throwAwayShow.getShowDuration(self.eventId)
            duration += 20.0
            taskMgr.doMethodLater(duration, self.fireworkShowDone,
                                  self.taskName('waitForShowDone'))

    def fireworkShowDone(self, task):
        self.notify.debug('fireworkShowDone')
        if self.fireworkMgr:
            self.fireworkMgr.stopShow(self.zoneId)

        return Task.done

    def requestFirework(self, x, y, z, style, color1, color2):
        avId = self.air.getAvatarIdFromSender()
        self.notify.debug('requestFirework: avId: %s, style: %s' %
                          (avId, style))
        if self.fireworkMgr:
            if self.fireworkMgr.isShowRunning(self.zoneId):
                self.d_shootFirework(x, y, z, style, color1, color2)

        else:
            self.d_shootFirework(x, y, z, style, color1, color2)

    def d_shootFirework(self, x, y, z, style, color1, color2):
        self.sendUpdate('shootFirework', (x, y, z, style, color1, color2))
class DistributedFireworkShowAI(DistributedObjectAI.DistributedObjectAI):
    notify = DirectNotifyGlobal.directNotify.newCategory('DistributedFireworkShowAI')

    def __init__(self, air, fireworkMgr = None):
        DistributedObjectAI.DistributedObjectAI.__init__(self, air)
        self.fireworkMgr = fireworkMgr
        self.eventId = None
        self.style = None
        self.timestamp = None
        self.throwAwayShow = FireworkShow()
        return

    def delete(self):
        del self.throwAwayShow
        taskMgr.remove(self.taskName('waitForShowDone'))
        DistributedObjectAI.DistributedObjectAI.delete(self)

    def d_startShow(self, eventId, style):
        timestamp = ClockDelta.globalClockDelta.getRealNetworkTime()
        self.eventId = eventId
        self.style = style
        self.timestamp = timestamp
        self.sendUpdate('startShow', (self.eventId, self.style, self.timestamp))
        if simbase.air.config.GetBool('want-old-fireworks', 0):
            duration = getShowDuration(self.eventId, self.style)
            taskMgr.doMethodLater(duration, self.fireworkShowDone, self.taskName('waitForShowDone'))
        else:
            duration = self.throwAwayShow.getShowDuration(self.eventId)
            duration += 20.0
            taskMgr.doMethodLater(duration, self.fireworkShowDone, self.taskName('waitForShowDone'))

    def fireworkShowDone(self, task):
        self.notify.debug('fireworkShowDone')
        if self.fireworkMgr:
            self.fireworkMgr.stopShow(self.zoneId)
        return Task.done

    def requestFirework(self, x, y, z, style, color1, color2):
        avId = self.air.getAvatarIdFromSender()
        self.notify.debug('requestFirework: avId: %s, style: %s' % (avId, style))
        if self.fireworkMgr:
            if self.fireworkMgr.isShowRunning(self.zoneId):
                self.d_shootFirework(x, y, z, style, color1, color2)
        else:
            self.d_shootFirework(x, y, z, style, color1, color2)

    def d_shootFirework(self, x, y, z, style, color1, color2):
        self.sendUpdate('shootFirework', (x,
         y,
         z,
         style,
         color1,
         color2))
예제 #6
0
class DistributedFireworkShowAI(DistributedObjectAI.DistributedObjectAI):

    notify = DirectNotifyGlobal.directNotify.newCategory("DistributedFireworkShowAI")

    def __init__(self, air, fireworkMgr=None):
        DistributedObjectAI.DistributedObjectAI.__init__(self, air)
        self.fireworkMgr = fireworkMgr
        self.eventId = None # either a holiday name constant from ToontownGlobals
                            # or a FireworkShows from PartyGlobals
        self.style = None
        self.timestamp = None
        self.throwAwayShow = FireworkShow()

    def delete(self):
        del self.throwAwayShow
        taskMgr.remove(self.taskName("waitForShowDone"))
        DistributedObjectAI.DistributedObjectAI.delete(self)

    def d_startShow(self, eventId, style):
        timestamp = ClockDelta.globalClockDelta.getRealNetworkTime()
        self.eventId = eventId
        self.style = style
        self.timestamp = timestamp
        self.sendUpdate("startShow",
                        (self.eventId, self.style, self.timestamp))
        if simbase.air.config.GetBool('want-old-fireworks', 0):
            duration = getShowDuration(self.eventId, self.style)
            taskMgr.doMethodLater(duration, self.fireworkShowDone, self.taskName("waitForShowDone"))
        else:
            
            duration = self.throwAwayShow.getShowDuration(self.eventId)
            
            assert( DistributedFireworkShowAI.notify.debug("startShow: event: %s, networkTime: %s, showDuration: %s" \
            % (self.eventId, self.timestamp, duration) ) )
            
            # Add the start and postShow delays and give ample time for postshow to complete
            duration += 20.0
            taskMgr.doMethodLater(duration, self.fireworkShowDone, self.taskName("waitForShowDone"))
        

    def fireworkShowDone(self, task):
        # import pdb; pdb.set_trace()
        self.notify.debug("fireworkShowDone")
        # Tell the firework manager to stop us, we are done
        if self.fireworkMgr:
            self.fireworkMgr.stopShow(self.zoneId)
        return Task.done

    def requestFirework(self, x, y, z, style, color1, color2):
        avId = self.air.getAvatarIdFromSender()
        self.notify.debug("requestFirework: avId: %s, style: %s" % (avId, style))
        # TODO: check permissions, check cost, etc
        if self.fireworkMgr:
            if self.fireworkMgr.isShowRunning(self.zoneId):
                self.d_shootFirework(x, y, z, style, color1, color2)
                # Charge the avId some jellybeans
        else:
            self.d_shootFirework(x, y, z, style, color1,color2) 

    def d_shootFirework(self, x, y, z, style, color1, color2):
        self.sendUpdate("shootFirework", (x, y, z, style, color1, color2))