public ChampionObject(ChampionObject cloneThis, int level)
 {
     this.championName = cloneThis.championName;
     this.classType1   = cloneThis.classType1;
     this.classType2   = cloneThis.classType2;
     this.classType3   = cloneThis.classType3;
     this.cost         = cloneThis.cost;
     this.level        = level;
 }
Esempio n. 2
0
    public void ReturnToDeck(ChampionObject toReturn)
    {
        //ChampionObject temp = new ChampionObject(toReturn.championName,toReturn.classType1,toReturn.classType2,toReturn.classType3,toReturn.cost,toReturn.level);
        if (toReturn.championName != "Empty")
        {
            switch (toReturn.cost)
            {
            //make sure to add the appropriate champions into their respective decks
            //the number of champions is simply 3 ^ (level - 1)
            case 1:
                for (int i = 0; i < Mathf.Pow(3, toReturn.level - 1); i++)
                {
                    deck.tier1Deck.Add(new ChampionObject(toReturn, 1));
                }
                break;

            case 2:
                for (int i = 0; i < Mathf.Pow(3, toReturn.level - 1); i++)
                {
                    deck.tier2Deck.Add(new ChampionObject(toReturn, 1));
                }
                break;

            case 3:
                for (int i = 0; i < Mathf.Pow(3, toReturn.level - 1); i++)
                {
                    deck.tier3Deck.Add(new ChampionObject(toReturn, 1));
                }
                break;

            case 4:
                for (int i = 0; i < Mathf.Pow(3, toReturn.level - 1); i++)
                {
                    deck.tier4Deck.Add(new ChampionObject(toReturn, 1));
                }
                break;

            case 5:
                for (int i = 0; i < Mathf.Pow(3, toReturn.level - 1); i++)
                {
                    deck.tier5Deck.Add(new ChampionObject(toReturn, 1));
                }
                break;
            }
        }
    }
