예제 #1
0
    public void setExperienceLevel(int exp, int lev)
    {
        int totalExp = lev * 100;

        experience.text = UnitGUI.getSmallCapsString("Experience: " + exp + "/" + totalExp, 10);
        level.text      = UnitGUI.getSmallCapsString("Level: " + lev, 10) + (exp >= totalExp ? "<color=green>" + UnitGUI.getSmallCapsString("(Level Up!)", 10) + "</color>" : "");
    }
예제 #2
0
 public void setValues(int c, int exp, bool won)
 {
     winText.SetActive(won);
     loseText.SetActive(!won);
     rewardText.gameObject.SetActive(won);
     baseButton.SetActive(won);
     loadGameButton.SetActive(!won);
     quitToMenuButton.SetActive(!won);
     rewardText.text = "<color=#c3c331>+" + c + UnitGUI.getSmallCapsString("c", 14) + "</color>\n+" + exp + UnitGUI.getSmallCapsString("exp", 14);
 }
예제 #3
0
    string getNPCStatusSummary(Unit npcUnit)
    {
        string name        = npcUnit.getName();
        float  chanceToHit = 0.0f;

        if (map.getCurrentUnit() != null)
        {
            chanceToHit = 5 * (20 + map.getCurrentUnit().getMeleeScoreWithMods(npcUnit) - npcUnit.getAC());
        }
        chanceToHit = (chanceToHit > 100) ? 100 : chanceToHit;
        string healthCondition  = getHealthCondition(npcUnit);
        string npcStatusSummary = string.Format(" {0}\n {1}\nHit Chance:  {2}%", name, healthCondition, chanceToHit);

        npcStatusSummary = UnitGUI.getSmallCapsString(npcStatusSummary, Mathf.FloorToInt(toolTipText.fontSize * 0.67f));
        return(npcStatusSummary);
    }
예제 #4
0
    public void setUp(BlackMarketItem item, BaseManager bm, bool selling)
    {
        this.selling     = selling;
        this.bm          = bm;
        this.item        = item;
        itemText.text    = UnitGUI.getSmallCapsString(item.item.getBlackMarketText(), 12);
        priceText.text   = (selling ? item.item.getBlackMarketSellPriceText() :item.item.getBlackMarketPriceText());
        itemImage.sprite = item.item.inventoryTexture;
        if (selling)
        {
            buyButton.transform.GetChild(0).GetComponent <Text>().text = "Sell";
        }
        Vector2 size = item.item.getSize() * 32.0f;

        if (size.x > 90 || size.y > 90)
        {
            size /= 2.0f;
        }
        itemImage.GetComponent <RectTransform>().sizeDelta = size;
        setCanAfford();
    }
