This commit is contained in:
aozhiwei 2020-07-30 09:59:21 +08:00
parent a9fc65206d
commit c26b2c05f3

View File

@ -526,10 +526,15 @@ bool Human::IsCollisionInMapService()
if (!collider->owner->dead && TestCollision((ColliderComponent*)collider)) { if (!collider->owner->dead && TestCollision((ColliderComponent*)collider)) {
#endif #endif
if (last_collision_door_ != collider->owner) { if (last_collision_door_ != collider->owner) {
bool is_terminator_airdrop_box = false;
if (obstacle->IsEntitySubType(EST_RoomObstacle)) {
is_terminator_airdrop_box = ((RoomObstacle*)obstacle)->is_terminator_airdrop_box;
}
if (!obstacle->IsDead(room) && if (!obstacle->IsDead(room) &&
obstacle->Attackable() && obstacle->Attackable() &&
obstacle->meta->i->drop() != 0 && obstacle->meta->i->drop() != 0 &&
room->GetGasData().gas_mode != GasInactive room->GetGasData().gas_mode != GasInactive &&
(!is_terminator_airdrop_box || GetRace() == kHumanRace)
) { ) {
obstacle->Die(room); obstacle->Die(room);
if (obstacle->IsDead(room)) { if (obstacle->IsDead(room)) {
@ -542,15 +547,12 @@ bool Human::IsCollisionInMapService()
DropItems(obstacle); DropItems(obstacle);
} }
obstacle->BroadcastFullState(room); obstacle->BroadcastFullState(room);
if (obstacle->IsEntitySubType(EST_RoomObstacle)) {
bool is_terminator_airdrop_box = ((RoomObstacle*)obstacle)->is_terminator_airdrop_box;
if (is_terminator_airdrop_box && GetRace() == kHumanRace) { if (is_terminator_airdrop_box && GetRace() == kHumanRace) {
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(TERMINATOR_BUFF_ID); MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(TERMINATOR_BUFF_ID);
if (buff_meta) { if (buff_meta) {
AddBuff(this, buff_meta, 1); AddBuff(this, buff_meta, 1);
} }
} }
}
} else { } else {
Global::last_collider = collider; Global::last_collider = collider;
return true; return true;