Пример #1
0
        internal static EquipmentAbstract CreateEquip(int wearflags, int specials, int level, int quality, string name)
        {
            int difficulty           = StateHandler.Difficulty;
            EquipmentAbstract eqTemp = new EquipmentAbstract();

            eqTemp.Wearflags = wearflags;

            int basePoints = (int)((float)(level * 5) * (((float)(difficulty + 1)) * 0.25));

            basePoints += level * 5;

            basePoints *= (int)(((float)quality + 1) * 0.25);

            int fields = 0;

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_WEAPON))
            {
                fields     += 6;
                basePoints += basePoints / 2;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST))
            {
                fields     += 3;
                basePoints += basePoints / 3;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_HEAD))
            {
                fields     += 2;
                basePoints += basePoints / 4;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS))
            {
                fields     += 2;
                basePoints += basePoints / 4;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_FEET))
            {
                fields     += 2;
                basePoints += basePoints / 5;
            }

            if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE))
            {
                fields += 2;
            }

            if (Globals.IS_SET(specials, Globals.ELEMENT_WATER))
            {
                fields += 2;
            }

            if (Globals.IS_SET(specials, Globals.ELEMENT_NATURE))
            {
                fields += 2;
            }

            if (fields == 0)
            {
                specials = Globals.ELEMENT_PHYSICAL;
            }

            if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL))
            {
                fields += 5;
            }

            basePoints /= fields;

            if (basePoints < 1)
            {
                basePoints = 1;
            }

            if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE))
            {
                eqTemp.Hpmod     += basePoints * 5;
                eqTemp.Attackmod += basePoints;
            }
            if (Globals.IS_SET(specials, Globals.ELEMENT_WATER))
            {
                eqTemp.Magicmod        += basePoints;
                eqTemp.Magicdefensemod += basePoints;
            }
            if (Globals.IS_SET(specials, Globals.ELEMENT_NATURE))
            {
                eqTemp.Defensemod      += basePoints;
                eqTemp.Magicdefensemod += basePoints;
            }
            if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL))
            {
                eqTemp.Hpmod           += basePoints * 5;
                eqTemp.Attackmod       += basePoints;
                eqTemp.Defensemod      += basePoints;
                eqTemp.Magicmod        += basePoints;
                eqTemp.Magicdefensemod += basePoints;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_WEAPON))
            {
                if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL))
                {
                    eqTemp.Attackmod += basePoints * 6;
                }
                else if (Globals.IS_SET(specials, Globals.ELEMENT_WATER))
                {
                    eqTemp.Magicmod += basePoints * 6;
                }
                else
                {
                    eqTemp.Attackmod += basePoints * 3;
                    eqTemp.Magicmod  += basePoints * 3;
                }
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST))
            {
                eqTemp.Defensemod      += basePoints * 2;
                eqTemp.Magicdefensemod += basePoints;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_HEAD))
            {
                eqTemp.Magicdefensemod += basePoints;
                eqTemp.Magicmod        += basePoints;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS))
            {
                eqTemp.Defensemod += basePoints;
                eqTemp.Hpmod      += basePoints * 5;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_FEET))
            {
                eqTemp.Hpmod           += basePoints * 5;
                eqTemp.Magicdefensemod += basePoints;
            }

            if (name != null && name.Length > 2)
            {
                eqTemp.Name = name;
            }
            else
            {
                if (Globals.IS_SET(wearflags, Globals.WEARFLAG_WEAPON))
                {
                    if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL))
                    {
                        eqTemp.Name = "Sword";
                    }
                    else if (Globals.IS_SET(specials, Globals.ELEMENT_WATER))
                    {
                        eqTemp.Name = "Staff";
                    }
                    else
                    {
                        eqTemp.Name = "Bow";
                    }
                }
                else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST + Globals.WEARFLAG_FEET + Globals.WEARFLAG_HEAD + Globals.WEARFLAG_LEGS))
                {
                    eqTemp.Name = "Full Platemail";
                }
                else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS + Globals.WEARFLAG_FEET))
                {
                    eqTemp.Name = "Greaves";
                }
                else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST))
                {
                    eqTemp.Name = "Chainmail";
                }
                else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_HEAD))
                {
                    eqTemp.Name = "Helmet";
                }
                else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS))
                {
                    eqTemp.Name = "Legguards";
                }
                else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_FEET))
                {
                    eqTemp.Name = "Boots";
                }
                else
                {
                    eqTemp.Name = "Ring";
                }

                if (Globals.IS_SET(specials, Globals.ELEMENT_WATER + Globals.ELEMENT_FIRE + Globals.ELEMENT_WATER + Globals.ELEMENT_PHYSICAL))
                {
                    eqTemp.Name = "Planar " + eqTemp.Name;
                }
                else if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE + Globals.ELEMENT_NATURE + Globals.ELEMENT_FIRE))
                {
                    eqTemp.Name = "Elemental " + eqTemp.Name;
                }
                else if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE))
                {
                    eqTemp.Name = "Fiery " + eqTemp.Name;
                }
                else if (Globals.IS_SET(specials, Globals.ELEMENT_WATER))
                {
                    eqTemp.Name = "Watery " + eqTemp.Name;
                }
                else if (Globals.IS_SET(specials, Globals.ELEMENT_NATURE))
                {
                    eqTemp.Name = "Wild " + eqTemp.Name;
                }
                else if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL))
                {
                    eqTemp.Name = "Steel " + eqTemp.Name;
                }
                else
                {
                    eqTemp.Name = "Indifferent " + eqTemp.Name;
                }
            }

            return(eqTemp);
        }