예제 #5
0
파일: UnitGUI.cs 프로젝트: offbywon/Bel-Nix
    public static void deselectItem(Character characterSheet, MapGenerator mapGenerator, Unit u)
    {
        Vector3 mousePos = Input.mousePosition;

        mousePos.y = Screen.height - mousePos.y;
        Tile t = (mapGenerator != null && u != null ? mapGenerator.tiles[(int)u.position.x, (int)-u.position.y] : null);

        foreach (InventorySlot slot in inventorySlots)
        {
            Rect r = UnitGUI.getInventorySlotRect(slot);
            if (r.Contains(mousePos))
            {
                Vector2 v2 = getIndexOfSlot(slot);
                Vector2 v  = v2 - selectedCell;
                Debug.Log(v);
                if (characterSheet.characterSheet.inventory.canInsertItemInSlot(selectedItem, v))
                {
                    if (selectedItemWasInSlot == InventorySlot.None)
                    {
                        t.removeItem(selectedItem, 1);
                        u.useMinor(MinorType.Loot, false, false);
                    }
                    characterSheet.characterSheet.inventory.insertItemInSlot(selectedItem, v);
                    selectedItem = null;
                    return;
                }
                else
                {
                    InventoryItemSlot invSlot = characterSheet.characterSheet.inventory.inventory[Inventory.getIndexForSlot(v2)];
                    Item invSlotItem          = invSlot.getItem();
                    if (invSlotItem != null && characterSheet.characterSheet.inventory.itemCanStackWith(invSlotItem, selectedItem))
                    {
                        if (selectedItemWasInSlot == InventorySlot.None)
                        {
                            t.removeItem(selectedItem, 1);
                            u.useMinor(MinorType.Loot, false, false);
                        }
                        characterSheet.characterSheet.inventory.stackItemWith(invSlotItem, selectedItem);
                        selectedItem = null;
                        return;
                    }
                }
                break;
            }
        }

/*		if (GameGUI.looting && !(mousePos.x < groundX || mousePos.y < groundY || mousePos.x > groundX + groundWidth || mousePos.y > groundY + groundHeight))  {
 *                      if (selectedItemWasInSlot!=InventorySlot.None && selectedItem!=null)  {
 *                              while (selectedItem.stackSize() > 1) t.addItem(selectedItem.popStack());
 *                              t.addItem(selectedItem);
 *              u.useMinor(MinorType.Loot, false, false);
 *                              //		characterSheet.characterSheet.inventory.removeItemFromSlot(getInventorySlotPos(selectedItemWasInSlot));
 *                      }
 *              }
 *              else if (selectedItemWasInSlot!=InventorySlot.None)  {
 *                      if (characterSheet.characterSheet.inventory.canInsertItemInSlot(selectedItem, getIndexOfSlot(selectedItemWasInSlot)))  {
 *                              characterSheet.characterSheet.inventory.insertItemInSlot(selectedItem, getIndexOfSlot(selectedItemWasInSlot));
 *                      }
 *                      else  {
 *                              int slot1 = getLinearIndexFromIndex(getIndexOfSlot(selectedItemWasInSlot));
 *                              if (slot1 > -1 && characterSheet.characterSheet.inventory.itemCanStackWith(characterSheet.characterSheet.inventory.inventory[slot1].getItem(),selectedItem))  {
 *                                      characterSheet.characterSheet.inventory.stackItemWith(characterSheet.characterSheet.inventory.inventory[slot1].getItem(),selectedItem);
 *                              }
 *                      }
 *              }*/
        selectedItem = null;
    }
예제 #6
0
파일: UnitGUI.cs 프로젝트: offbywon/Bel-Nix
    public static void selectItem(Character characterSheet, MapGenerator mapGenerator, Unit u)
    {
        Vector3 mousePos = Input.mousePosition;

        mousePos.y = Screen.height - mousePos.y;
        foreach (InventorySlot slot in inventorySlots)
        {
            Rect r = UnitGUI.getInventorySlotRect(slot);
            if (r.Contains(mousePos))
            {
                Vector2 v = getIndexOfSlot(slot);
                //				Debug.Log(v);
                int ind = getLinearIndexFromIndex(v);
                InventoryItemSlot sl  = characterSheet.characterSheet.inventory.inventory[ind];
                InventoryItemSlot slR = sl.itemSlot;
                if (slR == null)
                {
                    break;
                }
                //	Item i = slR.item;
                Vector2    itemSlot = Inventory.getSlotForIndex(ind);
                ItemReturn ir       = characterSheet.characterSheet.inventory.removeItemFromSlot(itemSlot);
                selectedItem = ir.item;
                if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))
                {
                    if (selectedItem.stackSize() > 1)
                    {
                        characterSheet.characterSheet.inventory.insertItemInSlot(selectedItem, itemSlot - ir.slot);
                        selectedItem = selectedItem.popStack();
                    }
                }
                selectedCell     = ir.slot;
                selectedMousePos = mousePos;
                //				selectedItemPos = getInventorySlotPos();
                selectedItemPos       = UnitGUI.getInventorySlotPos(inventorySlots[slR.index]);
                selectedItemWasInSlot = inventorySlots[slR.index];
                break;
            }
        }
