mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2024-12-25 12:42:41 -06:00
59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
|
from direct.directnotify import DirectNotifyGlobal
|
||
|
from toontown.estate.DistributedFurnitureItemAI import DistributedFurnitureItemAI
|
||
|
from direct.distributed import ClockDelta
|
||
|
from BankGlobals import *
|
||
|
|
||
|
class DistributedBankAI(DistributedFurnitureItemAI):
|
||
|
notify = DirectNotifyGlobal.directNotify.newCategory("DistributedBankAI")
|
||
|
|
||
|
def __init__(self, air, furnitureMgr, catalogItem, ownerId):
|
||
|
DistributedFurnitureItemAI.__init__(self, air, furnitureMgr, catalogItem)
|
||
|
self.ownerId = ownerId
|
||
|
self.busy = 0
|
||
|
|
||
|
def avatarEnter(self):
|
||
|
avId = self.air.getAvatarIdFromSender()
|
||
|
|
||
|
if not self.busy:
|
||
|
if avId == self.ownerId:
|
||
|
self.sendBankMovie(avId)
|
||
|
else:
|
||
|
self.sendNotOwnerMovie(avId)
|
||
|
|
||
|
self.acceptOnce(self.air.getAvatarExitEvent(avId),
|
||
|
self.__handleUnexpectedExit)
|
||
|
|
||
|
def freeAvatar(self):
|
||
|
self.sendExitMovie()
|
||
|
self.sendClearMovie()
|
||
|
|
||
|
def setMovie(self, mode, avId):
|
||
|
self.sendUpdate('setMovie', args=[mode,
|
||
|
avId, ClockDelta.globalClockDelta.getRealNetworkTime()])
|
||
|
|
||
|
def sendBankMovie(self, avId):
|
||
|
self.setMovie(BANK_MOVIE_GUI, avId)
|
||
|
self.busy = avId
|
||
|
|
||
|
def sendNotOwnerMovie(self, avId):
|
||
|
self.setMovie(BANK_MOVIE_NOT_OWNER, avId)
|
||
|
|
||
|
def sendExitMovie(self):
|
||
|
self.setMovie(BANK_MOVIE_WITHDRAW, self.busy)
|
||
|
|
||
|
def sendClearMovie(self):
|
||
|
self.setMovie(BANK_MOVIE_CLEAR, self.busy)
|
||
|
self.busy = 0
|
||
|
|
||
|
def transferMoney(self, amount):
|
||
|
av = self.air.doId2do.get(self.busy)
|
||
|
if not av:
|
||
|
return
|
||
|
|
||
|
av.b_setBankMoney(min(av.getBankMoney() + amount, av.getMaxBankMoney()))
|
||
|
av.b_setMoney(max(av.getMoney() - amount, 0))
|
||
|
self.freeAvatar()
|
||
|
|
||
|
def __handleUnexpectedExit(self):
|
||
|
self.busy = 0
|