Example #1
0
        private void doRecipe(Smod2.API.Item item, Scp914 objectOfType, Smod2.API.Player player, Smod2.API.KnobSetting knobSetting)
        {
            sbyte outputitem = -2;

            try
            {
                outputitem = (sbyte)(objectOfType.recipes[(byte)item.ItemType].outputs[(byte)knobSetting].outputs[getrandom.Next(0, objectOfType.recipes[(byte)item.ItemType].outputs[(byte)knobSetting].outputs.Count)]);
            }
            catch (System.Exception)
            {
                if (outputitem >= 0)
                {
                    this.plugin.Error("Recipe for " + item.ItemType + "does not exist!  Ask the game devs to add a recipe for it!");
                }
            }
            if (outputitem != -2)
            {
                item.Remove();
                this.plugin.Debug(item.ItemType + " ==> " + (ItemType)outputitem);
            }
            if (outputitem >= 0)
            {
                player.GiveItem((ItemType)outputitem);
            }
        }
Example #2
0
        private void InfectPlayer(Player player, Smod2.API.Item pItem)
        {
            List <Player> pList = instance.Server.GetPlayers().Where(x => x.TeamRole.Team == Smod2.API.Team.SPECTATOR && !x.OverwatchMode).ToList();

            if (pList.Count > 0 && scpPlayer == null)
            {
                pItem.Remove();
                Player p035 = pList[rand.Next(pList.Count)];
                p035.ChangeRole(player.TeamRole.Role);
                p035.Teleport(player.GetPosition());
                foreach (Smod2.API.Item item in player.GetInventory())
                {
                    p035.GiveItem(item.ItemType);
                }
                p035.SetHealth(scpHealth);
                p035.SetAmmo(AmmoType.DROPPED_5, player.GetAmmo(AmmoType.DROPPED_5));
                p035.SetAmmo(AmmoType.DROPPED_7, player.GetAmmo(AmmoType.DROPPED_7));
                p035.SetAmmo(AmmoType.DROPPED_9, player.GetAmmo(AmmoType.DROPPED_9));
                p035.SetRank("red", "SCP-035");
                p035.PersonalBroadcast(10, $"You are <color=\"red\">SCP-035!</color> You have infected a body and have gained control over it, use it to help the other SCPs!", false);
                scpPlayer  = p035;
                isRotating = false;

                player.ChangeRole(Role.SPECTATOR);
                player.PersonalBroadcast(10, $"You have picked up <color=\"red\">SCP-035.</color> He has infected your body and is now in control of you.", false);

                if (spawnNewItems)
                {
                    RemovePossessedItems();
                }
                else
                {
                    ResetItemDurability();
                }
            }
        }