if (global.pause_plat) exit; if (instance_exists(obj_mainchara_dash) && obj_mainchara_dash.hitstop > 0) exit; if (particle_system_lifetime > 0) { particle_system_lifetime--; if (particle_system_lifetime <= 0) { auto_cleanup = true; frames_between_emissions = 0; } } if (frames_between_emissions > 0) { emission_timer++; if (emission_timer >= frames_between_emissions) { emission_timer = 0; repeat (particles_per_emission) emit(); } } var num_particles = array_length(particle_data); var i = num_particles - 1; while (i >= 0) { with (particle_data[i]) { timer++; x += hspeed; y += vspeed; vspeed += gravity; hspeed *= (1 - friction); vspeed *= (1 - friction); image_index += image_speed; image_alpha -= fadeout_speed; other.particle_step_func(self); if ((animation_mode && image_index >= sprite_get_number(sprite_index)) || (fadeout_speed > 0 && image_alpha <= 0) || timer >= lifetime) array_delete(other.particle_data, i, 1); } i--; } if (auto_cleanup && array_length(particle_data) == 0) instance_destroy();