def setIval(self, ival, start=False, offset=0):
     CannonballProjectile.setIval(self, ival, start, offset)
     if self.ammoSkillId == InventoryType.DefenseCannonTargetedShot:
         if self.target == None:
             taskMgr.doMethodLater(0.05, self.findTarget,
                                   self.uniqueName('findTarget'))
     return
 def destroy(self):
     if self.model:
         self.model.clearPythonTag('DefenseAmmo')
     if taskMgr.hasTaskNamed(self.uniqueName('findTarget')):
         taskMgr.remove(self.uniqueName('findTarget'))
     if taskMgr.hasTaskNamed(self.uniqueName('updateTarget')):
         taskMgr.remove(self.uniqueName('updateTarget'))
     if taskMgr.hasTaskNamed(self.uniqueName('sinkFloatingAmmo')):
         taskMgr.remove(self.uniqueName('sinkFloatingAmmo'))
     if self.areaCollSphere and not self.areaCollSphere.isEmpty():
         self.areaCollSphere.detachNode()
     CannonballProjectile.destroy(self)
 def __init__(self, cr, ammoSkillId, event, buffs=[]):
     CannonballProjectile.__init__(self, cr, ammoSkillId, event, buffs)
     self.hitWater = False
     self.lockedPos = False
     self.singleEffect = None
     self.target = None
     self.getWorldPos = False
     self.areaCollSphere = None
     self.lastPos = None
     self.direction = None
     self.duration = 1.5
     self.collisionRadiusScale = 1
     self.collisionPosOffset = 50
     self.hitByAmmoEvent = None
Exemplo n.º 4
0
 def getProjectile(self, ammoSkillId, projectileHitEvent, buffs = []):
     cannonball = CannonballProjectile(self.cr, ammoSkillId, projectileHitEvent, buffs)
     cannonball.reparentTo(render)
     cannonball.setHpr(self.hNode.getH(render), self.hNode.getP(render), 0)
     return cannonball