add ai config

This commit is contained in:
aozhiwei 2020-07-14 14:13:44 +08:00
parent b959b8b332
commit 3f0a482ea2
6 changed files with 42 additions and 22 deletions

View File

@ -15,13 +15,13 @@ const int SHUA_RANGE = 580;
ai级别
1: ()
2:
3:
4: ()
5:
6:
7:
8:
2: param1: param2:
3: param1:
4: () param1:
5: param1: param2:
6: param1:
7: param1:
8: param1:
*/
AndroidNewAI::~AndroidNewAI()

View File

@ -34,6 +34,11 @@ struct OldAiData
long long series_attack_frames = 0;
};
namespace MetaData
{
class AI;
}
class Human;
class AndroidNewAI : public AIComponent
{
@ -64,12 +69,7 @@ private:
private:
OldAiData old_ai_data_;
double param1_ = 0;
double param2_ = 0;
double param3_ = 0;
double param4_ = 0;
MetaData::AI* ai_meta = nullptr;
AINode node_;
bool moving_ = false;
};

View File

@ -215,4 +215,9 @@ namespace MetaData
const metatable::KillPoint* i = nullptr;
};
struct AI
{
const metatable::AI* i = nullptr;
};
}

View File

@ -59,6 +59,8 @@ public:
std::list<MetaData::KillPoint> killpoint_list;
std::list<metatable::Robot> robot_meta_list;
std::vector<MetaData::Robot> robot_list;
std::list<metatable::AI> ai_meta_list;
std::vector<MetaData::AI> ai_list;
std::map<std::string, MetaData::Parameter*> parameter_hash;
std::map<int, MetaData::Map*> gamemap_hash;
@ -85,6 +87,7 @@ public:
std::map<int, MetaData::EquipUpgrade*> equipupgrade_hash;
std::map<int, MetaData::Robot*> robot_hash;
std::map<int, std::vector<MetaData::AirLine*>> airline_hash;
std::map<int, MetaData::AI*> ai_hash;
void Load()
{
@ -130,6 +133,7 @@ public:
f8::ReadCsvMetaFile(res_path + "rankPoint@rankPoint.csv", rankpoint_meta_list);
f8::ReadCsvMetaFile(res_path + "equipUpgrade@equipUpgrade.csv", equipupgrade_meta_list);
f8::ReadCsvMetaFile(res_path + "robot@robot.csv", robot_meta_list);
f8::ReadCsvMetaFile(res_path + "ai@ai.csv", ai_meta_list);
BindToMetaData();
#if 1
{
@ -513,6 +517,12 @@ private:
robot_hash[meta.id()] = &item;
}
for (auto& meta : ai_meta_list) {
MetaData::AI& item = a8::FastAppend(ai_list);
item.i = &meta;
ai_hash[meta.ai_level()] = &item;
}
}
private:
@ -728,12 +738,8 @@ MetaData::Robot* MetaMgr::RandRobot(std::set<int>& refreshed_robot_set)
}
}
double MetaMgr::GetAiParam(int ai_level, int param_idx)
MetaData::AI* MetaMgr::GetAI(int ai_level)
{
if (ai_level >= 0 && ai_level < (int)ai_params.size()) {
if (param_idx >= 0 && param_idx < (int)ai_params[ai_level].size()) {
return ai_params[ai_level][param_idx];
}
}
return 0;
auto itr = loader_->ai_hash.find(ai_level);
return itr != loader_->ai_hash.end() ? itr->second : nullptr;
}

View File

@ -45,7 +45,7 @@ class MetaMgr : public a8::Singleton<MetaMgr>
int GetKillPointParam1(int kill_num);
int GetKillPointParam2(int kill_num);
MetaData::Robot* RandRobot(std::set<int>& refreshed_robot_set);
double GetAiParam(int ai_level, int param_idx);
MetaData::AI* GetAI(int ai_level);
int gas_inactive_time = 10;
int newbie_gas_inactive_time = 5;
@ -123,6 +123,5 @@ class MetaMgr : public a8::Singleton<MetaMgr>
std::string level0room_spec_things;
std::string level0room_spec_airdrop;
std::vector<std::vector<int>> ai_params;
friend class MetaDataLoader;
};

View File

@ -235,6 +235,16 @@ message KillPoint
optional int32 parameter2 = 3;
}
message AI
{
optional int32 ai_level = 1;
optional int32 pursuit_distance = 2;
optional int32 attack_interval = 3;
optional int32 attack_times = 4;
optional int32 attack_type = 5;
optional float shot_offset_angle = 6;
}
//end
message DoorObjJson