55 lines
No EOL
2.1 KiB
Python
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, '') |