def finishReload(self): newVolley = WeaponGlobals.getAttackVolley(self.skillId, self.getAmmoSkillId()) if newVolley > self.numShots and not WeaponGlobals.isInfiniteAmmo(self.getAmmoSkillId()) and not WeaponGlobals.canUseInfiniteAmmo(localAvatar.getCurrentCharm(), self.getAmmoSkillId()): newVolley = self.numShots self.setVolley(newVolley) self.showCannonDressing()
def __init__(self, cr): DistributedWeapon.DistributedWeapon.__init__(self, cr) self.ship = None self.tutorial = 0 self.prop = None self.baseVel = Vec3(0) self.mouseX = 0 self.mouseY = 0 self.setPos(0, 0, 0) self.moveCannon = 0 self.av = None self.ball = None self.ship = None self.shipId = None self.tubeNP = None self.cgui = None self.numShots = 0 self.grapplingHook = None self.cannonDressingNode = NodePath(ModelNode('dressingNode')) self._cameraState = 'Cannon' self.collisionLists = {} self.listening = False self.skillId = InventoryType.CannonShoot self.reloadTime = 0 self.rechargeTime = 0 self.volley = WeaponGlobals.getAttackVolley(self.skillId, self.getAmmoSkillId()) self.modeFSM = ClassicFSM.ClassicFSM('modeFSM', [ State.State('off', self.enterOff, self.exitOff), State.State('fireCannon', self.enterFireCannon, self.exitFireCannon), State.State('tutorialCutscene', self.enterTutorialCutscene, self.exitTutorialCutscene) ], 'off', 'off') self.modeFSM.enterInitialState() self.aimAITrack = None self.headingNode = NodePath('dummy') OTPRender.renderReflection(False, self, 'p_cannon', None) if not self.emptySound: DistributedPCCannon.emptySound = loadSfx( SoundGlobals.SFX_WEAPON_CANNON_EMPTY) self.fireSubframeCall = None self.__invRequest = None self.shotNum = -1 return
def __init__(self, cr): DistributedWeapon.DistributedWeapon.__init__(self, cr) self.ship = None self.tutorial = 0 self.prop = None self.baseVel = Vec3(0) self.mouseX = 0 self.mouseY = 0 self.setPos(0, 0, 0) self.moveCannon = 0 self.av = None self.ball = None self.ship = None self.shipId = None self.tubeNP = None self.cgui = None self.numShots = 0 self.grapplingHook = None self.cannonDressingNode = NodePath(ModelNode('dressingNode')) self._cameraState = 'Cannon' self.collisionLists = { } self.listening = False self.skillId = InventoryType.CannonShoot self.reloadTime = 0 self.rechargeTime = 0 self.volley = WeaponGlobals.getAttackVolley(self.skillId, self.getAmmoSkillId()) self.modeFSM = ClassicFSM.ClassicFSM('modeFSM', [ State.State('off', self.enterOff, self.exitOff), State.State('fireCannon', self.enterFireCannon, self.exitFireCannon), State.State('tutorialCutscene', self.enterTutorialCutscene, self.exitTutorialCutscene)], 'off', 'off') self.modeFSM.enterInitialState() self.aimAITrack = None self.headingNode = NodePath('dummy') OTPRender.renderReflection(False, self, 'p_cannon', None) if not self.emptySound: DistributedPCCannon.emptySound = loadSfx(SoundGlobals.SFX_WEAPON_CANNON_EMPTY) self.fireSubframeCall = None self._DistributedPCCannon__invRequest = None self.shotNum = -1