Toggling shield and boosters updates shield strength

This commit is contained in:
Colin McLeod
2015-06-16 15:27:41 -07:00
parent 0fd4a8395e
commit f3af0f3a99

View File

@@ -238,11 +238,22 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
}; };
Ship.prototype.setSlotEnabled = function(slot, enabled) { Ship.prototype.setSlotEnabled = function(slot, enabled) {
if (slot.enabled != enabled && slot.c) { // Enabled state is changing if (slot.enabled != enabled) { // Enabled state is changing
slot.enabled = enabled;
if (slot.c) {
this.priorityBands[slot.priority][powerUsageType(slot, slot.c)] += enabled ? slot.c.power : -slot.c.power; this.priorityBands[slot.priority][powerUsageType(slot, slot.c)] += enabled ? slot.c.power : -slot.c.power;
if (slot.c.grp == 'sg') {
this.updateShieldStrength();
}
else if (slot.c.grp == 'sb') {
this.shieldMultiplier += slot.c.shieldmul * (enabled ? 1 : -1);
this.updateShieldStrength();
}
this.updatePower(); this.updatePower();
} }
slot.enabled = enabled; }
}; };
Ship.prototype.getSlotStatus = function(slot, deployed) { Ship.prototype.getSlotStatus = function(slot, deployed) {
@@ -277,7 +288,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
this.armourAdded -= old.armouradd; this.armourAdded -= old.armouradd;
break; break;
case 'sb': case 'sb':
this.shieldMultiplier -= old.shieldmul; this.shieldMultiplier -= slot.enabled ? old.shieldmul : 0;
break; break;
} }
@@ -307,7 +318,7 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
this.armourAdded += n.armouradd; this.armourAdded += n.armouradd;
break; break;
case 'sb': case 'sb':
this.shieldMultiplier += n.shieldmul; this.shieldMultiplier += slot.enabled ? n.shieldmul : 0;
break; break;
} }
@@ -351,7 +362,8 @@ angular.module('shipyard').factory('Ship', ['Components', 'calcShieldStrength',
Ship.prototype.updateShieldStrength = function() { Ship.prototype.updateShieldStrength = function() {
var sgSlot = this.findInternalByGroup('sg'); // Find Shield Generator slot Index if any var sgSlot = this.findInternalByGroup('sg'); // Find Shield Generator slot Index if any
this.shieldStrength = sgSlot ? calcShieldStrength(this.mass, this.shields, sgSlot.c, this.shieldMultiplier) : 0; this.shieldStrength = sgSlot && sgSlot.enabled ? calcShieldStrength(this.mass, this.shields, sgSlot.c, this.shieldMultiplier) : 0;
console.log(this.shieldStrength);
}; };
/** /**