Damage Buff source fix - inventor beehive bug (#306)

* add HandleUnmanaged overload to account for skill source

* add source to buff damage skill call to credit players for kills

* use LWOOBJID_EMPTY default arg & behaviorcontext constructor
This commit is contained in:
m888r 2022-01-01 01:46:05 -08:00 committed by GitHub
parent 83107d413d
commit 14fc049ea0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 5 deletions

View File

@ -71,7 +71,7 @@ void BuffComponent::Update(float deltaTime)
buff.second.tickTime = buff.second.tick; buff.second.tickTime = buff.second.tick;
buff.second.stacks--; buff.second.stacks--;
SkillComponent::HandleUnmanaged(buff.second.behaviorID, m_Parent->GetObjectID()); SkillComponent::HandleUnmanaged(buff.second.behaviorID, m_Parent->GetObjectID(), buff.second.source);
} }
} }

View File

@ -481,9 +481,9 @@ void SkillComponent::SyncProjectileCalculation(const ProjectileSyncEntry& entry)
delete bitStream; delete bitStream;
} }
void SkillComponent::HandleUnmanaged(const uint32_t behaviorId, const LWOOBJID target) void SkillComponent::HandleUnmanaged(const uint32_t behaviorId, const LWOOBJID target, LWOOBJID source)
{ {
auto* context = new BehaviorContext(target); auto* context = new BehaviorContext(source);
context->unmanaged = true; context->unmanaged = true;
context->caster = target; context->caster = target;
@ -496,7 +496,7 @@ void SkillComponent::HandleUnmanaged(const uint32_t behaviorId, const LWOOBJID t
delete bitStream; delete bitStream;
delete context; delete context;
} }
void SkillComponent::HandleUnCast(const uint32_t behaviorId, const LWOOBJID target) void SkillComponent::HandleUnCast(const uint32_t behaviorId, const LWOOBJID target)

View File

@ -158,8 +158,9 @@ public:
* Computes a server-side skill calculation without an associated entity. * Computes a server-side skill calculation without an associated entity.
* @param behaviorId the root behavior ID of the skill * @param behaviorId the root behavior ID of the skill
* @param target the explicit target of the skill * @param target the explicit target of the skill
* @param source the explicit source of the skill
*/ */
static void HandleUnmanaged(uint32_t behaviorId, LWOOBJID target); static void HandleUnmanaged(uint32_t behaviorId, LWOOBJID target, LWOOBJID source = LWOOBJID_EMPTY);
/** /**
* Computes a server-side skill uncast calculation without an associated entity. * Computes a server-side skill uncast calculation without an associated entity.