66 lines
2.3 KiB
C++
66 lines
2.3 KiB
C++
#pragma once
|
|
|
|
#include "mt/macro.h"
|
|
#include "mtb/Equip.h"
|
|
|
|
namespace mt
|
|
{
|
|
|
|
DECLARE_ID_TABLE(Equip, mtb::Equip,
|
|
"equip@equip.json",
|
|
"id")
|
|
public:
|
|
static const int YELLOW_STONE_ID = 31001;
|
|
static const int BLUE_STONE_ID = 31003;
|
|
static const int PURPLE_STONE_ID = 31004;
|
|
static const int WEAPON_STONE_ID = 31005;
|
|
|
|
int lock_time = 0;
|
|
//0,0,0,0,后座力,是否取消定身
|
|
std::vector<std::tuple<float, float, float, int, int, int>> _bullet_born_offset;
|
|
std::vector<std::tuple<int, glm::vec3>> _shoot_offsets;
|
|
std::vector<std::shared_ptr<std::tuple<float, float, float>>> _gun_muzzle_positions;
|
|
std::shared_ptr<std::tuple<float, float, float>> _movex_position;
|
|
std::array<int, IS_END> _volume = {};
|
|
int _int_param1 = 0;
|
|
float _float_param1 = 0;
|
|
int _int_param2 = 0;
|
|
float _float_param2 = 0;
|
|
std::vector<std::tuple<int, int, int>> _power_charge;
|
|
const mt::Buff* _buff_meta = nullptr;
|
|
std::vector<std::tuple<float, int>> _car_buff_list;
|
|
std::vector<int> _hit_buff_list;
|
|
int _car_active_buff_id = 0;
|
|
int _car_deactive_buff_id = 0;
|
|
long long _special_damage_type = 0;
|
|
int _group_id = 0;
|
|
float _atk = 0;
|
|
float _atk_up = 0;
|
|
float _max_hp = 0;
|
|
float _max_hp_up = 0;
|
|
std::tuple<int, float> _heal;
|
|
|
|
void Init1();
|
|
void Init2();
|
|
void AddMuzzlePos(int lv, std::shared_ptr<std::tuple<float, float, float>> pos);
|
|
int GetWeaponIdx() const;
|
|
bool Match(EventAddBuff_e event, int val, int val2) const;
|
|
static const Equip* GetByIdBySlotId(int slot_id);
|
|
static void AdjustMuzzlePos();
|
|
static const Equip* GetYellowStone();
|
|
static const Equip* GetBlueStone();
|
|
static const Equip* GetPurpleStone();
|
|
static const Equip* GetWeaponStone();
|
|
static void StaticPostInit();
|
|
|
|
private:
|
|
static const mt::Equip* yellow_stone_;
|
|
static const mt::Equip* blue_stone_;
|
|
static const mt::Equip* purple_stone_;
|
|
static const mt::Equip* weapon_stone_;
|
|
static std::map<int, const mt::Equip*> slot_hash_;
|
|
std::map<int, std::shared_ptr<std::tuple<float, float, float>>> _gun_muzzle_position_hash_;
|
|
};
|
|
|
|
}
|