/// <summary>
/// How much should this slow down the entities walk?
/// </summary>
- [DataField]
+ [DataField, AutoNetworkedField]
public float WalkSpeed = 1.0f;
/// <summary>
/// How much should this slow down the entities sprint?
/// </summary>
- [DataField]
+ [DataField, AutoNetworkedField]
public float SprintSpeed = 1.0f;
/// <summary>
if (!TryComp<EnsnareableComponent>(target, out var ensnareable))
return false;
- // Need to insert before free legs check.
- Container.Insert(ensnare, ensnareable.Container);
-
- var legs = _body.GetBodyChildrenOfType(target, BodyPartType.Leg).Count();
- var ensnaredLegs = (2 * ensnareable.Container.ContainedEntities.Count);
- var freeLegs = legs - ensnaredLegs;
+ var numEnsnares = ensnareable.Container.ContainedEntities.Count;
- 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;