Example #1
0
    private void Setup()
    {
        int skinsCount = m_GameManager.m_Skins.Count;
        int numRows    = skinsCount / c_ItemsPerRow;

        if (skinsCount % c_ItemsPerRow > 0)
        {
            numRows++;
        }

        if (m_ContentParent.childCount > 0)
        {
            return;
        }

        int index = 0;

        for (int i = 0; i < numRows; i++)
        {
            Transform row = Instantiate(m_RowPrefab, m_ContentParent).transform;
            while (row.childCount < c_ItemsPerRow)
            {
                ShopElement element = Instantiate(m_ElementPrefab, row).GetComponent <ShopElement>();
                if (index < m_GameManager.m_Skins.Count)
                {
                    element.Init(m_GameManager.m_Skins[index], index, ChangeBrush);
                    index++;
                }
            }
        }
    }
Example #2
0
 public void LoadElement(ShopElement newElement)
 {
     actualElement       = newElement;
     elementImage.sprite = newElement.elementInShopImg;
     elementImage.color  = newElement.color;
     SetPriceTag(newElement.price);
 }
Example #3
0
    private void UpdateUI()
    {
        ShopElement c = characters[characterIndex];

        if (c.isLocked)
        {
            adButton.gameObject.SetActive(true);
            adButton.interactable = true;

            buyButton.gameObject.SetActive(true);
            buyButton.GetComponentInChildren <TextMeshProUGUI>().text = c.price + "";

            if (PlayerPrefs.GetInt("TotalGems", 0) < c.price)
            {
                buyButton.interactable = false;
            }
            else
            {
                buyButton.interactable = true;
            }
        }
        else
        {
            adButton.gameObject.SetActive(false);
            buyButton.gameObject.SetActive(false);
        }
    }
Example #4
0
    private void BuyUnit(ShopElement elem)
    {
        var unit = (Unit)elem.GetEquipement();

        // TODO: Set specialization
        inventory.AddEquipement(unit);
        RemoveMoney(elem);
    }
Example #5
0
 void createGems()
 {
     List<ShopModel> models = services.ShopService.GemItems;
     for (int i = 0; i < models.Count; i++)
     {
         ShopElement element = new ShopElement(getChild("GemPanel/Element" + (i + 1).ToString()), services, models[i]);
         element.AddClickListener(onButtonClick);
     }
 }
Example #6
0
    private void BuySquad(ShopElement elem)
    {
        var squad = availableSquads.Where(x => x.GetName() == elem.GetEquipement().GetName()).First(); // We find the corresponding squad given the shop element

        foreach (var e in squad.GetContent())                                                          // Add all elements of the squad in the inventory
        {
            inventory.AddEquipement(e);
        }
        RemoveMoney(elem);
    }
Example #7
0
    private void DisplayShop()
    {
        foreach (var eq in available)    // Prepare shop with equipement
        {
            RectTransform currTransform; // Get the correct parent panel
            int           index;
            if (eq.GetEquipementType() == AEquipement.Type.Troop)
            {
                currTransform = transformTroops;
                troopIndex++;
                index = troopIndex;
            }
            else if (eq.GetEquipementType() == AEquipement.Type.Equipement)
            {
                currTransform = transformEquipements;
                equipementIndex++;
                index = equipementIndex;
            }
            else if (eq.GetEquipementType() == AEquipement.Type.Logistic)
            {
                currTransform = transformLogistics;
                logisticIndex++;
                index = logisticIndex;
            }
            else
            {
                continue;
            }

            GameObject go         = Instantiate(shopElementPrefab, currTransform);
            var        rTransform = go.GetComponent <RectTransform>();
            rTransform.anchoredPosition += new Vector2(0f, yOffset * index);
            ShopElement se = go.GetComponent <ShopElement>();
            se.Init(eq, Buy);
            shopElems.Add(se);
        }
        int i = 0;

        foreach (var sq in availableSquads)
        {
            GameObject go         = Instantiate(shopElementPrefab, transformSquads);
            var        rTransform = go.GetComponent <RectTransform>();
            rTransform.anchoredPosition += new Vector2(0f, yOffset * i);
            ShopElement se = go.GetComponent <ShopElement>();
            se.Init(sq, BuySquad);
            shopElems.Add(se);
            i++;
        }
    }
 void Buy(ShopElement shopElement, ref float buyValue, Text buyText, ref float payValue, Text payText)
 {
     if (shopElement.payAmount <= StatusBarRubyValue)
     {
         buyValue    -= shopElement.payAmount;
         buyText.text = buyValue.ToString();
         payValue    += shopElement.buyAmount;
         payText.text = payValue.ToString();
         PlaySound(RubyDecrease);
     }
     else
     {
         PlaySound(Error);
     }
 }
