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 @@
///@description первичка

View file

@ -0,0 +1 @@
shipSpeed *= 0.75;

View file

@ -0,0 +1,2 @@
x = obSpacestationMenu.x;
y = obSpacestationMenu.y;

View file

@ -0,0 +1,71 @@
/// @description магазин
switch action
{
case 1:
if shipHealth < shipMaxHealth and global.money >= 30
{
shipHealth = shipMaxHealth;
global.money -= 30;
action = 0;
}
break;
case 2:
if global.money >= 20
{
shipTurboFuel += shipTurboFuelLimit/5;
global.money -= 20;
action = 0;
}
break;
case 3:
if global.money >= 10
{
rockets += 5;
global.money -= 10;
action = 0;
}
break;
case 4:
if global.money >= 100
{
switch shipType
{
case global.shipMk1:
shipType = global.shipMk2;
global.money -= 100;
action = 0;
break;
case global.shipMk2:
shipType = global.shipMk3;
global.money -= 100;
action = 0;
break;
case global.shipMk3:
show_message("Слышь, ублюдок ебаный, прекрати хуярить лес, немедленно, блядская тварь 2000 ранга нахуй!\n"+
"Ты заебал уже, меня твоё нахуй присутствие в игре раздражает блять!\n"+
"Выйди нахуй, разбей свои тревела ебучие, не позорься, блять, тварь блядская.");
break;
}
}
case 5:
shield = global.shieldMk1;
action = 0;
break;
case 6:
shield = global.shieldMk2;
action = 0;
break;
case 7:
primaryWeapon = global.laserMk1;
action = 0;
break;
case 8:
primaryWeapon = global.laserMk2;
action = 0;
break;
}

View file

@ -0,0 +1 @@
/// @description вторичка

View file

@ -0,0 +1 @@
/// @description щиты

View file

@ -0,0 +1,2 @@
x = xprevious;
y = yprevious;

View file

@ -0,0 +1,49 @@
shipSpeed = 0; //тек. скорость
shipAccel = 2; //скорость ускорения
shipTurnRate = 180; //скорость поворота
shipTurboSpeed = 10;
shipTurboFuel = room_speed * 30;
shipTurboFuelLimit = room_speed * 30;
shipSpeedUpCap = 5; //макс скорость
shipSpeedDownCap = -1.25; //мин скорость
destAngle = 0; //угол назначения
rocketDir = point_direction(0, 0, 32, 0); //оффсеты для спавна ракет
rocketLen = point_distance(0, 0, 32, 0); //то же
spacestationLocation = 0; //угол станции отн корабля
inMenu = 0;
camX = 0;
camY = 0;
guiMouseX = 0;
guiMouseY = 0;
shipHealth = 40;
shipMaxHealth = 40;
alarm[2] = 1;
turbo = 0;
shipType = global.shipMk1;
primaryWeapon = global.laserMk1;
secondaryWeapon = global.rocketMk1;
engine = global.engineMk1;
action = 0;
rockets = 20;
shield = global.shieldMk1;
shipShield = 5;
inventory = array_create(5, global.nonei);

View file

