public virtual void ProcessOneHour() { if (!IsInShelter) { return; } if (IsDead) { return; } IsSufferingByHunger = Hunger >= 100; IsSufferingByThirst = Thirst >= 100; UpdateThirst(); if (Hunger > 50) { if (Quest.Instance.Status.Resources.Food.Value > 0) { Quest.Instance.Status.Resources.Food.Update(-1); Hunger -= 50; } } if (Hunger < 100 && Hunger + 3 >= 100) { Quest.Instance.AddStory(Name + " страдает от голода.", null); } Hunger += 3; if (Hunger >= 100) { Health -= 1; } if (Health <= 0) { IsDead = true; if (Hunger >= 100) { DeathReason = QuestCharacterDeathReason.Starvation; } else if (Thirst >= 100) { DeathReason = QuestCharacterDeathReason.Thirst; } OnDeath.InvokeIfNotNull(this); } }