1
This commit is contained in:
parent
b595407219
commit
4f6f32e729
@ -565,7 +565,9 @@ bool Human::IsCollisionInMapService()
|
|||||||
DropItems(obstacle);
|
DropItems(obstacle);
|
||||||
}
|
}
|
||||||
obstacle->BroadcastFullState(room);
|
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);
|
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);
|
||||||
|
@ -575,10 +575,24 @@ void Room::OnHumanDie(Human* hum)
|
|||||||
if (hum->GetRace() == kHumanRace) {
|
if (hum->GetRace() == kHumanRace) {
|
||||||
RemoveRescue(hum);
|
RemoveRescue(hum);
|
||||||
hum->DeadDrop();
|
hum->DeadDrop();
|
||||||
|
std::vector<Human*> alive_humans;
|
||||||
|
alive_humans.reserve(GetRoomMaxPlayerNum());
|
||||||
for (auto& pair : human_hash_) {
|
for (auto& pair : human_hash_) {
|
||||||
if (pair.second != hum) {
|
if (pair.second != hum) {
|
||||||
pair.second->WinExp(hum, hum->meta->i->dead_exp());
|
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);
|
Human* killer = GetPlayerByUniId(hum->stats.killer_id);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user