mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-10-27 02:22:04 +00:00
buffs
This commit is contained in:
@@ -6,7 +6,9 @@
|
||||
|
||||
|
||||
void ApplyBuffBehavior::Handle(BehaviorContext* context, RakNet::BitStream* bitStream, BehaviorBranchContext branch) {
|
||||
auto* entity = EntityManager::Instance()->GetEntity(branch.target == LWOOBJID_EMPTY ? context->originator : branch.target);
|
||||
branch.target == LWOOBJID_EMPTY ? context->originator : branch.target;
|
||||
if (m_TargetCaster) branch.target = context->originator;
|
||||
auto* entity = EntityManager::Instance()->GetEntity(branch.target);
|
||||
|
||||
if (entity == nullptr) return;
|
||||
|
||||
@@ -14,11 +16,12 @@ void ApplyBuffBehavior::Handle(BehaviorContext* context, RakNet::BitStream* bitS
|
||||
|
||||
if (buffComponent == nullptr) return;
|
||||
|
||||
buffComponent->ApplyBuff(m_BuffId, m_Duration, context->originator, addImmunity, cancelOnDamaged, cancelOnDeath,
|
||||
cancelOnLogout, cancelonRemoveBuff, cancelOnUi, cancelOnUnequip, cancelOnZone);
|
||||
buffComponent->ApplyBuff(m_BuffId, m_Duration, context->originator, m_AddImmunity, m_ApplyOnTeammates m_CancelOnDamaged, m_CancelOnDeath,
|
||||
m_CancelOnLogout, m_CancelOnRemoveBuff, m_CancelOnUi, m_CancelOnUnequip, m_CancelOnZone, m_CancelOnDamageAbsDone, m_UseRefCount);
|
||||
}
|
||||
|
||||
void ApplyBuffBehavior::UnCast(BehaviorContext* context, BehaviorBranchContext branch) {
|
||||
if (m_IgnoreUncast) return;
|
||||
auto* entity = EntityManager::Instance()->GetEntity(branch.target);
|
||||
|
||||
if (entity == nullptr) return;
|
||||
@@ -37,12 +40,17 @@ void ApplyBuffBehavior::Calculate(BehaviorContext* context, RakNet::BitStream* b
|
||||
void ApplyBuffBehavior::Load() {
|
||||
m_BuffId = GetInt("buff_id");
|
||||
m_Duration = GetFloat("duration_secs");
|
||||
addImmunity = GetBoolean("add_immunity");
|
||||
cancelOnDamaged = GetBoolean("cancel_on_damaged");
|
||||
cancelOnDeath = GetBoolean("cancel_on_death");
|
||||
cancelOnLogout = GetBoolean("cancel_on_logout");
|
||||
cancelonRemoveBuff = GetBoolean("cancel_on_remove_buff");
|
||||
cancelOnUi = GetBoolean("cancel_on_ui");
|
||||
cancelOnUnequip = GetBoolean("cancel_on_unequip");
|
||||
cancelOnZone = GetBoolean("cancel_on_zone");
|
||||
m_IgnoreUncast = GetBoolean("ignore_uncast", false);
|
||||
m_TargetCaster = GetBoolean("target_caster", false);
|
||||
m_AddImmunity = GetBoolean("add_immunity", false);
|
||||
m_ApplyOnTeammates = GetBoolean("apply_on_teammates", false);
|
||||
m_CancelOnDamaged = GetBoolean("cancel_on_damaged", false);
|
||||
m_CancelOnDeath = GetBoolean("cancel_on_death", false);
|
||||
m_CancelOnLogout = GetBoolean("cancel_on_logout", false);
|
||||
m_CancelOnRemoveBuff = GetBoolean("cancel_on_remove_buff", false);
|
||||
m_CancelOnUi = GetBoolean("cancel_on_ui", false);
|
||||
m_CancelOnUnequip = GetBoolean("cancel_on_unequip", false);
|
||||
m_CancelOnZone = GetBoolean("cancel_on_zone", false);
|
||||
m_CancelOnDamageAbsDone = GetBoolean("cancel_on_damage_abs_done", false);
|
||||
m_UseRefCount = GetBoolean("use_ref_count", false);
|
||||
}
|
||||
|
||||
@@ -7,18 +7,7 @@
|
||||
class ApplyBuffBehavior final : public Behavior
|
||||
{
|
||||
public:
|
||||
int32_t m_BuffId;
|
||||
float m_Duration;
|
||||
bool addImmunity;
|
||||
bool cancelOnDamaged;
|
||||
bool cancelOnDeath;
|
||||
bool cancelOnLogout;
|
||||
bool cancelonRemoveBuff;
|
||||
bool cancelOnUi;
|
||||
bool cancelOnUnequip;
|
||||
bool cancelOnZone;
|
||||
|
||||
/*
|
||||
/*
|
||||
* Inherited
|
||||
*/
|
||||
explicit ApplyBuffBehavior(const uint32_t behaviorId) : Behavior(behaviorId) {
|
||||
@@ -31,4 +20,21 @@ public:
|
||||
void Calculate(BehaviorContext* context, RakNet::BitStream* bitStream, BehaviorBranchContext branch) override;
|
||||
|
||||
void Load() override;
|
||||
|
||||
private:
|
||||
int32_t m_BuffId;
|
||||
float m_Duration;
|
||||
bool m_IgnoreUncast;
|
||||
bool m_TargetCaster;
|
||||
bool m_AddImmunity;
|
||||
bool m_ApplyOnTeammates;
|
||||
bool m_CancelOnDamaged;
|
||||
bool m_CancelOnDeath;
|
||||
bool m_CancelOnLogout;
|
||||
bool m_CancelOnRemoveBuff;
|
||||
bool m_CancelOnUi;
|
||||
bool m_CancelOnUnequip;
|
||||
bool m_CancelOnZone;
|
||||
bool m_CancelOnDamageAbsDone;
|
||||
bool m_UseRefCount;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user