예제 #1
0
파일: ItemMng.cs 프로젝트: beerbu89/Project
    public List <int> GetItemStat(List <string> li_Temp)
    {
        li_ItemStat.Clear();

        int nAtk = 0;
        int nDef = 0;
        int nHP  = 0;

        for (int i = 0; i < li_Temp.Count; ++i)
        {
            eItem eItem = eItem.None;
            eItem = (eItem)Enum.Parse(typeof(eItem), li_Temp[i]);

            switch (eItem)
            {
            case eItem.sword1:
            case eItem.axe1:
            case eItem.top1:
            case eItem.top2:
            case eItem.bottom1:
            case eItem.bottom2:
            case eItem.Arm1:
            case eItem.Arm2:
            case eItem.helmet1:
            case eItem.helmet2:
            case eItem.shoes1:
            case eItem.shoes2:
                var data = eItem.GetItemType();
                nAtk += data.nAtk;
                nDef += data.nDef;
                nHP  += data.nHP;
                break;

            default:
                Debug.Log("착용하지 않은 아이템");
                break;
            }
        }

        //Debug.Log(nAtk);
        //Debug.Log(nDef);
        //Debug.Log(nHP);

        li_ItemStat.Add(nAtk);
        li_ItemStat.Add(nDef);
        li_ItemStat.Add(nHP);

        return(li_ItemStat);
    }
예제 #2
0
    void SetEquipImg(GameObject obj)
    {
        if (ItemMng.Ins.li_Item.Count == 0)
        {
            return;
        }
        equipStringList = new List <string>();

        //인벤 슬롯을 클릭했을 경우
        for (int i = 0; i < invenItemSlotList.Count; ++i)
        {
            if (obj.gameObject == invenItemSlotList[i].gameObject)
            {
                itemIdx = i;
                break;
            }
        }

        //==>클릭한 이미지의 장비아이템, 장비아이템 타입, 장비아이템 이미지
        eItem eItem = (eItem)Enum.Parse(typeof(eItem), ItemMng.Ins.li_Item[itemIdx]);
        var   type  = eItem.GetItemType();
        var   path  = string.Format(Path.IMG, ItemMng.Ins.li_Item[itemIdx]);
        var   img   = Resources.Load <Sprite>(path) as Sprite;

        //==<

        //체인지할 클릭한 이미지
        sprItem = img;

        //클릭한 아이템과 장비 슬롯에 타입이 같은지
        for (int i = 0; i < equipList.Count; ++i)
        {
            //==>아이템 슬롯에서 클릭한 아이템 타입 찾기
            //var path = string.Format(Path.IMG, ItemMng.Ins.li_Item[itemIdx]);
            //var img  = Resources.Load<Sprite>(path) as Sprite;
            eItemType eType = (eItemType)Enum.Parse(typeof(eItemType), type.eType);
            //==<

            //==>euqip 슬롯에서 같은 타입 찾기
            eItemType eEquipType = (eItemType)Enum.Parse(typeof(eItemType), equipList[i].tag);

            if (eType == eEquipType)
            {
                equipIdx = i;
                break;
            }
        }

        Debug.Log(itemIdx);
        Debug.Log(equipIdx);

        //아이템 착용시 해당 타입의 장비를 착용했는지 체크
        bool flag = false;

        //해당 영웅이 장비를 한번이라도 착용한적있나?
        if (Player.Ins.heroEquipList.ContainsKey(heroIdx))
        {
            //있다면 클릭한 장비의 타입을 착용했나?
            //equip슬롯이 기본이미지라면 해당 타입의 장비는 착용x 아니면 착용
            var sPath = string.Format(Path.IMG, sBasicEquipImg[equipIdx]);
            var temp  = Resources.Load <Sprite>(sPath) as Sprite;

            if (equipList[equipIdx].sprite != temp)
            {
                flag = true;
            }
        }
        else
        {
            //해당 영웅이 장비를 착용한 적이 없음
            EquipImg();

            for (int i = 0; i < equipList.Count; ++i)
            {
                equipStringList.Add(equipList[i].sprite.name);
            }

            Player.Ins.heroEquipList.Add(heroIdx, equipStringList);
            //GameMng.Ins.heroStat.PlusStat(heroIdx, sprItem);

            ItemMng.Ins.RemoveItem(itemIdx);

            ItemSlotSort();
            return;
        }

        if (flag)
        {
            //장비는 한개라도 착용했고 해당 타입의 장비도 착용했다
            //장비스왑
            equipMounting.gameObject.SetActive(true);
            return;
        }
        else
        {
            //장비는 한개라도 착용했고 해당 타입의 장비는 착용하지 않았다.
            EquipImg();

            for (int i = 0; i < equipList.Count; ++i)
            {
                equipStringList.Add(equipList[i].sprite.name);
            }

            Player.Ins.heroEquipList[heroIdx] = equipStringList;
            //GameMng.Ins.heroStat.PlusStat(heroIdx, sprItem);

            ItemMng.Ins.RemoveItem(itemIdx);
        }

        ItemSlotSort();
    }