diff --git a/src/scripts/game/actions/FireWeaponAction.ts b/src/scripts/game/actions/FireWeaponAction.ts index ffaeff0..97c7388 100644 --- a/src/scripts/game/actions/FireWeaponAction.ts +++ b/src/scripts/game/actions/FireWeaponAction.ts @@ -15,7 +15,7 @@ module SpaceTac.Game { } canBeUsed(battle: Battle, ship: Ship): boolean { - return ship.ap_current.current > 0; + return ship.ap_current.current >= this.equipment.ap_usage; } checkLocationTarget(battle: Battle, ship: Ship, target: Target): Target { diff --git a/src/scripts/game/specs/AbstractWeapon.spec.ts b/src/scripts/game/specs/AbstractWeapon.spec.ts index 886255d..a9cc309 100644 --- a/src/scripts/game/specs/AbstractWeapon.spec.ts +++ b/src/scripts/game/specs/AbstractWeapon.spec.ts @@ -34,6 +34,25 @@ module SpaceTac.Game.Specs { expect(action.can_target_space).toBe(false); }); + it("can't fire without sufficient AP", function () { + var ship = new Ship(); + ship.ap_current.set(3); + + var weapon = new Equipments.AbstractWeapon("Super Fire Weapon", 50); + + weapon.ap_usage = new Range(2); + var equipment = weapon.generateFixed(0); + expect(equipment.action.canBeUsed(null, ship)).toBe(true); + + weapon.ap_usage = new Range(3); + equipment = weapon.generateFixed(0); + expect(equipment.action.canBeUsed(null, ship)).toBe(true); + + weapon.ap_usage = new Range(4); + equipment = weapon.generateFixed(0); + expect(equipment.action.canBeUsed(null, ship)).toBe(false); + }); + it("can't friendly fire", function () { var fleet1 = new Fleet(new Player()); var fleet2 = new Fleet(new Player());