1
This commit is contained in:
parent
454cec3425
commit
51521ff10f
@ -15,9 +15,56 @@
|
||||
|
||||
void CondAddBuff::Activate()
|
||||
{
|
||||
switch ((CondAddBuff_e)meta->_int_buff_param1) {
|
||||
case CondAddBuff_e::kBulletHit:
|
||||
{
|
||||
ProcBulletHit();
|
||||
}
|
||||
break;
|
||||
case CondAddBuff_e::kBulletKill:
|
||||
{
|
||||
ProcBulletKill();
|
||||
}
|
||||
break;
|
||||
case CondAddBuff_e::kBulletEnd:
|
||||
{
|
||||
ProcBulletEnd();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CondAddBuff::Deactivate()
|
||||
{
|
||||
for (auto handler : handlers_) {
|
||||
if (!handler.expired()) {
|
||||
owner->GetTrigger()->RemoveEventHandler(handler);
|
||||
}
|
||||
}
|
||||
handlers_.clear();
|
||||
}
|
||||
|
||||
|
||||
void CondAddBuff::ProcBulletHit()
|
||||
{
|
||||
handlers_.push_back
|
||||
(
|
||||
owner->GetTrigger()->AddListener
|
||||
(
|
||||
kBulletHitEvent,
|
||||
[] (const a8::Args& args)
|
||||
{
|
||||
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
void CondAddBuff::ProcBulletKill()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CondAddBuff::ProcBulletEnd()
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "buff.h"
|
||||
|
||||
#include "trigger.h"
|
||||
|
||||
A8_DECLARE_CLASS_ENUM(CondAddBuff_e, int,
|
||||
kBulletHit = 11,
|
||||
@ -17,4 +17,13 @@ class CondAddBuff : public Buff
|
||||
virtual void Activate() override;
|
||||
virtual void Deactivate() override;
|
||||
|
||||
private:
|
||||
|
||||
void ProcBulletHit();
|
||||
void ProcBulletKill();
|
||||
void ProcBulletEnd();
|
||||
|
||||
private:
|
||||
std::vector<std::weak_ptr<EventHandlerPtr>> handlers_;
|
||||
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user