public virtual void TakeDamage(double amount) { Sounds.GetLinkHurtSound().Play(); double actual = amount * (1.0 - Resistance); CurrentHearts -= actual; if (CurrentHearts < 0.01) // close enough to 0 for a double { Sounds.GetLinkDieSound().Play(); this.State = new GreenLinkDeadState(this); game.LoseGame(); } else { game.rooms[game.roomIndex].Players[ID] = new DamagedLink(this); } }