1
0
Fork 0

actionbar: Fixed move actions not always be first

This commit is contained in:
Michaël Lemaire 2017-09-18 01:12:51 +02:00
parent 7a99f97b00
commit 8be89b1825
4 changed files with 27 additions and 17 deletions

View file

@ -105,20 +105,24 @@ module TS.SpaceTac.Specs {
expect(actions[0].code).toEqual("endturn");
slot = ship.addSlot(SlotType.Engine);
equipment = new Equipment();
equipment.slot_type = slot.type;
equipment = new Equipment(slot.type);
equipment.action = new MoveAction(equipment);
slot.attach(equipment);
slot = ship.addSlot(SlotType.Weapon);
equipment = new Equipment();
equipment.slot_type = slot.type;
equipment = new Equipment(slot.type);
slot.attach(equipment);
slot = ship.addSlot(SlotType.Power);
equipment = new Equipment(slot.type);
equipment.action = new FireWeaponAction(equipment);
slot.attach(equipment);
actions = ship.getAvailableActions();
expect(actions.length).toBe(2);
expect(actions.length).toBe(3);
expect(actions[0].code).toEqual("move");
expect(actions[1].code).toEqual("endturn");
expect(actions[1].code).toEqual("fire-equipment");
expect(actions[2].code).toEqual("endturn");
});
it("applies permanent effects of equipments on attributes", function () {

View file

@ -124,17 +124,23 @@ module TS.SpaceTac {
return this.fleet.battle;
}
// Get the list of actions available
// This list does not filter out actions unavailable due to insufficient AP, it only filters out
// actions that are not allowed/available at all on the ship
/**
* Get the list of actions available
*
* This list does not filter out actions unavailable due to insufficient AP, it only filters out actions that
* are not allowed/available at all on the ship
*/
getAvailableActions(): BaseAction[] {
var actions: BaseAction[] = [];
if (this.alive) {
this.slots.forEach((slot: Slot) => {
if (slot.attached && slot.attached.action && slot.attached.action.code != "nothing") {
actions.push(slot.attached.action);
}
let slots = [SlotType.Engine, SlotType.Power, SlotType.Hull, SlotType.Shield, SlotType.Weapon];
slots.forEach(slot => {
this.listEquipment(slot).forEach(equipment => {
if (equipment.action.code != "nothing") {
actions.push(equipment.action)
}
});
});
}

View file

@ -36,7 +36,7 @@ module TS.SpaceTac.Equipments {
expect(equipment.price).toEqual(124);
equipment = template.generate(2);
expect(equipment.requirements).toEqual({ "skill_materials": 3 });
expect(equipment.requirements).toEqual({ "skill_materials": 5 });
expect(equipment.effects).toEqual([
new AttributeEffect("hull_capacity", 182),
new AttributeEffect("maneuvrability", -3),
@ -44,7 +44,7 @@ module TS.SpaceTac.Equipments {
expect(equipment.price).toEqual(434);
equipment = template.generate(3);
expect(equipment.requirements).toEqual({ "skill_materials": 5 });
expect(equipment.requirements).toEqual({ "skill_materials": 8 });
expect(equipment.effects).toEqual([
new AttributeEffect("hull_capacity", 244),
new AttributeEffect("maneuvrability", -5),
@ -52,7 +52,7 @@ module TS.SpaceTac.Equipments {
expect(equipment.price).toEqual(1054);
equipment = template.generate(10);
expect(equipment.requirements).toEqual({ "skill_materials": 24 });
expect(equipment.requirements).toEqual({ "skill_materials": 50 });
expect(equipment.effects).toEqual([
new AttributeEffect("hull_capacity", 972),
new AttributeEffect("maneuvrability", -19),

View file

@ -14,7 +14,7 @@ module TS.SpaceTac.Equipments {
constructor() {
super(SlotType.Hull, "Hard Coated Hull", "Hardened hull, with titanium coating", 124);
this.setSkillsRequirements({ "skill_materials": leveled(2, 1.4) });
this.setSkillsRequirements({ "skill_materials": leveled(2, 3) });
this.addAttributeEffect("hull_capacity", leveled(130));
this.addAttributeEffect("maneuvrability", leveled(-2, -1));
}