aozhiwei 9479283a22 1
2023-07-05 13:31:48 +08:00

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_;
};
}