sIceShard 0 -1 0 0 <undefined> <undefined> 1 603 7 0 0 -1 2 self 0 0 1 setCollisionBounds(-8, -8, 8, 8); makeActive(); canbeX = 1; state = 0; statetime = 0; falling = 1; deathsound = sndEDeath1; platform = -4; image_speed = 0; alarm[0] = 1; spr0xoff = 0; spr0yoff = 0; spr1 = -4; spr1xoff = 0; spr1yoff = 0; spr1a = image_angle; spr1xs = image_xscale; spr1ys = image_yscale; spr1i = 0; spr2 = -4; spr2xoff = 0; spr2yoff = 0; spr2a = image_angle; spr2xs = image_xscale; spr2ys = image_yscale; spr2i = 0; spr3 = -4; spr3xoff = 0; spr3yoff = 0; spr3a = image_angle; spr3xs = image_xscale; spr3ys = image_yscale; spr3i = 0; 1 603 7 0 0 -1 2 self 0 0 1 alarm[0] = 10 + random(10); spark = instance_create(x + floor(random_range(-16, 16)), y + floor(random_range(-16, 16)), oFXAnimSpark); spark.gravity_direction = 270; spark.gravity = 0.1; spark.sprite_index = sIBeamFXA; spark.image_speed = 0.3; spark.image_index = 0; spark.depth = -20; 1 603 7 0 0 -1 2 self 0 0 1 if (state == 0 && falling) { if (global.waterlevel != 0) { if (y - 8 > global.waterlevel + global.wateroffset) { yVel -= 0.05; if (yVel < -0.5) yVel = -0.5; xVel *= 0.9; } else yVel += 0.1; } else if (isCollisionBottom(2) == 0) yVel += 0.1; if (isCollisionBottom(2) > 0) { if (yVel > 1) event_user(0); if (yVel > 0) yVel *= -0.4; if (abs(yVel) < 0.3) yVel = 0; if (collision_line(round(lb), round(bb + 4), round(rb - 1), round(bb + 4), oSlope1, true, true) > 0) { xVel -= 0.5; yVel *= 0.5; } if (collision_line(round(lb), round(bb + 4), round(rb - 1), round(bb + 4), oSlope2, true, true) > 0) { xVel += 0.5; yVel *= 0.5; } if (collision_line(round(lb), round(bb + 4), round(rb - 1), round(bb + 4), oSlope1B, true, true) > 0) { xVel -= 0.2; yVel *= 0.5; } if (collision_line(round(lb), round(bb + 4), round(rb - 1), round(bb + 4), oSlope2B, true, true) > 0) { xVel += 0.2; yVel *= 0.5; } xVel *= 0.9; } if (isCollisionTop(1) > 0 && yVel < 0) { yVel *= -1; xVel *= 0.9; } if (isCollisionRight(1) > 0 && xVel > 0 || isCollisionLeft(1) > 0 && xVel < 0) xVel *= -0.8; xVel = min(xVel, 6); xVel = max(xVel, -6); yVel = min(yVel, 6); yVel = max(yVel, -6); moveTo(xVel, yVel); image_angle += xVel * -2; } // if (state == 0 && falling) if (statetime >= 150) event_user(0); statetime += 1; 1 603 7 0 0 -1 2 self 0 0 1 with (other) event_user(0); 1 603 7 0 0 -1 2 self 0 0 1 event_user(0); with (other) event_user(0); 1 603 7 0 0 -1 2 self 0 0 1 event_user(0); 1 603 7 0 0 -1 2 self 0 0 1 event_user(0); 1 603 7 0 0 -1 2 self 0 0 1 event_user(0); 1 603 7 0 0 -1 2 self 0 0 1 if (sprite_index == sQueenProjFrozen) { spawn_rnd_pickup_at(x - 8, y - 4, 100); spawn_rnd_pickup_at(x + 8, y - 4, 100); spawn_rnd_pickup_at(x, y - 8, 100); canbeX = 0; } enemy_death_frozen(); 1 603 7 0 0 -1 2 self 0 0 1 spr0len = point_distance(x, y, x + spr0xoff, y + spr0yoff); spr0dir = image_angle + point_direction(x, y, x + spr0xoff, y + spr0yoff); spr1len = point_distance(x, y, x + spr1xoff, y + spr1yoff); spr1dir = image_angle + point_direction(x, y, x + spr1xoff, y + spr1yoff); spr2len = point_distance(x, y, x + spr2xoff, y + spr2yoff); spr2dir = image_angle + point_direction(x, y, x + spr2xoff, y + spr2yoff); spr3len = point_distance(x, y, x + spr3xoff, y + spr3yoff); spr3dir = image_angle + point_direction(x, y, x + spr3xoff, y + spr3yoff); draw_sprite_ext(sprite_index, -1, x + lengthdir_x(spr0len, spr0dir), y + lengthdir_y(spr0len, spr0dir), image_xscale, image_yscale, image_angle, -1, 1); if (spr1 != -4) draw_sprite_ext(spr1, spr1i, x + lengthdir_x(spr1len, spr1dir), y + lengthdir_y(spr1len, spr1dir), spr1xs, spr1ys, image_angle + spr1a, -1, 1); if (spr2 != -4) draw_sprite_ext(spr2, spr2i, x + lengthdir_x(spr2len, spr2dir), y + lengthdir_y(spr2len, spr2dir), spr2xs, spr2ys, image_angle + spr2a, -1, 1); if (spr3 != -4) draw_sprite_ext(spr3, spr3i, x + lengthdir_x(spr3len, spr3dir), y + lengthdir_y(spr3len, spr3dir), spr3xs, spr3ys, image_angle + spr3a, -1, 1); 0 0 0 0.5 0.100000001490116 0 0.100000001490116 0.100000001490116 0.200000002980232 -1 -1