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