예제 #1
0
    public void RefreshDetails(EquipmentTemp.Row.Row2 data)
    {
        //TODO
        //Image icon = transform.Find("Icon").GetComponent<Image>();
        //Text itemName = transform.Find("Name").GetComponent<Text>();
        //Text price = transform.Find("Price").GetComponent<Text>();
        //Text description = transform.Find("Description").GetComponent<Text>();

        _Data = data;
        GameObject InfBtn = transform.Find("Intensify#Button").gameObject;

        if ((int)data.itemType >= 8)
        {
            InfBtn.SetActive(false);
        }
        else
        {
            InfBtn.SetActive(true);
        }
        icon.sprite      = Resources.Load <Sprite>(AllPaths.Instance.allIconPath + data.eid);
        itemName.text    = data.name;
        price.text       = "出售可以获得<Color=yellow>" + AllFormula.Instance.SellPrice(data.buy, data.InitialLevel).ToString() + "</Color>金币";
        description.text = data.description;
        quality.text     = "品质:" + data.quality.ToString();
        atk.text         = "攻击力:" + data.atk.ToString();
        def.text         = "防御力:" + data.def.ToString();
        hp.text          = "生命力:" + data.hp.ToString();
        crit.text        = "暴击率:" + data.crit.ToString() + "%";
        lv.text          = "等级:" + data.InitialLevel.ToString();
    }
예제 #2
0
 public void Yes()
 {
     EquipmentTemp.Row.Row2 data = UIPackageModel.Instance.Intensify(UIPackageController.Instance.idv._Data);
     UIPackageController.Instance.plv.Refresh(UIPackageModel.Instance.LoadUserPackageData());
     UIPackageController.Instance.idv.RefreshDetails(data);
     Init();
 }
예제 #3
0
    public void InItem(EquipmentTemp.Row.Row2 data, int count = 1)
    {
        EquipmentTemp UserPackageData = AllToObject.Instance.GetAllUserPackge <EquipmentTemp>();

        EquipmentTemp.Row packData = UserPackageData.User[userID];
        for (int i = 0; i < packData.Data.Count; i++)
        {
            if (packData.Data[i].eid == data.id && (int)data.itemType >= 8)
            {
                packData.Data[i].count += count;
                SaveAllUserData(UserPackageData);
                return;
            }
        }


        data.count = count;
        data.eid   = data.id;
        if (UserPackageData.User[userID].Data.Count == 0)
        {
            data.id = 1;
        }
        else
        {
            data.id = UserPackageData.User[userID].Data[UserPackageData.User[userID].Data.Count - 1].id + 1;
        }
        data.InitialLevel = 1;

        UserPackageData.User[userID].Data.Add(data);
        SaveAllUserData(UserPackageData);
    }
예제 #4
0
    public void BoxClick()
    {
        ani.transform.DOShakePosition(8, 8);
        tips.transform.DOShakePosition(3, 12);

        tips.color = new Color(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f));

        if (clickNum == openBox)
        {
            if (check != 0)
            {
                return;
            }
            check++;
            EquipmentTemp.Row.Row2 temp = UIPackageModel.Instance.GainItem();

            prize.GetComponent <Image>().sprite = Resources.Load <Sprite>(AllPaths.Instance.allIconPath + temp.id);
            UIPackageModel.Instance.InItem(temp);
            prize.Find("Text").GetComponent <Text>().text = temp.name;

            prize.gameObject.SetActive(true);
            ani.SetBool("isPlay", true);
            prize.DOScale(Vector3.one, 0.4f);
            prize.DOLocalMoveY(310, 0.4f);
        }
        else
        {
            ++clickNum;
        }
    }
예제 #5
0
    public RectTransform Wear(EquipmentTemp.Row.Row2 data)
    {
        for (int i = 0; i < equipTemp.childCount; i++)
        {
            if (equipTemp.GetChild(i).transform.name == ((int)data.itemType).ToString())
            {
                return(equipTemp.GetChild(i).transform as RectTransform);
            }
        }

        return(null);
    }
