public BonusItemViewModel GetBonusItem()
        {
            var bonusItem = new BonusItemViewModel();

            if ((this.Bonus.Code == "HP" || this.Bonus.Code == "MAN") && this.Bonus.Type == "STA")
            {
                bonusItem.Bonus     = "";
                bonusItem.IsLoot    = false;
                bonusItem.TypeBonus = this.Bonus.Code;
            }
            else
            {
                bonusItem.Bonus     = this.Bonus.Code;
                bonusItem.IsLoot    = false;
                bonusItem.TypeBonus = this.Bonus.Type;
            }
            bonusItem.Value = this.Bonus.Value;
            return(bonusItem);
        }
示例#2
0
        public BonusItemViewModel ConvertToInternalBonus()
        {
            var retour = new BonusItemViewModel();

            retour.IsLoot = true;
            if (this.Type != "Unused" && this.Type != "PvE")
            {
                switch (this.Type)
                {
                case "Stat":
                    retour.TypeBonus = "STA";
                    var carac = DataProvider.Current.Caracs.FirstOrDefault(o => this.Effect.ToLower().Contains(o.Full.ToLower()));
                    if (carac != null)
                    {
                        retour.Bonus = carac.Code;
                    }
                    break;

                case "Resist":
                    retour.TypeBonus = "RES";
                    var resist = DataProvider.Current.Resists.FirstOrDefault(o => this.Effect.ToLower().Contains(o.Full.ToLower()));
                    if (resist != null)
                    {
                        retour.Bonus = resist.Code;
                    }
                    break;

                case "Hits":
                    retour.TypeBonus = "HP";
                    break;

                case "Skill":
                    if (this.Effect.Contains("All Magic"))
                    {
                        retour.TypeBonus = "SKI";
                        retour.Bonus     = "MAGIC";
                    }
                    else if (this.Effect.Contains("All Melee"))
                    {
                        retour.TypeBonus = "SKI";
                        retour.Bonus     = "MELEE";
                    }
                    else if (this.Effect.Contains("All Archery"))
                    {
                        retour.TypeBonus = "SKI";
                        retour.Bonus     = "RANGE";
                    }
                    else if (this.Effect.Contains("All Dual"))
                    {
                        retour.TypeBonus = "SKI";
                        retour.Bonus     = "DUAL";
                    }
                    else
                    {
                        retour.TypeBonus = "SKI";
                        var skill = DataProvider.Current.Skills.FirstOrDefault(o => this.Effect.ToLower().Contains(o.Full.ToLower()));
                        if (skill != null)
                        {
                            retour.Bonus = skill.Code;
                        }
                    }
                    break;

                case "Cap Increase":
                    retour.TypeBonus = "CAPS";
                    var cap = DataProvider.Current.Caracs.FirstOrDefault(o => this.Effect.ToLower().Contains(o.Full.ToLower()));
                    if (cap != null)
                    {
                        retour.Bonus = cap.Code;
                    }
                    if (cap == null && this.Effect == "Hits")
                    {
                        retour.Bonus = "HP";
                    }
                    else if (cap == null && this.Effect == "Power")
                    {
                        retour.Bonus = "MAN";
                    }
                    else if (cap == null && this.Effect == "Fatigue")
                    {
                        retour.Bonus = "FAT";
                    }
                    break;

                case "Other Bonus":
                    retour.TypeBonus = "OTH";
                    switch (this.Effect)
                    {
                    case "Spell Duration Bonus":
                        retour.Bonus = "DUR";
                        break;

                    case "Spell Range Bonus":
                        retour.Bonus = "RAN";
                        break;

                    case "Casting Speed Bonus":
                    case "Archery Speed Bonus":
                        retour.Bonus = "CASTSPEED";
                        break;

                    case "Buff Bonus":
                        retour.Bonus = "BUF";
                        break;

                    case "Debuff Bonus":
                        retour.Bonus = "DEBUF";
                        break;

                    case "Spell Damage Bonus":
                    case "Archery Damage Bonus":
                        retour.Bonus = "MADMG";
                        break;

                    case "Melee Speed Bonus":
                        retour.Bonus = "MELSPEED";
                        break;

                    case "Style Damage Bonus":
                        retour.Bonus = "MES";
                        break;

                    case "Melee Damage Bonus":
                        retour.Bonus = "MEDMG";
                        break;

                    case "Resist Pierce":
                        retour.Bonus = "RES";
                        break;

                    case "Healing Bonus":
                        retour.Bonus = "HEA";
                        break;

                    case "AF Bonus":
                        retour.Bonus = "AF";
                        break;

                    case "Power Percentage Bonus":
                        retour.Bonus = "POW";
                        break;

                    case "Fatigue":
                        retour.TypeBonus = "STA";
                        retour.Bonus     = "FAT";
                        break;
                    }
                    break;

                case "Focus":
                    retour.TypeBonus = "OTH";
                    retour.Bonus     = "FOCUS";
                    break;
                }
                retour.Value = Convert.ToInt32(this.Amount);
            }
            return(retour);
        }