private void OnKnockHandleState(EntityUid uid, KnockedDownComponent component, ref ComponentHandleState args) { if (args.Current is KnockedDownComponentState state) { component.HelpInterval = state.HelpInterval; component.HelpTimer = state.HelpTimer; } }
private void OnInteractHand(EntityUid uid, KnockedDownComponent knocked, InteractHandEvent args) { if (args.Handled || knocked.HelpTimer > 0f) { return; } // Set it to half the help interval so helping is actually useful... knocked.HelpTimer = knocked.HelpInterval / 2f; _statusEffectSystem.TryRemoveTime(uid, "KnockedDown", TimeSpan.FromSeconds(knocked.HelpInterval)); SoundSystem.Play(Filter.Pvs(uid), knocked.StunAttemptSound.GetSound(), uid, AudioHelpers.WithVariation(0.05f)); knocked.Dirty(); args.Handled = true; }
private void OnKnockRemove(EntityUid uid, KnockedDownComponent component, ComponentRemove args) { _standingStateSystem.Stand(uid); }
private void OnKnockInit(EntityUid uid, KnockedDownComponent component, ComponentInit args) { _standingStateSystem.Down(uid); }
private void OnKnockGetState(EntityUid uid, KnockedDownComponent component, ref ComponentGetState args) { args.State = new KnockedDownComponentState(component.HelpInterval, component.HelpTimer); }