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.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;
}
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->caster = target;
@ -496,7 +496,7 @@ void SkillComponent::HandleUnmanaged(const uint32_t behaviorId, const LWOOBJID t
delete bitStream;
delete context;
delete context;
}
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.
* @param behaviorId the root behavior ID 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.