@ -0,0 +1,24 @@
draw_sprite_ext(spShip1, 0, x, y, 1, 1, image_angle, global.playerColor, 1)
if inMenu
{
draw_sprite_stretched_ext(spMenuBack, 0, camX+128, camY+128, 128, 128, global.faction1Color, 1);
draw_sprite_stretched_ext(spMenuBack, 0, camX+132, camY+131, 120, 28, global.faction1Color, 1);
draw_sprite_stretched_ext(spMenuBack, 0, camX+132, camY+162, 120, 28, global.faction1Color, 1);
draw_sprite_stretched_ext(spMenuBack, 0, camX+132, camY+193, 120, 28, global.faction1Color, 1);
draw_sprite_stretched_ext(spMenuBack, 0, camX+132, camY+224, 120, 28, global.faction1Color, 1);
draw_text_ext_color(camX + 192, camY + 145, "Восстановить здоровье (30 §)", 9, 120, global.faction1Color, global.faction1Color, global.faction1Color, global.faction1Color, 1);
draw_text_ext_color(camX + 192, camY + 176, "+20% топлива (20 §)", 9, 120, global.faction1Color, global.faction1Color, global.faction1Color, global.faction1Color, 1);
draw_text_ext_color(camX + 192, camY + 207, "+5 ракет (10 §)", 9, 120, global.faction1Color, global.faction1Color, global.faction1Color, global.faction1Color, 1);
draw_text_ext_color(camX + 192, camY + 238, "Улучшить корабль (100 §)", 9, 120, global.faction1Color, global.faction1Color, global.faction1Color, global.faction1Color, 1);
draw_sprite_stretched_ext(spMenuBack, 0, camX+272, camY+128, 128, 128, global.faction1Color, 1);
draw_sprite_stretched_ext(spMenuBack, 0, camX+276, camY+131, 120, 28, global.faction1Color, 1);
draw_sprite_stretched_ext(spMenuBack, 0, camX+276, camY+162, 120, 28, global.faction1Color, 1);
draw_sprite_stretched_ext(spMenuBack, 0, camX+276, camY+193, 120, 28, global.faction1Color, 1);
draw_sprite_stretched_ext(spMenuBack, 0, camX+276, camY+224, 120, 28, global.faction1Color, 1);
draw_text_ext_color(camX + 336, camY + 145, "Щит Mk1 (5, 1, 3)", 9, 120, global.faction1Color, global.faction1Color, global.faction1Color, global.faction1Color, 1);
draw_text_ext_color(camX + 336, camY + 176, "Щит Mk2 (10, 1, 5)", 9, 120, global.faction1Color, global.faction1Color, global.faction1Color, global.faction1Color, 1);
draw_text_ext_color(camX + 336, camY + 207, "Лазер Mk1 (1, 12, 5)", 9, 120, global.faction1Color, global.faction1Color, global.faction1Color, global.faction1Color, 1);
draw_text_ext_color(camX + 336, camY + 238, "Лазер Mk2 (2, 12, 5)", 9, 120, global.faction1Color, global.faction1Color, global.faction1Color, global.faction1Color, 1);
}

View file

@ -0,0 +1,28 @@
draw_set_valign(fa_middle);
draw_set_halign(fa_middle);
draw_line_color(1366-75, 768-256, 1366-200, 768-256, global.playerColor, global.playerColor);
draw_line_color(1366-100, 768-271, 1366-100, 768-241, global.playerColor, global.playerColor);
draw_rectangle_color(1366-100, 768-266, 1366-shipSpeed/shipSpeedUpCap*100-100, 768-246, global.playerColor, global.playerColor, global.playerColor, global.playerColor, true); //скорость
draw_rectangle_color(1366-76, 768-270, 1366-199, 768-240, global.playerColor, global.playerColor, global.playerColor, global.playerColor, true);
draw_text_color(150, 768-160, string(shipShield) + " # " + string(global.money) + " § " + string(round(shipTurboFuel/shipTurboFuelLimit*100)) + " % » " + string(rockets) + " ¤", global.playerColor, global.playerColor, global.playerColor, global.playerColor, 1)
if !inMenu
{
draw_line_color(1366/2 + lengthdir_x(128, spacestationLocation), 768/2 + lengthdir_y(128, spacestationLocation), 1366/2 + lengthdir_x(192, spacestationLocation), 768/2 + lengthdir_y(192, spacestationLocation), global.faction1Color, global.faction1Color); //указатель станции
}
draw_line_color(1366/2 + lengthdir_x(160, point_direction(x, y, obEnemy.x, obEnemy.y)), 768/2 + lengthdir_y(160, point_direction(x, y, obEnemy.x, obEnemy.y)), 1366/2 + lengthdir_x(192, point_direction(x, y, obEnemy.x, obEnemy.y)), 768/2 + lengthdir_y(192, point_direction(x, y, obEnemy.x, obEnemy.y)), global.faction2Color, global.faction2Color);
draw_rectangle_color(64, 768-64, 96, 768-96, global.playerColor, global.playerColor, global.playerColor, global.playerColor, true);
draw_text_color(80, 768-78, string(shipHealth) + " +", global.playerColor, global.playerColor, global.playerColor, global.playerColor, 1);
draw_sprite_stretched_ext(spMenuBack, 0, 1366-144, 768-184, 128, 168, global.playerColor, 1);
draw_sprite_stretched_ext(spMenuBack, 0, 1366-140, 768-180, 120, 28, global.playerColor, 1);
draw_sprite_stretched_ext(spMenuBack, 0, 1366-140, 768-149, 120, 28, global.playerColor, 1);
draw_sprite_stretched_ext(spMenuBack, 0, 1366-140, 768-118, 120, 28, global.playerColor, 1);
draw_sprite_stretched_ext(spMenuBack, 0, 1366-140, 768-87, 120, 28, global.playerColor, 1);
draw_sprite_stretched_ext(spMenuBack, 0, 1366-140, 768-56, 120, 28, global.playerColor, 1);
draw_text_ext_color(1366-80, 768-166, shipType.sname, 9, 120, global.playerColor, global.playerColor, global.playerColor, global.playerColor, 1);
draw_text_ext_color(1366-80, 768-135, engine.sname, 9, 120, global.playerColor, global.playerColor, global.playerColor, global.playerColor, 1);
draw_text_ext_color(1366-80, 768-104, primaryWeapon.sname, 9, 120, global.playerColor, global.playerColor, global.playerColor, global.playerColor, 1);
draw_text_ext_color(1366-80, 768-73, secondaryWeapon.sname, 9, 120, global.playerColor, global.playerColor, global.playerColor, global.playerColor, 1);
draw_text_ext_color(1366-80, 768-42, shield.sname, 9, 120, global.playerColor, global.playerColor, global.playerColor, global.playerColor, 1);

