private static void CCGiveEquipment(ConCommandArgs args)
        {
            string equipString  = ArgsHelper.GetValue(args.userArgs, 0);
            string playerString = ArgsHelper.GetValue(args.userArgs, 1);

            NetworkUser player = GetNetUserFromString(playerString);

            Inventory inventory = player != null ? player.master.inventory : args.sender.master.inventory;

            int            equipIndex = 0;
            EquipmentIndex equipType  = EquipmentIndex.None;

            if (int.TryParse(equipString, out equipIndex))
            {
                if (equipIndex < (int)EquipmentIndex.Count && equipIndex >= -1)
                {
                    inventory.SetEquipmentIndex((EquipmentIndex)equipIndex);
                }
            }
            else if (Enum.TryParse <EquipmentIndex>(equipString, true, out equipType))
            {
                inventory.SetEquipmentIndex(equipType);
            }
            else
            {
                Debug.Log("Incorrect arguments. Try: give_equip meteor   --- list_equips for a list of all equipments");
            }
        }
        private static void CCTimeScale(ConCommandArgs args)
        {
            string scaleString = ArgsHelper.GetValue(args.userArgs, 0);
            float  scale       = 1f;

            if (args.Count == 0)
            {
                Debug.Log(Time.timeScale);
                return;
            }

            if (float.TryParse(scaleString, out scale))
            {
                Time.timeScale = scale;
                Debug.Log("Time scale set to " + scale);
            }
            else
            {
                Debug.Log("Incorrect arguments. Try: time_scale 0.5");
            }

            NetworkWriter networkWriter = new NetworkWriter();

            networkWriter.StartMessage(101);
            networkWriter.Write((double)Time.timeScale);

            networkWriter.FinishMessage();
            NetworkServer.SendWriterToReady(null, networkWriter, QosChannelIndex.time.intVal);
        }
        private static void CCNextRound(ConCommandArgs args)
        {
            if (args.Count == 0)
            {
                Run.instance.AdvanceStage(Run.instance.nextStageScene.SceneName);
                return;
            }

            string stageString = ArgsHelper.GetValue(args.userArgs, 0);

            List <string> array = new List <string>();

            for (int i = 0; i < SceneManager.sceneCountInBuildSettings; i++)
            {
                array.Add(SceneUtility.GetScenePathByBuildIndex(i).Replace("Assets/RoR2/Scenes/", "").Replace(".unity", ""));
            }

            if (array.Contains(stageString))
            {
                Run.instance.AdvanceStage(stageString);
                return;
            }
            else
            {
                Debug.Log("Incorrect arguments. Try: next_round golemplains   --- Here is a list of available scenes");
                Debug.Log(string.Join("\n", array));
            }
        }
        private static void CCSetFov(ConCommandArgs args)
        {
            if (args.Count == 0)
            {
                Debug.Log(fov);
                return;
            }

            string fovString = ArgsHelper.GetValue(args.userArgs, 0);

            float fovTemp = 60f;

            if (float.TryParse(fovString, out fovTemp))
            {
                fov = fovTemp;
                DodgeState.dodgeFOV    = fov - 10f;
                BackflipState.dodgeFOV = fov - 10f;
                Debug.Log("Set FOV to " + fov);

                List <CameraRigController> instancesList = (List <CameraRigController>) typeof(CameraRigController).GetField("instancesList", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic).GetValue(null);
                foreach (CameraRigController c in instancesList)
                {
                    c.baseFov = fov;
                }
            }
            else
            {
                Debug.Log("Incorrect arguments. Try: fov 60");
            }
        }
