toontown-just-works/toontown/town/TownBattleAttackPanel.py
2024-07-07 18:08:39 -05:00

77 lines
2.5 KiB
Python

from panda3d.core import *
from direct.directnotify import DirectNotifyGlobal
import string
from direct.fsm import StateData
AttackPanelHidden = 0
def hideAttackPanel(flag):
global AttackPanelHidden
AttackPanelHidden = flag
messenger.send('hide-attack-panel')
class TownBattleAttackPanel(StateData.StateData):
notify = DirectNotifyGlobal.directNotify.newCategory('TownBattleAttackPanel')
def __init__(self, doneEvent):
StateData.StateData.__init__(self, doneEvent)
def load(self):
StateData.StateData.load(self)
def unload(self):
StateData.StateData.unload(self)
def enter(self):
StateData.StateData.enter(self)
if not AttackPanelHidden:
base.localAvatar.inventory.show()
self.accept('inventory-selection', self.__handleInventory)
self.accept('inventory-run', self.__handleRun)
self.accept('inventory-sos', self.__handleSOS)
self.accept('inventory-pass', self.__handlePass)
self.accept('inventory-fire', self.__handleFire)
self.accept('hide-attack-panel', self.__handleHide)
return
def exit(self):
StateData.StateData.exit(self)
self.ignore('inventory-selection')
self.ignore('inventory-run')
self.ignore('inventory-sos')
self.ignore('inventory-pass')
self.ignore('inventory-fire')
self.ignore('hide-attack-panel')
base.localAvatar.inventory.hide()
def __handleRun(self):
doneStatus = {'mode': 'Run'}
messenger.send(self.doneEvent, [doneStatus])
def __handleSOS(self):
doneStatus = {'mode': 'SOS'}
messenger.send(self.doneEvent, [doneStatus])
def __handlePass(self):
doneStatus = {'mode': 'Pass'}
messenger.send(self.doneEvent, [doneStatus])
def __handleFire(self):
doneStatus = {'mode': 'Fire'}
messenger.send(self.doneEvent, [doneStatus])
def __handleInventory(self, track, level):
if base.localAvatar.inventory.numItem(track, level) > 0:
doneStatus = {}
doneStatus['mode'] = 'Inventory'
doneStatus['track'] = track
doneStatus['level'] = level
messenger.send(self.doneEvent, [doneStatus])
else:
self.notify.error("An item we don't have: track %s level %s was selected." % [track, level])
def __handleHide(self):
if AttackPanelHidden:
base.localAvatar.inventory.hide()
else:
base.localAvatar.inventory.show()