sGunzoo 0 -1 -3 0 oEnemy <undefined> 1 603 7 0 0 -1 2 self 0 0 1 event_inherited(); canbeX = 0; makeActive(); setCollisionBounds(-14, -14, 14, 14); facing = 1; myhealth = 240; freezehp = 120; prevhealth = myhealth; damage = 32; hpush = 6; vpush = -3; hitmissileexpl = 0; hitsound = sndRobotHit4; deathsound = sndRobotExpl; canfreeze = 1; platyoffset = -6; frozenspr = sGunzooFrozen; flipx = 0; target = 0; canattack = 1; state = 1; targetx = x; targety = y; haccel = 0.2; vaccel = 0.9; aoffset = 0; phase = 0; turning = 0; prefiretime = 40; if (global.difficulty == 0) prefiretime = 70; if (global.difficulty >= 2) prefiretime = 20; hitemp = 1; empspr = sGunzooDisabled; 1 603 7 0 0 -1 2 self 0 0 1 expl = instance_create(x - 8 + random(16), y - 8 + random(16), oFXAnimSpark); expl.image_speed = 0.5; expl.additive = 0; expl.sprite_index = sExpl1; expl.depth = -4; expl.image_xscale = 0.5; expl.image_yscale = 0.5; alarm[3] = 3; 1 603 7 0 0 -1 2 self 0 0 1 proj = instance_create(x + 8 * facing, y - 7, oGunzooProj1); proj.hspeed = 8 * facing; proj.image_xscale = facing; sfx_play(sndAutrackFire); if (state == 2) alarm[0] = 7; 1 603 7 0 0 -1 2 self 0 0 1 event_inherited(); enemy_active_check(20); enemy_target_check(90, 1); switch (phase) { case 0: vaccel = 0.3; break; case 1: vaccel = 0.5; break; case 2: vaccel = 0.7; break; } if (state == 1) { if (facing == 1) { targetx = oCharacter.x - 120; } else targetx = oCharacter.x + 120; targety = oCharacter.y - (sprite_get_height(oCharacter.mask_index)/2); // 1.5.1 fix if (aoffset > 0) aoffset -= 0.2; if (x > targetx) xVel -= haccel; if (x < targetx) xVel += haccel; if (y > targety) yVel -= vaccel; if (y < targety) yVel += vaccel; if (xVel > 2) xVel = 2; if (xVel < -2) xVel = -2; if (yVel > 4) yVel = 4; if (yVel < -4) yVel = -4; if (oCharacter.x > x && facing == -1 && turning == 0) turning = 4; if (oCharacter.x <= x && facing == 1 && turning == 0) turning = 4; if (statetime > 120) { if (collision_line(x, y - 6, x + 160 * facing, y - 6, oCharacter, false, true)) { state = 2; statetime = 0; } } } if (state == 2) { xVel *= 0.8; yVel *= 0.8; if (aoffset < 2) aoffset += 0.2; if (statetime == 0) { } if (statetime == 60) alarm[0] = 1; if (statetime == 90) { state = 1; statetime = -1; } } if (stun == 0) moveTo(xVel, yVel); if (state == 100) { canbehit = 0; alarm[1] = 0; yVel += 0.1; moveTo(xVel, yVel); if (xVel <= 0) image_angle += 0.6; if (xVel > 0) image_angle -= 0.6; if (isCollisionLeft(1) || isCollisionRight(1)) xVel = 0; if (isCollisionBottom(1) || statetime > 240 || y > view_yview[0] + 240) { enemy_death2(); repeat (20) instance_create(x, y, oDebris); } } if (turning == 2) facing *= -1; if (turning > 0) turning -= 1; 1 603 7 0 0 -1 2 self 0 0 1 event_inherited(); deb = instance_create(x, y, oDebris); deb.sprite_index = sGunzooArmor1; deb.depth = -4; 1 603 7 0 0 -1 2 self 0 0 1 event_inherited(); if (random(2) < 0.2) instance_create(x, y, oDebris); if (myhealth <= 140 && prevhealth > 140) { expl = instance_create(x, y - 8, oFXAnimSpark); expl.image_speed = 0.5; expl.additive = 0; expl.sprite_index = sExpl1; expl.depth = -4; repeat (8) instance_create(x, y, oDebris); deb = instance_create(x, y, oDebris); deb.sprite_index = sGunzooArmor1; deb.depth = -4; phase = 1; } if (myhealth <= 70 && prevhealth > 70) { expl = instance_create(x + 8, y, oFXAnimSpark); expl.image_speed = 0.5; expl.additive = 0; expl.sprite_index = sExpl1; expl.depth = -4; repeat (8) instance_create(x, y, oDebris); deb = instance_create(x, y, oDebris); deb.sprite_index = sGunzooArmor1; deb.depth = -4; phase = 2; } if (myhealth <= 0) alarm[3] = 1; prevhealth = myhealth; 1 603 7 0 0 -1 2 self 0 0 1 instance_destroy(); 1 603 7 0 0 -1 2 self 0 0 1 if (!flashing) { if (turning == 0) { draw_sprite_ext(sprite_index, -1, x, y, facing, 1, image_angle, -1, 1); if (phase == 0) draw_sprite_ext(sGunzooArmor1, -1, x, y - aoffset, facing, 1, image_angle, -1, 1); if (phase <= 1) draw_sprite_ext(sGunzooArmor2, -1, x + aoffset, y, facing, 1, image_angle, -1, 1); } if (turning > 0) draw_sprite_ext(sGunzooTurn, -1, x, y, facing, 1, image_angle, -1, 1); } if (flashing) { if (turning == 0) { draw_sprite_ext(sprite_index, -1, x, y, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1); if (phase == 0) draw_sprite_ext(sGunzooArmor1, -1, x, y - aoffset, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1); if (phase <= 1) draw_sprite_ext(sGunzooArmor2, -1, x + aoffset, y, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1); } if (turning > 0) draw_sprite_ext(sGunzooTurn, -1, x, y, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1); draw_set_blend_mode(bm_add); repeat (3) { if (turning == 0) { draw_sprite_ext(sprite_index, -1, x, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.25); if (phase == 0) draw_sprite_ext(sGunzooArmor1, -1, x, y - aoffset, facing, 1, image_angle, -1, 1 - fxtimer * 0.25); if (phase <= 1) draw_sprite_ext(sGunzooArmor2, -1, x + aoffset, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.25); } if (turning > 0) draw_sprite_ext(sGunzooTurn, -1, x, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.25); } draw_set_blend_mode(bm_normal); } 0 0 0 0.5 0.100000001490116 0 0.100000001490116 0.100000001490116 0.200000002980232 -1 -1