Fixed bola effect stacking (#34723)
This commit is contained in:
@@ -256,23 +256,18 @@ public abstract class SharedEnsnareableSystem : EntitySystem
|
||||
if (!TryComp<EnsnareableComponent>(target, out var ensnareable))
|
||||
return false;
|
||||
|
||||
// Need to insert before free legs check.
|
||||
Container.Insert(ensnare, ensnareable.Container);
|
||||
var numEnsnares = ensnareable.Container.ContainedEntities.Count;
|
||||
|
||||
var legs = _body.GetBodyChildrenOfType(target, BodyPartType.Leg).Count();
|
||||
var ensnaredLegs = (2 * ensnareable.Container.ContainedEntities.Count);
|
||||
var freeLegs = legs - ensnaredLegs;
|
||||
|
||||
if (freeLegs > 0)
|
||||
//Don't do anything if the maximum number of ensnares is applied.
|
||||
if (numEnsnares >= component.MaxEnsnares)
|
||||
return false;
|
||||
|
||||
// Apply stamina damage to target if they weren't ensnared before.
|
||||
if (ensnareable.IsEnsnared != true)
|
||||
Container.Insert(ensnare, ensnareable.Container);
|
||||
|
||||
// Apply stamina damage to target
|
||||
if (TryComp<StaminaComponent>(target, out var stamina))
|
||||
{
|
||||
if (TryComp<StaminaComponent>(target, out var stamina))
|
||||
{
|
||||
_stamina.TakeStaminaDamage(target, component.StaminaDamage, with: ensnare, component: stamina);
|
||||
}
|
||||
_stamina.TakeStaminaDamage(target, component.StaminaDamage, with: ensnare, component: stamina);
|
||||
}
|
||||
|
||||
component.Ensnared = target;
|
||||
|
||||
Reference in New Issue
Block a user