if (!nubert_done && !nubert_reverse) { var _speed = nubert_speed; var _cannon = nubert_cannon; if (nubert_angle != nubert_angle_goal) _speed *= 0.5; ns[nr] = [nubert_x, nubert_y, nubert_angle, _speed]; aaa[nr] = [nubert_x + lengthdir_x(16, nubert_angle - 90), nubert_y + lengthdir_y(16, nubert_angle - 90), nubert_x + lengthdir_x(16, nubert_angle + 90), nubert_y + lengthdir_y(16, nubert_angle + 90)]; bbb[nr] = [nubert_x + lengthdir_x(18, nubert_angle - 90), nubert_y + lengthdir_y(18, nubert_angle - 90), nubert_x + lengthdir_x(18, nubert_angle + 90), nubert_y + lengthdir_y(18, nubert_angle + 90)]; nubert_hurt[nr] = instance_create(ns[nr][0], ns[nr][1], obj_collidebullet); with (nubert_hurt[nr]) { scr_bullet_init(); scr_bullet_inherit_from(id, 960); destroyonhit = false; mask_index = spr_nubert_segment_m; image_yscale = 1.25; image_xscale = other.ns[other.nr][3]; image_angle = other.ns[other.nr][2]; if (!other.nubert_hooped) { if (i_ex(obj_trashy_hoop)) { var _box = []; with (obj_trashy_hoop) _box = [x - (38 * image_xscale), y, x - (42 * image_xscale), y + 1]; if (collision_rectangle(_box[0], _box[1], _box[2], _box[3], id, true, false)) { other.nubert_hooped = true; scr_mercyadd(obj_trashy_trio.myself, 5); if (global.mercymod[obj_trashy_trio.myself] >= 100) { with (obj_trashy_trio) do_postturn = true; with (obj_battlecontroller) noreturn = true; } } } } image_yscale = 2; with (obj_bullet_trash_small) { if (place_meeting(x, y, other.id)) { snd_play(snd_explosion_firework, 0.45, 1); with (instance_create_depth(x, y, depth, obj_marker)) { var _size = 2; image_xscale = _size; image_yscale = _size; sprite_index = spr_cakesmoke; direction = 90 + random_range(-10, 10); speed = 1; scr_lerpvar("image_alpha", 1, 0, 12); scr_doom(id, 12); } var _rng = random(360); for (var a = 0; a < 5; a++) { with (instance_create(x, y, obj_regularbullet)) { scr_bullet_inherit_from(id, 960); speed = 0.25; direction = (a * 72) + _rng; image_angle = direction; sprite_index = spr_ponman_eyebullet; image_speed = 0.5; gravity_direction = direction; gravity = 0.25; image_yscale = 1; image_xscale = 1.75; } } instance_destroy(); } } } if (nubert_angle_goal < 90) { if ((ns[nr][0] + lengthdir_x(ns[nr][3], ns[nr][2])) > (scr_get_box(4) + 75)) nubert_angle_goal = (90 - ns[nr][2]) + 90; } if (nubert_angle_goal >= 90) { if ((ns[nr][0] + lengthdir_x(ns[nr][3], ns[nr][2])) < (scr_get_box(4) - 75)) nubert_angle_goal = 90 - (ns[nr][2] - 90); } nubert_angle = scr_approach(nubert_angle, nubert_angle_goal, nubert_turn); if (nubert_angle > ns[nr][2]) { nubert_x = ns[nr][0] + lengthdir_x(ns[nr][3], nubert_angle) + lengthdir_x(16, ns[nr][2] + 90) + lengthdir_x(16, nubert_angle - 90); nubert_y = ns[nr][1] + lengthdir_y(ns[nr][3], nubert_angle) + lengthdir_y(16, ns[nr][2] + 90) + lengthdir_y(16, nubert_angle - 90); } else if (nubert_angle < ns[nr][2]) { nubert_x = ns[nr][0] + lengthdir_x(ns[nr][3], nubert_angle) + lengthdir_x(16, ns[nr][2] - 90) + lengthdir_x(16, nubert_angle + 90); nubert_y = ns[nr][1] + lengthdir_y(ns[nr][3], nubert_angle) + lengthdir_y(16, ns[nr][2] - 90) + lengthdir_y(16, nubert_angle + 90); } nubert_x = ns[nr][0] + lengthdir_x(ns[nr][3], nubert_angle); nubert_y = ns[nr][1] + lengthdir_y(ns[nr][3], nubert_angle); if (ns[nr][1] < (scr_get_box(5) - 155) || nubert_speed < 1.5) { nubert_done = true; alarm[0] = 4; exit; } nr++; } if (nubert_reverse) { if (i_ex(nubert_hurt[nr])) instance_destroy(nubert_hurt[nr]); nr--; if (nr == -1) instance_destroy(); } snd_pitch(nubert_sound, 0.05 + (0.01 * nr));