コード例 #1
0
        private void Player_PlayerItemUseEvent(PlayerItemInteractEventArgs ev)
        {
            if (!SCP_008.Config.Scp008Configs.InfectionHealItems.Contains(ev.CurrentItem.ID))
            {
                return;
            }

            if (ev.State == ItemInteractState.Finalizing)
            {
                infectedPlayers.Remove(ev.Player);
            }
        }
コード例 #2
0
        internal void InvokePlayerItemUseEvent(Player player, Api.Items.SynapseItem item, ItemInteractState state, ref bool allow)
        {
            var ev = new PlayerItemInteractEventArgs
            {
                Player      = player,
                CurrentItem = item,
                State       = state,
                Allow       = allow,
            };

            PlayerItemUseEvent?.Invoke(ev);

            allow = ev.Allow;
        }
コード例 #3
0
        //Used by:
        //Tranquilizer
        //XLMedkit
        //SCP-1499
        private void OnItemUse(PlayerItemInteractEventArgs ev)
        {
            if (ev.Player.GetComponent <TranquilizerPlayerScript>().Stuned)
            {
                ev.Allow = false;
                return;
            }

            switch (ev.CurrentItem?.ID)
            {
            case (int)CustomItemType.XlMedkit when ev.State == Synapse.Api.Events.SynapseEventArguments.ItemInteractState.Finalizing:
                ev.Player.Inventory.AddItem(ItemType.Medkit);
                break;

            case (int)CustomItemType.Scp1499 when ev.State == Synapse.Api.Events.SynapseEventArguments.ItemInteractState.Finalizing:
                ev.Player.GetComponent <Scp1499PlayerScript>().Use1499(ev.CurrentItem);
                ev.Allow = false;
                break;
            }
        }