//		if (!GameGUI.looting || mousePos.x < groundX || mousePos.y < groundY || mousePos.x > groundX + groundWidth || mousePos.y > groundY + groundHeight) return;
        Vector2 scrollOff = UnitGUI.groundScrollPosition;
        float   div       = 20.0f;
        float   y         = div + UnitGUI.groundY - scrollOff.y;
        float   mid       = UnitGUI.groundX + UnitGUI.groundWidth / 2.0f + scrollOff.x;

        //	mousePos.y += groundScrollPosition.y;
        selectedItem = null;
        if (mapGenerator != null)
        {
            List <Item> groundItems = mapGenerator.tiles[(int)u.position.x, (int)-u.position.y].getReachableItems();
            foreach (Item i in groundItems)
            {
                if (i.inventoryTexture == null)
                {
                    continue;
                }
                //	Debug.Log(mousePos.x + "  " + mousePos.y + "       " + mid + "  " + y);
                Vector2 size = i.getSize();
                float   x    = mid - size.x * inventoryCellSize / 2.0f;
                Rect    r    = new Rect(x, y, size.x * inventoryCellSize, size.y * UnitGUI.inventoryCellSize);
                if (r.Contains(mousePos))
                {
                    //	Debug.Log(i);
                    selectedCell = new Vector2((int)((mousePos.x - x) / inventoryCellSize), (int)((mousePos.y - y) / inventoryCellSize));
                    foreach (Vector2 cell in i.getShape())
                    {
                        if (cell.x == selectedCell.x && cell.y == selectedCell.y)
                        {
                            selectedItemPos       = new Vector2(x, y);
                            selectedMousePos      = mousePos;
                            selectedItem          = i;
                            selectedItemWasInSlot = InventorySlot.None;
                        }
                    }
                    Debug.Log(selectedCell);
                    if (selectedItem != null)
                    {
                        break;
                    }
                }
                y += size.y * UnitGUI.inventoryCellSize + div;
            }
        }
    }
