from direct.showbase.DirectObject import *
import TopToonsGlobals

class TopToonsManagerAI(DirectObject):
    def __init__(self, air):
        self.air = air
        
        self.accept('topToonsManager-event', self.__handleEvent)

    def toonKilledBoss(self, av, boss):          
        cat = {'VP': TopToonsGlobals.CAT_VP,
               'CFO': TopToonsGlobals.CAT_CFO,
               'CJ': TopToonsGlobals.CAT_CJ,
               'CEO': TopToonsGlobals.CAT_CEO}.get(boss, 0)
        self.__handleEvent(av.doId, cat, 1)
            
    def __handleEvent(self, *args): # avId, categories, score
        self.air.sendNetEvent('topToonsManager-AI-score-site', list(args))
    
from otp.ai.MagicWordGlobal import *
@magicWord(types=[int, int])
def topToon(score, cat=TopToonsGlobals._CAT_ALL):
    av = spellbook.getTarget()
    mgr = av.air.topToonsMgr
    if not mgr:
        return 'No manager!'
        
    if cat > TopToonsGlobals._CAT_ALL:
        return 'Max value: %d' % TopToonsGlobals._CAT_ALL
        
    messenger.send('topToonsManager-event', [av.doId, cat, score])