Ejemplo n.º 1
0
    public void loadStoredMarket()
    {
        Vector3 slotPos = marketStartPos.position;
        float   origX   = slotPos.x;

        for (int i = 0; i < storedMarketUnits.Count; i++)
        {
            MarketSlot tempSl = Instantiate(marketSlot, slotPos, Quaternion.identity).GetComponent <MarketSlot>();
            if (storedMarketUnits[i] != null)
            {
                tempSl.assignUnit(storedMarketUnits[i]);
            }
            else
            {
                tempSl.emptyUnit();
            }
            tempSl.isInvSlot = false;

            marketSlots.Add(tempSl);

            if (((i + 1) % rowCount) != 0)
            {
                slotPos.x -= itemWidth;
            }
            else
            {
                slotPos.x  = origX;
                slotPos.y -= itemHeight;
            }
        }
        emptyStoredMarket();
    }
Ejemplo n.º 2
0
    void chooseAvailable(int slotCount, BaseLevel level)
    {
        Vector3 slotPos = marketStartPos.position;
        float   origX   = slotPos.x;

        for (int i = 0; i < slotCount; i++)
        {
            MarketSlot tempSlot = Instantiate(marketSlot, slotPos, Quaternion.identity).GetComponent <MarketSlot>();
            tempSlot.isInvSlot = false;
            if (!sg.isInfinite)
            {
                chooseUnitFor(tempSlot, level);
            }
            else
            {
                chooseInfUnitFor(tempSlot, gc.curLevel);
            }
            marketSlots.Add(tempSlot);

            if (((i + 1) % rowCount) != 0)
            {
                slotPos.x -= itemWidth;
            }
            else
            {
                slotPos.x  = origX;
                slotPos.y -= itemHeight;
            }
        }
    }
Ejemplo n.º 3
0
    /// <summary>
    /// When a market product button is clicked.
    /// If enough money and buying, instantiate and add to inventory
    /// </summary>
    /// <param name="clicked"></param>
    private void OnSlotClicked(MarketSlot clicked)
    {
        if (player.CheckGold(clicked.GetProduct().price))
        {
            clicked.Disable();
            player.RemoveGold(clicked.GetProduct().price);

            // Need to Instantiate the product first (Not Inventory's job)
            GameObject yield = Instantiate(clicked.GetProduct().product.gameObject, Vector3.zero, Quaternion.identity);
            inventory.Add(yield);

            onBuy.Invoke();
        }
    }
Ejemplo n.º 4
0
    void chooseUnitFor(MarketSlot sl, BaseLevel levelFrom)
    {
        int choice = Random.Range(0, chancesTotal);
        int total  = 0;

        for (int i = 0; i < levelFrom.marketUnits.Length; i++)
        {
            total += levelFrom.marketChances[i];
            if (choice < total)
            {
                sl.assignUnit(new bUnit(levelFrom.marketUnits[i]));
                break;
            }
        }
    }
Ejemplo n.º 5
0
    void chooseInfUnitFor(MarketSlot sl, GenLevel levelFrom)
    {
        int  choice    = Random.Range(0, chancesTotal);
        int  total     = 0;
        bool chosenYet = false;

        for (int i = 0; i < levelFrom.availableInMarket.Length; i++)
        {
            total += levelFrom.marketUnitChances[i];
            if (choice < total)
            {
                sl.assignUnit(new bUnit(levelFrom.availableInMarket[i]));
                chosenYet = true;
                break;
            }
        }
        if (!chosenYet)
        {
            Debug.LogError("ERROR: Did not choose unit for slot");
        }
    }
Ejemplo n.º 6
0
    public void refreshInventory()
    {
        //inventory slots in market.
        Vector3 invPos    = marketInvStartPos.position;
        float   origX     = invPos.x;
        int     fullCount = ih.unitInventory.Count;

        if (invSlots.Count > 0)
        {
            for (int i = 0; i < InventoryHandler.maxInvSlots; i++)
            {
                Destroy(invSlots[i].gameObject);
            }
        }
        invSlots.Clear();

        for (int i = 0; i < InventoryHandler.maxInvSlots; i++)
        {
            MarketSlot invSlot = Instantiate(marketInvSlot, invPos, Quaternion.identity).GetComponent <MarketSlot>();
            invSlot.isInvSlot = true;
            if (i < fullCount)
            {
                invSlot.assignUnit(ih.unitInventory[i]);
            }
            invSlots.Add(invSlot);

            if ((i + 1) % rowCount != 0)
            {
                invPos.x -= itemWidth;
            }
            else
            {
                invPos.x  = origX;
                invPos.y -= itemHeight;
            }
        }
        curInvCount = fullCount;
    }
Ejemplo n.º 7
0
 public void emptyMarketSlot(MarketSlot sl)
 {
     sl.emptyUnit();
 }