예제 #7
0
    public void mouseHoverEnter(Image overlayObject)
    {
        Color c = goodColor;
        //	c.a = 103.0f/255.0f;
        InventorySlot slot = overlayObject.GetComponent <InventoryItem>().slot;

        Debug.Log(slot);
        List <Image> otherImages = new List <Image>();

        if (selectedItem == null)
        {
            if (UnitGUI.inventorySlots.Contains(slot))
            {
                Debug.Log(slot);
                InventoryItemSlot iis = (selectedCharacter == null ? null : selectedCharacter.characterSheet.inventory.inventory[(int)slot - (int)InventorySlot.Zero]);
                if (iis != null && iis.hasItem())
                {
                    List <InventoryItemSlot> sllls = new List <InventoryItemSlot>();
                    if (iis.itemSlot != iis)
                    {
                        sllls.Add(iis.itemSlot);
                    }
                    foreach (InventoryItemSlot iis2 in iis.itemSlot.otherSlots)
                    {
                        if (iis2 == iis)
                        {
                            continue;
                        }
                        sllls.Add(iis2);
                    }
                    foreach (InventoryItemSlot iis2 in sllls)
                    {
                        int   slotind = iis2.index;
                        Image img     = overlayObject.transform.parent.GetChild(slotind).GetComponent <Image>();
                        img.color = c;
                        otherImages.Add(img);
                    }
                }
            }
        }
        else
        {
            Item       i  = selectedItem.GetComponent <InventoryItem>().item;
            ActionType at = Inventory.getActionTypeForMovement(slot, originalSlot);
            Debug.Log(i.itemName);
            if (UnitGUI.inventorySlots.Contains(slot))
            {
                Vector2 currentHighlightSlot = UnitGUI.getIndexOfSlot(slot);
                Vector2 originSlot           = currentHighlightSlot - selectedCell;
                Item    i2 = selectedCharacter.characterSheet.inventory.inventory[UnitGUI.getLinearIndexFromIndex(currentHighlightSlot)].getItem();
                if (i2 != null)
                {
                    if (!selectedCharacter.characterSheet.inventory.itemCanStackWith(i2, i) || !canUseActionType(at))
                    {
                        c = badColor;
                    }
                    else
                    {
                        i          = i2;
                        originSlot = UnitGUI.getIndexFromLinearIndex(selectedCharacter.characterSheet.inventory.inventory[UnitGUI.getLinearIndexFromIndex(currentHighlightSlot)].itemSlot.index);
                    }
                }
                else
                {
                    if (!canUseActionType(at) || !(originSlot.y >= 0 && originSlot.x >= 0 && originSlot.x < 4 && originSlot.y < 4 && selectedCharacter.characterSheet.inventory.canInsertItemInSlot(i, originSlot)))
                    {
                        c = badColor;
                    }
                }
                foreach (Vector2 cell in i.getShape())
                {
                    Vector2 cc = originSlot + cell;
                    if (cc != currentHighlightSlot && cc.x >= 0 && cc.y >= 0 && cc.x < 4 && cc.y < 4)
                    {
                        int   ind = UnitGUI.getLinearIndexFromIndex(cc);
                        Image img = overlayObject.transform.parent.GetChild(ind).GetComponent <Image>();
                        img.color = c;
                        otherImages.Add(img);
                    }
                }
            }
            else if (UnitGUI.armorSlots.Contains(slot))
            {
                if (!selectedCharacter.characterSheet.characterLoadout.canInsertItemInSlot(slot, i, originalSlot))
                {
                    c = badColor;
                }
            }
            else if (BaseManager.trapTurretInventorySlots.Contains(slot))
            {
                if (!baseManager.canInsertItem(i, slot) || (i is Turret) || (i is Trap))
                {
                    c = badColor;
                }
            }
            else if (!canUseActionType(at))
            {
                c = badColor;
            }
            else
            {
                //	c = badColor;
            }
        }
        if (!overlayObjectList.ContainsKey(overlayObject))
        {
            overlayObjectList.Add(overlayObject, otherImages);
        }
        overlayObject.color = c;

        if (!overlayObjects.Contains(overlayObject))
        {
            overlayObjects.Add(overlayObject);
        }
    }
