1
This commit is contained in:
parent
b595407219
commit
4f6f32e729
@ -565,7 +565,9 @@ bool Human::IsCollisionInMapService()
|
||||
DropItems(obstacle);
|
||||
}
|
||||
obstacle->BroadcastFullState(room);
|
||||
if (obstacle->IsTerminatorAirDropBox(room) && GetRace() == kHumanRace) {
|
||||
if (obstacle->IsTerminatorAirDropBox(room) &&
|
||||
GetRace() == kHumanRace &&
|
||||
!HasBuffEffect(kBET_Terminator)) {
|
||||
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(TERMINATOR_BUFF_ID);
|
||||
if (buff_meta) {
|
||||
AddBuff(this, buff_meta, 1);
|
||||
|
@ -575,10 +575,24 @@ void Room::OnHumanDie(Human* hum)
|
||||
if (hum->GetRace() == kHumanRace) {
|
||||
RemoveRescue(hum);
|
||||
hum->DeadDrop();
|
||||
std::vector<Human*> alive_humans;
|
||||
alive_humans.reserve(GetRoomMaxPlayerNum());
|
||||
for (auto& pair : human_hash_) {
|
||||
if (pair.second != hum) {
|
||||
pair.second->WinExp(hum, hum->meta->i->dead_exp());
|
||||
}
|
||||
if (!pair.second->dead && pair.second->GetRace() == kHumanRace) {
|
||||
alive_humans.push_back(pair.second);
|
||||
}
|
||||
}
|
||||
if (alive_humans.size() == 1) {
|
||||
Human* terminator = alive_humans[0];
|
||||
if (!terminator->HasBuffEffect(kBET_Terminator)) {
|
||||
MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(TERMINATOR_BUFF_ID);
|
||||
if (buff_meta) {
|
||||
terminator->AddBuff(terminator, buff_meta, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
Human* killer = GetPlayerByUniId(hum->stats.killer_id);
|
||||
|
Loading…
x
Reference in New Issue
Block a user