This commit is contained in:
Alexey 2024-10-31 17:39:35 +03:00
commit 0556f63d2d
119 changed files with 2908 additions and 0 deletions

View file

@ -0,0 +1,2 @@
destAngle = random(360);
shipSpeed = random(shipMaxSpeed);

View file

@ -0,0 +1 @@
shipSpeed *= 0.25

View file

View file

@ -0,0 +1,13 @@
image_xscale = 0.8;
image_yscale = 0.8;
alert = 0;
shipSpeed = 0;
shipMaxSpeed = 5;
shipTurnRate = 180;
destAngle = 0;
alarm[0] = 1;
shipHealth = 15;
rocketDir = point_direction(0, 0, 32, 0); //оффсеты для спавна ракет
rocketLen = point_distance(0, 0, 32, 0); //то же

View file

@ -0,0 +1,2 @@
draw_sprite_ext(spShip1, 0, x, y, 0.8, 0.8, image_angle, global.faction2Color, 1);
draw_text(x, y - 32, shipHealth);

View file

@ -0,0 +1,76 @@
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();
}

View file

@ -0,0 +1,41 @@
{
"resourceType": "GMObject",
"resourceVersion": "1.0",
"name": "obEnemy",
"eventList": [
{"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":0,"eventType":0,"isDnD":false,},
{"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":0,"eventType":8,"isDnD":false,},
{"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":0,"eventType":3,"isDnD":false,},
{"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":0,"eventType":2,"isDnD":false,},
{"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":1,"eventType":2,"isDnD":false,},
{"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":2,"eventType":2,"isDnD":false,},
],
"managed": true,
"overriddenProperties": [],
"parent": {
"name": "Objects",
"path": "folders/Objects.yy",
},
"parentObjectId": null,
"persistent": false,
"physicsAngularDamping": 0.1,
"physicsDensity": 0.5,
"physicsFriction": 0.2,
"physicsGroup": 1,
"physicsKinematic": false,
"physicsLinearDamping": 0.1,
"physicsObject": false,
"physicsRestitution": 0.1,
"physicsSensor": false,
"physicsShape": 1,
"physicsShapePoints": [],
"physicsStartAwake": true,
"properties": [],
"solid": false,
"spriteId": {
"name": "spShip1",
"path": "sprites/spShip1/spShip1.yy",
},
"spriteMaskId": null,
"visible": true,
}