完成毒圈逻辑
This commit is contained in:
parent
b2bf05246e
commit
dd19a2b402
@ -431,7 +431,7 @@ void Room::UpdateGas()
|
||||
gas_data.gas_mode = GasWaiting;
|
||||
gas_data.old_area_meta = MetaMgr::Instance()->GetSafeArea(30001);
|
||||
gas_data.new_area_meta = MetaMgr::Instance()->GetSafeArea(30002);
|
||||
gas_data.gas_progress = 0.0f;
|
||||
gas_data.gas_progress = gas_data.old_area_meta->i->rad();
|
||||
gas_data.gas_start_frameno = frame_no;
|
||||
gas_data.pos_old = Vector2D(map_meta->i->width() / 2.0f,
|
||||
map_meta->i->height() / 2.0f);
|
||||
@ -452,7 +452,6 @@ void Room::UpdateGas()
|
||||
if (frame_no - gas_data.gas_start_frameno >=
|
||||
gas_data.old_area_meta->i->wait_time() * SERVER_FRAME_RATE) {
|
||||
gas_data.gas_mode = GasMoving;
|
||||
gas_data.gas_progress = 0.0f;
|
||||
gas_data.gas_start_frameno = frame_no;;
|
||||
}
|
||||
}
|
||||
@ -460,12 +459,10 @@ void Room::UpdateGas()
|
||||
case GasMoving:
|
||||
{
|
||||
if (frame_no - gas_data.gas_start_frameno > 0 && !gas_data.is_last_gas) {
|
||||
float total_distance = gas_data.rad_old - gas_data.rad_new +
|
||||
(gas_data.pos_old - gas_data.pos_new).Norm();
|
||||
float distance = gas_data.old_area_meta->i->shrink_speed() *
|
||||
((frame_no - gas_data.gas_start_frameno) * (1.0 / SERVER_FRAME_RATE));
|
||||
gas_data.gas_progress = std::min(total_distance - distance, 0.0f);
|
||||
if (distance >= total_distance) {
|
||||
gas_data.gas_progress = std::max(gas_data.rad_old - distance, gas_data.rad_new);
|
||||
if (std::abs(gas_data.gas_progress - gas_data.rad_new) <= 0.001f) {
|
||||
int pre_area_id = gas_data.new_area_meta->i->id();
|
||||
Vector2D pre_pos = gas_data.pos_new;
|
||||
if (!MetaMgr::Instance()->GetSafeArea(pre_area_id + 1)) {
|
||||
@ -475,7 +472,7 @@ void Room::UpdateGas()
|
||||
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 = 0.0f;
|
||||
gas_data.gas_progress = gas_data.old_area_meta->i->rad();
|
||||
gas_data.gas_start_frameno = frame_no;
|
||||
gas_data.pos_old = pre_pos;
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user