Oops, no more zombies in the day.

This commit is contained in:
Storm Dragon
2026-02-06 21:24:25 -05:00
parent 2b0955110b
commit b8f4a1ed34

View File

@@ -354,6 +354,18 @@ int get_random_invasion_hour(int min_hour) {
return random(min_hour, 11);
}
bool is_night_hour(int hour) {
return hour < 6 || hour >= 19;
}
int get_random_zombie_swarm_hour(int min_hour) {
if (!is_night_hour(min_hour)) return -1;
if (min_hour >= 19) {
return random(min_hour, 23);
}
return random(min_hour, 5);
}
void schedule_invasion() {
if (invasion_scheduled_hour != -1) return;
int hour = get_random_invasion_hour(current_hour);
@@ -432,6 +444,10 @@ void end_zombie_swarm() {
void check_zombie_swarm_status() {
if (!zombie_swarm_active) return;
if (!is_night_hour(current_hour)) {
end_zombie_swarm();
return;
}
int hours_elapsed = current_hour - zombie_swarm_start_hour;
if (hours_elapsed < 0) {
hours_elapsed += 24;
@@ -443,7 +459,7 @@ void check_zombie_swarm_status() {
void schedule_zombie_swarm() {
if (zombie_swarm_scheduled_hour != -1) return;
int hour = get_random_invasion_hour(current_hour);
int hour = get_random_zombie_swarm_hour(current_hour);
if (hour == -1) return;
zombie_swarm_scheduled_hour = hour;
}
@@ -451,12 +467,14 @@ void schedule_zombie_swarm() {
void check_scheduled_zombie_swarm() {
if (zombie_swarm_active) return;
if (zombie_swarm_scheduled_hour != -1) {
if (!is_night_hour(zombie_swarm_scheduled_hour) || !is_night_hour(current_hour)) {
zombie_swarm_scheduled_hour = -1;
return;
}
if (current_hour == zombie_swarm_scheduled_hour) {
zombie_swarm_scheduled_hour = -1;
zombie_swarm_triggered_today = true;
start_zombie_swarm();
} else if (current_hour > 11) {
zombie_swarm_scheduled_hour = -1;
}
return;
}
@@ -466,7 +484,7 @@ void check_scheduled_zombie_swarm() {
void attempt_daily_zombie_swarm() {
if (!can_roll_zombie_swarm_today()) return;
if (zombie_swarm_roll_done_today || zombie_swarm_triggered_today || zombie_swarm_active) return;
if (current_hour < 6) return;
if (!is_night_hour(current_hour)) return;
zombie_swarm_roll_done_today = true;
int chance = get_zombie_swarm_chance_for_day();