private void OnGotEquipped(EntityUid uid, MagbootsComponent component, GotEquippedEvent args) { if (args.Slot == "shoes") { UpdateMagbootEffects(args.Equipee, uid, true, component); } }
private void OnSlipAttempt(EntityUid uid, MagbootsComponent component, SlipAttemptEvent args) { if (component.On) { args.Cancel(); } }
private void OnToggleAction(EntityUid uid, MagbootsComponent component, ToggleActionEvent args) { if (args.Handled) { return; } args.Handled = true; component.On = !component.On; if (_sharedContainer.TryGetContainingContainer(uid, out var container) && _inventory.TryGetSlotEntity(container.Owner, "shoes", out var entityUid) && entityUid == component.Owner) { UpdateMagbootEffects(container.Owner, uid, true, component); } if (TryComp <ItemComponent>(uid, out var item)) { _item.SetHeldPrefix(uid, component.On ? "on" : null, item); _clothing.SetEquippedPrefix(uid, component.On ? "on" : null); } if (TryComp(uid, out AppearanceComponent? appearance)) { appearance.SetData(ToggleVisuals.Toggled, component.On); } OnChanged(component); Dirty(component); }
private void AddToggleVerb(EntityUid uid, MagbootsComponent component, GetActivationVerbsEvent args) { if (!args.CanAccess || !args.CanInteract) return; Verb verb = new(); verb.Text = Loc.GetString("toggle-magboots-verb-get-data-text"); verb.Act = () => component.On = !component.On; // TODO VERB ICON add toggle icon? maybe a computer on/off symbol? args.Verbs.Add(verb); }
private void OnHandleState(EntityUid uid, MagbootsComponent component, ref ComponentHandleState args) { if (args.Current is not MagbootsComponentState componentState) { return; } if (component.On == componentState.On) { return; } component.On = componentState.On; OnChanged(component); }
private void OnRefreshMovespeed(EntityUid uid, MagbootsComponent component, RefreshMovementSpeedModifiersEvent args) { args.ModifySpeed(component.WalkSpeedModifier, component.SprintSpeedModifier); }
private void OnGetActions(EntityUid uid, MagbootsComponent component, GetItemActionsEvent args) { args.Actions.Add(component.ToggleAction); }
protected void OnChanged(MagbootsComponent component) { _sharedActions.SetToggled(component.ToggleAction, component.On); _clothingSpeedModifier.SetClothingSpeedModifierEnabled(component.Owner, component.On); }
private void OnGetState(EntityUid uid, MagbootsComponent component, ref ComponentGetState args) { args.State = new MagbootsComponentState(component.On); }