This commit is contained in:
aozhiwei 2021-07-05 11:04:29 +00:00
parent 84b2c4bf08
commit 0d9007bceb
3 changed files with 19 additions and 0 deletions

View File

@ -1126,6 +1126,9 @@ void Creature::StartAction(ActionType_e action_type,
if (HasBuffEffect(kBET_Camouflage)) { if (HasBuffEffect(kBET_Camouflage)) {
RemoveBuffByEffectId(kBET_Camouflage); RemoveBuffByEffectId(kBET_Camouflage);
} }
if (action_type == AT_Rescue) {
TryAddBuff(this, kRescueBuffId);
}
} }
void Creature::CancelAction() void Creature::CancelAction()
@ -1139,6 +1142,9 @@ void Creature::CancelAction()
} }
} }
} }
if (action_type == AT_Rescue) {
RemoveBuffById(kRescueBuffId);
}
ResetAction(); ResetAction();
} }

View File

@ -896,6 +896,7 @@ void Human::DecHP(float dec_hp, int killer_id, const std::string& killer_name, i
&xtimer_attacher.timer_list_ &xtimer_attacher.timer_list_
); );
SyncAroundPlayers(__FILE__, __LINE__, __func__); SyncAroundPlayers(__FILE__, __LINE__, __func__);
TryAddBuff(this, kDownBuffId);
if (GetNearbyTeammateNum(MetaMgr::Instance()->refresh_ai_downed_nearby_range) < if (GetNearbyTeammateNum(MetaMgr::Instance()->refresh_ai_downed_nearby_range) <
MetaMgr::Instance()->refresh_ai_downed_nearby_teammate_num) { MetaMgr::Instance()->refresh_ai_downed_nearby_teammate_num) {
#if 0 #if 0
@ -1541,6 +1542,11 @@ void Human::UpdateAction()
ProcReliveAction(); ProcReliveAction();
} }
break; break;
case AT_Rescue:
{
RemoveBuffById(kRescueBuffId);
}
break;
default: default:
{ {
} }
@ -2444,6 +2450,7 @@ void Human::OnDie()
void Human::FreeDownedTimer() void Human::FreeDownedTimer()
{ {
RemoveBuffById(kDownBuffId);
if (downed_timer) { if (downed_timer) {
room->xtimer.DeleteTimer(downed_timer); room->xtimer.DeleteTimer(downed_timer);
downed_timer = nullptr; downed_timer = nullptr;

View File

@ -1268,9 +1268,15 @@ void Room::UpdateGas()
); );
if (!b1 && !b2) { if (!b1 && !b2) {
pair.second->poisoning = true; pair.second->poisoning = true;
if (!pair.second->GetBuffByEffectId(kBET_Poisoning)) {
pair.second->TryAddBuff(pair.second, kPoisioningBuffId);
}
} else { } else {
pair.second->poisoning = false; pair.second->poisoning = false;
pair.second->poisoning_time = false; pair.second->poisoning_time = false;
if (pair.second->GetBuffByEffectId(kBET_Poisoning)) {
pair.second->RemoveBuffByEffectId(kBET_Poisoning);
}
} }
} }
} }