コード例 #1
0
        public Weapon(string name, MH.WeaponClass weaponClass, int rawDamage, int affinity, int elemDamage, MH.ElementType elemType, MH.SharpnessType sharpness, MH.SharpnessType sharpnessPlusOne)
        {
            Name          = name;
            WeaponClass   = weaponClass;
            RawDamage     = rawDamage;
            Affinity      = affinity;
            ElementDamage = elemDamage;
            ElementType   = elemType;

            Sharpness        = MH.SharpnessType.Green;
            SharpnessPlusOne = MH.SharpnessType.Green;

            if ((weaponClass == MH.WeaponClass.Bow ||
                 weaponClass == MH.WeaponClass.LightBowGun ||
                 weaponClass == MH.WeaponClass.HeavyBoxGun) == false)
            {
                Sharpness        = sharpness;
                SharpnessPlusOne = sharpnessPlusOne;
            }
        }
コード例 #2
0
        public static Weapon LoadWeapon(XmlElement node)
        {
            MH.WeaponClass weaponClass;
            if (Enum.TryParse(node.Name, out weaponClass) == false)
            {
                return(null);
            }

            var attr = node.Attributes["Name"];

            if (attr == null)
            {
                return(null);
            }

            var weaponName = attr.Value.Trim();

            if (weaponName.Length == 0)
            {
                return(null);
            }

            attr = node.Attributes["Raw"];
            if (attr == null)
            {
                return(null);
            }

            uint rawDamage;

            if (uint.TryParse(attr.Value.Trim(), out rawDamage) == false)
            {
                return(null);
            }

            uint elemDamage = 0;

            attr = node.Attributes["Element"];
            if (attr != null)
            {
                if (uint.TryParse(attr.Value.Trim(), out elemDamage) == false)
                {
                    return(null);
                }
            }

            int affinity = 0;

            attr = node.Attributes["Affinity"];
            if (attr != null)
            {
                if (int.TryParse(attr.Value.Trim(), out affinity) == false)
                {
                    return(null);
                }
            }

            MH.ElementType elementType = MH.ElementType.None;

            attr = node.Attributes["ElementType"];
            if (attr != null)
            {
                if (Enum.TryParse(attr.Value.Trim(), out elementType) == false)
                {
                    return(null);
                }
            }

            MH.SharpnessType sharpness        = MH.SharpnessType.Green;
            MH.SharpnessType sharpnessPlusOne = MH.SharpnessType.Green;

            attr = node.Attributes["Sharpness"];
            if (attr != null)
            {
                if (Enum.TryParse(attr.Value.Trim(), out sharpness) == false)
                {
                    return(null);
                }
            }

            attr = node.Attributes["SharpnessPlusOne"];
            if (attr != null)
            {
                if (Enum.TryParse(attr.Value.Trim(), out sharpnessPlusOne) == false)
                {
                    return(null);
                }
            }
            else
            {
                sharpnessPlusOne = sharpness;
            }

            return(new Weapon(weaponName, weaponClass, (int)rawDamage, affinity, (int)elemDamage, elementType, sharpness, sharpnessPlusOne));
        }