Пример #2
0
        internal static EquipmentAbstract CreateEquip(int wearflags, int specials, int level, int quality, string name)
        {
            int difficulty = StateHandler.Difficulty;
            EquipmentAbstract eqTemp = new EquipmentAbstract();
            eqTemp.Wearflags = wearflags;

            int basePoints = (int)((float)(level*5) * (((float)(difficulty + 1)) * 0.25));
            basePoints += level * 5;

            basePoints *= (int)(((float)quality + 1) * 0.25);

            int fields = 0;

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_WEAPON))
            {
                fields += 6;
                basePoints += basePoints / 2;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST))
            {
                fields += 3;
                basePoints += basePoints / 3;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_HEAD))
            {
                fields += 2;
                basePoints += basePoints / 4;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS))
            {
                fields += 2;
                basePoints += basePoints / 4;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_FEET))
            {
                fields += 2;
                basePoints += basePoints / 5;
            }

            if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE))
                fields += 2;

            if (Globals.IS_SET(specials, Globals.ELEMENT_WATER))
                fields += 2;

            if (Globals.IS_SET(specials, Globals.ELEMENT_NATURE))
                fields += 2;

            if (fields == 0)
                specials = Globals.ELEMENT_PHYSICAL;

            if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL))
                fields += 5;

            basePoints /= fields;

            if (basePoints < 1)
                basePoints = 1;

            if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE))
            {
                eqTemp.Hpmod += basePoints*5;
                eqTemp.Attackmod += basePoints;
            }
            if (Globals.IS_SET(specials, Globals.ELEMENT_WATER))
            {
                eqTemp.Magicmod += basePoints;
                eqTemp.Magicdefensemod += basePoints;
            }
            if (Globals.IS_SET(specials, Globals.ELEMENT_NATURE))
            {
                eqTemp.Defensemod += basePoints;
                eqTemp.Magicdefensemod += basePoints;
            }
            if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL))
            {
                eqTemp.Hpmod += basePoints*5;
                eqTemp.Attackmod += basePoints;
                eqTemp.Defensemod += basePoints;
                eqTemp.Magicmod += basePoints;
                eqTemp.Magicdefensemod += basePoints;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_WEAPON))
            {
                if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL))
                    eqTemp.Attackmod += basePoints * 6;
                else if (Globals.IS_SET(specials, Globals.ELEMENT_WATER))
                    eqTemp.Magicmod += basePoints * 6;
                else
                {
                    eqTemp.Attackmod += basePoints * 3;
                    eqTemp.Magicmod += basePoints * 3;
                }
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST))
            {
                eqTemp.Defensemod += basePoints * 2;
                eqTemp.Magicdefensemod += basePoints;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_HEAD))
            {
                eqTemp.Magicdefensemod += basePoints;
                eqTemp.Magicmod += basePoints;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS))
            {
                eqTemp.Defensemod += basePoints;
                eqTemp.Hpmod += basePoints*5;
            }

            if (Globals.IS_SET(wearflags, Globals.WEARFLAG_FEET))
            {
                eqTemp.Hpmod += basePoints*5;
                eqTemp.Magicdefensemod += basePoints;
            }

            if (name != null && name.Length > 2)
                eqTemp.Name = name;
            else
            {
                if (Globals.IS_SET(wearflags, Globals.WEARFLAG_WEAPON))
                {
                    if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL))
                        eqTemp.Name = "Sword";
                    else if (Globals.IS_SET(specials, Globals.ELEMENT_WATER))
                        eqTemp.Name = "Staff";
                    else
                        eqTemp.Name = "Bow";
                }
                else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST + Globals.WEARFLAG_FEET + Globals.WEARFLAG_HEAD + Globals.WEARFLAG_LEGS))
                    eqTemp.Name = "Full Platemail";
                else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS + Globals.WEARFLAG_FEET))
                    eqTemp.Name = "Greaves";
                else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_CHEST))
                    eqTemp.Name = "Chainmail";
                else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_HEAD))
                    eqTemp.Name = "Helmet";
                else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_LEGS))
                    eqTemp.Name = "Legguards";
                else if (Globals.IS_SET(wearflags, Globals.WEARFLAG_FEET))
                    eqTemp.Name = "Boots";
                else
                    eqTemp.Name = "Ring";

                if (Globals.IS_SET(specials, Globals.ELEMENT_WATER + Globals.ELEMENT_FIRE + Globals.ELEMENT_WATER + Globals.ELEMENT_PHYSICAL))
                    eqTemp.Name = "Planar " + eqTemp.Name;
                else if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE + Globals.ELEMENT_NATURE + Globals.ELEMENT_FIRE))
                    eqTemp.Name = "Elemental " + eqTemp.Name;
                else if (Globals.IS_SET(specials, Globals.ELEMENT_FIRE))
                    eqTemp.Name = "Fiery " + eqTemp.Name;
                else if (Globals.IS_SET(specials, Globals.ELEMENT_WATER))
                    eqTemp.Name = "Watery " + eqTemp.Name;
                else if (Globals.IS_SET(specials, Globals.ELEMENT_NATURE))
                    eqTemp.Name = "Wild " + eqTemp.Name;
                else if (Globals.IS_SET(specials, Globals.ELEMENT_PHYSICAL))
                    eqTemp.Name = "Steel " + eqTemp.Name;
                else
                    eqTemp.Name = "Indifferent " + eqTemp.Name;
            }

            return eqTemp;
        }