1
This commit is contained in:
parent
7d8c641236
commit
8b19c8d637
@ -6,6 +6,7 @@
|
|||||||
#include "glmhelper.h"
|
#include "glmhelper.h"
|
||||||
|
|
||||||
#include "mt/GuideStep.h"
|
#include "mt/GuideStep.h"
|
||||||
|
#include "mt/Hero.h"
|
||||||
|
|
||||||
void Guide::Init(Human* owner)
|
void Guide::Init(Human* owner)
|
||||||
{
|
{
|
||||||
@ -103,6 +104,7 @@ void Guide::ProcMoveTargetAndPickup()
|
|||||||
int time = std::get<0>(tuple);
|
int time = std::get<0>(tuple);
|
||||||
glm::vec3 pos = std::get<1>(tuple);
|
glm::vec3 pos = std::get<1>(tuple);
|
||||||
int equip_id = std::get<2>(tuple);
|
int equip_id = std::get<2>(tuple);
|
||||||
|
++i;
|
||||||
context->loots.push_back(-1);
|
context->loots.push_back(-1);
|
||||||
owner_->room->xtimer.SetTimeoutEx
|
owner_->room->xtimer.SetTimeoutEx
|
||||||
(
|
(
|
||||||
@ -155,6 +157,60 @@ void Guide::ProcKillEnemy()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto context = A8_MAKE_ANON_STRUCT_SHARED
|
||||||
|
(
|
||||||
|
std::vector<Hero*> heros;
|
||||||
|
);
|
||||||
|
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
for (auto& tuple : curr_step_meta_->_params) {
|
||||||
|
int time = std::get<0>(tuple);
|
||||||
|
glm::vec3 pos = std::get<1>(tuple);
|
||||||
|
int hero_id = std::get<2>(tuple);
|
||||||
|
const mt::Hero* hero_meta = mt::Hero::GetById(hero_id);
|
||||||
|
if (!hero_meta){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
++i;
|
||||||
|
context->heros.push_back(nullptr);
|
||||||
|
owner_->room->xtimer.SetTimeoutEx
|
||||||
|
(
|
||||||
|
time / FRAME_RATE_MS,
|
||||||
|
[this, hero_id, hero_meta, pos, context, i ] (int event, const a8::Args* args)
|
||||||
|
{
|
||||||
|
if (a8::TIMER_EXEC_EVENT == event) {
|
||||||
|
context->heros[i] =
|
||||||
|
owner_->room->CreateHero
|
||||||
|
(
|
||||||
|
nullptr,
|
||||||
|
hero_meta,
|
||||||
|
pos,
|
||||||
|
pos,
|
||||||
|
666
|
||||||
|
)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
&owner_->xtimer_attacher);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
owner_->room->xtimer.SetTimeoutEx
|
||||||
|
(1,
|
||||||
|
[this, context] (int event, const a8::Args* args)
|
||||||
|
{
|
||||||
|
if (a8::TIMER_EXEC_EVENT == event) {
|
||||||
|
bool done = true;
|
||||||
|
for (Hero* hero : context->heros) {
|
||||||
|
}
|
||||||
|
if (done) {
|
||||||
|
NextStep();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
&owner_->xtimer_attacher);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Guide::ProcUseSkillAndKillEnemy()
|
void Guide::ProcUseSkillAndKillEnemy()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user