예제 #6
0
    public EquipmentTemp.Row.Row2 Intensify(EquipmentTemp.Row.Row2 data)
    {
        int need = data.InitialLevel;

        if (need >= 5)
        {
            need = 5;
        }
        EquipmentTemp UserPackageData             = AllToObject.Instance.GetAllUserPackge <EquipmentTemp>();
        List <EquipmentTemp.Row.Row2> userPackage = UserPackageData.User[userID].Data;

        for (int i = 0; i < userPackage.Count; i++)
        {
            if ((int)userPackage[i].itemType == 8 && userPackage[i].quality == data.quality && userPackage[i].count >= need)
            {
                userPackage[i].count -= need;
                if (userPackage[i].count == 0)
                {
                    userPackage.Remove(userPackage[i]);
                }
                for (int j = 0; j < userPackage.Count; j++)
                {
                    if (userPackage[j].id == data.id)
                    {
                        userPackage[j].InitialLevel += 1;
                        int tempLv = userPackage[j].InitialLevel;
                        int atk    = AllFormula.Instance.GetEquipProperty(userPackage[j].atk, tempLv);
                        int def    = AllFormula.Instance.GetEquipProperty(userPackage[j].def, tempLv);
                        int crit   = AllFormula.Instance.GetEquipProperty(userPackage[j].crit, tempLv);
                        int hp     = AllFormula.Instance.GetEquipProperty(userPackage[j].hp, tempLv);
                        userPackage[j].atk  = atk;
                        userPackage[j].def  = def;
                        userPackage[j].crit = crit;
                        userPackage[j].hp   = hp;
                        data.InitialLevel  += 1;
                        data.atk            = atk;
                        data.def            = def;
                        data.crit           = crit;
                        data.hp             = hp;
                    }
                }
            }
        }

        UserPackageData.User[userID].Data = userPackage;

        SaveAllUserData(UserPackageData);
        return(data);
    }
예제 #7
0
    public void Buy()
    {
        EquipmentTemp.Row.Row2 data = EventSystem.current.currentSelectedGameObject.transform.parent.GetComponent <UIShopItemController>()._Data;
        //EquipmentTemp.Row.Row2 temp = (EquipmentTemp.Row.Row2)MemberwiseClone();
        EquipmentTemp.Row.Row2 temp = data.Clone();

        if (PlayerModel.Instance._playerDaraInfo.gold < temp.buy)
        {
            // Debug.Log("No Money No Talk");
            AllTools.Instance.Alert("所持金币不够!");
            return;
        }
        PlayerModel.Instance.AddGold(-temp.buy);
        AllTools.Instance.Alert("购买成功!");
        UIPackageModel.Instance.InItem(temp);
    }
예제 #8
0
    private List <EquipmentTemp.Row.Row2> SortFunc(List <EquipmentTemp.Row.Row2> data, SortDelegate sort)
    {
        for (int i = 0; i < data.Count; i++)
        {
            for (int j = i; j < data.Count - 1; j++)
            {
                if (sort(data[i], data[j + 1]))
                {
                    EquipmentTemp.Row.Row2 temp = data[i];
                    data[i]     = data[j + 1];
                    data[j + 1] = temp;
                }
            }
        }

        return(data);
    }
예제 #9
0
    public void DisPlay(EquipmentTemp.Row.Row2 data)
    {
        //将道具的数据存储在Cell的View脚本中
        _Data = data;

        //加载Icon的图片
        icon.sprite = Resources.Load <Sprite>(AllPaths.Instance.allIconPath + data.eid);

        //修改数量文字
        count.text = data.count.ToString();

        switch (data.quality)
        {
        case Enumclass.Quality.普通:
            quality.color = new Color(255f / 255f, 255f / 255f, 255f / 255f, 50f / 255f);
            break;

        case Enumclass.Quality.业余:
            quality.color = new Color(138f / 255f, 255f / 255f, 124f / 255f, 50f / 255f);
            break;

        case Enumclass.Quality.稀有:
            quality.color = new Color(80f / 255f, 131f / 255f, 250f / 255f, 50f / 255f);
            break;

        case Enumclass.Quality.专家:
            quality.color = new Color(255f / 255f, 104f / 255f, 0f / 255f, 50f / 255f);
            break;

        case Enumclass.Quality.奇:
            quality.color = new Color(255f / 255f, 0f / 255f, 0f / 255f, 50f / 255f);
            break;

        default:
            quality.color = new Color(255f / 255f, 255f / 255f, 255f / 255f, 100f / 255f);
            break;
        }


        if (data.isWear == 1)
        {
            isWear.text = "E";
        }
    }
예제 #10
0
    public List <EquipmentTemp.Row.Row2> Sell(EquipmentTemp.Row.Row2 data, int count = 1)
    {
        List <EquipmentTemp.Row.Row2> getInfo = null;
        EquipmentTemp UserPackageData         = AllToObject.Instance.GetAllUserPackge <EquipmentTemp>();

        for (int i = 0; i < UserPackageData.User[userID].Data.Count; i++)
        {
            if (UserPackageData.User[userID].Data[i].eid == data.eid)
            {
                PlayerModel.Instance.AddGold(AllFormula.Instance.SellPrice(UserPackageData.User[userID].Data[i].buy, UserPackageData.User[userID].Data[i].InitialLevel, count));

                if (UserPackageData.User[userID].Data[i].count == count)
                {
                    EquipmentTemp.Row.Row2 temp1 = UserPackageData.User[userID].Data[i];
                    UserPackageData.User[userID].Data.Remove(temp1);
                    if ((int)temp1.itemType < 8 && temp1.isWear == 1)
                    {
                        CharacterInfo userData = PlayerModel.Instance._characterInfo;
                        userData.atk   -= temp1.atk;
                        userData.def   -= temp1.def;
                        userData.crit  -= temp1.crit;
                        userData.maxHp -= temp1.hp;
                        if (userData.hp >= userData.maxHp)
                        {
                            userData.hp = userData.maxHp;
                        }
                        else
                        {
                            userData.hp -= temp1.hp;
                        }
                        PlayerModel.Instance.SaveCharacterInfo(userData);
                    }
                }
                else
                {
                    UserPackageData.User[userID].Data[i].count -= count;
                }
                getInfo = UserPackageData.User[userID].Data;
            }
        }
        SaveAllUserData(UserPackageData);
        return(getInfo);
    }
예제 #11
0
    public void Goods(EquipmentTemp.Row.Row2 data, int isHot)
    {
        GameObject prefab = null;

        if (isHot == 1)
        {
            prefab = AllTools.Instance.LoadCell(AllPaths.Instance.shopPrefabs + "ShopItem", itemHotTrf);
            prefab.GetComponent <UIShopItemController>()._Data = data;
        }
        else
        {
            prefab = AllTools.Instance.LoadCell(AllPaths.Instance.shopPrefabs + "ShopItem", itemListTrf);
            prefab.GetComponent <UIShopItemController>()._Data = data;
        }
        prefab.GetComponent <UIShopItemController>()._Data          = data;
        prefab.transform.Find("Icon").GetComponent <Image>().sprite = Resources.Load <Sprite>(AllPaths.Instance.allIconPath + data.id);
        prefab.transform.Find("Name").GetComponent <Text>().text    = data.name;
        prefab.transform.Find("Gold").GetComponent <Text>().text    = "金币:" + data.buy.ToString();
        prefab.transform.Find("Buy").GetComponent <Button>().onClick.AddListener(() => { UIShopController.Instance.Buy(); });
    }
