Ejemplo n.º 1
0
    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;
    }