示例#1
0
    public ExecCatalysItem(CatalysItemType type, int count = 1) 
        : base(ExecutableType.catalys, count,Formuls.CostCatalys(type))
    {

        IconSprite = UnityEngine.Resources.Load<Sprite>("sprites/Catalys/" + type.ToString());
        ItemType = type;
        name = type.ToString();
    }
示例#2
0
    public void Init(RecipeItem recipeItem,CatalysItemType? type)
    {
        Utils.ClearTransform(LayoutSpecials);
        var totalPoints = Formuls.GetPlayerItemPointsByLvl(recipeItem.Level) * Formuls.GetSlotCoef(recipeItem.recipeSlot);
        float min;
        float max;
        switch (recipeItem.recipeSlot)
        {
            case Slot.physical_weapon:
            case Slot.magic_weapon:
                if (type.HasValue)
                {
                    var spedAbilities = RecipeItem.PosibleAbilities(type.Value);
                    foreach (var specialAbility in spedAbilities)
                    {
                        var icon = DataBaseController.Instance.SpecialAbilityIcon(specialAbility);
                        var img = Instantiate(PrefabSpecialIcon).GetComponent<Image>();
                        img.sprite = icon;
                        img.transform.SetParent(LayoutSpecials,false);
                    }
                }
                min = totalPoints * 0.5f;
                max = totalPoints;
                MainParameterField.text = min.ToString("0") + " - " + max.ToString("0");
                switch (recipeItem.recipeSlot)
                {
                    case Slot.physical_weapon:
                        MainParameterIcon.sprite = DataBaseController.Instance.ParameterIcon(ParamType.PPower);
                        break;
                    case Slot.magic_weapon:
                        MainParameterIcon.sprite = DataBaseController.Instance.ParameterIcon(ParamType.MPower);
                        break;
                }
                
                break;
            case Slot.body:
            case Slot.helm:

                min = totalPoints * 0.5f;
                max = totalPoints;
                switch (recipeItem.recipeSlot)
                {
                    case Slot.body:
                        MainParameterIcon.sprite = DataBaseController.Instance.ParameterIcon(ParamType.PDef);
                        break;
                    case Slot.helm:
                        MainParameterIcon.sprite = DataBaseController.Instance.ParameterIcon(ParamType.MDef);
                        break;
                }
                var secondary = HeroShopRandomItem.GetSecondaryParam(totalPoints, recipeItem.recipeSlot);
                var prm = Instantiate(PrefabSecondaryParam);
                var img2 = prm.GetComponent<Image>();
                var filed = prm.GetComponentInChildren<Text>();
                var minS = secondary.Value*0.5f;
                var maxS = secondary.Value;
                MainParameterField.text = min.ToString("0") + " - " + max.ToString("0");
                string info = "";
                Sprite spr = null;
                if (type.HasValue)
                {
                    switch (type.Value)
                    {
                        case CatalysItemType.red:
                            min *= 1.25f;
                            max *= 1.25f;
                            MainParameterField.text = min.ToString("0") + " - " + max.ToString("0");
                            break;
                        case CatalysItemType.blue:
                            break;
                        case CatalysItemType.green:
                            info = "Chance to get new talisman.";
                            break;
                        case CatalysItemType.black:
                            min *= 1f;
                            max *= 1.5f;
                            MainParameterField.text = min.ToString("0") + " - " + max.ToString("0");
                            break;
                        case CatalysItemType.white:
                            info = "cost x2";
                            spr = DataBaseController.Instance.ItemIcon(ItemId.money);
                            break;
                    }
                }
                else
                {
                    info = minS.ToString("0") + " - " + maxS.ToString("0");
                    spr = DataBaseController.Instance.ParameterIcon(secondary.Key);
                }


                filed.text = info;
                if (spr == null)
                {
                    img2.enabled = false;
                }
                img2.sprite = spr;
                img2.transform.SetParent(LayoutSpecials, false);

                break;
            case Slot.Talisman:
                break;
        }
    }
示例#3
0
文件: Formuls.cs 项目: Kinderril/p3
 public static int CostCatalys(CatalysItemType t)
 {
     return 900;
 }
示例#4
0
 public static List<SpecialAbility> PosibleAbilities(CatalysItemType type)
 {
     List<SpecialAbility> spedAbilities = null;
     switch (type)
     {
         case CatalysItemType.red:
             spedAbilities = new List<SpecialAbility>()
                         {
                             SpecialAbility.clear,SpecialAbility.critical
                         };
             break;
         case CatalysItemType.blue:
             spedAbilities = new List<SpecialAbility>()
                         {
                             SpecialAbility.distance,SpecialAbility.hp
                         };
             break;
         case CatalysItemType.green:
             spedAbilities = new List<SpecialAbility>()
                         {
                             SpecialAbility.shield,SpecialAbility.vampire
                         };
             break;
         case CatalysItemType.black:
             spedAbilities = new List<SpecialAbility>()
                         {
                             SpecialAbility.slow,SpecialAbility.stun
                         };
             break;
         case CatalysItemType.white:
             spedAbilities = new List<SpecialAbility>()
                         {
                             SpecialAbility.removeDefence,SpecialAbility.critical
                         };
             break;
     }
     return spedAbilities;
 }