Example #9
0
    public void Buy()
    {
        ShopElement shopElement = EventSystem.current.currentSelectedGameObject.GetComponent <ShopElement>();

        for (int i = 0; i < shopElement.Cost.Count; i++)
        {
            if (PlayerPrefs.GetInt(shopElement.Cost[i].ItemName) >= shopElement.Cost[i].count)
            {
                PlayerPrefs.SetInt(shopElement.Cost[i].ItemName, PlayerPrefs.GetInt(shopElement.Cost[i].ItemName) - shopElement.Cost[i].count);

                transform.GetChild(0).GetChild(1).GetComponent <Text>().text = PlayerPrefs.GetInt("Stick").ToString();
                transform.GetChild(1).GetChild(1).GetComponent <Text>().text = PlayerPrefs.GetInt("Leaves").ToString();
                transform.GetChild(2).GetChild(1).GetComponent <Text>().text = PlayerPrefs.GetInt("Food").ToString();

                buildSystem.BuildGameObject = shopElement.BuildGO;
                buildSystem.enabled         = true;
            }
        }
    }
Example #10
0
    public void UnlockWithGems()
    {
        ShopElement c = characters[characterIndex];

        if (PlayerPrefs.GetInt("TotalGems", 0) < c.price)
        {
            return;
        }

        int newGems = PlayerPrefs.GetInt("TotalGems", 0) - characters[characterIndex].price;

        PlayerPrefs.SetInt("TotalGems", newGems);

        c.isLocked = false;
        PlayerPrefs.SetInt(c.name, 0);
        PlayerPrefs.SetInt("SelectedCharacter", characterIndex);

        UpdateUI();
    }
Example #11
0
    public void UpdateShop()
    {
        foreach (var obj in elemntObjects)
        {
            Destroy(obj);
        }

        elemntObjects.Clear();
        elements.Clear();

        foreach (var item in ItemList.Items)
        {
            GameObject tmp = Instantiate(ShopElement, ElementParent.transform);
            elemntObjects.Add(tmp);
            ShopElement element = tmp.GetComponent <ShopElement>();
            elements.Add(element);
            element.SetItem(item.Id);
        }
    }
Example #12
0
    public void ShopElementAction(int index)
    {
        element = Array.Find(elements, e => e.index == index);

        //nie kupiony
        if (!element.bought)
        {
            if (element.prize <= FindObjectOfType <GameManager>().currentCash)
            {
                panelWithDetails.SetActive(true);
                buttonsToBuy.SetActive(true);
                buttonsDontHaveEnaughMoney.SetActive(false);
                panelWithDetails_text.text = "Do you want buy  this Ball for  $" + element.prize + "?";
            }
            else
            {
                panelWithDetails.SetActive(true);
                buttonsToBuy.SetActive(false);
                buttonsDontHaveEnaughMoney.SetActive(true);
                panelWithDetails_text.text = "You do not have enough money!";
            }
        }
        else        //kupiony
        {
            for (int i = 0; i < elements.Length; i++)
            {
                if (elements[i].index == index)
                {
                    elements[i].button.GetComponent <Image>().color = new Color(1, 1, 1, 1);
                    PlayerPrefs.SetInt("choiceElement", i);
                    //
                    FindObjectOfType <BallManager>().currentBall = FindObjectOfType <BallManager>().balls[i];
                }
                else
                {
                    elements[i].button.GetComponent <Image>().color = new Color(1, 1, 1, 0);
                }
            }
        }
    }
