oldschool-toontown/toontown/suit/DistributedTutorialSuitAI.py

55 lines
No EOL
2.1 KiB
Python

from otp.ai.AIBaseGlobal import *
from direct.directnotify import DirectNotifyGlobal
from toontown.battle import SuitBattleGlobals
from . import DistributedSuitBaseAI
class DistributedTutorialSuitAI(DistributedSuitBaseAI.DistributedSuitBaseAI):
notify = DirectNotifyGlobal.directNotify.newCategory(
'DistributedTutorialSuitAI')
def __init__(self, air, suitPlanner):
"""__init__(air, suitPlanner)"""
DistributedSuitBaseAI.DistributedSuitBaseAI.__init__(self, air,
suitPlanner)
def delete(self):
DistributedSuitBaseAI.DistributedSuitBaseAI.delete(self)
self.ignoreAll()
def requestBattle(self, x, y, z, h, p, r):
"""requestBattle(x, y, z, h, p, r)
"""
toonId = self.air.getAvatarIdFromSender()
if self.notify.getDebug():
self.notify.debug( str( self.getDoId() ) + \
str( self.zoneId ) + \
': request battle with toon: %d' % toonId )
# Store the suit's actual pos and hpr on the client
self.confrontPos = Point3(x, y, z)
self.confrontHpr = Vec3(h, p, r)
# Request a battle from the suit planner
if (self.sp.requestBattle(self.zoneId, self, toonId)):
self.acceptOnce(self.getDeathEvent(), self._logDeath, [toonId])
if self.notify.getDebug():
self.notify.debug( "Suit %d requesting battle in zone %d" %
(self.getDoId(), self.zoneId) )
else:
# Suit tells toon to get lost
if self.notify.getDebug():
self.notify.debug('requestBattle from suit %d - denied by battle manager' % (self.getDoId()))
self.b_setBrushOff(SuitDialog.getBrushOffIndex(self.getStyleName()))
self.d_denyBattle( toonId )
def getConfrontPosHpr(self):
""" getConfrontPosHpr()
"""
return (self.confrontPos, self.confrontHpr)
def _logDeath(self, toonId):
self.air.writeServerEvent('beatFirstCog', toonId, '')