View file

@ -0,0 +1,236 @@
destAngle = point_direction(x, y, obCursor.x, obCursor.y);
if direction != destAngle //ограниченный поворот
{
if global.movementType = 0
{
if angle_difference(destAngle, direction)<0
{
direction -= shipTurnRate/room_speed;
}
else
{
direction += shipTurnRate/room_speed;
}
}
else
{
if keyboard_check(global.bindTurnLeft)
{
direction += shipTurnRate/room_speed;
}
if keyboard_check(global.bindTurnRight)
{
direction -= shipTurnRate/room_speed;
}
}
}
else
{
direction = destAngle;
}
image_angle = direction;
speed = shipSpeed;
if keyboard_check(global.bindAccelerate) //ускорение
{
if shipSpeed < shipSpeedUpCap and !turbo
{
shipSpeed += shipAccel/room_speed;
}
else
{
shipSpeed = shipSpeedUpCap;
}
}
if keyboard_check(global.bindDeaccelerate) //торможение
{
if shipSpeed > shipSpeedDownCap
{
shipSpeed -= shipAccel/room_speed;
}
else
{
shipSpeed = shipSpeedDownCap;
}
}
if !inMenu and (keyboard_check_pressed(global.bindFire) or mouse_check_button_pressed(mb_right)) and alarm[4] = -1
{
switch secondaryWeapon.weapontype
{
case weaponType.rocket:
if rockets > 0 //ракеты
{
lat = point_direction(x, y, obCursor.x, obCursor.y);
lenX = lengthdir_x(rocketLen, lat + rocketDir);
lenY = lengthdir_y(rocketLen, lat + rocketDir);
rocket = instance_create_layer(x + lenX, y + lenY, "Instances", obRocket);
rocket.direction = direction;
rocket.owner = obSpaceship;
rocket.damage = secondaryWeapon.damage;
rocket.rocketTurnRate = secondaryWeapon.rotationspeed;
rocket.speed = secondaryWeapon.projspeed;
rockets--;
alarm[4] = room_speed / secondaryWeapon.firerate;
}
break;
case weaponType.laser: //лазеры
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 = obSpaceship;
laser.damage = secondaryWeapon.damage;
laser.speed = secondaryWeapon.projspeed;
alarm[4] = room_speed / secondaryWeapon.firerate;
}
}
if !inMenu and mouse_check_button(mb_left) and alarm[0] = -1
{
switch primaryWeapon.weapontype
{
case weaponType.rocket:
if rockets > 0 //ракеты
{
lat = point_direction(x, y, obCursor.x, obCursor.y);
lenX = lengthdir_x(rocketLen, lat + rocketDir);
lenY = lengthdir_y(rocketLen, lat + rocketDir);
rocket = instance_create_layer(x + lenX, y + lenY, "Instances", obRocket);
rocket.direction = direction;
rocket.owner = obSpaceship;
rocket.damage = primaryWeapon.damage;
rocket.rocketTurnRate = primaryWeapon.rotationspeed;
rocket.speed = primaryWeapon.projspeed;
rockets--;
alarm[0] = room_speed / primaryWeapon.firerate;
}
break;
case weaponType.laser: //лазеры
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 = obSpaceship;
laser.damage = primaryWeapon.damage;
laser.speed = primaryWeapon.projspeed;
alarm[0] = room_speed / primaryWeapon.firerate;
}
}
if place_meeting(x, y, obSpacestation)
{
x = xprevious - lengthdir_x(16, spacestationLocation);
y = yprevious - lengthdir_y(16, spacestationLocation);
alarm[1] = 1;
if inMenu
{
shipSpeed = 0;
}
}
spacestationLocation = point_direction(x, y, obSpacestation.x, obSpacestation.y);
with obSpacestationMenu
{
obSpaceship.inMenu = collision_circle(x, y, radius, obSpaceship, true, false);
}
camX = camera_get_view_x(view_camera[0]);
camY = camera_get_view_y(view_camera[0]);
guiMouseX = device_mouse_x_to_gui(0);
guiMouseY = device_mouse_y_to_gui(0);
if inMenu
{
if guiMouseX >= 132 and guiMouseX <= 252 and guiMouseY >= 131 and guiMouseY <= 159 and mouse_check_button_released(mb_left)
{
action = 1;
alarm[3] = 1;
}
if guiMouseX >= 132 and guiMouseX <= 252 and guiMouseY >= 162 and guiMouseY <= 190 and mouse_check_button_released(mb_left)
{
action = 2;
alarm[3] = 1;
}
if guiMouseX >= 132 and guiMouseX <= 252 and guiMouseY >= 193 and guiMouseY <= 221 and mouse_check_button_released(mb_left)
{
action = 3;
alarm[3] = 1;
}
if guiMouseX >= 132 and guiMouseX <= 252 and guiMouseY >= 224 and guiMouseY <= 252 and mouse_check_button_released(mb_left)
{
action = 4;
alarm[3] = 1;
}
if guiMouseX >= 276 and guiMouseX <= 456 and guiMouseY >= 131 and guiMouseY <= 159 and mouse_check_button_released(mb_left)
{
action = 5;
alarm[3] = 1;
}
if guiMouseX >= 276 and guiMouseX <= 456 and guiMouseY >= 162 and guiMouseY <= 190 and mouse_check_button_released(mb_left)
{
action = 6;
alarm[3] = 1;
}
if guiMouseX >= 276 and guiMouseX <= 456 and guiMouseY >= 193 and guiMouseY <= 221 and mouse_check_button_released(mb_left)
{
action = 7;
alarm[3] = 1;
}
if guiMouseX >= 276 and guiMouseX <= 456 and guiMouseY >= 224 and guiMouseY <= 252 and mouse_check_button_released(mb_left)
{
action = 8;
alarm[3] = 1;
}
}
if shipHealth <= 0
{
shipHealth = round(shipMaxHealth/2);
shipSpeed = 0;
alarm[2] = 1;
}
if keyboard_check(global.bindTurbo) and shipTurboFuel > 0 and engine.shipTurbo
{
turbo = 1;
shipTurboFuel--;
shipSpeed = shipTurboSpeed;
}
else
{
turbo = 0;
if shipSpeed > shipSpeedUpCap
{
shipSpeed = shipSpeedUpCap;
}
}
shipMaxHealth = shipType.shipHealth;
shipSpeedUpCap = engine.shipSpeedUpCap;
shipSpeedDownCap = engine.shipSpeedDownCap;
shipTurboSpeed = engine.shipTurboSpeed;
shipTurboFuelLimit = engine.shipTurboFuelLimit;
if shipTurboFuel > shipTurboFuelLimit
{
shipTurboFuel = shipTurboFuelLimit;
}
if alarm[5] = -1 and shipShield < shield.shieldCapacity
{
shipShield += shield.shieldChargerate/room_speed;
}
if shipShield > shield.shieldCapacity
{
shipShield = shield.shieldCapacity
}

View file

@ -0,0 +1,45 @@
{
"resourceType": "GMObject",
"resourceVersion": "1.0",
"name": "obSpaceship",
"eventList": [
{"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":0,"isDnD":false,},
{"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":64,"eventType":8,"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":1,"eventType":2,"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":2,"eventType":2,"isDnD":false,},
{"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":3,"eventType":2,"isDnD":false,},
{"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":4,"eventType":2,"isDnD":false,},
{"resourceType":"GMEvent","resourceVersion":"1.0","name":"","collisionObjectId":null,"eventNum":5,"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,
}