fix: immediately draw newborn rats during their spawn stun
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user