public void ConsumeHp(int amount) { Stats.Decrease(PlayerStatId.Hp, amount); // TODO: merge regen updates with larger packets if (HpRegenThread == null || HpRegenThread.IsCompleted) { HpRegenThread = StartRegen(PlayerStatId.Hp, PlayerStatId.HpRegen, PlayerStatId.HpRegenTime); } }
public void ConsumeHp(int amount) { if (amount <= 0) { return; } lock (Stats) { PlayerStat stat = Stats[PlayerStatId.Hp]; Stats.Decrease(PlayerStatId.Hp, Math.Min(amount, stat.Current)); } if (HpRegenThread == null || HpRegenThread.IsCompleted) { HpRegenThread = StartRegen(PlayerStatId.Hp, PlayerStatId.HpRegen, PlayerStatId.HpRegenTime); } }