This commit is contained in:
aozhiwei 2023-04-20 13:57:33 +08:00
parent 8937986608
commit d530ef29da

View File

@ -3,6 +3,7 @@
#include "guide.h"
#include "human.h"
#include "room.h"
#include "glmhelper.h"
#include "mt/GuideStep.h"
@ -70,7 +71,16 @@ void Guide::ProcMoveTarget()
[this] (int event, const a8::Args* args)
{
if (a8::TIMER_EXEC_EVENT == event) {
if (!curr_step_meta_->_params.empty()) {
Position pos;
pos.FromGlmVec3(std::get<1>(curr_step_meta_->_params.at(0)));
if (owner_->GetPos().Distance2D2(pos) < 5) {
owner_->room->xtimer.DeleteCurrentTimer();
NextStep();
}
} else {
NextStep();
}
}
},
&owner_->xtimer_attacher);
@ -78,7 +88,18 @@ void Guide::ProcMoveTarget()
void Guide::ProcMoveTargetAndPickup()
{
if (curr_step_meta_->_params.empty()) {
NextStep();
return;
}
for (auto& tuple : curr_step_meta_->_params) {
owner_->room->CreateLoot(
std::get<2>(tuple),
std::get<1>(tuple),
1,
1
);
}
}
void Guide::ProcKillEnemy()
@ -99,5 +120,16 @@ void Guide::ProcUseSkill()
void Guide::NextStep()
{
++curr_step_idx_;
if (curr_step_idx_ >= mt::GuideStep::_steps.size()) {
owner_->room->frame_event.AddPropChg
(
owner_->GetWeakPtrRef(),
kPropGuideStep,
-1,
0,
true);
return;
}
UpdateStep();
}