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