group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
GrenadeState.hpp
Go to the documentation of this file.
1
3
4#pragma once
5
8
9#include <array>
10#include <cstddef>
11
13
15{
17 std::array<int, kGrenadeTypeCount> ammo{};
18 float cooldown = 0.0f;
19};
20
22{
23 GrenadeState state{};
25 for (std::size_t i = 0; i < kGrenadeTypes.size(); ++i) {
27 }
28 return state;
29}
30
31inline int& grenadeAmmo(GrenadeState& state, WeaponType type)
32{
33 return state.ammo[grenadeTypeIndex(type)];
34}
35
36inline int grenadeAmmo(const GrenadeState& state, WeaponType type)
37{
38 return state.ammo[grenadeTypeIndex(type)];
39}
Per-grenade-type tuning data (throw, flight, detonation).
std::size_t grenadeTypeIndex(WeaponType type)
Definition GrenadeConfig.hpp:82
constexpr std::array< WeaponType, 3 > kGrenadeTypes
Definition GrenadeConfig.hpp:64
GrenadeState makeDefaultGrenadeState()
Definition GrenadeState.hpp:21
const int defaultGrenadeStartAmount
Definition GrenadeState.hpp:12
int & grenadeAmmo(GrenadeState &state, WeaponType type)
Definition GrenadeState.hpp:31
Static gameplay tuning data for each weapon type.
WeaponType
Weapon type — determines tracer style, damage, sound, and impact effects.
Definition WeaponState.hpp:12
@ HEGrenade
Bouncy grenade with 3s fuse, lethal explosion + big knockback.
Definition WeaponState.hpp:18
Definition GrenadeState.hpp:15
std::array< int, kGrenadeTypeCount > ammo
Definition GrenadeState.hpp:17
float cooldown
Definition GrenadeState.hpp:18
WeaponType selected
Definition GrenadeState.hpp:16