1
This commit is contained in:
parent
992c541fff
commit
4bb0317e9d
@ -238,33 +238,51 @@ public:
|
|||||||
METAMGR_READ_STR(mini_room_ai, "");
|
METAMGR_READ_STR(mini_room_ai, "");
|
||||||
std::vector<std::string> tmpstrings;
|
std::vector<std::string> tmpstrings;
|
||||||
a8::Split(MetaMgr::Instance()->mini_room_ai, tmpstrings, '|');
|
a8::Split(MetaMgr::Instance()->mini_room_ai, tmpstrings, '|');
|
||||||
|
int i = 1;
|
||||||
for (auto& str : tmpstrings) {
|
for (auto& str : tmpstrings) {
|
||||||
int weight = a8::XValue(str).GetInt();
|
int weight = a8::XValue(str).GetInt();
|
||||||
|
MetaMgr::Instance()->mini_room_ai_weights_space += weight;
|
||||||
MetaMgr::Instance()->mini_room_ai_weights.push_back
|
MetaMgr::Instance()->mini_room_ai_weights.push_back
|
||||||
(
|
(
|
||||||
weight
|
std::make_tuple
|
||||||
|
(
|
||||||
|
i,
|
||||||
|
MetaMgr::Instance()->mini_room_ai_weights_space
|
||||||
|
)
|
||||||
);
|
);
|
||||||
MetaMgr::Instance()->mini_room_ai_weights_space += weight;
|
++i;
|
||||||
}
|
}
|
||||||
if (MetaMgr::Instance()->mini_room_ai_weights.size() != 8) {
|
if (MetaMgr::Instance()->mini_room_ai_weights.size() != 8) {
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
if (MetaMgr::Instance()->mini_room_ai_weights_space <= 0) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
METAMGR_READ_STR(normal_room_ai, "");
|
METAMGR_READ_STR(normal_room_ai, "");
|
||||||
std::vector<std::string> tmpstrings;
|
std::vector<std::string> tmpstrings;
|
||||||
a8::Split(MetaMgr::Instance()->mini_room_ai, tmpstrings, '|');
|
a8::Split(MetaMgr::Instance()->mini_room_ai, tmpstrings, '|');
|
||||||
|
int i = 1;
|
||||||
for (auto& str : tmpstrings) {
|
for (auto& str : tmpstrings) {
|
||||||
int weight = a8::XValue(str).GetInt();
|
int weight = a8::XValue(str).GetInt();
|
||||||
|
MetaMgr::Instance()->normal_room_ai_weights_space += weight;
|
||||||
MetaMgr::Instance()->normal_room_ai_weights.push_back
|
MetaMgr::Instance()->normal_room_ai_weights.push_back
|
||||||
(
|
(
|
||||||
weight
|
std::make_tuple
|
||||||
|
(
|
||||||
|
i,
|
||||||
|
MetaMgr::Instance()->normal_room_ai_weights_space
|
||||||
|
)
|
||||||
);
|
);
|
||||||
MetaMgr::Instance()->normal_room_ai_weights_space += weight;
|
++i;
|
||||||
}
|
}
|
||||||
if (MetaMgr::Instance()->normal_room_ai_weights.size() != 8) {
|
if (MetaMgr::Instance()->normal_room_ai_weights.size() != 8) {
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
if (MetaMgr::Instance()->normal_room_ai_weights_space <= 0) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
METAMGR_READ(level1room_shua_robot_min_time, 5);
|
METAMGR_READ(level1room_shua_robot_min_time, 5);
|
||||||
|
@ -91,9 +91,9 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
|||||||
int level0room_robot_autodie_distance = 0;
|
int level0room_robot_autodie_distance = 0;
|
||||||
std::set<int> level0room_spec_things_set;
|
std::set<int> level0room_spec_things_set;
|
||||||
std::vector<int> level0room_spec_airdrops;
|
std::vector<int> level0room_spec_airdrops;
|
||||||
std::vector<int> mini_room_ai_weights;
|
std::vector<std::tuple<int, int>> mini_room_ai_weights;
|
||||||
int mini_room_ai_weights_space = 0;
|
int mini_room_ai_weights_space = 0;
|
||||||
std::vector<int> normal_room_ai_weights;
|
std::vector<std::tuple<int, int>> normal_room_ai_weights;
|
||||||
int normal_room_ai_weights_space = 0;
|
int normal_room_ai_weights_space = 0;
|
||||||
std::string mini_room_ai;
|
std::string mini_room_ai;
|
||||||
std::string normal_room_ai;
|
std::string normal_room_ai;
|
||||||
|
@ -2905,5 +2905,29 @@ void Room::InitAndroidAI()
|
|||||||
androids.push_back((Android*)hum);
|
androids.push_back((Android*)hum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (Android* hum : androids) {
|
||||||
|
if (IsMiniRoom()) {
|
||||||
|
int rnd = rand() % MetaMgr::Instance()->mini_room_ai_weights_space;
|
||||||
|
++rnd;
|
||||||
|
for (auto& tuple : MetaMgr::Instance()->mini_room_ai_weights) {
|
||||||
|
int ai_level = std::get<0>(tuple);
|
||||||
|
int space = std::get<1>(tuple);
|
||||||
|
if (rnd <= space) {
|
||||||
|
hum->SetAiLevel(ai_level);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int rnd = rand() % MetaMgr::Instance()->normal_room_ai_weights_space;
|
||||||
|
++rnd;
|
||||||
|
for (auto& tuple : MetaMgr::Instance()->normal_room_ai_weights) {
|
||||||
|
int ai_level = std::get<0>(tuple);
|
||||||
|
int space = std::get<1>(tuple);
|
||||||
|
if (rnd <= space) {
|
||||||
|
hum->SetAiLevel(ai_level);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user