public void SetVolatileStatus(StatusID statusID) { if (VolatileStatus != null) { return; } VolatileStatus = StatusConditionsDB.conditions[statusID]; VolatileStatus?.Onstart?.Invoke(this); StatsChanges.Enqueue($"{Base.Name} {VolatileStatus.StartMessage}"); }
public void SetStatus(StatusID statusID) { if (Status != null) { return; } Status = StatusConditionsDB.conditions[statusID]; Status?.Onstart?.Invoke(this); StatsChanges.Enqueue($"{Base.Name} {Status.StartMessage}"); OnStatusChanged?.Invoke(); }
public void ApplyBoosts(List <StatBoost> statBoosts) { foreach (var statsBoost in statBoosts) { var stat = statsBoost.stat; var boost = statsBoost.boost; StatsBoosts[stat] = Mathf.Clamp(StatsBoosts[stat] + boost, -6, 6); if (boost > 0) { StatsChanges.Enqueue($"{Base.Name}'s {stat} rose!"); } else { StatsChanges.Enqueue($"{Base.Name}'s {stat} fell!"); } Debug.Log($"{stat} has been boosted to {StatsBoosts[stat]}"); } }