1
This commit is contained in:
parent
bc9aab25c6
commit
d8447a90c5
@ -1169,10 +1169,11 @@ void Creature::Initialize()
|
|||||||
}
|
}
|
||||||
if (IsHuman()) {
|
if (IsHuman()) {
|
||||||
a8::XTimerWp nature_recover_hp_timer;
|
a8::XTimerWp nature_recover_hp_timer;
|
||||||
|
auto battling_state = std::make_shared<bool>(true);
|
||||||
nature_recover_hp_idle_timer = room->xtimer.SetIntervalWpEx
|
nature_recover_hp_idle_timer = room->xtimer.SetIntervalWpEx
|
||||||
(
|
(
|
||||||
SERVER_FRAME_RATE * mt::Param::s().nature_recover_hp_idletime,
|
SERVER_FRAME_RATE * mt::Param::s().nature_recover_hp_idletime,
|
||||||
[this, nature_recover_hp_timer] (int event, const a8::Args* args) mutable
|
[this, nature_recover_hp_timer, battling_state] (int event, const a8::Args* args) mutable
|
||||||
{
|
{
|
||||||
if (a8::TIMER_EXEC_EVENT == event) {
|
if (a8::TIMER_EXEC_EVENT == event) {
|
||||||
if (nature_recover_hp_timer.expired() && !HasBuffEffect(kBET_Dive)) {
|
if (nature_recover_hp_timer.expired() && !HasBuffEffect(kBET_Dive)) {
|
||||||
@ -1193,7 +1194,10 @@ void Creature::Initialize()
|
|||||||
},
|
},
|
||||||
&xtimer_attacher);
|
&xtimer_attacher);
|
||||||
}
|
}
|
||||||
|
if (*battling_state) {
|
||||||
|
*battling_state = false;
|
||||||
GetTrigger()->LeaveBattleMode();
|
GetTrigger()->LeaveBattleMode();
|
||||||
|
}
|
||||||
} else if (kRemoveNatureRecoverTimerEvent == event) {
|
} else if (kRemoveNatureRecoverTimerEvent == event) {
|
||||||
room->xtimer.ModifyTime
|
room->xtimer.ModifyTime
|
||||||
(nature_recover_hp_idle_timer,
|
(nature_recover_hp_idle_timer,
|
||||||
@ -1201,6 +1205,7 @@ void Creature::Initialize()
|
|||||||
if (!nature_recover_hp_timer.expired()) {
|
if (!nature_recover_hp_timer.expired()) {
|
||||||
room->xtimer.Delete(nature_recover_hp_timer);
|
room->xtimer.Delete(nature_recover_hp_timer);
|
||||||
}
|
}
|
||||||
|
*battling_state = true;
|
||||||
GetTrigger()->EnterBattleMode();
|
GetTrigger()->EnterBattleMode();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user