if alert = 0 and distance_to_object(obSpaceship) > 256 and alarm[0]=-1 { alarm[0] = irandom_range(room_speed * 5, room_speed * 10); } else if distance_to_object(obSpaceship) <= 256 and !obSpaceship.inMenu { alert = 1; } if alert = 1 { if distance_to_object(obSpaceship) > 1024 { alert = 0; alarm[0] = 1; } shipSpeed = shipMaxSpeed; if shipHealth > 5 { if abs(angle_difference(destAngle, direction)) <= 10 and alarm[2] = -1 { lat = point_direction(x, y, obCursor.x, obCursor.y); lenX = lengthdir_x(rocketLen, lat + rocketDir); lenY = lengthdir_y(rocketLen, lat + rocketDir); laser = instance_create_layer(x + lenX, y + lenY, "Instances", obLaser); laser.direction = direction; laser.owner = id; alarm[2] = room_speed/5; } if distance_to_object(obSpaceship) >= 128 { destAngle = point_direction(x, y, obSpaceship.x, obSpaceship.y); } else { destAngle += 1; } } } image_angle = direction; speed = shipSpeed; if direction != destAngle { if angle_difference(destAngle, direction)<0 { direction -= shipTurnRate/room_speed; } else { direction += shipTurnRate/room_speed; } } if (x < 0 or x > room_width or y < 0 or y > room_height) { destAngle = point_direction(x, y, obSpacestation.x, obSpacestation.y); shipSpeed = shipMaxSpeed; } if place_meeting(x, y, obSpacestation) { x = xprevious - lengthdir_x(16, point_direction(x, y, obSpacestation.x, obSpacestation.y)); y = yprevious - lengthdir_y(16, point_direction(x, y, obSpacestation.x, obSpacestation.y)); alarm[1] = 1; alarm[0] = 1; } if shipHealth <= 0 { instance_create_layer(random(room_width), random(room_height), "Instances", obEnemy); bounty = instance_create_layer(x, y, "Instances", obBounty); bounty.amount = irandom_range(10, 25); instance_destroy(); }