Exemple #5
0
        private static void CCSpawnAI(ConCommandArgs args)
        {
            string prefabString    = ArgsHelper.GetValue(args.userArgs, 0);
            string eliteString     = ArgsHelper.GetValue(args.userArgs, 1);
            string teamString      = ArgsHelper.GetValue(args.userArgs, 2);
            string braindeadString = ArgsHelper.GetValue(args.userArgs, 3);

            var character = Character.GetCharacter(prefabString);

            if (character == null)
            {
                Debug.LogFormat("Could not spawn {0}, Try: spawn_ai GolemBody", character.body);
                return;
            }

            var prefab = MasterCatalog.FindMasterPrefab(character.master);
            var body   = BodyCatalog.FindBodyPrefab(character.body);


            var             bodyGameObject = Instantiate <GameObject>(prefab, args.sender.master.GetBody().transform.position, Quaternion.identity);
            CharacterMaster master         = bodyGameObject.GetComponent <CharacterMaster>();

            NetworkServer.Spawn(bodyGameObject);
            master.SpawnBody(body, args.sender.master.GetBody().transform.position, Quaternion.identity);

            EliteIndex eliteIndex = EliteIndex.None;

            if (Enum.TryParse <EliteIndex>(eliteString, true, out eliteIndex))
            {
                if ((int)eliteIndex > (int)EliteIndex.None && (int)eliteIndex < (int)EliteIndex.Count)
                {
                    master.inventory.SetEquipmentIndex(EliteCatalog.GetEliteDef(eliteIndex).eliteEquipmentIndex);
                }
            }

            TeamIndex teamIndex = TeamIndex.Neutral;

            if (Enum.TryParse <TeamIndex>(teamString, true, out teamIndex))
            {
                if ((int)teamIndex >= (int)TeamIndex.None && (int)teamIndex < (int)TeamIndex.Count)
                {
                    master.teamIndex = teamIndex;
                }
            }

            bool braindead;

            if (bool.TryParse(braindeadString, out braindead))
            {
                if (braindead)
                {
                    Destroy(master.GetComponent <BaseAI>());
                }
            }
            Debug.Log("Attempting to spawn " + character.body);
        }
        private static void CCTrueKill(ConCommandArgs args)
        {
            string playerString = ArgsHelper.GetValue(args.userArgs, 0);

            NetworkUser player = GetNetUserFromString(playerString);

            player = player ?? args.sender;

            player.master.TrueKill();
        }
        private static void RespawnPlayer(ConCommandArgs args)
        {
            string playerString = ArgsHelper.GetValue(args.userArgs, 0);

            NetworkUser player = GetNetUserFromString(playerString);

            player = player ?? args.sender;

            Transform spawnPoint = Stage.instance.GetPlayerSpawnTransform();

            player.master.Respawn(spawnPoint.position, spawnPoint.rotation, false);
        }
Exemple #8
0
        private static void CCSpawnAs(ConCommandArgs args)
        {
            if (args.Count == 0)
            {
                return;
            }

            string bodyString   = ArgsHelper.GetValue(args.userArgs, 0);
            string playerString = ArgsHelper.GetValue(args.userArgs, 1);

            var character = Character.GetCharacter(bodyString);

            if (character == null)
            {
                Debug.LogFormat("Could not spawn {0}, Try: spawn_ai GolemBody", character.body);
                return;
            }

            NetworkUser player = GetNetUserFromString(playerString);

            CharacterMaster master = player != null ? player.master : args.sender.master;

            if (!master.alive)
            {
                Debug.Log("Player is dead and cannot respawn.");
                return;
            }

            GameObject newBody = BodyCatalog.FindBodyPrefab(character.body);

            if (newBody == null)
            {
                List <string> array = new List <string>();
                foreach (var item in BodyCatalog.allBodyPrefabs)
                {
                    array.Add(item.name);
                }
                string list = string.Join("\n", array);
                Debug.LogFormat("Could not spawn as {0}, Try: spawn_as GolemBody   --- \n{1}", character.body, list);
                return;
            }
            master.bodyPrefab = newBody;
            Debug.Log(args.sender.userName + " is spawning as " + character.body);

            master.Respawn(master.GetBody().transform.position, master.GetBody().transform.rotation);
        }
        private static void CCUseSeed(ConCommandArgs args)
        {
            if (args.Count == 0)
            {
                Debug.Log(seed);
            }

            string stringSeed = ArgsHelper.GetValue(args.userArgs, 0);

            if (!ulong.TryParse(stringSeed, out seed))
            {
                Debug.Log("Incorrect arguments given. Try: seed 12345");
            }
            else
            {
                Debug.Log("Seed set to " + seed);
            }
        }
Exemple #10
0
        private static void CCSpawnBody(ConCommandArgs args)
        {
            string prefabString = ArgsHelper.GetValue(args.userArgs, 0);

            var character = Character.GetCharacter(prefabString);

            if (character == null)
            {
                Debug.LogFormat("Could not spawn {0}, Try: spawn_ai GolemBody", character.body);
                return;
            }

            GameObject body = BodyCatalog.FindBodyPrefab(character.body);

            GameObject gameObject = Instantiate <GameObject>(body, args.sender.master.GetBody().transform.position, Quaternion.identity);

            NetworkServer.Spawn(gameObject);
            Debug.Log("Attempting to spawn " + character.body);
        }
