201 lines
7.1 KiB
C++
201 lines
7.1 KiB
C++
#pragma once
|
|
|
|
#include "metadata.h"
|
|
|
|
#define TEXT(textid, def_text) MetaMgr::Instance()->GetText(textid, def_text)
|
|
|
|
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);
|
|
std::list<MetaData::Map>* GetMaps();
|
|
MetaData::MapThing* GetMapThing(int mapthing_id);
|
|
MetaData::Player* GetPlayer(int id);
|
|
MetaData::PlayerSkin* GetPlayerSkin(int id);
|
|
std::shared_ptr<std::vector<MetaData::PlayerSkin*>> GetHeroSkins(int hero_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);
|
|
MetaData::SafeArea* GetSafeAreaByType(int area_type);
|
|
MetaData::SafeAreaPos* RandSafeAreaPos(int area_id);
|
|
std::vector<MetaData::SafeAreaPos*>* GetSafeAreaPosList(int area_id);
|
|
std::vector<MetaData::MapTplThing>* GetMapTplThing(const std::string& map_name);
|
|
metatable::TerrainJson* GetTerrainJson(int map_id);
|
|
std::list<metatable::MapLayerJson>* GetMapLayer(const std::string& map_name);
|
|
std::list<metatable::MapBlockJson>* GetMapBlock(const std::string& map_name);
|
|
std::list<MetaData::AirDrop>& GetAirDrops();
|
|
MetaData::AirDrop* GetAirDrop(int airdrop_id);
|
|
std::list<MetaData::AirRaid>& GetAirRaids();
|
|
MetaData::AirRaid* GetAirRaid(int airraid_id);
|
|
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);
|
|
MetaData::GunTalentGrow* GetTalent(int talent_id, int talent_lv);
|
|
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* GetAndroidAI(int ai_level, int ai_mode);
|
|
MetaData::AI* GetHeroAI(int id);
|
|
std::string GetText(const std::string& textid, const std::string& def_text="");
|
|
bool HasText(const std::string& textid);
|
|
std::vector<std::tuple<int, std::string>>* GetTextElements(const std::string& textid);
|
|
|
|
int gas_inactive_time = 10;
|
|
int newbie_gas_inactive_time = 5;
|
|
int midbrid_gas_inactive_time = 15;
|
|
int common_gas_inactive_time = 15;
|
|
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 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>> a_room_ai_weights;
|
|
int a_room_ai_weights_space = 0;
|
|
std::vector<std::tuple<int, int>> b_room_ai_weights;
|
|
int b_room_ai_weights_space = 0;
|
|
std::vector<std::tuple<int, int>> c_room_ai_weights;
|
|
int c_room_ai_weights_space = 0;
|
|
std::string a_room_ai;
|
|
std::string b_room_ai;
|
|
std::string c_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;
|
|
|
|
float grass_invisible_time = 0.5;
|
|
float grass_show_time = 0.5f;
|
|
float grass_invisible_time2 = 2.0f;
|
|
float water_invisible_time = 0.5;
|
|
float water_show_time = 0.5f;
|
|
float water_invisible_time2 = 2.0f;
|
|
double water_move_coefficient = 0.75f;
|
|
float ice_invisible_time = 0.5;
|
|
float ice_show_time = 0.5f;
|
|
float ice_invisible_time2 = 2.0f;
|
|
|
|
int refresh_ai_destory_box_time = 30;
|
|
int refresh_ai_destory_box_times = 5;
|
|
int refresh_ai_downed_nearby_teammate_num = 1;
|
|
int refresh_ai_downed_nearby_range = 580;
|
|
|
|
int view_objects_out_distance = 580;
|
|
int view_objects_in_distance = 580;
|
|
|
|
int incubator_base_length = 580;
|
|
int incubator_rand_length = 100;
|
|
int incubator_canset_distance = 100;
|
|
|
|
int refresh_view_time = 8;
|
|
|
|
int teammate_kill_color = 0xFFFF00;
|
|
int teammate_bekill_color = 0xFF0000;
|
|
|
|
int self_kill_color = 0xFFFF00;
|
|
int self_bekill_color = 0xFF0000;
|
|
|
|
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;
|
|
int bullet_planck_step_length = 15;
|
|
MetaData::Player* human_meta = nullptr;
|
|
MetaData::Player* android_meta = nullptr;
|
|
MetaData::Player* terminator_meta = nullptr;
|
|
|
|
int prebattle_box_id_chiji = 0;
|
|
|
|
int prebattle_can_use_skill = 0;
|
|
int watchable = 0;
|
|
int prebattle_combine_team = 1;
|
|
|
|
int async_send_mapblock = 1;
|
|
int show_team_ui = 1;
|
|
int match_team_time = 0;
|
|
int match_robot_time = 0;
|
|
int match_choose_time = 0;
|
|
int match_lock_time = 0;
|
|
|
|
int dive_oxygen_total = 0;
|
|
int dive_oxygen_consume = 0;
|
|
int dive_hp_consume = 0;
|
|
int dive_explosion_dmg_switch = 0;
|
|
int inwater_oxygen_recover = 0;
|
|
|
|
private:
|
|
MetaDataLoader* loader_ = nullptr;
|
|
|
|
std::string level0room_spec_things;
|
|
std::string level0room_spec_airdrop;
|
|
friend class MetaDataLoader;
|
|
};
|