Exemplo n.º 1
0
    public void buyAction(Button button)
    {
        if (messageRoutine != null)
        {
            StopCoroutine(messageRoutine);
        }
        if (buyButton.name == "Buy")
        {
            messageRoutine = StartCoroutine(PurchaseMessage("Select an option!"));
            return;
        }
        num = int.Parse(button.name);
        MazeScript scr = GameObject.Find("EventSystem").GetComponent <MazeScript>();

        if (shopItems[num].getItem() == null)
        {
            return;
        }

        int totalPrice = shopItems[num].getPrice();
        int itemAmount = 1;

        if (shopItems[num].getItem() is int && amount.gameObject.activeSelf)
        {
            if (amount.text == "")
            {
                messageRoutine = StartCoroutine(PurchaseMessage("You have to choose an amount to buy")); return;
            }
            itemAmount  = int.Parse(amount.text);
            totalPrice += itemAmount;
        }

        if (scr.alliance.Cash >= totalPrice)
        {
            if (shopItems[num].getItem() is AttackMove)
            {
                if (shopItems[num].getClass() != scr.alliance.Forces[scr.curTeam].getMember(scr.curChar).GetClass() && shopItems[num].getClass() != Class.None)
                {
                    messageRoutine = StartCoroutine(PurchaseMessage("Your current character can't learn this move")); return;
                }

                int ind;
                ind = GameObject.Find("EventSystem").GetComponent <MazeScript>().giveAttackMove(shopItems[num].getItem() as AttackMove);
                if (ind != -1)
                {
                    scr.alliance.Cash -= totalPrice;
                }
                else
                {
                    boughtMove      = shopItems[num].getItem() as AttackMove;
                    boughtMovePrice = totalPrice;
                    MovesFull();
                }
            }
            else if (shopItems[num].getItem() is Class)
            {
                int type = (int)shopItems[num].getItem();
                if (amount.text == "")
                {
                    messageRoutine = StartCoroutine(PurchaseMessage("You have to choose a team to add to")); return;
                }
                int teamAdd = int.Parse(amount.text);
                if (teamAdd > Stats.numberOfTeams - 1 || teamAdd < 0)
                {
                    amount.text = ""; return;
                }
                if (scr.alliance.Forces[teamAdd].numberMems < 4)
                {
                    scr.alliance.Forces[teamAdd].addMember((Class)type);
                    scr.alliance.Cash -= totalPrice;
                    if (teamAdd == scr.curTeam)
                    {
                        scr.updateCharPic(teamAdd);
                    }
                }
                else
                {
                    messageRoutine = StartCoroutine(PurchaseMessage("Your team is full!"));
                }
            }
            else if (shopItems[num].getItem() is int)
            {
                if (shopItems[num].getName() == "Wood")
                {
                    scr.alliance.Wood += (int)shopItems[num].getItem() * itemAmount;
                    GameObject.Find("Canvas").transform.Find("OutOfBattleGUI").Find("CharPics").Find("TeamStats").Find("Wood").GetChild(0).GetComponent <TextMeshProUGUI>().text = "" + scr.alliance.Wood;
                }
                else if (shopItems[num].getName() == "Iron")
                {
                    scr.alliance.Iron += (int)shopItems[num].getItem() * itemAmount;
                    GameObject.Find("Canvas").transform.Find("OutOfBattleGUI").Find("CharPics").Find("TeamStats").Find("Iron").GetChild(0).GetComponent <TextMeshProUGUI>().text = "" + scr.alliance.Iron;
                }
                else if (scr.alliance.Forces[scr.curTeam].getMember(scr.curChar).getHealth() < scr.alliance.Forces[scr.curTeam].getMember(scr.curChar).getHealthCap())
                {
                    scr.alliance.Forces[scr.curTeam].heal((int)shopItems[num].getItem(), scr.curChar);
                }
                else
                {
                    messageRoutine = StartCoroutine(PurchaseMessage("Health is already full!"));
                    return;
                }
                scr.alliance.Cash -= totalPrice;
            }
            GameObject.Find("Canvas").transform.Find("OutOfBattleGUI").Find("CharPics").Find("TeamStats").Find("Cash").Find("Value").GetComponent <TextMeshProUGUI>().text = "" + scr.alliance.Cash;
        }
        else
        {
            messageRoutine = StartCoroutine(PurchaseMessage("Not enough money in vault to purchase!"));
        }
    }