sQueenBody 0 -1 5 0 <undefined> <undefined> 1 603 7 0 0 -1 2 self 0 0 1 if (global.event[303] > 0) { instance_destroy(); } else { //damage = 60; canbeX = 0; damage = global.mod_queenDbody; head_obj = instance_create(x + 250, y - 10, oQueenHead); front_obj = instance_create(x, y, oQueenFront); flashing = 0; fxtimer = 0; targetx = x; phase = 0; canhit = 1; maxspeed = 2; phasetargetx[0] = 600; phasetargetx[1] = 928; phasetargetx[2] = 1568; phasetargetx[3] = 1888; phasetargetx[4] = 2528; phasetargetx[5] = 2528; camx = x; camy = y; neck_x = x; neck_y = y; belly_x = x; belly_y = y; leg1f_x = lengthdir_x(129, image_angle + 15); leg1f_y = lengthdir_y(129, image_angle + 15); leg1f_obj = instance_create(x + leg1f_x + 13, y + leg1f_y + 69, oQueenLegFront); leg2f_obj = instance_create(x + leg1f_x + 13, y + leg1f_y + 69, oQueenLegBack); with (leg2f_obj) x += 40; leg1b_x = lengthdir_x(37, image_angle + 43); leg1b_y = lengthdir_y(37, image_angle + 43); leg1b_obj = instance_create(x + leg1b_x + 13, y + leg1b_y + 61, oQueenLegFront); with (leg1b_obj) { spr_foot = sQueenFootBack; spr_leg1 = sQueenLegBack1; spr_leg2 = sQueenLegBack2; spr_leg3 = sQueenLegBack3; spr_leg4 = sQueenLegBack4; joint1_len = 45; x += 40; } leg2b_obj = instance_create(x + leg1b_x + 13, y + leg1b_y + 61, oQueenLegBack); with (leg2b_obj) spr_foot = sQueenLeg2B; col_back = 0; col_front = 0; col_front_x = x + 130; col_front_y = y; head_target_x = x + 120; head_target_y = y - 10; head_target_angle = 0; head_target_snap = 1; height_target_front = 35; height_target_back = 35; height_front = 35; height_back = 35; sin_timer = 0; state = 0; statetime = 0; head_attacks = 0; mus_stop_all(); with (oMusicV2) alarm[5] = 600; if (!sfx_isplaying(musQueenIntro)) mus_play_once(musQueenIntro); scan_log(16, get_text("ScanEvents", "ScanBioform"), 120, 0); widescreen_space = oControl.widescreen_space; } // if (global.event[303] > 0) else 1 603 7 0 0 -1 2 self 0 0 1 global.monstersleft = 0; global.monstersarea = 0; 1 603 7 0 0 -1 2 self 0 0 1 repeat (50) { expl = instance_create(x + random_range(-90, 150), y + random_range(-60, 30), oFXAnimSpark); expl.image_speed = 0.5 + random(0.5); expl.additive = 0; expl.sprite_index = sExpl1; expl.direction = random(360); expl.speed = 2 + random(1); } make_explosion4(x, y); make_explosion4(x + 40, y + 30); make_explosion4(x + 80, y + 20); make_explosion4(x - 30, y + 10); make_explosion4(x - 80, y + 35); screen_shake(60, 4); instance_create(x, y, oScreenFlash); sfx_play(sndMissileExpl); sfx_play(sndSMissileExpl); sfx_play(sndMEggBreak); event_user(10); instance_destroy(); 1 603 7 0 0 -1 2 self 0 0 1 expl = instance_create(x + random_range(-90, 150), y + random_range(-60, 30), oFXAnimSpark); expl.image_speed = 0.5; expl.additive = 0; expl.sprite_index = sExpl1; expl.image_xscale = 0.5; expl.image_yscale = 0.5; expl.depth = -50; alarm[9] = 2; 1 603 7 0 0 -1 2 self 0 0 1 belly_x = lengthdir_x(86, image_angle - 15); belly_y = lengthdir_y(86, image_angle - 15); if (instance_exists(front_obj)) { front_obj.x = x; front_obj.y = y; front_obj.image_angle = image_angle; } if (instance_exists(head_obj)) { if (head_target_snap == 1) { head_obj.x = lerp(head_obj.x, head_target_x, 0.2); head_obj.y = lerp(head_obj.y, head_target_y, 0.2); head_obj.head_target_angle = head_target_angle; } } if (instance_exists(leg1f_obj)) { leg1f_obj.joint3_x = x + leg1f_x; leg1f_obj.joint3_y = y + leg1f_y; } if (instance_exists(leg1b_obj)) { leg1b_obj.joint3_x = x + leg1b_x; leg1b_obj.joint3_y = y + leg1b_y; } if (instance_exists(leg2f_obj)) leg2f_obj.base_x = x + leg1f_x; if (instance_exists(leg2b_obj)) leg2b_obj.base_x = x + leg1b_x; if (instance_exists(oQueenHead)) { flashing = oQueenHead.flashing; fxtimer = oQueenHead.fxtimer; if (phase == 0 || phase == 1 && oCharacter.x < 928) { camx = 800 - (widescreen_space/2); camy = oQueenHead.y + (oCharacter.y - oQueenHead.y) / 2; } else if (phase == 1 && oCharacter.x > 1120 && oCharacter.x < 1248) { camx = 1120; camy = oQueenHead.y + (oCharacter.y - oQueenHead.y) / 2; } else if (phase == 2 && oCharacter.x > 1760 && oCharacter.x < 1888) { camx = 1760; camy = oQueenHead.y + (oCharacter.y - oQueenHead.y) / 2; } else if (phase == 3 && oCharacter.x > 2080 && oCharacter.x < 2208) { camx = 2080; camy = oQueenHead.y + (oCharacter.y - oQueenHead.y) / 2; } else if (abs(oCharacter.x - oQueenHead.x) < 250 && abs(oCharacter.y - oQueenHead.y) < 180) { // tweening? camx = oQueenHead.x + ((oCharacter.x - oQueenHead.x) / 2); camy = oQueenHead.y + (oCharacter.y - oQueenHead.y) / 2; oCamera.focus = 0; } else { camx = oCharacter.x; camy = oCharacter.y; oCamera.focus = 0; } } // if (instance_exists(oQueenHead)) oCamera.smootin = 15; if (oCamera.focus == 0) { oCamera.focus = 1; oCamera.focustime = 0; } oCamera.focustime += 1; oCamera.lockx = 1; oCamera.locky = 1; oCamera.targetx = camx; oCamera.targety = camy; oCamera.snapx = 0; oCamera.snapy = 0; oCamera.smoothout = 40; oCamera.alarm[0] = 2; 1 603 7 0 0 -1 2 self 0 0 1 col_front_x = x + 130; col_back = collision_line(x, y, x, y + height_back, oSolid, true, true); col2_back = collision_point(x, y + height_back + 1, oSolid, true, true); col_front = collision_line(col_front_x, col_front_y, col_front_x, col_front_y + height_front, oSolid, true, true); col2_front = collision_point(col_front_x, col_front_y + height_front + 1, oSolid, true, true); if (col2_back < 0) { y += 1; } else if (col_back > 0) y -= 1; if (col2_front < 0) { col_front_y += 1; } else if (col_front > 0) col_front_y -= 1; image_angle = point_direction(x, y, col_front_x, col_front_y); neck_x = lengthdir_x(140, image_angle + 17); neck_y = lengthdir_y(140, image_angle + 17); leg1f_x = lengthdir_x(129, image_angle + 15); leg1f_y = lengthdir_y(129, image_angle + 15); leg1b_x = lengthdir_x(37, image_angle + 43); leg1b_y = lengthdir_y(37, image_angle + 43); if (state == 0) { head_target_x = x + neck_x + 50; head_target_y = y + neck_y - 10; head_obj.x = head_target_x; head_obj.y = head_target_y; height_target_front = 20; height_target_back = 20; height_front = 20; height_back = 20; head_obj.canbehit = 0; if (statetime == 120) { state = 1; statetime = 0; } } if (state == 1) { if (statetime == 0) { height_target_front = 20; height_target_back = 20; height_front = 20; height_back = 20; head_obj.state = 1; head_obj.statetime = 0; head_obj.canbehit = 0; } head_target_x = x + neck_x + 50; head_target_y = y + neck_y - 10; if (statetime == 60) targetx = 600; if (statetime == 240) { state = 3; statetime = 0; } } if (state == 2) { // Moving? head_target_x = x + neck_x + 20; head_target_y = y + neck_y; height_target_front = 20; height_target_back = 20; maxspeed = 2; if (point_distance(x, y, oCharacter.x, y) > 400) maxspeed = 4; if (point_distance(x, y, oCharacter.x, y) > 500) maxspeed = 6; if (x < 560) { hspeed = lerp(maxspeed, hspeed, 0.1); } else { state = 3; statetime = 0; } } if (state == 3) { if (statetime == 0) { switch (phase) { case 0: height_target_front = 35; height_target_back = 35; break; case 1: height_target_front = 15; height_target_back = 25; break; case 2: height_target_front = 15; height_target_back = 15; break; case 3: height_target_front = 55; height_target_back = 30; break; case 4: height_target_front = 15; height_target_back = 15; break; case 5: height_target_front = 20; height_target_back = 25; break; } // switch (phase) head_obj.canbehit = 1; } // if (statetime == 0) head_target_x = x + neck_x + 50; head_target_y = y + neck_y - 10; if (statetime == 120) { if (phase == 5) { state = 10; } else state = 4; statetime = 0; } } // if (state == 3) if (state == 4) { if (statetime == 0) { head_obj.canbehit = 1; height_target_front = 20; head_target_x = x + neck_x + 38; head_target_y = y + neck_y + 12; switch (phase) { case 0: height_target_front = 20; height_target_back = 35; break; case 1: height_target_front = 15; height_target_back = 25; break; case 2: height_target_front = 15; height_target_back = 15; break; case 3: height_target_front = 55; height_target_back = 30; break; case 4: height_target_front = 15; height_target_back = 15; break; case 5: height_target_front = 15; height_target_back = 15; break; } // switch (phase) head_attacks = 2; head_obj.speedmulti = 1; head_obj.attackdelay = 110; if (head_obj.myhealth <= head_obj.starthealth / 4 * 3) { head_attacks = 3; head_obj.speedmulti = 1.5; head_obj.attackdelay = 90; } if (head_obj.myhealth <= head_obj.starthealth / 4 * 2) { head_attacks = 4; head_obj.speedmulti = 2; head_obj.attackdelay = 70; } if (head_obj.myhealth <= head_obj.starthealth / 4) { head_attacks = 5; head_obj.speedmulti = 2.5; head_obj.attackdelay = 50; } } // if (statetime == 0) if (statetime == 10) { head_obj.state = 4; head_obj.statetime = 0; head_attacks -= 1; } if (statetime == 45) head_target_snap = 0; if (statetime == 11) { head_target_y = y + neck_y + 13; if (phase == 1 || phase == 2) { if (choose(0, 1) == 0) { if (phase == 1) { head_target_y = y + neck_y - 15; } else head_target_y = y + neck_y - 10; } else head_target_y = y + neck_y + 38; } } if (statetime > 10 && head_obj.state == 0) { head_target_x = x + neck_x + 24; head_target_snap = 1; if (head_attacks > 0) statetime = 1; } if (statetime == 170) { state = 8; statetime = 0; } with (oCharacter) if (state == 41) xVel = 4; } // if (state == 4) if (state == 8) { //added if(phase == 3 && global.difficulty != 0) { if (statetime == 0) { height_target_front = 15; height_target_back = 15; targetx = phasetargetx[phase] - 40; maxspeed = 1; sfx_play(sndQueenRoar); head_obj.canbehit = 0; head_obj.push = 0; head_obj.state = 6; head_obj.statetime = 0; } head_target_x = x + neck_x + 40; head_target_y = y + neck_y - 10; if (statetime == 210) { state = 5; statetime = 0; } } else { state = 5; statetime = 0; } } // if (state == 8) if (state == 5) { if (statetime == 0) { switch (phase) { case 0: height_target_front = 35; height_target_back = 35; break; case 1: height_target_front = 15; height_target_back = 25; break; case 2: height_target_front = 15; height_target_back = 15; break; case 3: height_target_front = 25; height_target_back = 20; break; case 4: height_target_front = 15; height_target_back = 15; break; case 5: height_target_front = 15; height_target_back = 15; break; } // switch (phase) targetx = phasetargetx[phase] - 88; maxspeed = 1; sfx_play(sndQueenRoar); head_obj.canbehit = 0; head_obj.push = 0; } // if (statetime == 0) head_target_x = x + neck_x + 50; head_target_y = y + neck_y + 20; if (statetime > 60) { if (phase == 1) head_target_y = y + neck_y - 30; if (phase == 2) head_target_y = y + neck_y - 5; } if (statetime == 120) { head_obj.state = 2; head_obj.statetime = 0; } if (statetime == 180) targetx = phasetargetx[phase]; if (phase == 3 && statetime == 230) { height_target_back = 20; height_target_front = 55; } if (statetime == 360) { state = 4; statetime = -1; } } // if (state == 5) if (state == 6) { // Fire breathe in, do music setting? if (statetime == 0) { if (oMusicV2.useMultistageMusic) { switch (phase) { case 0: mus_stop(musQueenIntro); with (oMusicV2) alarm[5] = -1; mus_stop(musQueen); mus_play_once(musQueenBreak); oMusicV2.bossbgm = musQueenBreak; //added break; case 2: mus_stop(musQueen2); mus_play_once(musQueenBreak); oMusicV2.bossbgm = musQueenBreak; //added break; } } switch (phase) { case 0: height_target_front = 35; height_target_back = 35; break; case 1: height_target_front = 15; height_target_back = 25; break; case 2: height_target_front = 15; height_target_back = 15; break; case 3: height_target_front = 45; height_target_back = 30; break; case 4: height_target_front = 15; height_target_back = 15; break; case 5: height_target_front = 15; height_target_back = 15; break; } // switch (phase) head_target_snap = 1; targetx = phasetargetx[phase]; head_obj.canbehit = 0; head_obj.push = 0; } // if (statetime == 0) head_target_x = x + neck_x + 30; head_target_y = y + neck_y; if (statetime < 120 && head_obj.state != 3) { if (head_obj.state == 0) { head_obj.state = 3; head_obj.statetime = 0; } } if (statetime == 400) { state = 7; statetime = 0; } if (statetime > 120 && point_distance(oQueen.x, oQueen.y, oCharacter.x, oQueen.y) > 350) { state = 7; statetime = 0; head_obj.state = 0; head_obj.statetime = 0; head_obj.jawglowalpha = 0; } } // if (state == 6) if (state == 7) { // Actual move??? if (statetime == 0) { height_target_front = 25; height_target_back = 25; head_obj.push = 1; targetx = phasetargetx[phase]; } head_obj.canbehit = 0; if (point_distance(x, y, oCharacter.x, y) < 260) { head_target_x = oCharacter.x - 60; head_target_y = oCharacter.y - 30; } else { head_target_x = x + neck_x + 50; head_target_y = y + neck_y; } with (oCharacter) if (state == 41) { xVel = 4; if (statetime == 1) yVel = -4.5; } if (x == targetx) { state = 3; statetime = -1; oQueenHead.myhealth = oQueenHead.starthealthcorridors; if (phase == 3) oQueenHead.myhealth = oQueenHead.starthealthbigroom; if (phase == 4) { phase = 5; oQueenHead.myhealth = oQueenHead.starthealthlast; } } maxspeed = 1; if (point_distance(x, y, oCharacter.x, y) > 400) maxspeed = 2; if (point_distance(x, y, oCharacter.x, y) > 460) maxspeed = 3; } // if (state == 7) if (state == 10) { if (statetime == 0) { height_target_front = 20; head_target_x = x + neck_x + 30; head_target_y = y + neck_y; head_obj.state = 10; head_obj.statetime = 0; head_obj.canbehit = 1; sfx_play(sndQueenRoarShort); } if (statetime == 60) sfx_play(sndQueenAttack); if (statetime > 60) { head_target_x = max(784, oCharacter.x - 60); head_target_y = oCharacter.y - 38; if (oCharacter.state == 53 || oCharacter.state == 54 || oCharacter.state == 55) { head_target_x = x + neck_x + 40; head_target_y = y + neck_y + 20; } } if (statetime == 300 && (oCharacter.state == 53 || oCharacter.state == 54)) { head_obj.state = 11; head_obj.statetime = 0; state = 3; statetime = 0; } } // if (state == 10) if (state == 100) { if (statetime == 0) { height_target_front = 10; height_target_back = 10; head_obj.push = 0; head_obj.canhit = 0; head_obj.state = 100; head_obj.statetime = 0; leg1f_obj.canhit = 0; leg1b_obj.canhit = 0; head_target_x = x + neck_x + 40; head_target_y = y + neck_y + 5; alarm[9] = 1; alarm[10] = 300; head_obj.alarm[9] = 1; head_obj.alarm[10] = 280; canhit = 0; mus_fadeout(musQueen); mus_fadeout(musQueen3); oMusicV2.bossbgm = sndJump; sfx_play(sndQueenDeath); global.event[303] = 1; } if (statetime > 40) { if (head_target_y < 160) head_target_y += 2; } } // if (state == 100) if (x != targetx) { if (targetx > x && hspeed < maxspeed) hspeed += 0.1; if (targetx < x && hspeed > -maxspeed) hspeed -= 0.1; if (point_distance(x, y, targetx, y) <= maxspeed) { x = targetx; hspeed = 0; } } height_front = height_target_front + sin(sin_timer) * 2; height_back = height_target_back + sin(sin_timer + 10) * 2; sin_timer += 0.06; if (sin_timer > 99999999) sin_timer = 0; statetime += 1; 1 603 7 0 0 -1 2 self 0 0 1 if (state != 100) with (other) event_user(0); 1 603 7 0 0 -1 2 self 0 0 1 if (state != 100) with (other) event_user(0); 1 603 7 0 0 -1 2 self 0 0 1 if (state != 100) with (other) { event_user(1); instance_destroy(); } 1 603 7 0 0 -1 2 self 0 0 1 if (canhit == 1) { if ((state == 7) && (phase < 2)) { damage_player_push(damage/2, 1, 90, 0, 4); } else damage_player_push(damage, 1, 90, 0, 4); } 1 603 7 0 0 -1 2 self 0 0 1 with (front_obj) instance_destroy(); with (leg1f_obj) instance_destroy(); with (leg2f_obj) instance_destroy(); with (leg1b_obj) instance_destroy(); with (leg2b_obj) instance_destroy(); 1 603 7 0 0 -1 2 self 0 0 1 if(oControl.mod_fusion == 1 || oControl.MonsterPalettesFusionOnly == 0) { pal_swap_set(oControl.QueenPalette, 1, false); } if (!flashing) { draw_self(); } else { draw_sprite_ext(sprite_index, -1, x, 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(sprite_index, -1, x, y, 1, 1, image_angle, -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