예제 #12
0
    public EquipmentTemp.Row.Row2 WearEquip(EquipmentTemp.Row.Row2 data)
    {
        EquipmentTemp UserPackageData = AllToObject.Instance.GetAllUserPackge <EquipmentTemp>();

        EquipmentTemp.Row.Row2 original = null;
        for (int i = 0; i < UserPackageData.User[userID].Data.Count; i++)
        {
            if (UserPackageData.User[userID].Data[i].itemType == data.itemType && UserPackageData.User[userID].Data[i].isWear == 1)
            {
                UserPackageData.User[userID].Data[i].isWear = 0;
                original = UserPackageData.User[userID].Data[i];
            }

            if (UserPackageData.User[userID].Data[i].id == data.id)
            {
                UserPackageData.User[userID].Data[i].isWear = 1;
            }
        }
        SaveAllUserData(UserPackageData);
        return(original);
    }
예제 #13
0
    public void OnEndDrag(PointerEventData eventData)
    {
        RectTransform finalPos = UIRoleAllStatusController.Instance.Wear(itemV._Data);
        bool          isIn     = RectTransformUtility.RectangleContainsScreenPoint(finalPos, eventData.position, eventData.pressEventCamera);

        if (isIn)
        {
            Destroy(gameObject);
            EquipmentTemp.Row.Row2 original = UIPackageModel.Instance.WearEquip(itemV._Data);
            UIPackageController.Instance.Init();
            CharacterInfo userData = PlayerModel.Instance._characterInfo;

            if (original != null)
            {
                userData.atk   -= original.atk;
                userData.def   -= original.def;
                userData.crit  -= original.crit;
                userData.maxHp -= original.hp;
            }

            userData.atk   += itemV._Data.atk;
            userData.def   += itemV._Data.def;
            userData.crit  += itemV._Data.crit;
            userData.maxHp += itemV._Data.hp;
            PlayerModel.Instance.SaveCharacterInfo(userData);

            UIRoleAllStatusController.Instance.Init();
            itemV.setItemPos(finalPos.position);
        }
        else
        {
            itemV.setItemPos(curPos);
        }
        sortLv.overrideSorting = false;

        UIRoleAllStatusController.Instance.rasc.gameObject.SetActive(false);
    }
예제 #14
0
    public void Init()
    {
        EquipmentTemp.Row.Row2 data = UIPackageController.Instance.idv._Data;

        int need = data.InitialLevel;

        if (need >= 5)
        {
            need = 5;
        }

        List <EquipmentTemp.Row.Row2> userPackage = AllToObject.Instance.GetAllUserPackge <EquipmentTemp>().User[UIPackageModel.Instance.userID].Data;

        EquipmentTemp.Row.Row2 temp = null;
        for (int i = 0; i < userPackage.Count; i++)
        {
            if ((int)userPackage[i].itemType == 8 && (int)userPackage[i].quality == (int)data.quality)
            {
                temp = userPackage[i];
            }
        }

        if (temp == null)
        {
            List <EquipmentTemp.Row.Row2> itemList = AllToObject.Instance.GetItemList();
            for (int j = 0; j < itemList.Count; j++)
            {
                if ((int)itemList[j].itemType == 8 && (int)itemList[j].quality == (int)data.quality)
                {
                    temp       = itemList[j];
                    temp.count = 0;
                }
            }
        }
        tips.text = "当前等级:" + data.InitialLevel + "强化需要:" + need + "颗 " + temp.name + " 现有:" + temp.count + "颗";
    }
예제 #15
0
 private bool SortBySellPrice(EquipmentTemp.Row.Row2 a, EquipmentTemp.Row.Row2 b)
 {
     return(AllFormula.Instance.SellPrice(a.buy, a.InitialLevel) > AllFormula.Instance.SellPrice(b.buy, b.InitialLevel));
 }
예제 #16
0
 private bool SortByItemType(EquipmentTemp.Row.Row2 a, EquipmentTemp.Row.Row2 b)
 {
     return(a.itemType > b.itemType);
 }
예제 #17
0
 private bool SortByQuality(EquipmentTemp.Row.Row2 a, EquipmentTemp.Row.Row2 b)
 {
     return(a.quality > b.quality);
 }
예제 #18
0
 private bool SortByID(EquipmentTemp.Row.Row2 a, EquipmentTemp.Row.Row2 b)
 {
     return(a.id > b.id);
 }