Line data Source code
1 : #ifndef __WEAPON_HPP__
2 : #define __WEAPON_HPP__
3 :
4 : #include "core/types/WeaponType.hpp"
5 : #include "core/entities/WeaponParameters.hpp"
6 :
7 : #include <vector>
8 : #include <cstdint>
9 :
10 : namespace Soldank
11 : {
12 : class Weapon
13 : {
14 : public:
15 : Weapon(const WeaponParameters& weapon_parameters);
16 :
17 : bool IsAny(const std::vector<WeaponType>& weapons) const;
18 : const WeaponParameters& GetWeaponParameters() const;
19 :
20 0 : void ResetStartUpTimeCount() { start_up_time_count_ = weapon_parameters_.start_up_time; };
21 0 : void SetReloadTimePrev(std::uint16_t reload_time_prev)
22 : {
23 0 : reload_time_prev_ = reload_time_prev;
24 0 : };
25 0 : std::uint16_t GetReloadTimeCount() const { return reload_time_count_; };
26 :
27 2 : std::uint8_t GetAmmoCount() const { return ammo_count_; }
28 : std::uint16_t GetClipInTime() const { return clip_in_time_; }
29 : std::uint16_t GetClipOutTime() const { return clip_out_time_; }
30 :
31 : private:
32 : WeaponParameters weapon_parameters_;
33 :
34 : std::uint8_t ammo_count_;
35 : std::uint16_t fire_interval_prev_;
36 : std::uint16_t fire_interval_count_;
37 : float fire_interval_real_;
38 : std::uint16_t start_up_time_count_;
39 : std::uint16_t reload_time_prev_;
40 : std::uint16_t reload_time_count_;
41 : float reload_time_real_;
42 : std::uint16_t clip_in_time_;
43 : std::uint16_t clip_out_time_;
44 : };
45 : } // namespace Soldank
46 :
47 : #endif
|