77 lines
2.5 KiB
Python
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()
|