Ejemplo n.º 1
0
class DistributedBankInteriorAI(DistributedObjectAI):
    def __init__(self, block, air, zoneId):
        DistributedObjectAI.__init__(self, air)

        self.block = block
        self.zoneId = zoneId

        self.bankCollectable = None

    def announceGenerate(self):
        DistributedObjectAI.announceGenerate(self)

        self.sendUpdate('setState', ['vaultClosed', 0])

        delay = 3600 - (int(time.time()) % 3600)  # Time until the next hour.
        taskMgr.doMethodLater(delay, self.createBankCollectable, 'createBankCollectable')

    def getZoneIdAndBlock(self):
        return [self.zoneId, self.block]

    def __handleDeleteBankCollectable(self, task):
        if self.bankCollectable is not None:
            self.bankCollectable.requestDelete()
            self.bankCollectable = None

        self.sendUpdate('setState', ['vaultClosing', globalClockDelta.getRealNetworkTime()])
        taskMgr.doMethodLater(5, self.closedTask, self.uniqueName('closedTask'))

        return Task.done

    def createBankCollectable(self, task=None):
        self.bankCollectable = DistributedBankCollectableAI(self.air)
        self.bankCollectable.generateWithRequired(self.zoneId)

        self.sendUpdate('setState', ['vaultOpening', globalClockDelta.getRealNetworkTime()])
        taskMgr.doMethodLater(5, self.openedTask, self.uniqueName('openedTask'))

        taskMgr.doMethodLater(3600, self.createBankCollectable, 'createBankCollectable')
        taskMgr.doMethodLater(60, self.__handleDeleteBankCollectable, 'deleteBankCollectable')

        if task is not None:
            return Task.done

    def closedTask(self, task):
        self.sendUpdate('setState', ['vaultClosed', 0])
        return Task.done

    def openedTask(self, task):
        self.sendUpdate('setState', ['vaultOpen', 0])
        return Task.done
    def createBankCollectable(self, task=None):
        self.bankCollectable = DistributedBankCollectableAI(self.air)
        self.bankCollectable.generateWithRequired(self.zoneId)

        self.sendUpdate(
            'setState',
            ['vaultOpening',
             globalClockDelta.getRealNetworkTime()])
        taskMgr.doMethodLater(5, self.openedTask,
                              self.uniqueName('openedTask'))

        taskMgr.doMethodLater(3600, self.createBankCollectable,
                              'createBankCollectable')
        taskMgr.doMethodLater(60, self.__handleDeleteBankCollectable,
                              'deleteBankCollectable')

        if task is not None:
            return Task.done
Ejemplo n.º 3
0
    def createBankCollectable(self, task=None):
        self.bankCollectable = DistributedBankCollectableAI(self.air)
        self.bankCollectable.generateWithRequired(self.zoneId)

        self.sendUpdate('setState', ['vaultOpening', globalClockDelta.getRealNetworkTime()])
        taskMgr.doMethodLater(5, self.openedTask, self.uniqueName('openedTask'))

        taskMgr.doMethodLater(3600, self.createBankCollectable, 'createBankCollectable')
        taskMgr.doMethodLater(60, self.__handleDeleteBankCollectable, 'deleteBankCollectable')

        if task is not None:
            return Task.done
class DistributedBankInteriorAI(DistributedObjectAI):
    def __init__(self, block, air, zoneId):
        DistributedObjectAI.__init__(self, air)

        self.block = block
        self.zoneId = zoneId

        self.bankCollectable = None

    def announceGenerate(self):
        DistributedObjectAI.announceGenerate(self)

        self.sendUpdate('setState', ['vaultClosed', 0])

        delay = 3600 - (int(time.time()) % 3600)  # Time until the next hour.
        taskMgr.doMethodLater(delay, self.createBankCollectable,
                              'createBankCollectable')

    def getZoneIdAndBlock(self):
        return [self.zoneId, self.block]

    def __handleDeleteBankCollectable(self, task):
        if self.bankCollectable is not None:
            self.bankCollectable.requestDelete()
            self.bankCollectable = None

        self.sendUpdate(
            'setState',
            ['vaultClosing',
             globalClockDelta.getRealNetworkTime()])
        taskMgr.doMethodLater(5, self.closedTask,
                              self.uniqueName('closedTask'))

        return Task.done

    def createBankCollectable(self, task=None):
        self.bankCollectable = DistributedBankCollectableAI(self.air)
        self.bankCollectable.generateWithRequired(self.zoneId)

        self.sendUpdate(
            'setState',
            ['vaultOpening',
             globalClockDelta.getRealNetworkTime()])
        taskMgr.doMethodLater(5, self.openedTask,
                              self.uniqueName('openedTask'))

        taskMgr.doMethodLater(3600, self.createBankCollectable,
                              'createBankCollectable')
        taskMgr.doMethodLater(60, self.__handleDeleteBankCollectable,
                              'deleteBankCollectable')

        if task is not None:
            return Task.done

    def closedTask(self, task):
        self.sendUpdate('setState', ['vaultClosed', 0])
        return Task.done

    def openedTask(self, task):
        self.sendUpdate('setState', ['vaultOpen', 0])
        return Task.done