예제 #8
0
    public void selectItem(Image overlayObject)
    {
        beforeItemStandards = (selectedUnit != null ? selectedUnit.getStandardTypes() : new StandardType[0]);
        InventoryItem ii = overlayObject.GetComponent <InventoryItem>();
        InventorySlot sl = ii.slot;
        Item          i  = null;

        Debug.Log(sl + ": " + overlayObjects.Count);
        if (sl == InventorySlot.None)
        {
            Debug.Log(overlayObjects.Count);
            InventoryItem iii = overlayObject.transform.parent.GetComponent <InventoryItem>();
            if (iii != null)
            {
                i = iii.item;
                if (currentLootTile != null)
                {
                    currentLootTile.removeItem(i, 0);
                }
                else if (currentStash != null)
                {
                    currentStash.removeItem(i);
                }
                originalSlot = sl;
                overlayObject.gameObject.SetActive(false);
                overlayObject.transform.parent.GetComponent <LayoutElement>().ignoreLayout = true;
                overlayObject.transform.parent.GetComponent <CanvasGroup>().blocksRaycasts = false;
                mouseHoverLeave(overlayObject);
                Invoke("resetLootScrollPos", 0.05f);
            }
        }
        else if (UnitGUI.armorSlots.Contains(sl))
        {
            i = selectedCharacter.characterSheet.characterLoadout.removeItemFromSlot(sl);
            getArmourParent(sl).transform.FindChild("Canvas").GetComponent <RectTransform>().sizeDelta        = new Vector2(64.0f, 64.0f);
            getArmourParent(sl).transform.FindChild("Canvas").GetComponent <RectTransform>().anchoredPosition = new Vector2(0.0f, 0.0f);
            originalSlot = sl;
        }
        else if (UnitGUI.inventorySlots.Contains(sl))
        {
            ItemReturn i2 = selectedCharacter.characterSheet.inventory.removeItemFromSlot(sl);
            i            = i2.item;
            originalSlot = UnitGUI.getInventorySlotFromIndex(UnitGUI.getIndexOfSlot(sl) - i2.slot);
        }
        else if (BaseManager.trapTurretInventorySlots.Contains(sl))
        {
            i = baseManager.removeTrapTurretInSlot(sl);            // selectedCharacter.characterSheet.characterLoadout.removeItemFromSlot(sl);
            getArmourParent(sl).transform.FindChild("Canvas").GetComponent <RectTransform>().sizeDelta        = new Vector2(64.0f, 64.0f);
            getArmourParent(sl).transform.FindChild("Canvas").GetComponent <RectTransform>().anchoredPosition = new Vector2(0.0f, 0.0f);
            originalSlot = sl;
            if (baseManager.turretFrame == null || baseManager.turretApplicator == null || baseManager.turretGear == null || baseManager.energySource == null)
            {
                removeTurret();
            }
            if (baseManager.trapFrame == null || baseManager.trapApplicator == null || baseManager.trapGear == null || baseManager.trigger == null)
            {
                removeTrap();
            }
            if (sl == InventorySlot.Turret)
            {
                //	originalSlot = InventorySlot.None;
                removeTurretSupplies();
                //	hideLoot = false;
            }
            else if (sl == InventorySlot.Trap)
            {
                //	originalSlot = InventorySlot.None;
                removeTrapSupplies();
                //	hideLoot = false;
            }
        }
        if (i == null)
        {
            return;
        }
        GameObject[] items = GameObject.FindGameObjectsWithTag("inventoryitem");
        foreach (GameObject item in items)
        {
            if (item.GetComponent <InventoryItem>().item == i)
            {
                selectedItem = item;
                item.transform.SetParent(inventoryBackground.transform);
                Vector3 pos = item.transform.position;
                pos.y = Screen.height - pos.y;
                Vector3 mousePos = Input.mousePosition;
                mousePos.y   = Screen.height - mousePos.y;
                selectedCell = new Vector2((int)((mousePos.x - pos.x) / 32.0f), (int)((mousePos.y - pos.y) / 32.0f));
                Vector2 closest     = selectedCell;
                float   closestDist = float.MaxValue;
                foreach (Vector2 v in i.getShape())
                {
                    float dist = Mathf.Abs(v.x - selectedCell.x) + Mathf.Abs(v.y - selectedCell.y);
                    if (dist < closestDist)
                    {
                        closestDist = dist;
                        closest     = v;
                    }
                    if (dist <= Mathf.Epsilon)
                    {
                        break;
                    }
                }
                mouseSelectPos.x += (selectedCell.x - closest.x) * 32.0f;
                mouseSelectPos.y += (selectedCell.y - closest.y) * 32.0f;
                selectedCell      = closest;
                break;
            }
        }
        setACText();
        setLootInteractable(false);
    }
