Поначалу это может быть немного сложно понять, но, пожалуйста, потерпите меня.
Я делаю городскую игру-симулятор, и я хочу добиться этого:
1. Посмотрите на состояние здоровья города
2. Если он находится в пределах диапазона, установите оставшиеся дни (то есть продолжительность жизни города)
3. Каждый прошедший день количество оставшихся дней будет уменьшаться.
Рекомендации:
HealthStat | дни по умолчанию
-10 10
-25 8
-35 5
-40 2
Мне удалось несколько решить эту проблему, но возникла проблема.
Я могу сделать либо только автоматическую настройку daysRemaining, либо ручное уменьшение - я не могу сделать и то и другое.
Вот мой код:
if (statsHealth <= -10f && statsHealth > -25f)
{
//Enable Health Hazard
isHealthHazard = true;
//Set Days Remaining
daysRemaining = 10;
}
else if (statsHealth <= -25f && statsHealth > -35f)
{
//Enable Health Hazard
isHealthHazard = true;
//Set Days Remaining
if (daysRemaining > 8 || daysRemaining <= 5)
{
daysRemaining = 8;
}
}
else if (statsHealth <= -35f && statsHealth > -40f)
{
//Enable Health Hazard
isHealthHazard = true;
//Set Days Remaining
if (daysRemaining > 5 || daysRemaining <= 2)
{
daysRemaining = 5;
}
}
else if (statsHealth <= -40f && statsHealth > -50f)
{
//Enable Health Hazard
isHealthHazard = true;
//Set Days Remaining
if (daysRemaining > 2 || daysRemaining < 0)
{
daysRemaining = 2;
}
}
else if(statsHealth >= -50f && hasIssues)
{
//GAME OVER
Debug.Log("GAME OVER!");
daysRemaining = 0;
}
else if(statsHealth >= 0)
{
//No More Health Issues
isHealthHazard = false;
}
Проблема в том, что, когда в моей игре проходит день, если он находится в пределах диапазона healthStat (например, диапазон HealthStat -25 составляет от 8 до 6 дней до конца), он будет уменьшаться. Однако если бы daysRemaining достигло 5, оно вернулось бы к 8, поскольку оно выходит за пределы допустимого диапазона (на основе healthStat).
С другой стороны, если я отключу автонастройку daysRemaining на основе диапазона healthStat, это сработает для уменьшения вручную. Но как я могу установить daysRemaining во-первых, когда игрок достигает определенного показателя здоровья?
Как я могу сделать как автоматическую настройку daysRemaining, так и в то же время можно вручную настроить ее?
PS: я знаю, что это может немного сбить с толку, поэтому, если у вас есть какие-либо дополнительные вопросы, пожалуйста, не стесняйтесь комментировать, и я обязательно отвечу. Спасибо!