sQueenFootFront 0 -1 -20 0 <undefined> <undefined> 1 603 7 0 0 -1 2 self 0 0 1 canhit = 1; flashing = 0; fxtimer = 0; state = 0; targetx = x; joint0_x = x; joint0_y = y; joint1_x = x; joint1_y = y; joint1_angle = -10; joint1_scale = 1; joint1_len = 60; joint2_x = x; joint2_y = y; joint3_x = x; joint3_y = y; joint3_scale = 1; joint3_angle = 0; image_angle = 0; spr_foot = sQueenFootFront; spr_leg1 = sQueenLegFront1; spr_leg2 = sQueenLegFront2; spr_leg3 = sQueenLegFront3; spr_leg4 = sQueenLegFront4; 1 603 7 0 0 -1 2 self 0 0 1 if (instance_exists(oQueenHead)) { flashing = oQueenHead.flashing; fxtimer = oQueenHead.fxtimer; } 1 603 7 0 0 -1 2 self 0 0 1 joint0_x = x - 13; joint0_y = y - 20; joint1_x = joint0_x + lengthdir_x(joint1_len, 130 + image_angle); joint1_y = joint0_y + lengthdir_y(joint1_len, 130 + image_angle); joint1_angle = point_direction(joint1_x, joint1_y, joint2_x, joint2_y); joint1_scale = point_distance(joint1_x, joint1_y, joint2_x, joint2_y) / 60; joint2_x = joint3_x + 21 + (x - (joint3_x + 13)) / 2; joint2_y = y - (y - joint3_y) * 0.583; joint3_angle = point_direction(joint3_x, joint3_y, joint2_x, joint2_y); joint3_scale = point_distance(joint3_x, joint3_y, joint2_x, joint2_y) / 36.7; image_angle = clamp(x - (joint3_x + 13), -30, 20); if (state == 0) { if (x - joint3_x < -24) { state = 1; targetx = x + 80; vspeed = -2.5; gravity = 0.2; gravity_direction = 270; } if (x - joint3_x > 70) { state = 1; targetx = x - 80; vspeed = -2.5; gravity = 0.2; gravity_direction = 270; } } if (state == 1) { if (abs(x - targetx) > 1) { x = lerp(x, targetx, abs(oQueen.maxspeed) / 10); } else state = 0; } col1 = collision_line(x, y - 20, x, y, oSolid, true, true); col2 = collision_point(x, y + 1, oSolid, true, true); if (col2 < 0) y += 1; if (col1 > 0) { y -= 1; if (vspeed > 0) { vspeed = 0; gravity = 0; event_user(0); } } 1 603 7 0 0 -1 2 self 0 0 1 if (oQueen.state != 100) with (other) event_user(0); 1 603 7 0 0 -1 2 self 0 0 1 if (oQueen.state != 100) with (other) { event_user(1); instance_destroy(); } 1 603 7 0 0 -1 2 self 0 0 1 if (canhit == 1) damage_player_push(oQueen.damage, 1, 90, 0, 4); 1 603 7 0 0 -1 2 self 0 0 1 var i; screen_shake(4, 2); sfx_play(sndMZetaFootstep); i = 0; repeat (3) { expl = instance_create(x - 20 + i * 20, y, oFXAnimSpark); expl.image_speed = 0.5; expl.additive = 0; expl.sprite_index = sExplSmoke; expl.depth = -25; expl.vspeed = -0.5; i += 1; } 1 603 7 0 0 -1 2 self 0 0 1 if(oControl.mod_fusion == 1 || oControl.MonsterPalettesFusionOnly == 0) { pal_swap_set(oControl.QueenPalette, 2, false); } if (!flashing) { draw_sprite(spr_leg4, -1, joint3_x, joint3_y); draw_sprite_ext(spr_leg3, -1, joint3_x, joint3_y, joint3_scale, 1, joint3_angle, -1, 1); draw_sprite_ext(spr_leg2, -1, joint1_x, joint1_y, joint1_scale, 1, joint1_angle, -1, 1); draw_sprite_ext(spr_leg1, -1, joint0_x, joint0_y, 1, 1, image_angle, -1, 1); draw_sprite(spr_foot, -1, x, y); } else { // Some code was shifted around here to prevent alpha blending bugs draw_sprite_ext(spr_leg4, -1, joint3_x, joint3_y, 1, 1, 0, make_color_rgb(255 - fxtimer * 63, 255 - fxtimer * 63, 255 - fxtimer * 63), 1); draw_set_blend_mode(bm_add); repeat (2) { draw_sprite_ext(spr_leg4, -1, joint3_x, joint3_y, 1, 1, 0, -1, 1 - fxtimer * 0.25); } draw_set_blend_mode(bm_normal); draw_sprite_ext(spr_leg3, -1, joint3_x, joint3_y, joint3_scale, 1, joint3_angle, make_color_rgb(255 - fxtimer * 63, 255 - fxtimer * 63, 255 - fxtimer * 63), 1); draw_set_blend_mode(bm_add); repeat (2) { draw_sprite_ext(spr_leg3, -1, joint3_x, joint3_y, joint3_scale, 1, joint3_angle, -1, 1 - fxtimer * 0.25); } draw_set_blend_mode(bm_normal); draw_sprite_ext(spr_leg2, -1, joint1_x, joint1_y, joint1_scale, 1, joint1_angle, make_color_rgb(255 - fxtimer * 63, 255 - fxtimer * 63, 255 - fxtimer * 63), 1); draw_set_blend_mode(bm_add); repeat (2) { draw_sprite_ext(spr_leg2, -1, joint1_x, joint1_y, joint1_scale, 1, joint1_angle, -1, 1 - fxtimer * 0.25); } draw_set_blend_mode(bm_normal); draw_sprite_ext(spr_leg1, -1, joint0_x, joint0_y, 1, 1, image_angle, make_color_rgb(255 - fxtimer * 63, 255 - fxtimer * 63, 255 - fxtimer * 63), 1); draw_set_blend_mode(bm_add); repeat (2) { draw_sprite_ext(spr_leg1, -1, joint0_x, joint0_y, 1, 1, image_angle, -1, 1 - fxtimer * 0.25); } draw_set_blend_mode(bm_normal); draw_sprite_ext(spr_foot, -1, x, y, 1, 1, 0, make_color_rgb(255 - fxtimer * 63, 255 - fxtimer * 63, 255 - fxtimer * 63), 1); draw_set_blend_mode(bm_add); repeat (2) { draw_sprite_ext(spr_foot, -1, x, y, 1, 1, 0, -1, 1 - fxtimer * 0.25); } draw_set_blend_mode(bm_normal); } shader_reset(); 0 0 0 0.5 0.100000001490116 0 0.100000001490116 0.100000001490116 0.200000002980232 -1 -1