summaryrefslogtreecommitdiff
path: root/src/players.c
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrik@amftech.nl>2023-10-28 11:12:22 +0200
committerAldrik Ramaekers <aldrik@amftech.nl>2023-10-28 11:12:22 +0200
commit4e378fe6a3aacb398d88865b833b12e3dbd194a3 (patch)
treeba245c0f0f52a81a77a76c927f4d5118e7b3c1ea /src/players.c
parent18c1dfbb78d98516f5480f8199910fe41ac904df (diff)
player reloading delay
Diffstat (limited to 'src/players.c')
-rw-r--r--src/players.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/players.c b/src/players.c
index 4ea763d..03ee4e0 100644
--- a/src/players.c
+++ b/src/players.c
@@ -215,6 +215,18 @@ void update_players_server() {
for (int i = 0; i < MAX_PLAYERS; i++) {
if (!players[i].active) continue;
players[i].sec_since_last_shot += SERVER_TICK_RATE;
+ players[i].sec_since_interact_state_change += SERVER_TICK_RATE;
+
+ gun g = get_gun_by_type(players[i].guntype);
+ if (players[i].interact_state == INTERACT_RELOADING && players[i].sec_since_interact_state_change >= g.reload_time) {
+ int amount_to_reload = g.magazine_size;
+ if (amount_to_reload > players[i].total_ammo) amount_to_reload = players[i].total_ammo;
+ players[i].total_ammo -= amount_to_reload;
+ players[i].ammo_in_mag = amount_to_reload;
+
+ players[i].interact_state = INTERACT_IDLE;
+ }
+
update_sprite(&players[i].sprite);
}
}