Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }