Esempio n. 1
0
    private void InitEquiped(InventoryIcon icon)
    {
        Item item = GetItem(icon.item);

        if (item)
        {
            icon.icon.enabled = true;
            icon.icon.sprite  = (item.itemIcon == null ? errorIcon : item.itemIcon);
            icon.icon.color   = Color.white;
            if (icon.text)
            {
                icon.text.text = "";
            }

            if (icon.item.itemType == Item.ItemType.Backpack && ((BackpackItem.Type)icon.item.derivatedType == BackpackItem.Type.QuiverA || (BackpackItem.Type)icon.item.derivatedType == BackpackItem.Type.QuiverB))
            {
                icon.text.text = "0";
            }
        }
        else
        {
            icon.icon.enabled = false;
            icon.icon.color   = Color.white;
            if (icon.text)
            {
                icon.text.text = "";
            }
        }
    }
Esempio n. 2
0
    private InventoryIcon CreateIcon()
    {
        GameObject    i    = Instantiate(m_iconTemplate, m_iconLocation);
        InventoryIcon icon = i.GetComponent <InventoryIcon>();

        return(icon);
    }
Esempio n. 3
0
 // Inicia el arrastre de un icono, llamado al empezar a arrastrar un icono del inventario.
 public void StartDragging(InventoryIcon upg_ico)
 {
     draggedIconReference    = upg_ico;
     draggedIconCG.alpha     = 1;
     draggedIconImage.sprite = PrefabManager.currentInstance.GetSpriteIconForUpgrade(upg_ico.GetUpgradeReferenced());
     draggingItem            = true;
 }
    public override void cellsExchange(InventoryIcon cell1, InventoryIcon cell2)
    {
        base.cellsExchange(cell1, cell2);

        if (cell1 == weaponSlot || cell2 == weaponSlot)
            CharacterBase.instance.controlAtk.TakeGun((GunData)weaponSlot.item);
    }
Esempio n. 5
0
    InventoryIcon SetIcon(InventoryEnum size, string item, RectTransform targetRect)     // создание и настройка новой иконки
    {
        InventoryIcon target = null;

        foreach (InventoryIcon i in icons)
        {
            if (i.size == size)
            {
                target = i;
            }
        }

        if (target)
        {
            InventoryIcon clone = Instantiate(target) as InventoryIcon;
            clone.iconImage.sprite = Resources.Load <Sprite>(iconPath + "/" + item);
            clone.iconCountObject.SetActive(false);
            clone.gameObject.name    = item;
            clone.item               = item;
            clone.counter            = 1;
            clone.iconCountText.text = "1";
            clone.rectTransform.SetParent(targetRect);
            clone.rectTransform.localScale = Vector3.one;
            clone.rectTransform.position   = Input.mousePosition;
            clone.gameObject.SetActive(true);
            return(clone);
        }

        return(null);
    }
Esempio n. 6
0
    void AddCurrentIcon()     // добавление иконки
    {
        Vector3 p1     = targetCell[0].rectTransform.position;
        Vector3 p2     = targetCell[targetCell.Count - 1].rectTransform.position;
        Vector3 offset = (p1 - p2) / 2;

        icon.transform.position = p2 + offset;

        foreach (InventoryCells cell in targetCell)
        {
            cell.item     = icon.item;
            cell.isLocked = true;
        }

        if (!icon.isInside)
        {
            pIcon.Add(icon); items_list.Add(current.gameObject);
        }
        icon.rectTransform.SetParent(content);
        icon.isInside = true;
        icon.iconCountObject.SetActive(true);
        icon = null;
        if (current)
        {
            current.transform.SetParent(objects); current.gameObject.SetActive(false);
        }
    }
Esempio n. 7
0
    void AddQuickly()     // быстрое добавление
    {
        if (IsSimilar(current.item))
        {
            Destroy(current.gameObject);
            return;
        }

        icon = SetIcon(current.size, current.item, content);
        if (!icon)
        {
            return;
        }

        int xx = 0, yy = 0;         // Размер иконки 1х1

        targetCell = new List <InventoryCells>();
        for (int y = 0; y < height - yy; y++)
        {
            for (int x = 0; x < width - xx; x++)
            {
                switch (icon.size)                // ищем место для новой иконки
                {
                case InventoryEnum.size1x1:
                    if (!field[x, y].isLocked)
                    {
                        targetCell.Add(field[x, y]);
                        AddCurrentIcon();
                        return;
                    }
                    break;
                }
            }
        }
    }
Esempio n. 8
0
 public void BeginDrag(InventoryIcon curIcon)
 {
     lastPosition = curIcon.rectTransform.position;
     icon         = curIcon;
     SetUnlock(curIcon.item);
     icon.rectTransform.SetParent(overlap);
 }
Esempio n. 9
0
 // Termina el arrastre de un icono, llamado al dejar de arrastrar un icono y al cerrar el menu
 public void StopDragging()
 {
     draggedIconCG.alpha  = 0;
     draggingItem         = false;
     draggedIconReference = null;
     RemoveTooltip();
 }
Esempio n. 10
0
    public override void _Ready()
    {
        Alpha = GD.Load("res://UI/Textures/Alpha.png") as Texture;
        InventoryIconScene = GD.Load <PackedScene>("res://UI/InventoryIcon.tscn");

        PlayerVBox = GetNode <VBoxContainer>("HBoxContainer/PlayerCenter/PlayerVBox");
        OtherGrid  = GetNode <GridContainer>("HBoxContainer/OtherVBox/OtherCenter/OtherGrid");

        Game.PossessedPlayer.MatchSome(
            (Plr) => {
            PlayerIcons = new InventoryIcon[Plr.Inventory.Contents.Length];
            for (int Index = 0; Index < Plr.Inventory.Contents.Length; Index++)
            {
                InventoryIcon Icon = InstantiateIcon(Index, Plr);
                PlayerVBox.AddChild(Icon);
                PlayerIcons[Index] = Icon;
            }
        }
            );

        if (Other != null)
        {
            OtherIcons = new InventoryIcon[Other.Inventory.Contents.Length];
            for (int Index = 0; Index < Other.Inventory.Contents.Length; Index++)
            {
                InventoryIcon Icon = InstantiateIcon(Index, Other);
                OtherGrid.AddChild(Icon);
                OtherIcons[Index] = Icon;
            }
        }
    }
Esempio n. 11
0
 private void FreeIcon(InventoryIcon icon)
 {
     showedIcons.Remove(icon);
     instantiatedIcons.Enqueue(icon);
     icon.transform.SetParent(unusedContainer);
     icon.gameObject.SetActive(false);
     icon.border.color = defaultBorderColor;
 }
    public void ReplaceInventoryIcon(InventoryIcon newValue)
    {
        var index     = GameComponentsLookup.InventoryIcon;
        var component = CreateComponent <InventoryIconComponent>(index);

        component.value = newValue;
        ReplaceComponent(index, component);
    }
    protected InventoryIcon[] spawnInventory(Rect displayZone, ItemData[] items, string titleText = "Inventory")
    {

        GameObject iconPrefab=(GameObject)Resources.Load("IconPrefab");
        GameObject bgPrefab = (GameObject)Resources.Load("InventoryBgPrefab");

        int borderWidth = 11;
        int titleHeight = 100;

        int cols;
        int rows;

        int cellSize = iconPrefab.transform.Find("Background").gameObject.GetComponent<UISprite>().width;


        UISprite bg = NGUITools.AddChild(container.gameObject, bgPrefab ).GetComponent<UISprite>();
        bg.transform.localPosition = new Vector3(displayZone.x,displayZone.y,0);
        bg.width =(int) displayZone.width;
        bg.height = (int)displayZone.height;
        bg.depth -= 10;

        UILabel title;
        title = bg.transform.FindChild("Label").gameObject.GetComponent<UILabel>();
        title.text = titleText;
        title.transform.localPosition = new Vector3(bg.width / 2,-(titleHeight-title.height)/2+title.height/2,0);


        Rect cellsZone = displayZone;
        cellsZone.x = borderWidth;
        cellsZone.width -= borderWidth*2;
        cellsZone.y = -titleHeight;
        cellsZone.height -= titleHeight+borderWidth;

        cols =(int) cellsZone.width / 70;
        rows =(int) cellsZone.height / 70;

        InventoryIcon[] ret = new InventoryIcon[cols * rows];

        cellsZone.x += (cellsZone.width - cols * 70) / 2;
        cellsZone.y += (cellsZone.height - rows * 70) / 2;



        for (int i =0;i< cols;i++)
           for (int j = 0; j < rows; j++)
           {
               InventoryIcon nic = NGUITools.AddChild(bg.gameObject, iconPrefab).GetComponent<InventoryIcon>();
               nic.init(null, this, i * rows + j);
               nic.gameObject.transform.localPosition = new Vector3(cellsZone.x+ i * 70+cellSize/2,cellsZone.y+  -j * 70-cellSize/2, 0);
                
               ret[i *rows+j] = nic;
                
           }

        return ret;

    }
Esempio n. 14
0
    /// <summary>
    /// Initialize
    /// Inventory is first retrieved from GameManager
    /// and initialize when it is empty
    private void Start()
    {
        // Clone it less we duplicate values
        m_inventory     = new Dictionary <TileType, int>(GameManager.Instance.Inventory);
        m_prefabMapping = new Dictionary <TileType, Tile>();

        // Nothing has been collected yet so we need to initialize as zero
        var initInventory = m_inventory.Count == 0;

        foreach (var prefab in UniquePrefabs)
        {
            if (prefab == null)
            {
                continue;
            }

            AddToTileMapping(prefab);

            if (initInventory && !m_inventory.ContainsKey(prefab.Type))
            {
                m_inventory.Add(prefab.Type, 0);
            }
        }

        if (initInventory)
        {
            GameManager.Instance.Inventory = new Dictionary <TileType, int>(m_inventory);
        }

        // A hack to prevent softlocking due to being able to miss a tile
        if (GameManager.Instance.CurrentLevel == 4 && m_inventory[TileType.Ground] < 6)
        {
            while (m_inventory[TileType.Ground] < 6)
            {
                AddToInventory(TileType.Ground, false);
                GameManager.Instance.AddToInventory(TileType.Ground);
            }
        }

        // Map icons
        m_iconMapping = new Dictionary <TileType, InventoryIcon>();
        foreach (var icon in FindObjectsOfType <InventoryIcon>())
        {
            if (!m_iconMapping.ContainsKey(icon.type))
            {
                m_iconMapping.Add(icon.type, icon);
            }
        }

        // Player had selected one on the previous level so lets keep that one
        if (GameManager.Instance.LastIconSelected != TileType.Normal)
        {
            m_icon            = m_iconMapping[GameManager.Instance.LastIconSelected];
            m_icon.IsSelected = true;
        }
    }
Esempio n. 15
0
    public void OnIconPointerExit(InventoryIcon icon)
    {
        icon.border.color = icon == trash ? trashDefaultColor : defaultBorderColor;
        helpPanel.SetActive(false);

        PlayerController player = PlayerController.MainInstance;

        armorCount.text   = player.GetArmor().ToString();
        loadCount.text    = player.GetLoad().ToString();
        dammageCount.text = player.GetDammage().ToString();
    }
Esempio n. 16
0
    void ResetDrag()
    {
        foreach (InventoryCells cell in lastCell)
        {
            cell.item     = icon.item;
            cell.isLocked = true;
        }

        icon.rectTransform.SetParent(content);
        icon.rectTransform.position = lastPosition;
        icon = null;
    }
Esempio n. 17
0
 /// <summary>
 /// When the player runs out of the currently selected tiles
 /// We will auto switch to the next available set
 /// </summary>
 private void SwitchToNextAvailablePrefab()
 {
     foreach (var inventory in m_inventory)
     {
         if (inventory.Value > 0)
         {
             m_icon            = m_iconMapping[inventory.Key];
             m_icon.IsSelected = true;
             break;
         }
     }
 }
    public void InitFlame()
    {
        flame = (GameObject)Instantiate(EffectsManager.inst.flame, transform.position, Quaternion.identity);
        InventoryIcon i = gameObject.AddComponent <InventoryIcon>();

//		i.icon = FindObjectOfType<PlayerInventory>().fireIcon;
        flame.transform.parent = transform;
        flame.GetComponent <ParticleEmitter>().emit    = true;
        flame.GetComponent <ParticleEmitter>().minSize = 10;
        flame.GetComponent <ParticleEmitter>().maxSize = 11;
        flamed = true;
    }
Esempio n. 19
0
    /// <summary>
    /// 在物品栏添加物品并显示数量
    /// </summary>
    /// <param name="id">物品ID</param>
    /// <param name="num"></param>
    public void SetId(int id, int num = 1)
    {
        //image
        info = ObjectsInfo.instance.GetObjectInfoById(id);
        InventoryIcon icon = GetComponentInChildren <InventoryIcon>();

        icon.SetIocnName(info.IconName, info.Id);
        //text
        this.num = num;
        this.id  = id;
        iconNumberText.gameObject.SetActive(true);
        NumberUpdate();
    }
Esempio n. 20
0
    void OnDragEnd()
    {

        if (targetIconToDrop != null)
            controller.cellsExchange(this, targetIconToDrop);

        targetIconToDrop = null;
        isDragging = false;    
        icon.transform.localPosition = new Vector3();
        Cursor.visible = true;


    }
Esempio n. 21
0
    /// <summary>
    /// Changes the current prefab to the given type
    /// </summary>
    /// <param name="icon"></param>
    public void SetCurrentPrefab(InventoryIcon icon)
    {
        if (m_icon == icon)
        {
            return;
        }

        if (m_icon != null)
        {
            m_icon.IsSelected = false;
        }

        m_icon = icon;
        GameManager.Instance.LastIconSelected = icon.type;
    }
Esempio n. 22
0
    public void OnIconEndDrag(InventoryIcon icon)
    {
        if (icon != trash && !IsEquipementIcon(icon))
        {
            icon.border.enabled = true;
            icon.text.enabled   = true;
            icon.icon.transform.SetParent(icon.text.transform.parent);
            icon.text.transform.SetParent(icon.icon.transform);
            icon.icon.transform.localPosition = Vector3.zero;
            icon.text.transform.localPosition = Vector3.zero;
            dragging = false;

            RectTransform trashRect = trash.transform as RectTransform;
            if (RectTransformUtility.RectangleContainsScreenPoint(trashRect, Input.mousePosition)) // destroy item
            {
                inventory.RemoveItem(icon.item, inventory.inventory[icon.item], true);
                PlayerController.MainInstance.RecomputeLoadFactor();
            }
            else if (!RectTransformUtility.RectangleContainsScreenPoint(inventoryRect, Input.mousePosition)) // drop item
            {
                Vector3 position = PlayerController.MainInstance.transform.position;
                int     count    = inventory.inventory[icon.item];

                if (icon.item.itemType != Item.ItemType.Resource)
                {
                    for (int i = 0; i < count; i++)
                    {
                        GameObject dropped    = InstanciatePickable(icon.item);
                        Vector3    dispersion = i == 0 ? Vector3.zero : new Vector3(UnityEngine.Random.Range(-1f, 1f), 0f, UnityEngine.Random.Range(-1f, 1f));
                        dropped.transform.position = position + 0.01f * dispersion;
                        MapModifier.instance.grid.AddGameObject(dropped, ConstructionLayer.LayerType.Decoration, false, false);
                    }
                }
                else
                {
                    ResourceData             data    = ResourceDictionary.instance.GetResourceItem((InteractionType.Type)icon.item.derivatedType).resource;
                    Dictionary <string, int> resList = new Dictionary <string, int>();
                    resList.Add(data.name, count);

                    GameObject dropped = ConstructionSystem.instance.GetResourcePile(resList);
                    dropped.transform.position = position;
                    MapModifier.instance.grid.AddGameObject(dropped, ConstructionLayer.LayerType.Decoration, false, false);
                }
                inventory.RemoveItem(icon.item, count, true);
                PlayerController.MainInstance.RecomputeLoadFactor();
            }
        }
    }
Esempio n. 23
0
    public void OnIconDrag(InventoryIcon icon)
    {
        if (icon != trash && !IsEquipementIcon(icon))
        {
            icon.border.enabled = false;
            if (icon.text.enabled)
            {
                icon.text.transform.SetParent(icon.icon.transform.parent);
            }
            icon.text.enabled = false;

            icon.icon.transform.SetParent(transform);
            icon.icon.transform.position = Input.mousePosition;
            dragging = true;
        }
    }
    public void added()
    {
        items = CharacterBase.instance.items;

        container = NGUITools.AddChild(AllGUIContainer.instance.gameObject, (GameObject)Resources.Load("MenuContainerPrefab")).GetComponent<UIWidget>();

        inventoryIcons = spawnInventory(RIGHT_SIDE, items);
        setItemsToIcons(inventoryIcons, items);

        UISprite equipPanel = NGUITools.AddChild(container.gameObject, (GameObject) Resources.Load("EquipPanelPrefab")).GetComponent<UISprite>();
        
        weaponSlot = equipPanel.gameObject.transform.Find("weaponIcon").gameObject.GetComponent<InventoryIcon>();
        weaponSlot.init(CharacterBase.instance.weaponSlot, this);

        

    }
Esempio n. 25
0
    /// <summary>
    /// Uses tile type to set the currently selected prefab
    /// </summary>
    /// <param name="type"></param>
    public void SetCurrentPrefab(TileType type)
    {
        if (m_icon != null && m_icon.type == type)
        {
            return;
        }

        if (m_icon != null)
        {
            m_icon.IsSelected = false;
        }

        m_icon = m_iconMapping[type];

        m_icon.IsSelected = true;
        GameManager.Instance.LastIconSelected = type;
    }
    protected void setItemsToIcons(InventoryIcon[] icons, ItemData[] items, int startIndex=0)
    {
        Debug.Log(icons.Length);
        Debug.Log(items.Length);

        for(int i = 0; i < icons.Length; i++)
        {
            


            if (i + startIndex < items.Length)
            {    
                icons[i].setItem(items[i + startIndex]);
            }
            else
                icons[i].setItem(null);

        }

    }
Esempio n. 27
0
    private void UpdateInventory()
    {
        Vector2 pos    = Vector2.zero;
        int     xCount = 0;

        foreach (ItemEntity item in m_inventory.Items)
        {
            InventoryIcon icon = CreateIcon();
            Color         c    = GetColorFromRarity(item.Rareness);
            icon.Initialize(item, c);
            icon.transform.localPosition = pos - m_origin;
            pos.x += m_iconDim;
            xCount++;
            if (xCount >= (int)m_dimensions.x)
            {
                xCount = 0;
                pos.y -= m_iconDim;
                pos.x  = 0.0f;
            }
        }
    }
Esempio n. 28
0
    public virtual void SendToInventory(Inventory inv)
    {
        int slot = inv.FirstEmptySlot();

        // inventory full
        if (slot == -1)
        {
            return;
        }


        foreach (MeshRenderer renderer in MeshRenderers)
        {
            renderer.enabled = false;
        }
        this.GetComponent <Collider>().enabled = false;
        inv.ItemToSlot(this, slot);

        SetParentSlot(inv.Slots[slot]);
        InventoryIcon.GetComponent <Image>().enabled = true;
    }
Esempio n. 29
0
    public void Start()
    {
        pause   = FindObjectOfType <PauseMenu> ();
        buttons = GetComponentsInChildren <Button> ();
        //player = FindObjectOfType<PlayerController> ();
        icon         = FindObjectOfType <InventoryIcon> ();
        audios       = GetComponents <AudioSource> ();
        activeButton = 0;

        activeItem = PlayerPrefs.GetInt("CurrentItem");
        itemsCount = PlayerPrefs.GetInt("ItemsCount");
        //itemsCount = 9;
        for (int i = 8; i >= itemsCount; i--)
        {
            buttons [i].interactable = false;
        }

        sprite = Resources.LoadAll <Sprite> ("Arts/items");

        icon.ChangeIcon(sprite [activeItem]);
    }
Esempio n. 30
0
    private InventoryIcon GetIcon()
    {
        InventoryIcon icon = null;

        if (instantiatedIcons.Count != 0)
        {
            icon = instantiatedIcons.Dequeue();
        }
        else
        {
            icon = Instantiate <InventoryIcon>(iconPrefab);
            icon.transform.rotation   = Quaternion.identity;
            icon.transform.localScale = Vector3.one;
            icon.border.color         = defaultBorderColor;
        }

        showedIcons.Add(icon);
        icon.transform.SetParent(container);
        icon.transform.localScale = new Vector3(0.8f, 0.8f, 1);
        icon.gameObject.SetActive(true);

        return(icon);
    }
    public virtual void cellsExchange(InventoryIcon cell1, InventoryIcon cell2)
    {
        ItemData cacheItem = cell1.item;
        cell1.setItem(cell2.item);
        cell2.setItem(cacheItem);

    }
Esempio n. 32
0
    void UpdateContent()
    {
        // inventory
        ClearIcons();
        Vector2Int indexes = Vector2Int.zero;
        Item       item    = null;

        foreach (KeyValuePair <SummarizedItem, int> entry in inventory.inventory)
        {
            // assign data
            item = GetItem(entry.Key);
            InventoryIcon icon = GetIcon();
            icon.transform.localPosition = startPosition + new Vector3(indexes.x * spacing.x, indexes.y * spacing.y, 0);
            icon.icon.sprite             = (item.itemIcon == null ? errorIcon : item.itemIcon);
            icon.icon.color = (item.itemIcon == null ? Color.red : Color.white);
            icon.text.text  = entry.Value.ToString();
            icon.name       = item.itemName;
            icon.item       = entry.Key;


            // increment indexes
            indexes.x++;
            if (indexes.x > columnCount - 1)
            {
                indexes.x = 0;
                indexes.y++;
            }
        }
        if (indexes.x == 0)
        {
            indexes.y--;
        }

        container.sizeDelta = new Vector2(container.sizeDelta.x, Mathf.Max((indexes.y + 1) * Mathf.Abs(spacing.y) + 16, 424));
        loadCapacity.text   = inventory.load.ToString("##.#") + "/" + inventory.capacity.ToString();

        // equipement
        PlayerController player = PlayerController.MainInstance;

        armorCount.text   = player.GetArmor().ToString();
        loadCount.text    = player.GetLoad().ToString();
        dammageCount.text = player.GetDammage().ToString();

        equipedBackpack.item = player.backpack.equipedItem.Summarize();
        equipedBody.item     = player.body.equipedItem.Summarize();
        equipedHead.item     = player.head.equipedItem.Summarize();
        if (player.horse != null)
        {
            equipedHorse.item = player.horse.equipedItem.Summarize();
        }
        else
        {
            equipedHorse.item.itemType      = Item.ItemType.Horse;
            equipedHorse.item.derivatedType = 0;
            equipedHorse.item.load          = 0f;
        }
        equipedSecond.item = player.secondHand.equipedItem.Summarize();
        equipedWeapon.item = player.weapon.equipedItem.Summarize();
        equipedShield.item = player.shield.equipedItem.Summarize();

        InitEquiped(equipedBackpack);
        InitEquiped(equipedBody);
        InitEquiped(equipedHead);
        InitEquiped(equipedHorse);
        InitEquiped(equipedSecond);
        InitEquiped(equipedWeapon);
        InitEquiped(equipedShield);

        if (player.weapon.equipedItem.forbidSecond)
        {
            backgroundSecond.color = forbidenEquipementSlot;
        }
        else
        {
            backgroundSecond.color = backgroundEquiped;
        }

        if (player.secondHand.equipedItem.forbidShield || player.weapon.equipedItem.forbidShield)
        {
            backgroundShield.color = forbidenEquipementSlot;
        }
        else
        {
            backgroundShield.color = backgroundEquiped;
        }

        if (player.secondHand.equipedItem.forbidWeapon)
        {
            backgroundWeapon.color = forbidenEquipementSlot;
        }
        else
        {
            backgroundWeapon.color = backgroundEquiped;
        }
    }
Esempio n. 33
0
    void LoadSettings()
    {
        if (!File.Exists(Path()))
        {
            return;
        }

        InventoryIcon tmp     = null;
        string        item    = string.Empty;
        int           counter = 0;
        InventoryEnum size    = InventoryEnum.size1x1;
        Vector2       pos     = Vector2.zero;

        string[] f_isLocked = new string[] {};
        string[] f_item     = new string[] {};

        StreamReader reader = new StreamReader(Path());

        while (!reader.EndOfStream)
        {
            string value = Crypt(reader.ReadLine());

            string[] result = value.Split(new char[] { '=' });

            if (result.Length == 1 && item == string.Empty)
            {
                item = value.Trim(new char[] { '[', ']' });
            }

            switch (result[0])            // фильтруем ключи
            {
            case "IconSize":
                size = (InventoryEnum)System.Enum.Parse(typeof(InventoryEnum), result[1]);                 // string переводим в enum
                break;

            case "IconCounter":
                counter = int.Parse(result[1]);
                break;

            case "IconPositionX":
                pos.x = float.Parse(result[1]);
                break;

            case "IconPositionY":
                pos.y = float.Parse(result[1]);
                break;

            case "Field_isLocked":
                f_isLocked = result[1].Split(new char[] { ',' });
                break;

            case "Field_item":
                f_item = result[1].Split(new char[] { ',' });
                break;
            }

            if (value == string.Empty)
            {
                tmp                    = SetIcon(size, item, content);
                tmp.counter            = counter;
                tmp.iconCountText.text = counter.ToString();
                tmp.isInside           = true;
                tmp.iconCountObject.SetActive(true);
                tmp.rectTransform.localPosition = pos;
                pIcon.Add(tmp);
                item = string.Empty;
            }
        }

        for (int i = 0; i < cells.Length; i++)
        {
            if (f_item[i] == "null")
            {
                cells[i].item = string.Empty;
            }
            else
            {
                cells[i].item = f_item[i];
            }
            if (f_isLocked[i] == "0")
            {
                cells[i].isLocked = false;
            }
            else
            {
                cells[i].isLocked = true;
            }
        }

        reader.Close();
    }
Esempio n. 34
0
 void OnDragOver()
 {
     
     targetIconToDrop = this;
 }
Esempio n. 35
0
    public void OnIconClick(InventoryIcon icon)
    {
        Item item = GetItem(icon.item);

        if (!item)
        {
            return;
        }

        if (icon.item.itemType == Item.ItemType.Resource && interactionUI.resourceContainer != null)
        {
            ResourceItem resource = (ResourceItem)item;
            if (Input.GetMouseButtonUp(0) || Input.GetMouseButtonUp(1))
            {
                string resourceName   = resource.resource.name;
                int    transfertCount = Input.GetMouseButtonUp(0) ? 1 : 10;
                transfertCount = Mathf.Min(transfertCount, inventory.inventory[icon.item]);
                transfertCount = interactionUI.resourceContainer.TryAddItem(resourceName, transfertCount);

                if (transfertCount > 0)
                {
                    inventory.RemoveItem(icon.item, transfertCount, true);
                }
                else if (interactionUI.resourceContainer.Accept(resourceName))
                {
                    PlayerController.MainInstance.interactionController.ThrowHelp("Container", "full");  // no icon for storage
                }
                else
                {
                    PlayerController.MainInstance.interactionController.ThrowHelp(resourceName, "nok");
                }
            }
        }
        else
        {
            if (item.usable && Input.GetMouseButtonUp(0))
            {
                Debug.Log("Use item " + icon.name);
                inventory.RemoveItem(icon.item, 1, true);
                PlayerController.MainInstance.RecomputeLoadFactor();
            }
            else if (item.equipable && Input.GetMouseButtonUp(1))
            {
                PlayerController player = PlayerController.MainInstance;

                if (IsEquipementIcon(icon)) // unequip
                {
                    if (icon.item.itemType == Item.ItemType.Weapon)
                    {
                        if (player.weapon.equipedItem.type != WeaponItem.Type.None)
                        {
                            Item old = Arsenal.Instance.Get(player.weapon.equipedItem.type, false);
                            if (old)
                            {
                                inventory.AddItem(old.Summarize(), 1);
                            }
                            if (ToolDictionary.instance.tools.ContainsKey(player.weapon.equipedItem.toolFamily))
                            {
                                FinishedUnequip(player, GetRandom(ToolDictionary.instance.tools[player.weapon.equipedItem.toolFamily].collectionSound));
                            }
                            player.weapon.Equip(WeaponItem.Type.None);
                        }
                    }
                    else if (icon.item.itemType == Item.ItemType.Backpack)
                    {
                        if (player.backpack.equipedItem.type != BackpackItem.Type.None)
                        {
                            Item old = Arsenal.Instance.Get(player.backpack.equipedItem.type, false);
                            if (old)
                            {
                                inventory.AddItem(old.Summarize(), 1);
                            }
                            if (ToolDictionary.instance.tools.ContainsKey(player.backpack.equipedItem.toolFamily))
                            {
                                FinishedUnequip(player, GetRandom(ToolDictionary.instance.tools[player.backpack.equipedItem.toolFamily].collectionSound));
                            }
                            player.backpack.Equip(BackpackItem.Type.None);
                            player.inventory.capacity = player.backpack.equipedItem.capacity;
                        }
                    }
                    else if (icon.item.itemType == Item.ItemType.Body)
                    {
                        if (!player.body.equipedItem.IsDefault())
                        {
                            Item old = Arsenal.Instance.Get(player.body.equipedItem.type, false, false);
                            if (old)
                            {
                                inventory.AddItem(old.Summarize(), 1);
                            }
                            FinishedUnequip(player, player.interactionController.wearBody[Mathf.Clamp((int)BodyItem.getCategory(player.body.equipedItem.type), 0, player.interactionController.wearBody.Count - 1)]);
                            player.body.Equip(BodyItem.defaultType, player.horse ? player.horse.equipedItem.type != HorseItem.Type.None : false);
                        }
                    }
                    else if (icon.item.itemType == Item.ItemType.Head)
                    {
                        if (!player.head.equipedItem.IsDefault())
                        {
                            Item old = Arsenal.Instance.Get(player.head.equipedItem.type, false);
                            if (old)
                            {
                                inventory.AddItem(old.Summarize(), 1);
                            }
                            FinishedUnequip(player, player.interactionController.wearHead[Mathf.Clamp((int)HeadItem.getCategory(player.head.equipedItem.type), 0, player.interactionController.wearHead.Count - 1)]);
                            player.head.Equip(HeadItem.defaultType);
                        }
                    }
                    else if (icon.item.itemType == Item.ItemType.Horse)
                    {
                        if (player.horse && player.horse.equipedItem.type != HorseItem.Type.None)
                        {
                            Item old = Arsenal.Instance.Get(player.horse.equipedItem.type, false);
                            if (old)
                            {
                                GameObject dropped = InstanciatePickable(icon.item);
                                dropped.transform.position = player.transform.position + Vector3.right;
                                MapModifier.instance.grid.AddGameObject(dropped, ConstructionLayer.LayerType.Decoration, false, false);
                            }
                            player.interactionController.Unmount();
                        }
                    }
                    else if (icon.item.itemType == Item.ItemType.Second)
                    {
                        if (player.secondHand.equipedItem.type != SecondItem.Type.None)
                        {
                            Item old = Arsenal.Instance.Get(player.secondHand.equipedItem.type, false);
                            if (old)
                            {
                                inventory.AddItem(old.Summarize(), 1);
                            }
                            FinishedUnequip(player, GetRandom(ToolDictionary.instance.tools["Hammer"].collectionSound));
                            player.secondHand.Equip(SecondItem.Type.None);
                        }
                    }
                    else if (icon.item.itemType == Item.ItemType.Shield)
                    {
                        if (player.shield.equipedItem.type != ShieldItem.Type.None)
                        {
                            Item old = Arsenal.Instance.Get(player.shield.equipedItem.type, false);
                            if (old)
                            {
                                inventory.AddItem(old.Summarize(), 1);
                            }
                            FinishedUnequip(player, player.interactionController.wearHead[Mathf.Clamp((int)HeadItem.Category.Medium, 0, player.interactionController.wearHead.Count - 1)]);
                            player.shield.Equip(ShieldItem.Type.None);
                        }
                    }
                    else
                    {
                        Debug.LogWarning("No equip methode for this type of object " + icon.item.itemType.ToString());
                    }
                }
                else // equip
                {
                    if (icon.item.itemType == Item.ItemType.Weapon)
                    {
                        Item old = Arsenal.Instance.Get(player.weapon.equipedItem.type, false);
                        if (old)
                        {
                            inventory.AddItem(old.Summarize(), 1);
                        }
                        player.interactionController.EquipInteraction(InteractionType.Type.pickableWeapon, item.gameObject);
                    }
                    else if (icon.item.itemType == Item.ItemType.Backpack)
                    {
                        Item old = Arsenal.Instance.Get(player.backpack.equipedItem.type, false);
                        if (old)
                        {
                            inventory.AddItem(old.Summarize(), 1);
                        }
                        player.interactionController.EquipInteraction(InteractionType.Type.pickableBackpack, item.gameObject);
                    }
                    else if (icon.item.itemType == Item.ItemType.Body)
                    {
                        Item old = Arsenal.Instance.Get(player.body.equipedItem.type, false, false);
                        if (old && !player.body.equipedItem.IsDefault())
                        {
                            inventory.AddItem(old.Summarize(), 1);
                        }
                        player.interactionController.EquipInteraction(InteractionType.Type.pickableBody, item.gameObject);
                    }
                    else if (icon.item.itemType == Item.ItemType.Head)
                    {
                        Item old = Arsenal.Instance.Get(player.head.equipedItem.type, false);
                        if (old && !player.head.equipedItem.IsDefault())
                        {
                            inventory.AddItem(old.Summarize(), 1);
                        }
                        player.interactionController.EquipInteraction(InteractionType.Type.pickableHead, item.gameObject);
                    }
                    else if (icon.item.itemType == Item.ItemType.Horse)
                    {
                        Item old = Arsenal.Instance.Get(player.horse.equipedItem.type, false);
                        if (old)
                        {
                            inventory.AddItem(old.Summarize(), 1);
                        }
                        player.interactionController.EquipInteraction(InteractionType.Type.pickableHorse, item.gameObject);
                    }
                    else if (icon.item.itemType == Item.ItemType.Second)
                    {
                        Item old = Arsenal.Instance.Get(player.secondHand.equipedItem.type, false);
                        if (old)
                        {
                            inventory.AddItem(old.Summarize(), 1);
                        }
                        player.interactionController.EquipInteraction(InteractionType.Type.pickableSecond, item.gameObject);
                    }
                    else if (icon.item.itemType == Item.ItemType.Shield)
                    {
                        Item old = Arsenal.Instance.Get(player.shield.equipedItem.type, false);
                        if (old)
                        {
                            inventory.AddItem(old.Summarize(), 1);
                        }
                        player.interactionController.EquipInteraction(InteractionType.Type.pickableShield, item.gameObject);
                    }
                    else
                    {
                        Debug.LogWarning("No equip methode for this type of object " + icon.item.itemType.ToString());
                    }
                    inventory.RemoveItem(icon.item, 1, true);
                }

                player.RecomputeLoadFactor();
            }
        }
    }
Esempio n. 36
0
 private bool IsEquipementIcon(InventoryIcon icon)
 {
     return((icon == equipedBody) || (icon == equipedHead) || (icon == equipedHorse) || (icon == equipedSecond) || (icon == equipedShield) || (icon == equipedWeapon) || (icon == equipedBackpack));
 }
Esempio n. 37
0
 void OnDragOut()
 {
     
     targetIconToDrop = null;
 }
Esempio n. 38
0
    public void OnIconPointerEnter(InventoryIcon icon)
    {
        getOne.SetActive(false);
        getTen.SetActive(false);
        giveOne.SetActive(false);
        giveTen.SetActive(false);

        if (icon != trash)
        {
            icon.border.color = hoveredBorderColor;
            helpPanel.SetActive(true);
            bool resourceDropMode = (icon.item.itemType == Item.ItemType.Resource) && (interactionUI.resourceContainer != null);

            Item item = GetItem(icon.item);
            if (item)
            {
                //  description panel
                helpDescription.text = item.description;
                useHelp.SetActive(item.usable && !resourceDropMode);
                equipHelp.SetActive(item.equipable && !IsEquipementIcon(icon));
                unequipHelp.SetActive(IsEquipementIcon(icon) && !IsDefault(icon.item));

                hoveredLoad.transform.parent.gameObject.SetActive(true);
                hoveredLoad.text = item.load.ToString();

                if (icon.item.itemType == Item.ItemType.Body || icon.item.itemType == Item.ItemType.Head || icon.item.itemType == Item.ItemType.Horse || icon.item.itemType == Item.ItemType.Shield)
                {
                    hoveredArmor.transform.parent.gameObject.SetActive(true);
                    if (icon.item.itemType == Item.ItemType.Body)
                    {
                        hoveredArmor.text = (item as BodyItem).armor.ToString();
                    }
                    else if (icon.item.itemType == Item.ItemType.Head)
                    {
                        hoveredArmor.text = (item as HeadItem).armor.ToString();
                    }
                    else if (icon.item.itemType == Item.ItemType.Horse)
                    {
                        hoveredArmor.text = (item as HorseItem).armor.ToString();
                    }
                    else if (icon.item.itemType == Item.ItemType.Shield)
                    {
                        hoveredArmor.text = (item as ShieldItem).armor.ToString();
                    }
                    else
                    {
                        hoveredArmor.text = "error";
                    }
                }
                else
                {
                    hoveredArmor.transform.parent.gameObject.SetActive(false);
                }

                if (icon.item.itemType == Item.ItemType.Weapon || icon.item.itemType == Item.ItemType.Second)
                {
                    hoveredDammage.transform.parent.gameObject.SetActive(true);
                    if (icon.item.itemType == Item.ItemType.Weapon)
                    {
                        hoveredDammage.text = (item as WeaponItem).dammage.ToString();
                    }
                    else if (icon.item.itemType == Item.ItemType.Second)
                    {
                        hoveredDammage.text = (item as SecondItem).dammage.ToString();
                    }
                    else
                    {
                        hoveredDammage.text = "error";
                    }
                }
                else
                {
                    hoveredDammage.transform.parent.gameObject.SetActive(false);
                }

                // equipement modification overview
                if (!IsEquipementIcon(icon))
                {
                    if (icon.item.itemType != Item.ItemType.Resource)
                    {
                        Dictionary <string, float> delta  = GetDelta(item);
                        PlayerController           player = PlayerController.MainInstance;

                        armorCount.text = player.GetArmor().ToString();
                        if (delta["armor"] != 0f)
                        {
                            armorCount.text += "<color=" + (delta["armor"] > 0 ? "green>+" : "red>") + delta["armor"].ToString() + "</color>";
                        }

                        loadCount.text = player.GetLoad().ToString();
                        if (delta["load"] != 0f && item.itemType != Item.ItemType.Backpack)
                        {
                            loadCount.text += "<color=" + (delta["load"] < 0 ? "green>" : "red>+") + delta["load"].ToString() + "</color>";
                        }
                        if (delta["loadModifier"] != 1f)
                        {
                            loadCount.text += "(<color=" + (delta["loadModifier"] < 1f ? "green>x" : "red>x") + delta["loadModifier"].ToString() + "</color>)";
                        }

                        dammageCount.text = player.GetDammage().ToString();
                        if (delta["dammage"] != 0f)
                        {
                            dammageCount.text += "<color=" + (delta["dammage"] > 0 ? "green>+" : "red>") + delta["dammage"].ToString() + "</color>";
                        }
                    }
                }
            }
            else
            {
                helpDescription.text = "empty slot";
                useHelp.SetActive(false);
                equipHelp.SetActive(false);
                unequipHelp.SetActive(false);

                hoveredLoad.transform.parent.gameObject.SetActive(false);
                hoveredArmor.transform.parent.gameObject.SetActive(false);
                hoveredDammage.transform.parent.gameObject.SetActive(false);
            }

            if (resourceDropMode)
            {
                giveOne.SetActive(true);
                giveTen.SetActive(true);
            }
        }
    }