예제 #9
0
    public void deselectItem(Image overlayObject)
    {
        if (selectedItem == null)
        {
            setLootInteractable(true);
            return;
        }
        CharacterSheet cs         = selectedCharacter.characterSheet;
        Item           i          = selectedItem.GetComponent <InventoryItem>().item;
        InventorySlot  insertSlot = (originalSlot == InventorySlot.Trap || originalSlot == InventorySlot.Turret ? InventorySlot.None : originalSlot);

        if (overlayObjects.Count > 0)
        {
            InventorySlot sl = overlayObjects[0].GetComponent <InventoryItem>().slot;
            if (sl == InventorySlot.None)
            {
                insertSlot = sl;
            }
            else if (BaseManager.trapTurretInventorySlots.Contains(sl))
            {
                if (baseManager.canInsertItem(i, sl))
                {
                    insertSlot = sl;
                }
            }
            else if (UnitGUI.armorSlots.Contains(sl))
            {
                if (cs.characterLoadout.canInsertItemInSlot(sl, i, originalSlot))
                {
                    insertSlot = sl;
                }
            }
            else if (UnitGUI.inventorySlots.Contains(sl))
            {
                Vector2 vSlot = UnitGUI.getIndexOfSlot(sl);
                int     oSlot = UnitGUI.getLinearIndexFromIndex(vSlot);
                vSlot -= selectedCell;
                int iSlot = UnitGUI.getLinearIndexFromIndex(vSlot);
                if (iSlot >= 0 && iSlot < 16 && cs.inventory.canInsertItemInSlot(i, vSlot))
                {
                    insertSlot = UnitGUI.getInventorySlotFromIndex(vSlot);
                }
                else if (oSlot >= 0 && oSlot < 16)
                {
                    Item inSlot = cs.inventory.inventory[oSlot].getItem();
                    if (inSlot != null && cs.inventory.itemCanStackWith(inSlot, i))
                    {
                        insertSlot = sl;
                    }
                }
            }
        }
        ActionType at = Inventory.getActionTypeForMovement(originalSlot, insertSlot);

        if (!canUseActionType(at))
        {
            insertSlot = originalSlot;
        }
//		if (selectedUnit != null) {
//			if ((at == ActionType.Minor && selectedUnit.minorsLeft <= 0) || (at == ActionType.Standard && selectedUnit.usedStandard) || (at == ActionType.Movement && selectedUnit.usedMovement)) return;
//		}
        if (UnitGUI.armorSlots.Contains(insertSlot))
        {
            Item       i2      = cs.characterLoadout.getItemInSlot(insertSlot);
            GameObject oldItem = null;
            if (i2 != null)
            {
                oldItem = getArmourParent(insertSlot).transform.FindChild("InventoryItem").gameObject;
            }
            cs.characterLoadout.setItemInSlot(insertSlot, i);
            Vector2    size         = i.getSize() * 32.0f;
            GameObject armourParent = getArmourParent(insertSlot);
            selectedItem.transform.SetParent(armourParent.transform, false);
            Vector2 v = new Vector2();
            v.x = 32.0f - size.x / 2.0f;
            if (size.y >= 64.0f)
            {
                v.y = -64.0f + size.y;
            }
            else
            {
                v.y = -32.0f + size.y / 2.0f;
            }
            selectedItem.GetComponent <RectTransform>().anchoredPosition = v;
            selectedItem.GetComponent <InventoryItem>().slot             = originalSlot;
            GameObject    canv = armourParent.transform.FindChild("Canvas").gameObject;         //.FindChild("Overlay");
            RectTransform rt   = canv.GetComponent <RectTransform>();
            rt.anchoredPosition = v;
            rt.sizeDelta        = size;
            i = i2;
            if (i != null)
            {
                selectedItem = oldItem;
                InventorySlot sl    = originalSlot;
                Vector2       vSlot = UnitGUI.getIndexOfSlot(sl);
                //	vSlot -= selectedCell;
                sl = UnitGUI.getInventorySlotFromIndex(vSlot);
                int iSlot = UnitGUI.getLinearIndexFromIndex(vSlot);
                Debug.Log("Drop has item: " + sl + "  " + vSlot + "   " + iSlot + "  " + selectedCell);
                Item inSlot = (iSlot < 0 || iSlot >= 16 ? null : cs.inventory.inventory[iSlot].getItem());
                if (cs.inventory.canInsertItemInSlot(i, vSlot) || (inSlot != null && cs.inventory.itemCanStackWith(inSlot, i)))
                {
                    insertSlot = sl;
                }
                else
                {
                    foreach (InventorySlot sl2 in UnitGUI.inventorySlots)
                    {
                        sl     = sl2;
                        vSlot  = UnitGUI.getIndexOfSlot(sl);
                        iSlot  = UnitGUI.getLinearIndexFromIndex(vSlot);
                        inSlot = cs.inventory.inventory[iSlot].getItem();
                        if (cs.inventory.canInsertItemInSlot(i, vSlot) || (inSlot != null && cs.inventory.itemCanStackWith(inSlot, i)))
                        {
                            insertSlot = sl;
                            break;
                        }
                    }
                }
                Debug.Log("Drop has item2: " + insertSlot + "  " + vSlot + "   " + iSlot + "  " + selectedCell);
                selectedCell = new Vector2(0, 0);
            }
            if (selectedUnit != null)
            {
                selectedUnit.idleAnimation(false);
                selectedUnit.Invoke("beginIdle", 0.05f);
            }
        }
        else if (BaseManager.trapTurretInventorySlots.Contains(insertSlot) && !(i is Turret) && !(i is Trap))
        {
            Debug.Log("Trap Turret");
            Item       i2      = baseManager.getTrapTurretInSlot(insertSlot);
            GameObject oldItem = null;
            if (i2 != null)
            {
                oldItem = getArmourParent(insertSlot).transform.FindChild("InventoryItem").gameObject;
            }
            baseManager.setItemInSlot(insertSlot, i);
//			cs.characterLoadout.setItemInSlot(insertSlot,i);
            Vector2    size         = i.getSize() * 32.0f;
            GameObject armourParent = getArmourParent(insertSlot);
            selectedItem.transform.SetParent(armourParent.transform, false);
            Vector2 v = new Vector2();
            v.x = 32.0f - size.x / 2.0f;
            if (size.y >= 64.0f)
            {
                v.y = -64.0f + size.y;
            }
            else
            {
                v.y = -32.0f + size.y / 2.0f;
            }
            selectedItem.GetComponent <RectTransform>().anchoredPosition = v;
            selectedItem.GetComponent <InventoryItem>().slot             = originalSlot;
            GameObject    canv = armourParent.transform.FindChild("Canvas").gameObject;         //.FindChild("Overlay");
            RectTransform rt   = canv.GetComponent <RectTransform>();
            rt.anchoredPosition = v;
            rt.sizeDelta        = size;
            i = i2;
            if (i != null)
            {
                selectedItem = oldItem;
                InventorySlot sl    = originalSlot;
                Vector2       vSlot = UnitGUI.getIndexOfSlot(sl);
                //	vSlot -= selectedCell;
                sl = UnitGUI.getInventorySlotFromIndex(vSlot);
                int iSlot = UnitGUI.getLinearIndexFromIndex(vSlot);
                Debug.Log("Drop has item: " + sl + "  " + vSlot + "   " + iSlot + "  " + selectedCell);
                Item inSlot = (iSlot < 0 || iSlot >= 16 ? null : cs.inventory.inventory[iSlot].getItem());
                if (cs.inventory.canInsertItemInSlot(i, vSlot) || (inSlot != null && cs.inventory.itemCanStackWith(inSlot, i)))
                {
                    insertSlot = sl;
                }
                else
                {
                    foreach (InventorySlot sl2 in UnitGUI.inventorySlots)
                    {
                        sl     = sl2;
                        vSlot  = UnitGUI.getIndexOfSlot(sl);
                        iSlot  = UnitGUI.getLinearIndexFromIndex(vSlot);
                        inSlot = cs.inventory.inventory[iSlot].getItem();
                        if (cs.inventory.canInsertItemInSlot(i, vSlot) || (inSlot != null && cs.inventory.itemCanStackWith(inSlot, i)))
                        {
                            insertSlot = sl;
                            break;
                        }
                    }
                }
                Debug.Log("Drop has item2: " + insertSlot + "  " + vSlot + "   " + iSlot + "  " + selectedCell);
                selectedCell = new Vector2(0, 0);
            }
            if (!(baseManager.turretFrame == null || baseManager.turretApplicator == null || baseManager.turretGear == null || baseManager.energySource == null))
            {
                createTurret();
            }
            if (!(baseManager.trapFrame == null || baseManager.trapApplicator == null || baseManager.trapGear == null || baseManager.trigger == null))
            {
                createTrap();
            }

            if (selectedUnit != null)
            {
                selectedUnit.idleAnimation(false);
                selectedUnit.Invoke("beginIdle", 0.05f);
            }
        }
        else
        {
            Debug.Log("Insert Slot: " + insertSlot + "  Original: " + originalSlot);
        }
        if (UnitGUI.inventorySlots.Contains(insertSlot))
        {
            if (cs.inventory.canInsertItemInSlot(i, UnitGUI.getIndexOfSlot(insertSlot)))
            {
                cs.inventory.insertItemInSlot(i, UnitGUI.getIndexOfSlot(insertSlot));
                selectedItem.transform.SetParent(inventorySlots.transform, false);
                Vector2 v = 32.0f * UnitGUI.getIndexOfSlot(insertSlot);
                v.y *= -1;
                selectedItem.GetComponent <RectTransform>().anchoredPosition = v;
                selectedItem.GetComponent <InventoryItem>().slot             = insertSlot;
            }
            else
            {
                Vector2 vSlot  = UnitGUI.getIndexOfSlot(insertSlot);
                int     iSlot  = UnitGUI.getLinearIndexFromIndex(vSlot);
                Item    inSlot = cs.inventory.inventory[iSlot].getItem();
                if (inSlot != null && cs.inventory.itemCanStackWith(inSlot, i))
                {
                    cs.inventory.stackItemWith(inSlot, i);
                    GameObject[] obj = GameObject.FindGameObjectsWithTag("inventoryitem");
                    foreach (GameObject go in obj)
                    {
                        InventoryItem invP = go.GetComponent <InventoryItem>();
                        if (invP.item == inSlot)
                        {
                            invP.transform.FindChild("Text").GetComponent <Text>().text = (inSlot.stackSize() > 1 ? inSlot.stackSize() + "" : "");
                        }
                    }
                }
                GameObject.Destroy(selectedItem);
            }
        }
        if (insertSlot == InventorySlot.None)
        {
            if (currentLootTile != null)
            {
                currentLootTile.addItem(i);
                selectedItem.transform.SetParent(lootContent, false);
                selectedItem.GetComponent <InventoryItem>().slot         = insertSlot;
                selectedItem.GetComponent <LayoutElement>().ignoreLayout = false;
                selectedItem.GetComponent <CanvasGroup>().blocksRaycasts = true;
                selectedItem.transform.FindChild("Overlay").gameObject.SetActive(true);
            }
            else if (currentStash != null)
            {
                addLootItem(i, 1);
                foreach (Item s in i.stack)
                {
                    addLootItem(s);
                }
                currentStash.addItem(i);
                GameObject.Destroy(selectedItem);
            }
        }
        selectedItem = null;
        List <Image> hoveredCopy = new List <Image>(overlayObjects);

        foreach (Image im in hoveredCopy)
        {
            mouseHoverLeave(im);
            mouseHoverEnter(im);
        }
        if (inventoryHead != null)
        {
            setACText();
        }
        setLootInteractable(true);
        if (selectedUnit != null)
        {
            if (at == ActionType.Minor)
            {
                selectedUnit.useMinor(MinorType.Loot, false, false);
            }
            else if (at == ActionType.Standard)
            {
                selectedUnit.useStandard();
            }
            if (!selectedUnit.usedStandard)
            {
                StandardType[] standards = selectedUnit.getStandardTypes();
                if (!sameAsOldStandards(standards))
                {
                    BattleGUI.resetStandardButtons();
                }
            }
        }
        else
        {
            selectedCharacter.saveCharacter();
        }
    }
예제 #10
0
 string getPlayerStatusSummary(Unit playerUnit)
 {
     return(UnitGUI.getSmallCapsString(playerUnit.getStatusSummary(), Mathf.FloorToInt(toolTipText.fontSize * 0.67f)));
 }
예제 #11
0
 public void setName(string n)
 {
     name.text = UnitGUI.getSmallCapsString(n, 10);
 }