siner++; if (init == 0) { init = 1; knifestartx = x; knifestarty = y; knifestartangle = 150; if (side == 1) knifestartangle = 210; knifemaxradius = 0; radiusoffset = 0; lerpamt = 0; if (side == 1) radiusoffset = 21; for (i = 0; i < knifeqty; i++) { knife[i] = instance_create(knifestartx, knifestarty, obj_regularbullet); knife[i].active = 1; knife[i].sprite_index = spr_attack_knifechain; knife[i].destroyonhit = 0; knife[i].wall_destroy = 0; scr_darksize(knife[i]); if (i == 0) knife[i].image_alpha = 0; knifeangle[i] = knifestartangle; knife[i].previousangle = knifeangle[i]; kniferadius[i] = 0; knife[i].image_angle = knifestartangle + 180; } } if (type == 0) { var endtime = 170; timer++; if (timer < 45) { lerpamt += 0.05; if (lerpamt > 1) lerpamt = 1; knifemaxradius = lerp_ease_inout(0, truemaxradius, lerpamt, 3); } if (timer >= 20) { for (i = 0; i < knifeqty; i++) { if (i_ex(knife[i])) { var movingside = 0; if ((knifeangle[i] - knife[i].previousangle) > 0) movingside = 1; else movingside = -1; if (timer <= 30) { if (side == 1) movingside = -1; if (side == 0) movingside = 1; } knife[i].image_angle = lerp(knife[i].image_angle, knifeangle[i] - (90 * movingside), 0.25); knife[i].previousangle = knifeangle[i]; } } } if (timer >= 20 && timer < endtime) { kniferotateamount = 2.5; if (side == 1) kniferotateamount *= -1; if (extend == true) knifemaxradius += (sin(timer / 30) * kniferotateamount); knifeangle[0] += sin(timer / rotatespeed) * kniferotateamount; } if (timer >= endtime) { for (i = 0; i < knifeqty; i++) { if (i_ex(knife[i])) { with (knife[i]) active = 0; } } knifemaxradius = lerp(knifemaxradius, 0, 0.25); } if (timer >= (endtime + 20)) instance_destroy(); } var i = knifeqty - 1; while (i > 0) { if (whip == true) knifeangle[i] = lerp(knifeangle[i], knifeangle[i - 1], 0.4); else knifeangle[i] = knifeangle[0]; i--; } for (i = 0; i < knifeqty; i++) { if (i_ex(knife[i])) { kniferadius[i] = (knifemaxradius / knifeqty) * i; knife[i].x = knifestartx + lengthdir_x(kniferadius[i] + radiusoffset, knifeangle[i]); knife[i].y = knifestarty + lengthdir_y(kniferadius[i] + radiusoffset, knifeangle[i]); } }