Example #13
0
    public bool LoadCsv(string strContent)
    {
        if (strContent.Length == 0)
        {
            return(false);
        }
        m_mapElements.Clear();
        m_vecAllElements.Clear();
        int           contentOffset = 0;
        List <string> vecLine;

        vecLine = GameAssist.readCsvLine(strContent, ref contentOffset);
        if (vecLine.Count != 5)
        {
            Debug.Log("Shop.csv中列数量与生成的代码不匹配!");
            return(false);
        }
        if (vecLine[0] != "ID")
        {
            Debug.Log("Shop.csv中字段[ID]位置不对应"); return(false);
        }
        if (vecLine[1] != "Name")
        {
            Debug.Log("Shop.csv中字段[Name]位置不对应"); return(false);
        }
        if (vecLine[2] != "Time")
        {
            Debug.Log("Shop.csv中字段[Time]位置不对应"); return(false);
        }
        if (vecLine[3] != "Refresh")
        {
            Debug.Log("Shop.csv中字段[Refresh]位置不对应"); return(false);
        }
        if (vecLine[4] != "RefreshPlus")
        {
            Debug.Log("Shop.csv中字段[RefreshPlus]位置不对应"); return(false);
        }

        while (true)
        {
            vecLine = GameAssist.readCsvLine(strContent, ref contentOffset);
            if ((int)vecLine.Count == 0)
            {
                break;
            }
            if ((int)vecLine.Count != (int)5)
            {
                return(false);
            }
            ShopElement member = new ShopElement();
            member.ID          = Convert.ToInt32(vecLine[0]);
            member.Name        = vecLine[1];
            member.Time        = vecLine[2];
            member.Refresh     = Convert.ToInt32(vecLine[3]);
            member.RefreshPlus = Convert.ToInt32(vecLine[4]);

            member.IsValidate = true;
            m_vecAllElements.Add(member);
            m_mapElements[member.ID] = member;
        }
        return(true);
    }
Example #14
0
 /// <summary>
 /// Remove some money after buying an item
 /// </summary>
 /// <param name=""></param>
 private void RemoveMoney(ShopElement elem)
 {
     credits -= elem.GetPrice();
     CheckAvailability();
     DisplayCredits();
 }
Example #15
0
 private void Buy(ShopElement elem)
 {
     inventory.AddEquipement(elem.GetEquipement());
     RemoveMoney(elem);
 }
Example #16
0
    public bool LoadBin(byte[] binContent)
    {
        m_mapElements.Clear();
        m_vecAllElements.Clear();
        int nCol, nRow;
        int readPos = 0;

        readPos += GameAssist.ReadInt32Variant(binContent, readPos, out nCol);
        readPos += GameAssist.ReadInt32Variant(binContent, readPos, out nRow);
        List <string> vecLine     = new List <string>(nCol);
        List <int>    vecHeadType = new List <int>(nCol);
        string        tmpStr;
        int           tmpInt;

        for (int i = 0; i < nCol; i++)
        {
            readPos += GameAssist.ReadString(binContent, readPos, out tmpStr);
            readPos += GameAssist.ReadInt32Variant(binContent, readPos, out tmpInt);
            vecLine.Add(tmpStr);
            vecHeadType.Add(tmpInt);
        }
        if (vecLine.Count != 5)
        {
            Debug.Log("Shop.csv中列数量与生成的代码不匹配!");
            return(false);
        }
        if (vecLine[0] != "ID")
        {
            Debug.Log("Shop.csv中字段[ID]位置不对应"); return(false);
        }
        if (vecLine[1] != "Name")
        {
            Debug.Log("Shop.csv中字段[Name]位置不对应"); return(false);
        }
        if (vecLine[2] != "Time")
        {
            Debug.Log("Shop.csv中字段[Time]位置不对应"); return(false);
        }
        if (vecLine[3] != "Refresh")
        {
            Debug.Log("Shop.csv中字段[Refresh]位置不对应"); return(false);
        }
        if (vecLine[4] != "RefreshPlus")
        {
            Debug.Log("Shop.csv中字段[RefreshPlus]位置不对应"); return(false);
        }

        for (int i = 0; i < nRow; i++)
        {
            ShopElement member = new ShopElement();
            readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.ID);
            readPos += GameAssist.ReadString(binContent, readPos, out member.Name);
            readPos += GameAssist.ReadString(binContent, readPos, out member.Time);
            readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.Refresh);
            readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.RefreshPlus);

            member.IsValidate = true;
            m_vecAllElements.Add(member);
            m_mapElements[member.ID] = member;
        }
        return(true);
    }
Example #17
0
 private ShopTable()
 {
     m_mapElements    = new Dictionary <int, ShopElement>();
     m_emptyItem      = new ShopElement();
     m_vecAllElements = new List <ShopElement>();
 }