1
This commit is contained in:
parent
4f64659756
commit
cbeed93374
@ -335,6 +335,7 @@ void Bullet::ProcSmokeBomb()
|
||||
task->bomb_pos = GetPos();
|
||||
task->buff_meta = buff_meta;
|
||||
task->gun_meta = gun_meta;
|
||||
task->Initialize();
|
||||
auto task_wp = std::weak_ptr<SmokeMiTask>(task);
|
||||
room->xtimer.SetIntervalEx
|
||||
(SERVER_FRAME_RATE / 2,
|
||||
@ -508,7 +509,7 @@ void Bullet::Check(float distance)
|
||||
void Bullet::ProcFragBomb(int delay_time)
|
||||
{
|
||||
if (sender.Get()) {
|
||||
std::shared_ptr<FragMiTask> task = std::shared_ptr<FragMiTask>();
|
||||
std::shared_ptr<FragMiTask> task = std::make_shared<FragMiTask>();
|
||||
task->room = room;
|
||||
task->sender.Attach(sender.Get());
|
||||
task->bomb_pos = GetPos();
|
||||
@ -516,6 +517,7 @@ void Bullet::ProcFragBomb(int delay_time)
|
||||
task->meta = meta;
|
||||
task->atk = GetAtk();
|
||||
task->explosion_range = GetExplosionRange();
|
||||
task->Initialize();
|
||||
room->xtimer.SetTimeoutEx
|
||||
(std::max(1, (int)(delay_time / FRAME_RATE_MS)),
|
||||
[task] (int event, const a8::Args* args)
|
||||
@ -563,6 +565,7 @@ void Bullet::ProcC4Bomb(Car* target, int delay_time)
|
||||
task->gun_meta = gun_meta;
|
||||
task->meta = meta;
|
||||
task->atk = GetAtk();
|
||||
task->Initialize();
|
||||
room->xtimer.SetTimeoutEx
|
||||
(std::max(1, (int)(delay_time / FRAME_RATE_MS)),
|
||||
[task] (int event, const a8::Args* args)
|
||||
|
@ -7,7 +7,6 @@ class Player;
|
||||
class FragMiTask : public MicroTask
|
||||
{
|
||||
public:
|
||||
Room* room = nullptr;
|
||||
Position bomb_pos;
|
||||
CreatureWeakPtr sender;
|
||||
CreatureWeakPtr follow_target;
|
||||
|
@ -431,7 +431,7 @@ void PlayerStats::AdjustRewardData()
|
||||
Human::Human():Creature()
|
||||
{
|
||||
default_weapon.weapon_idx = 0;
|
||||
default_weapon.weapon_id = 30101;
|
||||
default_weapon.weapon_id = 30102;
|
||||
default_weapon.ammo = 1;
|
||||
default_weapon.meta = mt::Equip::GetById(default_weapon.weapon_id);
|
||||
default_weapon.Recalc();
|
||||
|
@ -1,3 +1,9 @@
|
||||
#include "precompile.h"
|
||||
|
||||
#include "microtask.h"
|
||||
#include "room.h"
|
||||
|
||||
void MicroTask::Initialize()
|
||||
{
|
||||
xtimer_attacher.SetOwner(&room->xtimer);
|
||||
}
|
||||
|
@ -5,5 +5,8 @@
|
||||
class MicroTask
|
||||
{
|
||||
public:
|
||||
Room* room = nullptr;
|
||||
a8::Attacher xtimer_attacher;
|
||||
|
||||
virtual void Initialize();
|
||||
};
|
||||
|
@ -1106,7 +1106,7 @@ void Human::ProcThrowDmg(int throw_uniid)
|
||||
auto proc_frag_func =
|
||||
[this, equip_meta, context, bomb_pos, bomb_dir, target_pos] ()
|
||||
{
|
||||
std::shared_ptr<FragMiTask> task = std::shared_ptr<FragMiTask>();
|
||||
std::shared_ptr<FragMiTask> task = std::make_shared<FragMiTask>();
|
||||
task->room = room;
|
||||
task->sender.Attach(this);
|
||||
task->bomb_pos.FromGlmVec3(target_pos);
|
||||
@ -1114,6 +1114,7 @@ void Human::ProcThrowDmg(int throw_uniid)
|
||||
task->meta = equip_meta;
|
||||
task->atk = equip_meta->atk();
|
||||
task->explosion_range = equip_meta->explosion_range();
|
||||
task->Initialize();
|
||||
int delay_time = equip_meta->missiles_time();;
|
||||
room->xtimer.SetTimeoutEx
|
||||
(std::max(1, (int)(delay_time / FRAME_RATE_MS)),
|
||||
@ -1137,6 +1138,7 @@ void Human::ProcThrowDmg(int throw_uniid)
|
||||
task->bomb_pos.FromGlmVec3(target_pos);
|
||||
task->buff_meta = buff_meta;
|
||||
task->gun_meta = equip_meta;
|
||||
task->Initialize();
|
||||
auto task_wp = std::weak_ptr<SmokeMiTask>(task);
|
||||
room->xtimer.SetIntervalEx
|
||||
(SERVER_FRAME_RATE / 2,
|
||||
|
Loading…
x
Reference in New Issue
Block a user