_parent = -4; _init_pos = -4; _target_pos = -4; _bullet_sprite = -4; _bullet_pool = []; _active = false; _timer = 0; _time = 8; create_bullet = function(arg0, arg1) { var bullet = instance_create(0, 0, obj_ch5_DW29_power_up_bullet); bullet.create(id, arg0, new Vector2(view_wport[0] / 2, 970), arg1); return bullet; }; get_bullet = function() { var ready_bullet = -4; for (var i = 0; i < array_length(_bullet_pool); i++) { var bullet = _bullet_pool[i]; if (bullet.is_active()) continue; ready_bullet = bullet; break; } if (ready_bullet == -4) { ready_bullet = create_bullet(new Vector2(x, y - 10), _bullet_sprite); _bullet_pool[array_length(_bullet_pool)] = ready_bullet; } return ready_bullet; }; start_spawning = function(arg0, arg1, arg2, arg3) { _parent = arg0; _bullet_sprite = arg3; x = arg1.x; y = arg1.y; _target_pos = arg2; _active = true; }; fade_out = function() { stop(); for (var i = 0; i < array_length(_bullet_pool); i++) { var bullet = _bullet_pool[i]; with (bullet) fade_out(); } }; trigger_event = function(arg0) { if (arg0 != "bullet_finished") exit; var all_stopped = true; for (var i = 0; i < array_length(_bullet_pool); i++) { var bullet = _bullet_pool[i]; if (bullet.is_active()) { all_stopped = false; break; } } if (!all_stopped) exit; with (_parent) trigger_event("spawner_finished"); }; stop = function() { _active = false; }; clean_up = function() { for (var i = 0; i < array_length(_bullet_pool); i++) { var bullet = _bullet_pool[i]; with (bullet) clean_up(); } instance_destroy(); };