public virtual void ChangeStats(CombatStatsType state, int valor) { switch ((int)state) { case 0: MaxHp += valor; if (MaxHp < 0) { MaxHp = 0; } if (MaxHp < HP) { HP = MaxHp; } break; case 1: if (valor < 0) { if (1 - Defense > 0) { HP += valor * (1 - Defense); } } else { HP += valor; } if (HP < 0) { Debug.Log(HP); HP = 0; Die(); } else if (HP > MaxHp) { HP = MaxHp; } break; case 2: Damage += valor; if (Damage < 0) { Damage = 0; } break; case 3: Defense += valor; if (Defense < 0) { Defense = 0; } break; } }
public override void ChangeStats(CombatStatsType state, float valor) { base.ChangeStats(state, valor); if (state == CombatStatsType.LIGHTVISION) { for (int i = 0; i < playerLights.Length; i++) { playerLights[i].range += valor / 2; if (playerLights[i].type == LightType.Spot) { playerLights[i].spotAngle += valor * 2; } } } }
public virtual void SetStats(CombatStatsType state, int valor) { switch ((int)state) { case 0: MaxHp = valor; break; case 1: if (valor <= MaxHp) { HP = valor; } else { HP = MaxHp; } break; case 2: Damage = valor; if (Damage < 0) { Damage = 0; } break; case 3: Defense = valor; if (Defense < 0) { Defense = 0; } break; } }