This commit is contained in:
aozhiwei 2023-02-23 15:58:32 +08:00
parent 3170292d83
commit e3b8cabcbc
2 changed files with 30 additions and 18 deletions

View File

@ -114,24 +114,30 @@ void GunGrasp::InstallTriggers()
void GunGrasp::ProcHit(GraspBuff* buff) void GunGrasp::ProcHit(GraspBuff* buff)
{ {
owner_->GetTrigger()->AddListener event_listeners_.push_back
( (
kBulletHitEvent, owner_->GetTrigger()->AddListener
[this, buff] (const a8::Args& args) (
{ kBulletHitEvent,
buff->ProcSignet(this, 1); [this, buff] (const a8::Args& args)
}); {
buff->ProcSignet(this, 1);
})
);
} }
void GunGrasp::ProcKill(GraspBuff* buff) void GunGrasp::ProcKill(GraspBuff* buff)
{ {
owner_->GetTrigger()->AddListener event_listeners_.push_back
( (
kKillEvent, owner_->GetTrigger()->AddListener
[this, buff] (const a8::Args& args) (
{ kKillEvent,
buff->ProcSignet(this, 1); [this, buff] (const a8::Args& args)
}); {
buff->ProcSignet(this, 1);
})
);
} }
void GunGrasp::ProcTakeOn(GraspBuff* buff) void GunGrasp::ProcTakeOn(GraspBuff* buff)
@ -146,13 +152,16 @@ void GunGrasp::ProcCond(GraspBuff* buff)
void GunGrasp::ProcHitAndEnd(GraspBuff* buff) void GunGrasp::ProcHitAndEnd(GraspBuff* buff)
{ {
owner_->GetTrigger()->AddListener event_listeners_.push_back
( (
kBulletHitEvent, owner_->GetTrigger()->AddListener
[this, buff] (const a8::Args& args) (
{ kBulletHitEvent,
buff->ProcSignet(this, 1); [this, buff] (const a8::Args& args)
}); {
buff->ProcSignet(this, 1);
})
);
} }
void GunGrasp::AddSignet(int id, int count) void GunGrasp::AddSignet(int id, int count)

View File

@ -1,5 +1,7 @@
#pragma once #pragma once
#include "trigger.h"
struct GraspBuff; struct GraspBuff;
class Creature; class Creature;
class GunGrasp class GunGrasp
@ -28,6 +30,7 @@ class GunGrasp
private: private:
Creature* owner_ = nullptr; Creature* owner_ = nullptr;
int hero_lv_ = 0; int hero_lv_ = 0;
std::vector<std::weak_ptr<EventHandlerPtr>> event_listeners_;
std::map<int, int> signet_hash_; std::map<int, int> signet_hash_;
std::array<list_head, (int)GraspBuffTrigger_e::kEnd> grasp_triggers_ = {}; std::array<list_head, (int)GraspBuffTrigger_e::kEnd> grasp_triggers_ = {};
}; };