Exemple #11
0
        private static void CCLoad(ConCommandArgs args)
        {
            if (args.Count != 1)
            {
                Debug.Log("Command failed, requires 1 argument: load <filename>");
                return;
            }
            if (loadingScene)
            {
                return;
            }

            string fileName = ArgsHelper.GetValue(args.userArgs, 0);
            string saveJSON = File.ReadAllText($"{directory}{fileName}.json");

            SaveData save = TinyJson.JSONParser.FromJson <SaveData>(saveJSON);

            instance.StartCoroutine(instance.StartLoading(save));
        }
Exemple #12
0
        private static void CCGiveExperience(ConCommandArgs args)
        {
            if (args.Count == 0)
            {
                return;
            }

            string expString    = ArgsHelper.GetValue(args.userArgs, 0);
            string playerString = ArgsHelper.GetValue(args.userArgs, 1);

            NetworkUser     player = GetNetUserFromString(playerString);
            CharacterMaster master = player != null ? player.master : args.sender.master;

            uint result;

            if (uint.TryParse(expString, out result))
            {
                master.GiveExperience(result);
            }
        }
        private static void CCSave(ConCommandArgs args)
        {
            if (args.Count != 1)
            {
                Debug.Log("Command failed, requires 1 argument: save <filename>");
                return;
            }


            SaveData save = new SaveData();

            string json     = TinyJson.JSONWriter.ToJson(save);
            string fileName = ArgsHelper.GetValue(args.userArgs, 0);

            if (!Directory.Exists(directory))
            {
                Directory.CreateDirectory(directory);
            }
            File.WriteAllText($"{directory}{fileName}.json", json);
        }
Exemple #14
0
        private static void CCSetSprintFOVMulti(ConCommandArgs args)
        {
            if (args.Count == 0)
            {
                Debug.Log(sprintFovMultiplier);
                return;
            }
            string multiString = ArgsHelper.GetValue(args.userArgs, 0);

            float sprintFov = 1f;

            if (float.TryParse(multiString, out sprintFov))
            {
                sprintFovMultiplier = sprintFov;
                Debug.Log("Set Sprint FOV Multiplier to " + sprintFovMultiplier);
            }
            else
            {
                Debug.Log("Incorrect arguments. Try: sprint_fov_multiplier 1");
            }
        }
Exemple #15
0
        private static void CCSetTime(ConCommandArgs args)
        {
            if (args.Count == 0)
            {
                Debug.Log(Run.instance.fixedTime);
                return;
            }

            string stringTime = ArgsHelper.GetValue(args.userArgs, 0);
            float  setTime;

            if (float.TryParse(stringTime, out setTime))
            {
                Run.instance.fixedTime = setTime;
                ResetEnemyTeamLevel();
                Debug.Log("Fixed_time set to " + setTime);
            }
            else
            {
                Debug.Log("Incorrect arguments. Try: fixed_time 600");
            }
        }
Exemple #16
0
        private static void CCGiveItem(ConCommandArgs args)
        {
            string indexString  = ArgsHelper.GetValue(args.userArgs, 0);
            string countString  = ArgsHelper.GetValue(args.userArgs, 1);
            string playerString = ArgsHelper.GetValue(args.userArgs, 2);

            NetworkUser player = GetNetUserFromString(playerString);

            Inventory inventory = player != null ? player.master.inventory : args.sender.master.inventory;


            int itemCount = 1;

            if (!int.TryParse(countString, out itemCount))
            {
                itemCount = 1;
            }

            int       itemIndex = 0;
            ItemIndex itemType  = ItemIndex.Syringe;

            if (int.TryParse(indexString, out itemIndex))
            {
                if (itemIndex < (int)ItemIndex.Count && itemIndex >= 0)
                {
                    itemType = (ItemIndex)itemIndex;
                    inventory.GiveItem(itemType, itemCount);
                }
            }
            else if (Enum.TryParse <ItemIndex>(indexString, true, out itemType))
            {
                inventory.GiveItem(itemType, itemCount);
            }
            else
            {
                Debug.Log("Incorrect arguments. Try: give_item syringe 10   --- list_items for a list of items");
            }
        }
Exemple #17
0
        private static void CCSetClearCount(ConCommandArgs args)
        {
            string stringClearCount = ArgsHelper.GetValue(args.userArgs, 0);

            if (args.Count == 0)
            {
                Debug.Log(Run.instance.stageClearCount);
                return;
            }

            int setClearCount;

            if (int.TryParse(stringClearCount, out setClearCount))
            {
                Run.instance.stageClearCount = setClearCount;
                ResetEnemyTeamLevel();
                Debug.Log("Stage_clear_count set to " + setClearCount);
            }
            else
            {
                Debug.Log("Incorrect arguments. Try: stage_clear_count 5");
            }
        }
