Пример #1
0
        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 AddOpenUIVerb(EntityUid uid, GasTankComponent component, GetActivationVerbsEvent args)
        {
            if (!args.CanAccess || !EntityManager.TryGetComponent <ActorComponent?>(args.User, out var actor))
            {
                return;
            }

            Verb verb = new();

            verb.Act  = () => component.OpenInterface(actor.PlayerSession);
            verb.Text = Loc.GetString("control-verb-open-control-panel-text");
            // TODO VERBS add "open UI" icon?
            args.Verbs.Add(verb);
        }
Пример #3
0
        private void AddWipeVerb(EntityUid uid, PAIComponent pai, GetActivationVerbsEvent args)
        {
            if (args.User == null || !args.CanAccess || !args.CanInteract)
            {
                return;
            }

            if (EntityManager.TryGetComponent <MindComponent>(uid, out var mind) && mind.HasMind)
            {
                Verb verb = new();
                verb.Text = Loc.GetString("pai-system-wipe-device-verb-text");
                verb.Act  = () => {
                    if (pai.Deleted)
                    {
                        return;
                    }
                    // Wiping device :(
                    // The shutdown of the Mind should cause automatic reset of the pAI during OnMindRemoved
                    // EDIT: But it doesn't!!!! Wtf? Do stuff manually
                    if (EntityManager.HasComponent <MindComponent>(uid))
                    {
                        EntityManager.RemoveComponent <MindComponent>(uid);
                        _popupSystem.PopupEntity(Loc.GetString("pai-system-wiped-device"), uid, Filter.Entities(args.User));
                        PAITurningOff(uid);
                    }
                };
                args.Verbs.Add(verb);
            }
            else if (EntityManager.HasComponent <GhostTakeoverAvailableComponent>(uid))
            {
                Verb verb = new();
                verb.Text = Loc.GetString("pai-system-stop-searching-verb-text");
                verb.Act  = () => {
                    if (pai.Deleted)
                    {
                        return;
                    }
                    if (EntityManager.HasComponent <GhostTakeoverAvailableComponent>(uid))
                    {
                        EntityManager.RemoveComponent <GhostTakeoverAvailableComponent>(uid);
                        _popupSystem.PopupEntity(Loc.GetString("pai-system-stopped-searching"), uid, Filter.Entities(args.User));
                        PAITurningOff(uid);
                    }
                };
                args.Verbs.Add(verb);
            }
        }
        /// <summary>
        /// Add a verb that allows the player to start playing a tabletop game.
        /// </summary>
        private void AddPlayGameVerb(EntityUid uid, TabletopGameComponent component, GetActivationVerbsEvent args)
        {
            if (!args.CanAccess || !args.CanInteract)
            {
                return;
            }

            if (!EntityManager.TryGetComponent <ActorComponent?>(args.User, out var actor))
            {
                return;
            }

            Verb verb = new();

            verb.Text        = Loc.GetString("tabletop-verb-play-game");
            verb.IconTexture = "/Textures/Interface/VerbIcons/die.svg.192dpi.png";
            verb.Act         = () => OpenSessionFor(actor.PlayerSession, uid);
            args.Verbs.Add(verb);
        }
Пример #5
0
        private void AddToggleOpenVerb(EntityUid uid, ItemCabinetComponent cabinet, GetActivationVerbsEvent args)
        {
            if (args.Hands == null || !args.CanAccess || !args.CanInteract)
            {
                return;
            }

            // Toggle open verb
            Verb toggleVerb = new();

            toggleVerb.Act = () => ToggleItemCabinet(uid, cabinet);
            if (cabinet.Opened)
            {
                toggleVerb.Text        = Loc.GetString("verb-common-close");
                toggleVerb.IconTexture = "/Textures/Interface/VerbIcons/close.svg.192dpi.png";
            }
            else
            {
                toggleVerb.Text        = Loc.GetString("verb-common-open");
                toggleVerb.IconTexture = "/Textures/Interface/VerbIcons/open.svg.192dpi.png";
            }
            args.Verbs.Add(toggleVerb);
        }
Пример #6
0
        private void AddToggleLightVerbs(EntityUid uid, UnpoweredFlashlightComponent component, GetActivationVerbsEvent args)
        {
            if (!args.CanAccess || !args.CanInteract)
            {
                return;
            }

            Verb verb = new();

            verb.Text        = Loc.GetString("toggle-flashlight-verb-get-data-text");
            verb.IconTexture = "/Textures/Interface/VerbIcons/light.svg.192dpi.png";
            verb.Act         = () => ToggleLight(component);
            verb.Priority    = -1; // For things like PDA's, Open-UI and other verbs that should be higher priority.

            args.Verbs.Add(verb);
        }
Пример #7
0
        private void AddIgniteVerb(EntityUid uid, ExpendableLightComponent component, GetActivationVerbsEvent args)
        {
            if (!args.CanAccess || !args.CanInteract)
            {
                return;
            }

            if (component.CurrentState != ExpendableLightState.BrandNew)
            {
                return;
            }

            // Ignite the flare or make the glowstick glow.
            // Also hot damn, those are some shitty glowsticks, we need to get a refund.
            Verb verb = new();

            verb.Text        = Loc.GetString("expendable-light-start-verb");
            verb.IconTexture = "/Textures/Interface/VerbIcons/light.svg.192dpi.png";
            verb.Act         = () => component.TryActivate();
            args.Verbs.Add(verb);
        }