void SpawnChest(string[] args) { if (!ArgCount(args, 1, 2)) { return; } Dungeonator.RoomHandler currentRoom = GameManager.Instance.PrimaryPlayer.CurrentRoom; Chest chest; bool glitched = false; string name = args[0].ToLower(); switch (name) { case "brown": case "d": chest = GameManager.Instance.RewardManager.D_Chest; break; case "blue": case "c": chest = GameManager.Instance.RewardManager.C_Chest; break; case "green": case "b": chest = GameManager.Instance.RewardManager.B_Chest; break; case "red": case "a": chest = GameManager.Instance.RewardManager.A_Chest; break; case "black": case "s": chest = GameManager.Instance.RewardManager.S_Chest; break; case "rainbow": case "r": chest = GameManager.Instance.RewardManager.Rainbow_Chest; break; case "glitched": case "g": chest = GameManager.Instance.RewardManager.B_Chest; glitched = true; break; default: Log("Chest type " + args[0] + " doesn't exist! Valid types: brown, blue, green, red, black, rainbow"); return; } WeightedGameObject wGameObject = new WeightedGameObject(); wGameObject.rawGameObject = chest.gameObject; WeightedGameObjectCollection wGameObjectCollection = new WeightedGameObjectCollection(); wGameObjectCollection.Add(wGameObject); int count = 1; float origMimicChance = chest.overrideMimicChance; chest.overrideMimicChance = 0f; if (args.Length > 1) { bool success = int.TryParse(args[1], out count); if (!success) { Log("Second argument must be an integer (number)"); return; } } for (int i = 0; i < count; i++) { Chest spawnedChest = currentRoom.SpawnRoomRewardChest(wGameObjectCollection, currentRoom.GetBestRewardLocation(new IntVector2(2, 1), Dungeonator.RoomHandler.RewardLocationStyle.PlayerCenter, true)); spawnedChest.ForceUnlock(); if (glitched) { spawnedChest.BecomeGlitchChest(); } } chest.overrideMimicChance = origMimicChance; }