Exemple #18
0
        private static void CCSpawnBody(ConCommandArgs args)
        {
            string prefabString = ArgsHelper.GetValue(args.userArgs, 0);

            prefabString = GetBodyNameFromString(prefabString);

            GameObject body = BodyCatalog.FindBodyPrefab(prefabString);

            if (body == null)
            {
                List <string> array = new List <string>();
                foreach (var item in BodyCatalog.allBodyPrefabs)
                {
                    array.Add(item.name);
                }
                string list = string.Join("\n", array);
                Debug.LogFormat("Could not spawn {0}, Try: spawn_body GolemBody   --- \n{1}", prefabString, list);
                return;
            }
            GameObject gameObject = Instantiate <GameObject>(body, args.sender.master.GetBody().transform.position, Quaternion.identity);

            NetworkServer.Spawn(gameObject);
            Debug.Log("Attempting to spawn " + prefabString);
        }
Exemple #19
0
        private static void CCChangeTeam(ConCommandArgs args)
        {
            string teamString   = ArgsHelper.GetValue(args.userArgs, 0);
            string playerString = ArgsHelper.GetValue(args.userArgs, 1);

            NetworkUser player = GetNetUserFromString(playerString);

            player = player ?? args.sender;

            TeamIndex teamIndex = TeamIndex.Player;

            if (Enum.TryParse(teamString, true, out teamIndex))
            {
                if ((int)teamIndex >= (int)TeamIndex.None && (int)teamIndex < (int)TeamIndex.Count)
                {
                    Debug.Log("Changed to team " + teamIndex);
                    if (player.master.GetBody())
                    {
                        player.master.GetBody().teamComponent.teamIndex = teamIndex;
                        player.master.teamIndex = teamIndex;
                    }
                }
            }
        }
Exemple #20
0
        private static void CCSpawnAI(ConCommandArgs args)
        {
            GameObject prefab;
            GameObject body;
            GameObject gameObject = null;

            string prefabString    = ArgsHelper.GetValue(args.userArgs, 0);
            string eliteString     = ArgsHelper.GetValue(args.userArgs, 1);
            string teamString      = ArgsHelper.GetValue(args.userArgs, 2);
            string braindeadString = ArgsHelper.GetValue(args.userArgs, 3);

            string bodyString   = GetBodyMasterLink(prefabString, 0); //prefabString.Replace("Master", "");
            string masterString = GetBodyMasterLink(prefabString, 1); //prefabString.Replace("Body", "");

            prefab = MasterCatalog.FindMasterPrefab(masterString);
            body   = BodyCatalog.FindBodyPrefab(bodyString);
            if (prefab == null)
            {
                List <string> array = new List <string>();
                foreach (var item in MasterCatalog.allMasters)
                {
                    array.Add(item.name);
                }
                string list = string.Join("\n", array);
                Debug.LogFormat("Could not spawn {0}, Try: spawn_ai GolemBody   --- \n{1}", prefabString, list);
                return;
            }

            gameObject = Instantiate <GameObject>(prefab, args.sender.master.GetBody().transform.position, Quaternion.identity);
            CharacterMaster master = gameObject.GetComponent <CharacterMaster>();

            NetworkServer.Spawn(gameObject);
            master.SpawnBody(body, args.sender.master.GetBody().transform.position, Quaternion.identity);

            EliteIndex eliteIndex = EliteIndex.None;

            if (Enum.TryParse <EliteIndex>(eliteString, true, out eliteIndex))
            {
                if ((int)eliteIndex > (int)EliteIndex.None && (int)eliteIndex < (int)EliteIndex.Count)
                {
                    master.inventory.SetEquipmentIndex(EliteCatalog.GetEliteDef(eliteIndex).eliteEquipmentIndex);
                }
            }

            TeamIndex teamIndex = TeamIndex.Neutral;

            if (Enum.TryParse <TeamIndex>(teamString, true, out teamIndex))
            {
                if ((int)teamIndex >= (int)TeamIndex.None && (int)teamIndex < (int)TeamIndex.Count)
                {
                    master.teamIndex = teamIndex;
                }
            }

            bool braindead;

            if (bool.TryParse(braindeadString, out braindead))
            {
                if (braindead)
                {
                    Destroy(master.GetComponent <BaseAI>());
                }
            }
            Debug.Log("Attempting to spawn " + prefabString);
        }