public void AddTimedStatus(CharacterStatusType statusType, int numTurns) { numTurns++; foreach (var s in _timedStatuses) { if (s.Type == statusType) { if (s.Life < numTurns) { s.Life = numTurns; } OnStatusAdded?.Invoke(s); return; } } var status = Create(statusType); if (status != null) { status.Life = numTurns; _timedStatuses.Add(status); UpdateWorldState(statusType, true); OnStatusAdded?.Invoke(status); } }
public void AddPermanentStatus(CharacterStatusType statusType) { foreach (var s in _permanentStatuses) { if (s.Type == statusType) { return; } } var status = Create(statusType); if (status != null) { _permanentStatuses.Add(status); UpdateWorldState(statusType, true); OnStatusAdded?.Invoke(status); } }