Browse Source

fix: immediately draw newborn rats during their spawn stun

master
Matteo Benedetto 3 days ago
parent
commit
bb7b56118e
  1. 27
      src/rat.c

27
src/rat.c

@ -98,6 +98,33 @@ void spawn_rat(uint8_t x, uint8_t y, uint8_t initial_dir) {
rats[i].pixel_x = x * 8;
rats[i].pixel_y = y * 8;
// Forza il disegno dello sprite IMMEDIATAMENTE affinché sia visibile durante il secondo di "stun"
{
uint8_t base_x = rats[i].pixel_x + 12;
uint8_t base_y = rats[i].pixel_y + 20;
uint8_t s0 = rats[i].sprite_base_idx;
uint8_t s1 = rats[i].sprite_base_idx + 1;
if (rats[i].current_dir == 0 || rats[i].current_dir == 255) {
set_sprite_tile(s0, 2); set_sprite_tile(s1, 3);
set_sprite_prop(s0, 0); set_sprite_prop(s1, 0);
move_sprite(s0, base_x, base_y - 4); move_sprite(s1, base_x, base_y + 4);
} else if (rats[i].current_dir == 1) {
set_sprite_tile(s0, 3); set_sprite_tile(s1, 2);
set_sprite_prop(s0, S_FLIPY); set_sprite_prop(s1, S_FLIPY);
move_sprite(s0, base_x, base_y - 4); move_sprite(s1, base_x, base_y + 4);
} else if (rats[i].current_dir == 2) {
set_sprite_tile(s0, 1); set_sprite_tile(s1, 0);
set_sprite_prop(s0, S_FLIPX); set_sprite_prop(s1, S_FLIPX);
move_sprite(s0, base_x - 4, base_y); move_sprite(s1, base_x + 4, base_y);
} else if (rats[i].current_dir == 3) {
set_sprite_tile(s0, 0); set_sprite_tile(s1, 1);
set_sprite_prop(s0, 0); set_sprite_prop(s1, 0);
move_sprite(s0, base_x - 4, base_y); move_sprite(s1, base_x + 4, base_y);
}
}
// Il nuovo ratto resta fermo 1 secondo (60 frame) alla nascita usando lo stesso timer
rats[i].reproduce_timer = 60;
rats[i].cooldown_timer = 120; // Il cucciolo non si riproduce subito

Loading…
Cancel
Save