私は船体とシールドを持っており、損傷したときにダメージを受けて最初にシールドから差し引き、それが空のときに船体から取るようにしたい. しかし、シールドの残りが 100 でダメージが 400 の場合、1000 で開始した場合の船体は 700 になります。
ここでなんとかできたのは、シールド部分は機能しますが、船体アルゴリズムが難しすぎて把握できません。
Player.prototype.deductHealth = function(damage)
{
var shield = (this.PlayerShield - damage);
var remainder = (damage - this.PlayerShield);
var hull = this.PlayerHull;
if(this.PlayerShield < 0)
{
hull = (this.PlayerHull - remainder);
}
if(hull <=0)
{
hull = 0;
shield = 0;
}
this.PlayerHull = hull;
this.PlayerShield = shield;
}