1
This commit is contained in:
parent
4b3dc61c9c
commit
2b908fcba9
@ -80,6 +80,17 @@ namespace MetaData
|
||||
abort();
|
||||
}
|
||||
}
|
||||
first_safearea_center = a8::Vec2(i->map_width() / 2.0f,
|
||||
i->map_height() / 2.0f);
|
||||
if (!i->first_safearea_center().empty()) {
|
||||
std::vector<std::string> strings;
|
||||
a8::Split(i->first_safearea_center(), strings, ':');
|
||||
if (strings.size() != 2) {
|
||||
abort();
|
||||
}
|
||||
first_safearea_center = a8::Vec2(a8::XValue(strings[0]).GetDouble(),
|
||||
a8::XValue(strings[1]).GetDouble());
|
||||
}
|
||||
if (i->player() < 10) {
|
||||
abort();
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ namespace MetaData
|
||||
int refresh_robot_min_time = 0;
|
||||
int refresh_robot_max_time = 0;
|
||||
std::vector<int> buff_list;
|
||||
a8::Vec2 first_safearea_center;
|
||||
|
||||
void Init();
|
||||
std::string RandTemplate();
|
||||
|
@ -1226,27 +1226,11 @@ void Room::UpdateGasMoving()
|
||||
}
|
||||
if (std::abs(gas_data_.gas_progress - gas_data_.rad_new) <= 0.001f) {
|
||||
int pre_area_id = gas_data_.new_area_meta->i->id();
|
||||
a8::Vec2 pre_pos = gas_data_.pos_new;
|
||||
if (!MetaMgr::Instance()->GetSafeArea(pre_area_id + 1)) {
|
||||
gas_data_.is_last_gas = true;
|
||||
return;
|
||||
}
|
||||
gas_data_.gas_mode = GasWaiting;
|
||||
gas_data_.old_area_meta = MetaMgr::Instance()->GetSafeArea(pre_area_id);
|
||||
gas_data_.new_area_meta = MetaMgr::Instance()->GetSafeArea(pre_area_id + 1);
|
||||
gas_data_.gas_progress = gas_data_.old_area_meta->i->rad();
|
||||
gas_data_.gas_start_frameno = GetFrameNo();
|
||||
gas_data_.pos_old = pre_pos;
|
||||
gas_data_.pos_old_bk = gas_data_.pos_old;
|
||||
{
|
||||
bool gen_ok = GenSmallCircle(gas_data_.pos_old,
|
||||
gas_data_.old_area_meta->i->rad(),
|
||||
gas_data_.new_area_meta->i->rad(),
|
||||
gas_data_.pos_new);
|
||||
assert(gen_ok);
|
||||
}
|
||||
gas_data_.rad_old = gas_data_.old_area_meta->i->rad();
|
||||
gas_data_.rad_new = gas_data_.new_area_meta->i->rad();
|
||||
ForwardGasRing(1);
|
||||
if (!MetaMgr::Instance()->GetSafeArea(gas_data_.new_area_meta->i->id() + 2)) {
|
||||
#if 1
|
||||
//最后一圈
|
||||
@ -1291,8 +1275,7 @@ void Room::UpdateGasJump()
|
||||
gas_data_.new_area_meta = MetaMgr::Instance()->GetSafeArea(map_meta_->i->safearea() + 1);
|
||||
gas_data_.gas_progress = gas_data_.old_area_meta->i->rad();
|
||||
gas_data_.gas_start_frameno = GetFrameNo();
|
||||
gas_data_.pos_old = a8::Vec2(map_meta_->i->map_width() / 2.0f,
|
||||
map_meta_->i->map_height() / 2.0f);
|
||||
gas_data_.pos_old = map_meta_->first_safearea_center;
|
||||
gas_data_.pos_old_bk = gas_data_.pos_old;
|
||||
{
|
||||
bool gen_ok = GenSmallCircle(gas_data_.pos_old,
|
||||
@ -1303,6 +1286,9 @@ void Room::UpdateGasJump()
|
||||
}
|
||||
gas_data_.rad_old = gas_data_.old_area_meta->i->rad();
|
||||
gas_data_.rad_new = gas_data_.new_area_meta->i->rad();
|
||||
if (map_meta_->i->init_gas_ring() > 0) {
|
||||
ForwardGasRing(map_meta_->i->init_gas_ring());
|
||||
}
|
||||
battle_start_frameno_ = GetFrameNo();
|
||||
xtimer.DeleteTimer(auto_jump_timer_);
|
||||
auto_jump_timer_ = nullptr;
|
||||
@ -3649,3 +3635,33 @@ void Room::InitAndroidAI()
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void Room::ForwardGasRing(int n)
|
||||
{
|
||||
while (n > 0) {
|
||||
int pre_area_id = gas_data_.new_area_meta->i->id();
|
||||
if (!MetaMgr::Instance()->GetSafeArea(pre_area_id + 1)) {
|
||||
gas_data_.is_last_gas = true;
|
||||
return;
|
||||
}
|
||||
a8::Vec2 pre_pos = gas_data_.pos_new;
|
||||
gas_data_.old_area_meta = MetaMgr::Instance()->GetSafeArea(pre_area_id);
|
||||
gas_data_.new_area_meta = MetaMgr::Instance()->GetSafeArea(pre_area_id + 1);
|
||||
gas_data_.gas_progress = gas_data_.old_area_meta->i->rad();
|
||||
gas_data_.gas_start_frameno = GetFrameNo();
|
||||
gas_data_.pos_old = pre_pos;
|
||||
gas_data_.pos_old_bk = gas_data_.pos_old;
|
||||
{
|
||||
bool gen_ok = GenSmallCircle(gas_data_.pos_old,
|
||||
gas_data_.old_area_meta->i->rad(),
|
||||
gas_data_.new_area_meta->i->rad(),
|
||||
gas_data_.pos_new);
|
||||
if (!gen_ok) {
|
||||
abort();
|
||||
}
|
||||
}
|
||||
gas_data_.rad_old = gas_data_.old_area_meta->i->rad();
|
||||
gas_data_.rad_new = gas_data_.new_area_meta->i->rad();
|
||||
--n;
|
||||
}
|
||||
}
|
||||
|
@ -248,6 +248,7 @@ private:
|
||||
void ShuaLastGas();
|
||||
size_t GetRoomMaxPlayerNum();
|
||||
void InitAndroidAI();
|
||||
void ForwardGasRing(int n);
|
||||
|
||||
#ifdef DEBUG
|
||||
void InitDebugInfo();
|
||||
|
@ -34,6 +34,8 @@ message Map
|
||||
optional int32 safearea = 11;
|
||||
optional string game_start_buff_list = 12;
|
||||
optional string map_pic = 13;
|
||||
optional string first_safearea_center = 14;
|
||||
optional int32 init_gas_ring = 15;
|
||||
}
|
||||
|
||||
message MapThing
|
||||
|
Loading…
x
Reference in New Issue
Block a user