def changeAmmo(self, amt=1): if amt == 0: return None keepChanging = True ammoSkillId = self.getAmmoSkillId() while keepChanging: ammoSkillId += amt if ammoSkillId > InventoryType.CannonGrappleHook: ammoSkillId = InventoryType.CannonRoundShot if ammoSkillId < InventoryType.begin_WeaponSkillCannon + 1: ammoSkillId = InventoryType.CannonGrappleHook inv = base.localAvatar.getInventory() if ammoSkillId > InventoryType.CannonBullet: keepChanging = False if inv and inv.getStackQuantity(ammoSkillId) >= 2: keepChanging = False if WeaponGlobals.isInfiniteAmmo( ammoSkillId) or WeaponGlobals.canUseInfiniteAmmo( localAvatar.getCurrentCharm(), ammoSkillId): keepChanging = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(ammoSkillId): keepChanging = True WeaponGlobals.canFreeUse(ammoSkillId) self.setAmmoSkillId(ammoSkillId) del ammoSkillId if WeaponGlobals.isInfiniteAmmo( self.getAmmoSkillId()) or WeaponGlobals.canUseInfiniteAmmo( localAvatar.getCurrentCharm(), self.getAmmoSkillId()): self.cgui.setAmmoLeft(-1, -1) elif inv: ammoInvId = WeaponGlobals.getSkillAmmoInventoryId( self.getAmmoSkillId()) self.numShots = inv.getStackQuantity(ammoInvId) maxShots = inv.getStackLimit(ammoInvId) self.cgui.setAmmoLeft(self.numShots, maxShots) self.cgui.setAmmoId(self.getAmmoSkillId()) self.updateCannonDressing() self.hideCannonDressing() self.setVolley(0)
def changeAmmo(self, amt = 1): if amt == 0: return None keepChanging = True ammoSkillId = self.getAmmoSkillId() while keepChanging: ammoSkillId += amt if ammoSkillId > InventoryType.CannonGrappleHook: ammoSkillId = InventoryType.CannonRoundShot if ammoSkillId < InventoryType.begin_WeaponSkillCannon + 1: ammoSkillId = InventoryType.CannonGrappleHook inv = base.localAvatar.getInventory() if ammoSkillId > InventoryType.CannonBullet: keepChanging = False if inv and inv.getStackQuantity(ammoSkillId) >= 2: keepChanging = False if WeaponGlobals.isInfiniteAmmo(ammoSkillId) or WeaponGlobals.canUseInfiniteAmmo(localAvatar.getCurrentCharm(), ammoSkillId): keepChanging = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(ammoSkillId): keepChanging = True WeaponGlobals.canFreeUse(ammoSkillId) self.setAmmoSkillId(ammoSkillId) del ammoSkillId if WeaponGlobals.isInfiniteAmmo(self.getAmmoSkillId()) or WeaponGlobals.canUseInfiniteAmmo(localAvatar.getCurrentCharm(), self.getAmmoSkillId()): self.cgui.setAmmoLeft(-1, -1) elif inv: ammoInvId = WeaponGlobals.getSkillAmmoInventoryId(self.getAmmoSkillId()) self.numShots = inv.getStackQuantity(ammoInvId) maxShots = inv.getStackLimit(ammoInvId) self.cgui.setAmmoLeft(self.numShots, maxShots) self.cgui.setAmmoId(self.getAmmoSkillId()) self.updateCannonDressing() self.hideCannonDressing() self.setVolley(0)