Esempio n. 3
0
    public void Buy(string buttonName)
    {
        switch (buttonName)
        {
        case "Option1":
        {
            for (int i = 0; i < 9; i++)
            {
                if (inventory[i].championName == "Empty")
                {
                    //here i create a new champion object because if it make
                    //the inventory spot equal the cardsrevealed, any modification will point to
                    //the main deck
                    inventory[i] = new ChampionObject(cardsRevealed[0].championName,
                                                      cardsRevealed[0].classType1, cardsRevealed[0].classType2, cardsRevealed[0].classType3, cardsRevealed[0].cost
                                                      , cardsRevealed[0].level);
                    goldUsed        += cardsRevealed[0].cost;
                    cardsRevealed[0] = new Champion().placeHolder;
                    //option1.GetComponent<Image>().sprite = "Graves";
                    Combine();
                    break;
                }
                else
                {
                    if (i == 8)
                    {
                        overflowPlaceholder.championName = cardsRevealed[0].championName;
                        if (CombineOverflow(overflowPlaceholder))
                        {
                            goldUsed        += cardsRevealed[0].cost;
                            cardsRevealed[0] = new Champion().placeHolder;
                        }
                        else
                        {
                            Debug.Log("No more space!");
                        }
                    }
                }
            }
            break;
        }

        case "Option2":
        {
            for (int i = 0; i < 9; i++)
            {
                if (inventory[i].championName == "Empty")
                {
                    inventory[i] = new ChampionObject(cardsRevealed[1].championName,
                                                      cardsRevealed[1].classType1, cardsRevealed[1].classType2, cardsRevealed[1].classType3, cardsRevealed[1].cost
                                                      , cardsRevealed[1].level);

                    goldUsed        += cardsRevealed[1].cost;
                    cardsRevealed[1] = new Champion().placeHolder;
                    Combine();
                    break;
                }
                else
                {
                    if (i == 8)
                    {
                        overflowPlaceholder.championName = cardsRevealed[1].championName;
                        if (CombineOverflow(overflowPlaceholder))
                        {
                            goldUsed        += cardsRevealed[1].cost;
                            cardsRevealed[1] = new Champion().placeHolder;
                        }
                        else
                        {
                            Debug.Log("No more space!");
                        }
                    }
                }
            }
            break;
        }

        case "Option3":
        {
            for (int i = 0; i < 9; i++)
            {
                if (inventory[i].championName == "Empty")
                {
                    inventory[i] = new ChampionObject(cardsRevealed[2].championName,
                                                      cardsRevealed[2].classType1, cardsRevealed[2].classType2, cardsRevealed[2].classType3, cardsRevealed[2].cost
                                                      , cardsRevealed[2].level);
                    goldUsed        += cardsRevealed[2].cost;
                    cardsRevealed[2] = new Champion().placeHolder;
                    Combine();
                    break;
                }
                else
                {
                    if (i == 8)
                    {
                        overflowPlaceholder.championName = cardsRevealed[2].championName;
                        if (CombineOverflow(overflowPlaceholder))
                        {
                            goldUsed        += cardsRevealed[2].cost;
                            cardsRevealed[2] = new Champion().placeHolder;
                        }
                        else
                        {
                            Debug.Log("No more space!");
                        }
                    }
                }
            }
            break;
        }

        case "Option4":
        {
            for (int i = 0; i < 9; i++)
            {
                if (inventory[i].championName == "Empty")
                {
                    inventory[i] = new ChampionObject(cardsRevealed[3].championName,
                                                      cardsRevealed[3].classType1, cardsRevealed[3].classType2, cardsRevealed[3].classType3, cardsRevealed[3].cost
                                                      , cardsRevealed[3].level);

                    goldUsed        += cardsRevealed[3].cost;
                    cardsRevealed[3] = new Champion().placeHolder;
                    Combine();
                    break;
                }
                else
                {
                    if (i == 8)
                    {
                        overflowPlaceholder.championName = cardsRevealed[3].championName;
                        if (CombineOverflow(overflowPlaceholder))
                        {
                            goldUsed        += cardsRevealed[3].cost;
                            cardsRevealed[3] = new Champion().placeHolder;
                        }
                        else
                        {
                            Debug.Log("No more space!");
                        }
                    }
                }
            }
            break;
        }

        case "Option5":
        {
            for (int i = 0; i < 9; i++)
            {
                if (inventory[i].championName == "Empty")
                {
                    inventory[i] = new ChampionObject(cardsRevealed[4].championName,
                                                      cardsRevealed[4].classType1, cardsRevealed[4].classType2, cardsRevealed[4].classType3, cardsRevealed[4].cost
                                                      , cardsRevealed[4].level);

                    goldUsed        += cardsRevealed[4].cost;
                    cardsRevealed[4] = new Champion().placeHolder;
                    Combine();
                    break;
                }
                else
                {
                    if (i == 8)
                    {
                        overflowPlaceholder.championName = cardsRevealed[4].championName;
                        if (CombineOverflow(overflowPlaceholder))
                        {
                            goldUsed        += cardsRevealed[4].cost;
                            cardsRevealed[4] = new Champion().placeHolder;
                        }
                        else
                        {
                            Debug.Log("No more space!");
                        }
                    }
                }
            }
            break;
        }

        case "Empty":
        {
            Debug.Log("Champion is sold");
            break;
        }
        }
        //here ill write one more combine (this mostly checks if anything has hit level 3.
        //i can also add another exception in the combine function if i have time.
        Combine();
    }
