2020-07-16 11:23:07 +08:00

135 lines
4.6 KiB
C++
Executable File

#pragma once
#include "metadata.h"
class MetaDataLoader;
class MetaMgr : public a8::Singleton<MetaMgr>
{
private:
MetaMgr() {};
friend class a8::Singleton<MetaMgr>;
public:
void Init();
void UnInit();
void Reload();
int GetSysParamAsInt(const std::string& param_name, int def_val = 0);
double GetSysParamAsFloat(const std::string& param_name, double def_val = 0.0f);
std::string GetSysParamAsString(const std::string& param_name, const char* def_val = "");
MetaData::Map* GetMap(int map_id);
MetaData::MapThing* GetMapThing(int mapthing_id);
MetaData::Player* GetPlayer(int id);
MetaData::Equip* GetEquip(int id);
MetaData::Equip* GetEquipBySlotId(int slot_id);
MetaData::EquipUpgrade* GetEquipUpgrade(int equip_id);
MetaData::Building* GetBuilding(int building_id);
MetaData::Drop* GetDrop(int drop_id);
MetaData::SafeArea* GetSafeArea(int area_id);
std::vector<MetaData::MapTplThing>* GetMapTplThing(std::string& map_name);
std::list<MetaData::AirDrop>& GetAirDrops();
MetaData::AirLine* RandAirLine(int map_id);
MetaData::Skill* GetSkill(int skill_id);
MetaData::Buff* GetBuff(int buff_id);
MetaData::Attr* GetAttrById(int attr_id);
MetaData::Attr* GetAttrByName(const std::string& attr_name);
MetaData::Dress* GetDress(int dress_id);
MetaData::Dress* RandDress();
MetaData::RankReward* GetRankReward(int rank);
float GetRankRewardParam(int rank);
float GetKillRewardParam(int kill_num);
int GetRankPointParam1(int rank);
int GetRankPointParam2(int rank);
int GetRankPointParam3(int rank);
int GetKillPointParam1(int kill_num);
int GetKillPointParam2(int kill_num);
MetaData::Robot* RandRobot(std::set<int>& refreshed_robot_set);
MetaData::AI* GetAI(int ai_level);
int gas_inactive_time = 10;
int newbie_gas_inactive_time = 5;
int midbrid_gas_inactive_time = 15;
int common_gas_inactive_time = 15;
int jump_time = 10;
float K = 100.0f;
float kill_param = 0.0f;
float rank_param = 0.0f;
int fighting_mode = 0;
float tank_damage1 = 0.0f;
float tank_damage2 = 0.0f;
float tank_damage_interval = 0.0f;
float average_oil = 0.0f;
float max_oil = 0.0f;
float horse_shoot_x = 0.0f;
float horse_shoot_y = 0.0f;
float max_mount_horse_distance = 100.0f;
int newbie_game_times = 0;
int niube_win_times = 0;
int newbie_fill_interval = 0;
std::string newbie_born_point;
std::vector<int> newbie_drop;
std::vector<int> newbie_airdrop;
int newbie_first_robot_distance = 0;
int newbie_first_robot_appeartime = 0;
int newbie_first_robot_ammo = 0;
int newbie_airdrop_appeartime = 0;
std::vector<int> newbie_buff_list;
int level0room_shua_robot_min_time = 0;
int level0room_shua_robot_max_time = 0;
int level0room_shua_robot_min_num = 0;
int level0room_shua_robot_max_num = 0;
int level0room_die_robot_min_time = 0;
int level0room_die_robot_max_time = 0;
int level0room_die_robot_min_num = 0;
int level0room_die_robot_max_num = 0;
int level0room_robot_water = 0;
int level0room_robot_protect_time = 0;
int level0room_robot_autodie_time = 0;
int level0room_robot_autodie_distance = 0;
std::set<int> level0room_spec_things_set;
std::vector<int> level0room_spec_airdrops;
std::vector<std::tuple<int, int>> mini_room_ai_weights;
int mini_room_ai_weights_space = 0;
std::vector<std::tuple<int, int>> normal_room_ai_weights;
int normal_room_ai_weights_space = 0;
std::string mini_room_ai;
std::string normal_room_ai;
int level1room_shua_robot_min_time = 0;
int level1room_shua_robot_max_time = 0;
int level1room_shua_robot_min_num = 0;
int level1room_shua_robot_max_num = 0;
int level1room_die_robot_min_time = 0;
int level1room_die_robot_max_time = 0;
int level1room_die_robot_min_num = 0;
int level1room_die_robot_max_num = 0;
int level1room_robot_water = 0;
int level1room_robot_autodie_time = 0;
int level1room_robot_autodie_distance = 0;
std::string level1room_born_point;
int refresh_robot_min_num = 0;
int refresh_robot_max_num = 0;
int refresh_robot_min_time = 0;
int refresh_robot_max_time = 0;
int other_fill_interval = 0;
float android_attack_range = 0;
float android_pursuit_range = 0;
float android_patrol_range = 0;
int map_cell_width = 64 * 8;
MetaData::Player* human_meta = nullptr;
MetaData::Player* android_meta = nullptr;
private:
MetaDataLoader* loader_ = nullptr;
std::string level0room_spec_things;
std::string level0room_spec_airdrop;
friend class MetaDataLoader;
};