From 4d29d2cbc28c04e61c29f925fa9c8426f2b96e65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Lemaire?= Date: Wed, 28 Jan 2015 01:00:00 +0100 Subject: [PATCH] Added AP usage checking on weapons --- src/scripts/game/actions/FireWeaponAction.ts | 2 +- src/scripts/game/specs/AbstractWeapon.spec.ts | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) 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());