Esempio n. 4
0
    //this combines when the inventory is full
    public bool CombineOverflow(ChampionObject Overflow)
    {
        numOfSameUnit = 0;
        //check for any pair on the field first
        for (int i = 0; i < 9; i++)
        {
            //check for any pair on the field first
            if (champsOnField[i].championName != "Empty")
            {
                if (champsOnField[i].championName == Overflow.championName &&
                    champsOnField[i].level == Overflow.level)
                {
                    numOfSameUnit++;
                    if (numOfSameUnit == 2)
                    {
                        champsOnField[sameUnitPosField[0]].cost *= 3;
                        champsOnField[sameUnitPosField[0]].level++;
                        champsOnField[i] = new Champion().placeHolder;
                        return(true);
                    }
                    else
                    {
                        sameUnitPosField[0] = i;
                    }
                }
            }
        }

        //combine if one exists in the field
        if (numOfSameUnit == 1)
        {
            for (int i = 0; i < 9; i++)
            {
                if (inventory[i].championName != "Empty")
                {
                    if (inventory[i].championName == Overflow.championName &&
                        inventory[i].level == Overflow.level)
                    {
                        champsOnField[sameUnitPosField[0]].cost *= 3;
                        champsOnField[sameUnitPosField[0]].level++;
                        inventory[i] = new Champion().placeHolder;
                        return(true);
                    }
                }
            }
        }

        //if none are in the field, just check the inventory normally
        numOfSameUnit = 0;
        for (int i = 0; i < 9; i++)
        {
            if (inventory[i].championName != "Empty")
            {
                if (inventory[i].championName == Overflow.championName &&
                    inventory[i].level == Overflow.level)
                {
                    numOfSameUnit++;
                    if (numOfSameUnit == 2)
                    {
                        Debug.Log("overflow triple found");
                        inventory[sameUnitPosInventory[0]].cost *= 3;
                        inventory[sameUnitPosInventory[0]].level++;
                        inventory[i] = new Champion().placeHolder;
                        return(true);
                    }
                    else
                    {
                        sameUnitPosInventory[0] = i;
                    }
                }
            }
        }
        return(false);
    }
    public void OnDrop(PointerEventData eventData)
    {
        posBeingDragged  = int.Parse(eventData.pointerDrag.name.Remove(0, this.name.Length - 1)) - 1;
        nameBeingDragged = eventData.pointerDrag.name.Remove(this.name.Length - 1);

        //as long as im not dropping an empty slot...
        for (int i = 0; i < 9; i++)
        {
            onFieldPos.Add(gameController.onfield[i].transform.position);
            inventoryPos.Add(gameController.inventoryObjects[i].transform.position);
        }

        //If dragged to bottom, sell it!
        if (this.transform.position.y < -1.6)
        {
            //Debug.Log("Sell me");
            if (nameBeingDragged == "Inventory")
            {
                gameController.ReturnToDeck(inventory[posBeingDragged]);
                inventory[posBeingDragged] = new Champion().placeHolder;
            }
            else
            {
                gameController.ReturnToDeck(gameController.champsOnField[posBeingDragged]);
                gameController.champsOnField[posBeingDragged] = new Champion().placeHolder;
            }
            gameController.sprites.UpdatePics();
        }

        for (int i = 0; i < 9; i++)
        {
            distanceFromField     = Vector3.Distance(this.transform.position, onFieldPos[i]);
            distanceFromInventory = Vector3.Distance(this.transform.position, inventoryPos[i]);

            //skip checking itself!
            if (distanceFromField < 0.45)
            {
                //moving to field i
                if (nameBeingDragged == "Inventory")
                {
                    if (gameController.champsOnField[i].championName == "Empty")
                    {
                        //   Debug.Log("Swapping inventory with Field");
                        gameController.champsOnField[i] = new ChampionObject(inventory[posBeingDragged]);
                        inventory[posBeingDragged]      = new Champion().placeHolder;
                        gameController.sprites.UpdatePics();
                        break;
                    }
                }
            }
            //dropping into inventory
            else if (distanceFromInventory < 0.45)
            {
                if (nameBeingDragged == "Inventory")
                {
                    if (i != posBeingDragged)
                    {
                        if (inventory[i].championName == "Empty")
                        {
                            inventory[i] = new ChampionObject(inventory[posBeingDragged]);
                            inventory[posBeingDragged] = new Champion().placeHolder;
                            gameController.sprites.UpdatePics();
                            break;
                        }
                        else
                        {
                            //swap objects
                            ChampionObject tempChamp = new ChampionObject(inventory[i]);
                            inventory[i] = new ChampionObject(inventory[posBeingDragged]);
                            inventory[posBeingDragged] = new ChampionObject(tempChamp);
                            gameController.sprites.UpdatePics();
                        }
                    }
                }
                //field to inventory
                else
                {
                    if (inventory[i].championName == "Empty")
                    {
                        inventory[i] = new ChampionObject(gameController.champsOnField[posBeingDragged]);
                        gameController.champsOnField[posBeingDragged] = new Champion().placeHolder;
                        gameController.sprites.UpdatePics();
                        break;
                    }
                    else
                    {
                        //swap objects
                        ChampionObject tempChamp = new ChampionObject(gameController.champsOnField[i]);
                        inventory[i] = new ChampionObject(gameController.champsOnField[posBeingDragged]);
                        gameController.champsOnField[posBeingDragged] = new ChampionObject(tempChamp);
                        gameController.sprites.UpdatePics();
                    }
                }
            }
        }
        textMesh.SetText(gameController.Traits());
        textMesh.ForceMeshUpdate();
    }