ludum-dare-21/objects/obj_player/Step_0.gml

287 lines
7.2 KiB
Plaintext
Raw Permalink Normal View History

2021-06-16 23:23:00 -07:00
depth = -y;
global.healths += 1;
if global.healths >= 1001
{
global.healths = 1000;
}
// Keyboard commands
if keyboard_check_direct(ord("Z"))
{
global.maindir = direction
if shot == 0
{
if global.ammos > 0
{
iii = instance_create(x,y,obj_bullet_player);
with (iii)
{
speed = 25;
direction = global.maindir;
}
global.ammos -= 1
sound_play(snd_bullet_1);
sound_play(snd_bullet_2);
}
else
{
if global.clips >= 1 and reloading <= 0 and global.ammos != 14
{
global.clips -= 1;
global.ammos = 14;
reloading = 50;
}
if global.clips == 0 and global.ammos == 0
{
sound_play(snd_reload_1);
}
}
}
shot = 1;
}
else
{
if reloading == 49
sound_play(snd_reload_1)
if reloading == 46
sound_play(snd_reload_2)
if reloading == 6
sound_play(snd_reload_1)
if reloading == 3
sound_play(snd_reload_2)
if reloading <= 0
shot = 0;
else
reloading -= 1;
}
if keyboard_check_direct(ord("X"))
{
if global.clips >= 1 and reloading <= 0 and global.ammos != 14
{
reloading = 50;
global.ammos = 14;
global.clips -= 1;
}
}
if keyboard_check_direct(vk_up)
{
if keyboard_check_direct(vk_right)
{
if direction != 45
{
if direction == 225
direction = 45;
if direction > 225 or direction < 45
direction += 2.5;
if direction < 225 and direction > 45
direction -= 2.5;
}
}
else
{
if keyboard_check_direct(vk_left)
{
if direction != 135
{
if direction == 315
direction = 135;
if direction > 315 or direction < 135
direction += 2.5;
if direction < 315 and direction > 135
direction -= 2.5;
}
}
else
{
if direction != 90
{
if direction == 270
direction = 90;
if direction > 270 or direction < 90
direction += 2.5;
if direction < 270 and direction > 90
direction -= 2.5;
}
}
}
speed = 2
}
if keyboard_check_direct(vk_down)
{
if keyboard_check_direct(vk_right)
{
if direction != 315
{
if direction == 135
direction = 315;
if direction > 135 and direction < 315
direction += 2.5;
if direction < 135 or direction > 315
direction -= 2.5;
}
}
else
{
if keyboard_check_direct(vk_left)
{
if direction != 225
{
if direction == 45
direction = 225;
if direction > 45 and direction < 225
direction += 2.5;
if direction < 45 or direction > 225
direction -= 2.5;
}
}
else
{
if direction != 270
{
if direction == 90
direction = 270;
if direction > 90 and direction < 270
direction += 2.5;
if direction < 90 or direction > 270
direction -= 2.5;
}
}
}
speed = 2;
}
if keyboard_check_direct(vk_right)
{
if keyboard_check_direct(vk_up)
{
if direction != 45
{
if direction == 225
direction = 45;
if direction > 225 or direction < 45
direction += 2.5;
if direction < 225 and direction > 45
direction -= 2.5;
}
}
else
{
if keyboard_check_direct(vk_down)
{
if direction != 315
{
if direction == 135
direction = 315;
if direction > 135 and direction < 315
direction += 2.5;
if direction < 135 or direction > 315
direction -= 2.5;
}
}
else
{
if direction != 0
{
if direction == 180
direction = 0;
if direction > 180
direction += 2.5;
if direction < 180 and direction != 0
direction -= 2.5;
}
}
}
speed = 2;
}
if keyboard_check_direct(vk_left)
{
if keyboard_check_direct(vk_up)
{
if direction != 135
{
if direction == 315
direction = 135;
if direction > 315 or direction < 135
direction += 2.5;
if direction < 315 and direction > 135
direction -= 2.5;
}
}
else
{
if keyboard_check_direct(vk_down)
{
if direction != 225
{
if direction == 45
direction = 225;
if direction > 45 and direction < 225
direction += 2.5;
if direction < 45 or direction > 225
direction -= 2.5;
}
}
else
{
if direction != 180
{
if direction == 0
direction = 180;
if direction < 180
direction += 2.5;
if direction > 180
direction -= 2.5;
}
}
}
speed = 2;
}
if (place_meeting(x+hspeed,y,obj_walls))
{
repeat(abs(hspeed))
{
if (!place_meeting(x+sign(hspeed),y,obj_walls))
{
x += sign(hspeed);
}
else
{
break;
}
}
hspeed = 0;
}
if (place_meeting(x,y+vspeed,obj_walls))
{
repeat(abs(vspeed))
{
if (!place_meeting(x,y+sign(vspeed),obj_walls))
{
y += sign(vspeed);
}
else
{
break;
}
}
vspeed = 0;
}
if y > 1744
{
win = 1;
instance_destroy();
}
if global.healths < 1
{
win = -1;
instance_destroy();
}
if speed > 0 and !sound_isplaying(snd_walk)
sound_play(snd_walk);
image_index = round(direction / 360 * 16);