Esempio n. 1
0
        public static DM_Enchantment ParseEnchantment(Enchantment enchantment)
        {
            var template = new DM_Enchantment
            {
                Name        = enchantment.Name,
                Description = enchantment.Description,

                HealthAbsorbRatio  = enchantment.HealthAbsorbRatio,
                ManaAbsorbRatio    = enchantment.ManaAbsorbRatio,
                StaminaAbsorbRatio = enchantment.StaminaAbsorbRatio,

                GlobalStatusResistance = enchantment.GlobalStatusResistance,

                Indescructible   = enchantment.Indestructible,
                TrackDamageRatio = enchantment.TrackDamageRatio,
            };

            if (enchantment.Effects != null)
            {
                template.Effects = new List <DM_Effect>();
                foreach (var effect in enchantment.Effects)
                {
                    var effectTemplate = DM_Effect.ParseEffect(effect);

                    if (effectTemplate != null)
                    {
                        template.Effects.Add(effectTemplate);
                    }
                }
            }

            if (enchantment.AdditionalDamages != null)
            {
                template.AdditionalDamages = new List <AdditionalDamage>();
                foreach (var addDmg in enchantment.AdditionalDamages)
                {
                    template.AdditionalDamages.Add(new AdditionalDamage
                    {
                        BonusDamageType  = addDmg.BonusDamageType,
                        ConversionRatio  = addDmg.ConversionRatio,
                        SourceDamageType = addDmg.SourceDamageType
                    });
                }
            }

            if (enchantment.StatModifications != null)
            {
                template.StatModifications = new List <StatModification>();
                foreach (var statMod in enchantment.StatModifications)
                {
                    template.StatModifications.Add(new StatModification
                    {
                        Name  = statMod.Name,
                        Type  = statMod.Type,
                        Value = statMod.Value
                    });
                }
            }

            if (enchantment.DamageBonus != null)
            {
                template.DamageBonus = new List <Damages>();
                foreach (var dmgBonus in enchantment.DamageBonus.List)
                {
                    var dmg = Damages.ParseDamageType(dmgBonus);
                    template.DamageBonus.Add(dmg);
                }
            }

            if (enchantment.DamageModifier != null)
            {
                template.DamageModifier = new List <Damages>();
                foreach (var dmgBonus in enchantment.DamageModifier.List)
                {
                    var dmg = Damages.ParseDamageType(dmgBonus);
                    template.DamageModifier.Add(dmg);
                }
            }

            if (enchantment.ElementalResistances != null)
            {
                template.ElementalResistances = new List <Damages>();
                foreach (var dmgBonus in enchantment.ElementalResistances.List)
                {
                    var dmg = Damages.ParseDamageType(dmgBonus);
                    template.ElementalResistances.Add(dmg);
                }
            }

            return(template);
        }