/// <summary> /// Уменьшение прогресса поднимающегося мертвеца на 1 единицу /// </summary> /// <param name="number">Номер могилы</param> public void Push(int number) { if (graveyard[number] != Stage.Sleeps) { graveyard[number]--; RiseProgressEvent?.Invoke(this, new RiseProgressEventArgs(number, graveyard[number])); if (graveyard[number] == Stage.Sleeps) { result++; } } }
/// <summary> /// Подъем мертвеца на 1 стадию вперед в данной могиле /// </summary> /// <param name="number">Номер могилы</param> private void DoRiseProgress(int number) { if (number >= graveyard.Length || number < 0) { throw new ArgumentException(); } if (graveyard[number] < GameDefaults.MaxStage) { graveyard[number]++; } else { graveyard[number] = 0; ChangeHp(hp - 1); } RiseProgressEvent?.Invoke(this, new RiseProgressEventArgs(number, graveyard[number])); }
/// <summary> /// Вызывается при получении с сервера сообщения о прогрессе мертвеца до определенной стадии /// </summary> /// <param name="place">Номер могилы мертвеца</param> /// <param name="stage">Новая стадия</param> public void RiseProgress(int place, Stage stage) { RiseProgressEvent?.Invoke(this, new RiseProgressEventArgs(place, stage)); }