Exemple #1
0
        public BaseJewel( int itemID, Layer layer )
            : base(itemID)
        {
            m_MagicalAttributes = new MagicalAttributes( this );
            m_AosResistances = new ElementAttributes( this );
            m_SkillBonuses = new SkillBonuses( this );
            m_AbsorptionAttributes = new AbsorptionAttributes( this );

            m_Resource = CraftResource.Iron;
            m_GemType = GemType.None;

            Layer = layer;

            m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits );
        }
Exemple #2
0
        public BaseClothing( int itemID, Layer layer, int hue )
            : base(itemID)
        {
            Layer = layer;
            Hue = hue;

            m_Resource = DefaultResource;

            m_MagicalAttributes = new MagicalAttributes( this );
            m_ClothingAttributes = new ArmorAttributes( this );
            m_SkillBonuses = new SkillBonuses( this );
            m_Resistances = new ElementAttributes( this );
            m_AbsorptionAttributes = new AbsorptionAttributes( this );

            m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits );
        }
        public MagicSandals() : base(0x170d)
        {
            Name   = "Magical Sandals";
            Weight = 1.0;


            int val = Utility.RandomList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

            switch (Utility.Random(53))
            {
            case 0: SkillBonuses.SetValues(0, SkillName.Alchemy, val); break;

            case 1: SkillBonuses.SetValues(0, SkillName.Anatomy, val); break;

            case 2: SkillBonuses.SetValues(0, SkillName.AnimalLore, val); break;

            case 3: SkillBonuses.SetValues(0, SkillName.ItemID, val); break;

            case 4: SkillBonuses.SetValues(0, SkillName.ArmsLore, val); break;

            case 5: SkillBonuses.SetValues(0, SkillName.Parry, val); break;

            case 6: SkillBonuses.SetValues(0, SkillName.Begging, val); break;

            case 7: SkillBonuses.SetValues(0, SkillName.Blacksmith, val); break;

            case 8: SkillBonuses.SetValues(0, SkillName.Fletching, val); break;

            case 9: SkillBonuses.SetValues(0, SkillName.Peacemaking, val); break;

            case 10: SkillBonuses.SetValues(0, SkillName.Camping, val); break;

            case 11: SkillBonuses.SetValues(0, SkillName.Carpentry, val); break;

            case 12: SkillBonuses.SetValues(0, SkillName.Cartography, val); break;

            case 13: SkillBonuses.SetValues(0, SkillName.Cooking, val); break;

            case 14: SkillBonuses.SetValues(0, SkillName.DetectHidden, val); break;

            case 15: SkillBonuses.SetValues(0, SkillName.Discordance, val); break;

            //case 16: SkillBonuses.SetValues( 0,SkillName.EvalInt, val ); break;
            case 16: SkillBonuses.SetValues(0, SkillName.Healing, val); break;

            case 17: SkillBonuses.SetValues(0, SkillName.Fishing, val); break;

            case 18: SkillBonuses.SetValues(0, SkillName.Forensics, val); break;

            case 19: SkillBonuses.SetValues(0, SkillName.Herding, val); break;

            case 20: SkillBonuses.SetValues(0, SkillName.Hiding, val); break;

            case 21: SkillBonuses.SetValues(0, SkillName.Provocation, val); break;

            case 22: SkillBonuses.SetValues(0, SkillName.Inscribe, val); break;

            case 23: SkillBonuses.SetValues(0, SkillName.Lockpicking, val); break;

            case 24: SkillBonuses.SetValues(0, SkillName.Magery, val); break;

            case 25: SkillBonuses.SetValues(0, SkillName.MagicResist, val); break;

            case 26: SkillBonuses.SetValues(0, SkillName.Tactics, val); break;

            case 27: SkillBonuses.SetValues(0, SkillName.Snooping, val); break;

            case 28: SkillBonuses.SetValues(0, SkillName.Musicianship, val); break;

            case 29: SkillBonuses.SetValues(0, SkillName.Poisoning, val); break;

            case 30: SkillBonuses.SetValues(0, SkillName.Archery, val); break;

            case 31: SkillBonuses.SetValues(0, SkillName.SpiritSpeak, val); break;

            case 32: SkillBonuses.SetValues(0, SkillName.Stealing, val); break;

            case 33: SkillBonuses.SetValues(0, SkillName.Tailoring, val); break;

            case 34: SkillBonuses.SetValues(0, SkillName.AnimalTaming, val); break;

            case 35: SkillBonuses.SetValues(0, SkillName.TasteID, val); break;

            case 36: SkillBonuses.SetValues(0, SkillName.Tinkering, val); break;

            case 37: SkillBonuses.SetValues(0, SkillName.Tracking, val); break;

            case 38: SkillBonuses.SetValues(0, SkillName.Veterinary, val); break;

            case 39: SkillBonuses.SetValues(0, SkillName.Swords, val); break;

            case 40: SkillBonuses.SetValues(0, SkillName.Macing, val); break;

            case 41: SkillBonuses.SetValues(0, SkillName.Fencing, val); break;

            case 42: SkillBonuses.SetValues(0, SkillName.Wrestling, val); break;

            case 43: SkillBonuses.SetValues(0, SkillName.Lumberjacking, val); break;

            case 44: SkillBonuses.SetValues(0, SkillName.Mining, val); break;

            case 45: SkillBonuses.SetValues(0, SkillName.Meditation, val); break;

            case 46: SkillBonuses.SetValues(0, SkillName.Stealth, val); break;

            case 47: SkillBonuses.SetValues(0, SkillName.RemoveTrap, val); break;

            case 48: SkillBonuses.SetValues(0, SkillName.Necromancy, val); break;

            case 49: SkillBonuses.SetValues(0, SkillName.Focus, val); break;

            case 50: SkillBonuses.SetValues(0, SkillName.Chivalry, val); break;

            case 51: SkillBonuses.SetValues(0, SkillName.Bushido, val); break;

            case 52: SkillBonuses.SetValues(0, SkillName.Ninjitsu, val); break;
            }
        }
 public RoyalGuardInvestigatorsCloak()
     : base()
 {
     Hue = 1163;
     SkillBonuses.SetValues(0, SkillName.Stealth, 20.0);
 }
 public ArmsOfTacticalExcellence()
 {
     Attributes.BonusDex = 5;
     SkillBonuses.SetValues(0, SkillName.Tactics, 12.0);
 }
Exemple #6
0
 public LegendaryMapmakersGlasses()
 {
     SkillBonuses.SetValues(0, SkillName.Cartography, Utility.RandomMinMax(1, 5));
     Quality = ItemQuality.Exceptional;
 }
Exemple #7
0
        public MarkOfTravesty()
            : base()
        {
            Hue = 0x495;
            Attributes.BonusMana          = 8;
            Attributes.RegenHits          = 3;
            ClothingAttributes.SelfRepair = 3;

            switch (Utility.Random(15))
            {
            case 0:
                SkillBonuses.SetValues(0, SkillName.EvalInt, 10);
                SkillBonuses.SetValues(1, SkillName.Magery, 10);
                break;

            case 1:
                SkillBonuses.SetValues(0, SkillName.AnimalLore, 10);
                SkillBonuses.SetValues(1, SkillName.AnimalTaming, 10);
                break;

            case 2:
                SkillBonuses.SetValues(0, SkillName.Swords, 10);
                SkillBonuses.SetValues(1, SkillName.Tactics, 10);
                break;

            case 3:
                SkillBonuses.SetValues(0, SkillName.Discordance, 10);
                SkillBonuses.SetValues(1, SkillName.Musicianship, 10);
                break;

            case 4:
                SkillBonuses.SetValues(0, SkillName.Fencing, 10);
                SkillBonuses.SetValues(1, SkillName.Tactics, 10);
                break;

            case 5:
                SkillBonuses.SetValues(0, SkillName.Chivalry, 10);
                SkillBonuses.SetValues(1, SkillName.MagicResist, 10);
                break;

            case 6:
                SkillBonuses.SetValues(0, SkillName.Anatomy, 10);
                SkillBonuses.SetValues(1, SkillName.Healing, 10);
                break;

            case 7:
                SkillBonuses.SetValues(0, SkillName.Ninjitsu, 10);
                SkillBonuses.SetValues(1, SkillName.Stealth, 10);
                break;

            case 8:
                SkillBonuses.SetValues(0, SkillName.Bushido, 10);
                SkillBonuses.SetValues(1, SkillName.Parry, 10);
                break;

            case 9:
                SkillBonuses.SetValues(0, SkillName.Archery, 10);
                SkillBonuses.SetValues(1, SkillName.Tactics, 10);
                break;

            case 10:
                SkillBonuses.SetValues(0, SkillName.Macing, 10);
                SkillBonuses.SetValues(1, SkillName.Tactics, 10);
                break;

            case 11:
                SkillBonuses.SetValues(0, SkillName.Necromancy, 10);
                SkillBonuses.SetValues(1, SkillName.SpiritSpeak, 10);
                break;

            case 12:
                SkillBonuses.SetValues(0, SkillName.Stealth, 10);
                SkillBonuses.SetValues(1, SkillName.Stealing, 10);
                break;

            case 13:
                SkillBonuses.SetValues(0, SkillName.Peacemaking, 10);
                SkillBonuses.SetValues(1, SkillName.Musicianship, 10);
                break;

            case 14:
                SkillBonuses.SetValues(0, SkillName.Provocation, 10);
                SkillBonuses.SetValues(1, SkillName.Musicianship, 10);
                break;
            }
        }
Exemple #8
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 9:
                    {
                        SaveFlag flags = (SaveFlag) reader.ReadEncodedInt();

                        if ( GetSaveFlag( flags, SaveFlag.Resource ) )
                            m_Resource = (CraftResource) reader.ReadInt();
                        else
                            m_Resource = DefaultResource;

                        if ( GetSaveFlag( flags, SaveFlag.Attributes ) )
                            m_MagicalAttributes = new MagicalAttributes( this, reader );
                        else
                            m_MagicalAttributes = new MagicalAttributes( this );

                        if ( GetSaveFlag( flags, SaveFlag.ClothingAttributes ) )
                            m_ClothingAttributes = new ArmorAttributes( this, reader );
                        else
                            m_ClothingAttributes = new ArmorAttributes( this );

                        if ( GetSaveFlag( flags, SaveFlag.SkillBonuses ) )
                            m_SkillBonuses = new SkillBonuses( this, reader );
                        else
                            m_SkillBonuses = new SkillBonuses( this );

                        if ( GetSaveFlag( flags, SaveFlag.Resistances ) )
                            m_Resistances = new ElementAttributes( this, reader );
                        else
                            m_Resistances = new ElementAttributes( this );

                        if ( GetSaveFlag( flags, SaveFlag.MaxHitPoints ) )
                            m_MaxHitPoints = reader.ReadInt();

                        if ( GetSaveFlag( flags, SaveFlag.HitPoints ) )
                            m_HitPoints = reader.ReadInt();

                        if ( GetSaveFlag( flags, SaveFlag.Crafter ) )
                            m_Crafter = reader.ReadMobile();

                        if ( GetSaveFlag( flags, SaveFlag.Exceptional ) )
                            m_Exceptional = true;

                        if ( GetSaveFlag( flags, SaveFlag.PlayerConstructed ) )
                            m_PlayerConstructed = true;

                        if ( GetSaveFlag( flags, SaveFlag.AbsorptionAttributes ) )
                            m_AbsorptionAttributes = new AbsorptionAttributes( this, reader );
                        else
                            m_AbsorptionAttributes = new AbsorptionAttributes( this );

                        if ( GetSaveFlag( flags, SaveFlag.Altered ) )
                            m_Altered = true;

                        break;
                    }
                case 8:
                    {
                        m_AbsorptionAttributes = new AbsorptionAttributes( this, reader );

                        m_MaxHitPoints = reader.ReadInt();
                        m_HitPoints = reader.ReadInt();

                        m_Resource = (CraftResource) reader.ReadInt();

                        m_MagicalAttributes = new MagicalAttributes( this, reader );
                        m_ClothingAttributes = new ArmorAttributes( this, reader );
                        m_SkillBonuses = new SkillBonuses( this, reader );
                        m_Resistances = new ElementAttributes( this, reader );

                        break;
                    }
            }

            Mobile parent = Parent as Mobile;

            if ( parent != null )
            {
                m_SkillBonuses.AddTo( parent );

                AddStatBonuses( parent );
                parent.CheckStatTimers();
            }
        }
 public CunningMagicStaff() : base(MagicStaffEffect.Charges, 1, 20)
 {
     IntRequirement = 15;
     Name           = "wand of cunning";
     SkillBonuses.SetValues(1, SkillName.Magery, 20);
 }
Exemple #10
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 8:
            {
                m_Exceptional       = reader.ReadBool();
                m_PlayerConstructed = reader.ReadBool();
                m_Crafter           = reader.ReadMobile();

                goto case 7;
            }

            case 7:
            {
                m_AbsorptionAttributes = new AbsorptionAttributes(this, reader);

                m_TimesImbued = reader.ReadEncodedInt();

                m_MaxHitPoints = reader.ReadEncodedInt();
                m_HitPoints    = reader.ReadEncodedInt();

                m_Resource = (CraftResource)reader.ReadEncodedInt();
                m_GemType  = (GemType)reader.ReadEncodedInt();

                m_MagicalAttributes = new MagicalAttributes(this, reader);
                m_AosResistances    = new ElementAttributes(this, reader);
                m_SkillBonuses      = new SkillBonuses(this, reader);

                if (Parent is Mobile)
                {
                    m_SkillBonuses.AddTo((Mobile)Parent);
                }

                break;
            }
            }

            int strBonus = m_MagicalAttributes.BonusStr;
            int dexBonus = m_MagicalAttributes.BonusDex;
            int intBonus = m_MagicalAttributes.BonusInt;

            if (Parent is Mobile && (strBonus != 0 || dexBonus != 0 || intBonus != 0))
            {
                Mobile m = (Mobile)Parent;

                string modName = Serial.ToString();

                if (strBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Str, modName + "Str", strBonus, TimeSpan.Zero));
                }

                if (dexBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero));
                }

                if (intBonus != 0)
                {
                    m.AddStatMod(new StatMod(StatType.Int, modName + "Int", intBonus, TimeSpan.Zero));
                }
            }

            if (Parent is Mobile)
            {
                ((Mobile)Parent).CheckStatTimers();
            }
        }
Exemple #11
0
 public AbyssReaver()
 {
     SkillBonuses.SetValues(0, SkillName.Throwing, Utility.RandomMinMax(5, 10));
     Attributes.WeaponDamage = Utility.RandomMinMax(25, 35);
     Slayer = SlayerName.Exorcism;
 }
Exemple #12
0
 public EnergyVortexMagicStaff() : base(MagicStaffEffect.Charges, 1, 3)
 {
     IntRequirement = 45;
     Name           = "wand of vortex summoning";
     SkillBonuses.SetValues(1, SkillName.Magery, 80);
 }
Exemple #13
0
        public Armor(BaseArmor Item, uint ContainerID)
        {
            Item.UpdateLocalizedProperties();
            Item.UpdateTextProperties();

            //General
            Rating           = 0;
            ID               = Item.Serial.Value;
            this.ContainerID = ContainerID;
            ItemName         = Item.Tooltip.Split('|')[0].Replace("'", "");
            CastingFocus     = (sbyte)Item.Attributes.CastingFocus;
            DI               = (sbyte)Item.Attributes.WeaponDamage;
            SSI              = (sbyte)Item.Attributes.WeaponSpeed;
            FC               = (sbyte)Item.Attributes.CastSpeed;
            FCR              = (sbyte)Item.Attributes.CastRecovery;
            SDI              = (sbyte)Item.Attributes.SpellDamage;
            RPD              = (sbyte)Item.Attributes.ReflectPhysical;
            DCI              = (sbyte)Item.Attributes.DefendChance;
            HCI              = (sbyte)Item.Attributes.AttackChance;
            STR              = (sbyte)Item.Attributes.BonusStr;
            DEX              = (sbyte)Item.Attributes.BonusDex;
            INTEL            = (sbyte)Item.Attributes.BonusInt;
            HP               = (sbyte)Item.Attributes.BonusHits;
            Stam             = (sbyte)Item.Attributes.BonusStam;
            Mana             = (sbyte)Item.Attributes.BonusMana;
            HPRegen          = (sbyte)Item.Attributes.RegenHits;
            StamRegen        = (sbyte)Item.Attributes.RegenStam;
            ManaRegen        = (sbyte)Item.Attributes.RegenMana;
            LMC              = (sbyte)Item.Attributes.LowerManaCost;
            LRC              = (sbyte)Item.Attributes.LowerRegCost;
            EnhancePotions   = (sbyte)Item.Attributes.EnhancePotions;
            Luck             = (short)Item.Attributes.Luck;
            PhysicalResist   = (sbyte)Item.Resistances.Physical;
            FireResist       = (sbyte)Item.Resistances.Fire;
            ColdResist       = (sbyte)Item.Resistances.Cold;
            PoisonResist     = (sbyte)Item.Resistances.Poison;
            EnergyResist     = (sbyte)Item.Resistances.Energy;
            DamageEater      = (sbyte)Item.AbsorptionAttributes.DamageEater;
            KineticEater     = (sbyte)Item.AbsorptionAttributes.KineticEater;
            FireEater        = (sbyte)Item.AbsorptionAttributes.FireEater;
            ColdEater        = (sbyte)Item.AbsorptionAttributes.ColdEater;
            PoisonEater      = (sbyte)Item.AbsorptionAttributes.PoisonEater;
            EnergyEater      = (sbyte)Item.AbsorptionAttributes.EnergyEater;
            TotalStat        = STR + INTEL + DEX + HP + Mana + Stam;
            TotalResist      = PhysicalResist +
                               FireResist +
                               ColdResist +
                               PoisonResist +
                               EnergyResist;
            Added = DateTime.Now;

            //Skill Bonuses
            SkillBonuses = "";

            ItemSkillName _skill1 = (ItemSkillName)Item.SkillBonuses.Skill_1_Name;
            ItemSkillName _skill2 = (ItemSkillName)Item.SkillBonuses.Skill_2_Name;
            ItemSkillName _skill3 = (ItemSkillName)Item.SkillBonuses.Skill_3_Name;
            ItemSkillName _skill4 = (ItemSkillName)Item.SkillBonuses.Skill_4_Name;
            ItemSkillName _skill5 = (ItemSkillName)Item.SkillBonuses.Skill_5_Name;

            string[][] _skillBonusesString = new string[][]
            {
                new string[] { Item.SkillBonuses.Skill_1_Value.ToString(), _skill1.ToString() },
                new string[] { Item.SkillBonuses.Skill_2_Value.ToString(), _skill2.ToString() },
                new string[] { Item.SkillBonuses.Skill_3_Value.ToString(), _skill3.ToString() },
                new string[] { Item.SkillBonuses.Skill_4_Value.ToString(), _skill4.ToString() },
                new string[] { Item.SkillBonuses.Skill_5_Value.ToString(), _skill5.ToString() },
            };

            int _totalSkill = 0;

            foreach (string[] _s in _skillBonusesString)
            {
                if (_s[1].Equals("Invalid"))
                {
                    continue;
                }
                else
                {
                    SkillBonuses = SkillBonuses + _s[0] + ' ' + _s[1];
                    _totalSkill += Int32.Parse(_s[0]);
                }
            }

            SkillBonuses = SkillBonuses.Replace('_', ' ');


            //item rating
            Rating = (TotalResist / 4) + (TotalResist / 10);
            if (RPD > 0)
            {
                Rating += (RPD / 5);
            }
            if (DI >= 0)
            {
                Rating += (DI / 5) + (DI / 10);
            }
            if (HCI > 0)
            {
                Rating += (HCI / 2) + (HCI / 3);
            }
            if (DCI > 0)
            {
                Rating += (DCI / 2) + (DCI / 3);
            }
            if (HPRegen > 0)
            {
                Rating += (HPRegen * 4);
            }
            if (ManaRegen > 0)
            {
                Rating += (ManaRegen * 4);
            }
            if (StamRegen > 0)
            {
                Rating += (StamRegen * 3);
            }
            if (LRC > 0)
            {
                Rating += (LRC / 2) + (LRC / 3);
            }
            if (LMC > 0)
            {
                Rating += (LMC / 2) + (LMC / 3);
            }
            if (INTEL > 0)
            {
                Rating += (INTEL / 2) + (INTEL / 3);
            }
            if (DEX > 0)
            {
                Rating += (DEX / 2) + (DEX / 3);
            }
            if (STR > 0)
            {
                Rating += (STR / 2) + (STR / 3);
            }
            if (HP > 0)
            {
                Rating += (HP / 2) + (HP / 3);
            }
            if (Stam > 0)
            {
                Rating += (Stam / 2) + (Stam / 3);
            }
            if (Mana > 0)
            {
                Rating += (Mana / 2) + (Mana / 3);
            }
            int _totalEater = DamageEater +
                              KineticEater +
                              FireEater +
                              ColdEater +
                              PoisonEater +
                              EnergyEater;

            if (_totalEater > 0)
            {
                Rating += (_totalEater / 2) + (_totalEater / 5);
            }
            if (_totalSkill > 0)
            {
                Rating += (_totalSkill / 2);
            }
            if (FC > 0)
            {
                Rating += (FC * 6);
            }
            if (FCR > 0)
            {
                Rating += (FCR * 6);
            }
            if (CastingFocus > 0)
            {
                Rating += (CastingFocus / 3) + (CastingFocus / 10);
            }
            if (SSI > 0)
            {
                Rating += (SSI / 3) + (SSI / 10);
            }
            if (SDI > 0)
            {
                Rating += (SDI / 2);
            }
            if (Luck > 0)
            {
                Rating += (Luck / 11) + (Luck / 15);
            }
            if (EnhancePotions > 0)
            {
                Rating += (EnhancePotions / 6);
            }
        }
Exemple #14
0
 public ShadowDancerLeggings()
 {
     Hue = 0x455;
     SkillBonuses.SetValues(0, SkillName.Stealth, 20.0);
     SkillBonuses.SetValues(1, SkillName.Stealing, 20.0);
 }
Exemple #15
0
 public TinkeringBoots()
 {
     Hue  = 0x07AA;
     Name = "Boots of Tinkering";
     SkillBonuses.SetValues(0, Server.SkillName.Tinkering, 4.0);
 }
Exemple #16
0
        private static void ApplySkillBonus( SkillBonuses attrs, int min, int max, int index, int low, int high )
        {
            SkillName[] possibleSkills = ( attrs.Owner is Spellbook ? m_PossibleSpellbookSkills : m_PossibleBonusSkills );
            int count = possibleSkills.Length;

            SkillName sk, check;
            double bonus;
            bool found;

            do
            {
                found = false;
                sk = possibleSkills[Utility.Random( count )];

                for ( int i = 0; !found && i < 5; ++i )
                    found = ( attrs.GetValues( i, out check, out bonus ) && check == sk );
            } while ( found );

            attrs.SetValues( (short) index, sk, (short) Scale( min, max, low, high ) );
        }
Exemple #17
0
        public Spellbook( ulong content, int itemID )
            : base(itemID)
        {
            m_MagicalAttributes = new MagicalAttributes( this );
            m_SkillBonuses = new SkillBonuses( this );

            Weight = 0.0;
            Layer = Layer.OneHanded;
            LootType = LootType.Blessed;

            Content = content;
        }
 public MaleKimonoBearingTheCrestOfBlackthorn3()
 {
     ReforgedSuffix = ReforgedSuffix.Blackthorn;
     SkillBonuses.SetValues(0, SkillName.Stealth, 10.0);
     Hue = 2130;
 }
Exemple #19
0
        public BaseTalisman( int ItemID )
            : base(ItemID)
        {
            Layer = Layer.Talisman;

            m_MagicalAttributes = new MagicalAttributes( this );
            m_AosResistances = new ElementAttributes( this );
            m_SkillBonuses = new SkillBonuses( this );

            // 1% chance to spawn with the "Owned by no one" property.
            m_Ownable = ( 0.01 > Utility.RandomDouble() );

            m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits );
        }
Exemple #20
0
 public TorchOfTrapFinding()
 {
     Hue  = 0;
     Name = "Torch of Trap Burning";
     SkillBonuses.SetValues(0, SkillName.RemoveTrap, 100);
 }
Exemple #21
0
        public ArtifactHalfApron()
        {
            Name = m_Names[Utility.Random(m_Names.Length)];
            Hue  = Utility.RandomMinMax(5, 3000);
            // Name = "Artifact Half Apron";
            //    Layer = Layer.Waist;

            /*
             * // random chance to get diffent resist %
             * PhysicalBonus = Utility.RandomMinMax(0, 2);
             * FireBonus = Utility.RandomMinMax(0, 2);
             * ColdBonus = Utility.RandomMinMax(0, 2);
             * PoisonBonus = Utility.RandomMinMax(0, 2);
             * EnergyBonus = Utility.RandomMinMax(0, 2);
             */
            // id it shows item as
            switch (Utility.Random(2))
            {
            case 0: ItemID = 5435; break;    // Half Apron

            case 1: ItemID = 10144; break;   // Obi
            }
            // random chance to get these stats added to item ,chance of one stat per switch
            switch (Utility.Random(20))
            {
            case 0: Attributes.RegenHits = Utility.RandomMinMax(1, 4); break;

            case 1: Attributes.RegenStam = Utility.RandomMinMax(1, 4); break;

            case 2: Attributes.RegenStam = Utility.RandomMinMax(1, 4); break;

            case 3: Attributes.DefendChance = Utility.RandomMinMax(10, 20); break;

            case 4: Attributes.AttackChance = Utility.RandomMinMax(10, 20); break;
            }
            switch (Utility.Random(20))
            {
            case 0: Attributes.BonusStr = Utility.RandomMinMax(1, 5); break;

            case 1: Attributes.BonusDex = Utility.RandomMinMax(1, 5); break;

            case 2: Attributes.BonusInt = Utility.RandomMinMax(1, 5); break;

            case 3: Attributes.BonusHits = Utility.RandomMinMax(10, 20); break;

            case 4: Attributes.BonusStam = Utility.RandomMinMax(10, 20); break;

            case 5: Attributes.BonusMana = Utility.RandomMinMax(10, 20); break;
            }
            switch (Utility.Random(20))
            {
            case 0: Attributes.WeaponDamage = Utility.RandomMinMax(10, 50); break;

            case 1: Attributes.WeaponSpeed = Utility.RandomMinMax(10, 20); break;

            case 2: Attributes.SpellDamage = Utility.RandomMinMax(10, 50); break;

            case 3: Attributes.CastRecovery = Utility.RandomMinMax(1, 2); break;

            case 4: Attributes.CastSpeed = Utility.RandomMinMax(1, 2); break;
            }
            switch (Utility.Random(20))
            {
            case 0: Attributes.LowerManaCost = Utility.RandomMinMax(5, 10); break;

            case 1: Attributes.LowerRegCost = Utility.RandomMinMax(10, 20); break;

            case 2: Attributes.ReflectPhysical = Utility.RandomMinMax(5, 20); break;

            case 3: Attributes.EnhancePotions = Utility.RandomMinMax(10, 20); break;

            case 4: Attributes.Luck = Utility.RandomMinMax(100, 200); break;

            case 5: Attributes.NightSight = 1; break;
                //    case 6: Attributes.SpellChanneling = 1; break;
            }
            switch (Utility.Random(20))
            {
            case 0: Attributes.WeaponDamage = Utility.RandomMinMax(10, 50); break;

            case 1: Attributes.WeaponSpeed = Utility.RandomMinMax(10, 20); break;

            case 2: Attributes.SpellDamage = Utility.RandomMinMax(5, 25); break;

            case 3: Attributes.CastRecovery = Utility.RandomMinMax(1, 2); break;

            case 4: Attributes.CastSpeed = Utility.RandomMinMax(1, 2); break;
            }


            // this will add 1 of these to every shoe sandal or boot
            switch (Utility.Random(21))
            {
            case 0: Attributes.WeaponDamage = Utility.RandomMinMax(10, 50); break;

            case 1: Attributes.WeaponSpeed = Utility.RandomMinMax(10, 20); break;

            case 2: Attributes.SpellDamage = Utility.RandomMinMax(5, 25); break;

            case 3: Attributes.CastRecovery = Utility.RandomMinMax(1, 2); break;

            case 4: Attributes.CastSpeed = Utility.RandomMinMax(1, 2); break;

            case 5: Attributes.LowerManaCost = Utility.RandomMinMax(5, 10); break;

            case 6: Attributes.LowerRegCost = Utility.RandomMinMax(10, 20); break;

            case 7: Attributes.ReflectPhysical = Utility.RandomMinMax(5, 20); break;

            case 8: Attributes.EnhancePotions = Utility.RandomMinMax(10, 20); break;

            case 9: Attributes.Luck = Utility.RandomMinMax(100, 200); break;

            case 10: Attributes.BonusStr = Utility.RandomMinMax(1, 5); break;

            case 11: Attributes.BonusDex = Utility.RandomMinMax(1, 5); break;

            case 12: Attributes.BonusInt = Utility.RandomMinMax(1, 5); break;

            case 13: Attributes.BonusHits = Utility.RandomMinMax(10, 20); break;

            case 14: Attributes.BonusStam = Utility.RandomMinMax(10, 20); break;

            case 15: Attributes.BonusMana = Utility.RandomMinMax(10, 20); break;

            case 16: Attributes.RegenHits = Utility.RandomMinMax(1, 4); break;

            case 17: Attributes.RegenStam = Utility.RandomMinMax(1, 4); break;

            case 18: Attributes.RegenStam = Utility.RandomMinMax(1, 4); break;

            case 19: Attributes.DefendChance = Utility.RandomMinMax(10, 20); break;

            case 20: Attributes.AttackChance = Utility.RandomMinMax(10, 20); break;
            }

            // random skill bonus
            switch (Utility.Random(54))
            {
            case 0: SkillBonuses.SetValues(0, SkillName.Alchemy, 5.0); break;

            case 1: SkillBonuses.SetValues(0, SkillName.Anatomy, 5.0); break;

            case 2: SkillBonuses.SetValues(0, SkillName.AnimalLore, 5.0); break;

            case 3: SkillBonuses.SetValues(0, SkillName.ItemID, 5.0); break;

            case 4: SkillBonuses.SetValues(0, SkillName.ArmsLore, 5.0); break;

            case 5: SkillBonuses.SetValues(0, SkillName.Parry, 5.0); break;

            case 6: SkillBonuses.SetValues(0, SkillName.Begging, 5.0); break;

            case 7: SkillBonuses.SetValues(0, SkillName.Blacksmith, 5.0); break;

            case 8: SkillBonuses.SetValues(0, SkillName.Fletching, 5.0); break;

            case 9: SkillBonuses.SetValues(0, SkillName.Peacemaking, 5.0); break;

            case 10: SkillBonuses.SetValues(0, SkillName.Camping, 5.0); break;

            case 11: SkillBonuses.SetValues(0, SkillName.Carpentry, 5.0); break;

            case 12: SkillBonuses.SetValues(0, SkillName.Cartography, 5.0); break;

            case 13: SkillBonuses.SetValues(0, SkillName.Cooking, 5.0); break;

            case 14: SkillBonuses.SetValues(0, SkillName.DetectHidden, 5.0); break;

            case 15: SkillBonuses.SetValues(0, SkillName.Discordance, 5.0); break;

            case 16: SkillBonuses.SetValues(0, SkillName.EvalInt, 5.0); break;

            case 17: SkillBonuses.SetValues(0, SkillName.Healing, 5.0); break;

            case 18: SkillBonuses.SetValues(0, SkillName.Fishing, 5.0); break;

            case 19: SkillBonuses.SetValues(0, SkillName.Forensics, 5.0); break;

            case 20: SkillBonuses.SetValues(0, SkillName.Herding, 5.0); break;     // lol has anyone ever used this skill before

            case 21: SkillBonuses.SetValues(0, SkillName.Hiding, 5.0); break;

            case 22: SkillBonuses.SetValues(0, SkillName.Provocation, 5.0); break;

            case 23: SkillBonuses.SetValues(0, SkillName.Inscribe, 5.0); break;

            case 24: SkillBonuses.SetValues(0, SkillName.Lockpicking, 5.0); break;

            case 25: SkillBonuses.SetValues(0, SkillName.Magery, 5.0); break;

            case 26: SkillBonuses.SetValues(0, SkillName.MagicResist, 5.0); break;

            case 27: SkillBonuses.SetValues(0, SkillName.Tactics, 5.0); break;

            case 28: SkillBonuses.SetValues(0, SkillName.Snooping, 5.0); break;

            case 29: SkillBonuses.SetValues(0, SkillName.Musicianship, 5.0); break;

            case 30: SkillBonuses.SetValues(0, SkillName.Poisoning, 5.0); break;

            case 31: SkillBonuses.SetValues(0, SkillName.Archery, 5.0); break;

            case 32: SkillBonuses.SetValues(0, SkillName.SpiritSpeak, 5.0); break;

            case 33: SkillBonuses.SetValues(0, SkillName.Stealing, 5.0); break;

            case 34: SkillBonuses.SetValues(0, SkillName.Tailoring, 5.0); break;

            case 35: SkillBonuses.SetValues(0, SkillName.AnimalTaming, 5.0); break;

            case 36: SkillBonuses.SetValues(0, SkillName.TasteID, 5.0); break;

            case 37: SkillBonuses.SetValues(0, SkillName.Tinkering, 5.0); break;

            case 38: SkillBonuses.SetValues(0, SkillName.Tracking, 5.0); break;

            case 39: SkillBonuses.SetValues(0, SkillName.Veterinary, 5.0); break;

            case 40: SkillBonuses.SetValues(0, SkillName.Swords, 5.0); break;

            case 41: SkillBonuses.SetValues(0, SkillName.Macing, 5.0); break;

            case 42: SkillBonuses.SetValues(0, SkillName.Fencing, 5.0); break;

            case 43: SkillBonuses.SetValues(0, SkillName.Wrestling, 5.0); break;

            case 44: SkillBonuses.SetValues(0, SkillName.Lumberjacking, 5.0); break;

            case 45: SkillBonuses.SetValues(0, SkillName.Mining, 5.0); break;

            case 46: SkillBonuses.SetValues(0, SkillName.Meditation, 5.0); break;

            case 47: SkillBonuses.SetValues(0, SkillName.Stealth, 5.0); break;

            case 48: SkillBonuses.SetValues(0, SkillName.RemoveTrap, 5.0); break;

            case 49: SkillBonuses.SetValues(0, SkillName.Necromancy, 5.0); break;

            case 50: SkillBonuses.SetValues(0, SkillName.Focus, 5.0); break;

            case 51: SkillBonuses.SetValues(0, SkillName.Chivalry, 5.0); break;

            case 52: SkillBonuses.SetValues(0, SkillName.Bushido, 5.0); break;

            case 53: SkillBonuses.SetValues(0, SkillName.Ninjitsu, 5.0); break;
            }
            // END random skill bonus
            //Disadvantages

            /*  // can be brittle
             * switch (Utility.Random(2))
             * {
             *    case 0: Attributes.Brittle = 1; break;
             * }
             * // can be cursed
             * switch (Utility.Random(2)) { case 0: LootType = LootType.Cursed; break; }
             *
             * // can be unlucky
             * switch (Utility.Random(2))
             * {
             *    case 0: Attributes.Luck = -100; break;
             * }
             */
        }
Exemple #22
0
 public TailoringDoublet()
 {
     Hue  = 0x798;
     Name = "Doublet of Tailoring";
     SkillBonuses.SetValues(0, Server.SkillName.Tailoring, 5.0);
 }
Exemple #23
0
 public Runesabre()
 {
     SkillBonuses.SetValues(0, SkillName.MagicResist, 5.0);
     WeaponAttributes.MageWeapon = 1; // 1 = -29
 }
Exemple #24
0
 public TailorSandals()
 {
     Hue  = 0x798;
     Name = "Sandals of Tailoring";
     SkillBonuses.SetValues(0, Server.SkillName.Tailoring, 1.0);
 }
 public AncientSamuraiDo()
 {
     ArmorAttributes.LowerStatReq = 100;
     ArmorAttributes.MageArmor    = 1;
     SkillBonuses.SetValues(0, SkillName.Parry, 10.0);
 }
Exemple #26
0
 public TailorCloak()
 {
     Hue  = 0x798;
     Name = "Greater Cloak of Tailoring";
     SkillBonuses.SetValues(0, Server.SkillName.Tailoring, 2.0);
 }
 public MasterLockpickersRing() : base(0x108a)
 {
     Name   = "Master Lockpicker's Ring";
     Weight = 0.1;
     SkillBonuses.SetValues(0, SkillName.Lockpicking, 5.0);
 }
Exemple #28
0
 public TailorShirt()
 {
     Hue  = 0x798;
     Name = "Shirt of Tailoring";
     SkillBonuses.SetValues(0, Server.SkillName.Mining, 4.0);
 }
Exemple #29
0
 public SingingAxe()
 {
     SkillBonuses.SetValues(0, SkillName.Musicianship, 5);
 }
Exemple #30
0
 public SpecialFishingGloves() : base(0x13C6)
 {
     Weight = 2.0;
     Name   = "Special Fishing Gloves";
     SkillBonuses.SetValues(0, SkillName.Fishing, 20.0);
 }
Exemple #31
0
        public BulwarkLeggings()
        {
            Attributes.BonusStr = 5;

            SkillBonuses.SetValues(0, SkillName.Anatomy, 5.0);
        }
 public BlessMagicStaff() : base(MagicStaffEffect.Charges, 1, 15)
 {
     IntRequirement = 20;
     Name           = "wand of blessing";
     SkillBonuses.SetValues(1, SkillName.Magery, 30);
 }
Exemple #33
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            if ( !( this is TomeOfEnlightenment || this is TomeOfLostKnowledge || this is FactionTomeOfLostKnowledge ) )
                LootType = LootType.Blessed;

            int version = reader.ReadInt();

            switch ( version )
            {
                case 7:
                    {
                        m_Exceptional = reader.ReadBool();
                        m_Crafter = reader.ReadMobile();

                        goto case 6;
                    }
                case 6:
                case 5:
                    {
                        m_Slayer2 = (SlayerName) reader.ReadEncodedInt();
                        goto case 4;
                    }
                case 4:
                    {
                        m_EngraveString = reader.ReadString();
                        goto case 3;
                    }
                case 3:
                case 2:
                    {
                        m_Slayer = (SlayerName) reader.ReadEncodedInt();

                        goto case 1;
                    }
                case 1:
                    {
                        m_MagicalAttributes = new MagicalAttributes( this, reader );
                        m_SkillBonuses = new SkillBonuses( this, reader );

                        if ( this is ScrappersCompendium )
                        {
                            Attributes.SpellDamage = 25;
                            Attributes.LowerManaCost = 10;
                        }
                        else if ( this is ClaininsSpellbook )
                        {
                            Attributes.LowerRegCost = 15;
                            Attributes.RegenMana = 3;
                        }
                        else if ( this is TomeOfEnlightenment )
                        {
                            Attributes.BonusInt = 5;
                            Attributes.SpellDamage = 10;
                            Attributes.CastSpeed = 1;
                        }
                        else if ( this is TomeOfLostKnowledge )
                        {
                            SkillBonuses.SetValues( 0, SkillName.Magery, 15.0 );
                            Attributes.BonusInt = 8;
                            Attributes.SpellDamage = 15;
                            Attributes.LowerManaCost = 15;
                        }
                        else if ( this is FactionTomeOfLostKnowledge )
                        {
                            SkillBonuses.SetValues( 0, SkillName.Magery, 15.0 );
                            Attributes.BonusInt = 8;
                            Attributes.SpellDamage = 15;
                            Attributes.LowerManaCost = 15;
                            Attributes.RegenMana = 3;
                        }
                        else if ( this is ConjurersGrimoire )
                        {
                            SkillBonuses.SetValues( 0, SkillName.Magery, 15.0 );
                            Attributes.BonusInt = 8;
                            Attributes.SpellDamage = 15;
                            Attributes.LowerManaCost = 10;
                        }
                        else if ( this is FallenMysticsSpellbook )
                        {
                            Attributes.SpellDamage = 10;
                        }
                        else
                        {
                            FixAttributes();
                        }

                        goto case 0;
                    }
                case 0:
                    {
                        m_Content = reader.ReadULong();
                        m_Count = reader.ReadInt();

                        break;
                    }
            }

            if ( m_MagicalAttributes == null )
                m_MagicalAttributes = new MagicalAttributes( this );

            if ( m_SkillBonuses == null )
                m_SkillBonuses = new SkillBonuses( this );

            if ( Parent is Mobile )
                m_SkillBonuses.AddTo( (Mobile) Parent );

            int strBonus = m_MagicalAttributes.BonusStr;
            int dexBonus = m_MagicalAttributes.BonusDex;
            int intBonus = m_MagicalAttributes.BonusInt;

            if ( Parent is Mobile && ( strBonus != 0 || dexBonus != 0 || intBonus != 0 ) )
            {
                Mobile m = (Mobile) Parent;

                string modName = Serial.ToString();

                if ( strBonus != 0 )
                    m.AddStatMod( new StatMod( StatType.Str, modName + "Str", strBonus, TimeSpan.Zero ) );

                if ( dexBonus != 0 )
                    m.AddStatMod( new StatMod( StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero ) );

                if ( intBonus != 0 )
                    m.AddStatMod( new StatMod( StatType.Int, modName + "Int", intBonus, TimeSpan.Zero ) );
            }

            if ( Parent is Mobile )
                ( (Mobile) Parent ).CheckStatTimers();
        }
Exemple #34
0
 public TelekinesisMagicStaff() : base(MagicStaffEffect.Charges, 1, 15)
 {
     IntRequirement = 20;
     Name           = "wand of telekinesis";
     SkillBonuses.SetValues(1, SkillName.Magery, 30);
 }
Exemple #35
0
        public virtual void AlterFrom( BaseClothing orig )
        {
            m_Altered = true;

            m_MagicalAttributes = orig.Attributes;
            m_ClothingAttributes = orig.ClothingAttributes;
            m_SkillBonuses = orig.SkillBonuses;
            m_Resistances = orig.Resistances;
            m_AbsorptionAttributes = orig.AbsorptionAttributes;

            Crafter = orig.Crafter;
            Exceptional = orig.Exceptional;

            MaxHitPoints = orig.MaxHitPoints;
            HitPoints = orig.HitPoints;
        }
 public MagicUntrapMagicStaff() : base(MagicStaffEffect.Charges, 1, 20)
 {
     IntRequirement = 15;
     Name           = "wand of trap removal";
     SkillBonuses.SetValues(1, SkillName.Magery, 20);
 }
        public override bool OnEquip(Mobile from)
        {
            Item glove = from.FindItemOnLayer(Layer.Gloves);
            Item pants = from.FindItemOnLayer(Layer.Pants);
            Item arms  = from.FindItemOnLayer(Layer.Arms);
            Item helm  = from.FindItemOnLayer(Layer.Helm);

            if (helm != null && helm.GetType() == typeof(DeathEssenceHelm) && glove != null && glove.GetType() == typeof(DeathEssenceGloves) && pants != null && pants.GetType() == typeof(DeathEssenceLegs) && arms != null && arms.GetType() == typeof(DeathEssenceArms))
            {
                Effects.PlaySound(from.Location, from.Map, 503);
                from.FixedParticles(0x376A, 9, 32, 5030, EffectLayer.Waist);

                Hue = 0x455;
                SkillBonuses.SetValues(0, SkillName.Necromancy, 10.0);
                Attributes.LowerManaCost   = 10;
                ArmorAttributes.SelfRepair = 3;
                PhysicalBonus = 4;
                FireBonus     = 5;
                ColdBonus     = 3;
                PoisonBonus   = 4;
                EnergyBonus   = 4;

                DeathEssenceGloves gloves = from.FindItemOnLayer(Layer.Gloves) as DeathEssenceGloves;
                DeathEssenceLegs   legs   = from.FindItemOnLayer(Layer.Pants) as DeathEssenceLegs;
                DeathEssenceArms   arm    = from.FindItemOnLayer(Layer.Arms) as DeathEssenceArms;
                DeathEssenceHelm   helmet = from.FindItemOnLayer(Layer.Helm) as DeathEssenceHelm;

                gloves.Hue = 0x455;
                gloves.ArmorAttributes.SelfRepair = 3;
                gloves.PhysicalBonus = 4;
                gloves.FireBonus     = 5;
                gloves.ColdBonus     = 3;
                gloves.PoisonBonus   = 4;
                gloves.EnergyBonus   = 4;

                legs.Hue = 0x455;
                legs.ArmorAttributes.SelfRepair = 3;
                legs.PhysicalBonus = 4;
                legs.FireBonus     = 5;
                legs.ColdBonus     = 3;
                legs.PoisonBonus   = 4;
                legs.EnergyBonus   = 4;

                arm.Hue = 0x455;
                arm.ArmorAttributes.SelfRepair = 3;
                arm.PhysicalBonus = 4;
                arm.FireBonus     = 5;
                arm.ColdBonus     = 3;
                arm.PoisonBonus   = 4;
                arm.EnergyBonus   = 4;

                helmet.Hue = 0x455;
                helmet.ArmorAttributes.SelfRepair = 3;
                helmet.PhysicalBonus = 4;
                helmet.FireBonus     = 5;
                helmet.ColdBonus     = 3;
                helmet.PoisonBonus   = 4;
                helmet.EnergyBonus   = 4;

                from.SendLocalizedMessage(1072391);
            }
            this.InvalidateProperties();
            return(base.OnEquip(from));
        }
 public GateTravelMagicStaff() : base(MagicStaffEffect.Charges, 1, 5)
 {
     IntRequirement = 40;
     Name           = "wand of gate travels";
     SkillBonuses.SetValues(1, SkillName.Magery, 70);
 }
Exemple #39
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 4:
                    {
                        m_MaxHitPoints = reader.ReadEncodedInt();
                        m_HitPoints = reader.ReadEncodedInt();

                        goto case 3;
                    }
                case 3:
                    {
                        m_Slayer = (SlayerName) reader.ReadInt();
                        m_Slayer2 = (SlayerName) reader.ReadInt();

                        goto case 2;
                    }
                case 2:
                    {
                        m_Ownable = (bool) reader.ReadBool();
                        m_Owner = (Mobile) reader.ReadMobile();
                        m_CraftBonusRegular = (CraftList) reader.ReadInt();
                        m_CraftBonusRegularValue = reader.ReadInt();
                        m_CraftBonusExcep = (CraftList) reader.ReadInt();
                        m_CraftBonusExcepValue = reader.ReadInt();
                        m_ProtectionEntry = (NPC_Name) reader.ReadInt();
                        m_ProtectionValue = reader.ReadInt();
                        m_KillersEntry = (NPC_Name) reader.ReadInt();
                        m_KillersValue = reader.ReadInt();
                        m_TalisSlayer = (TalisSlayerName) reader.ReadInt();
                        m_TalismanType = (TalismanType) reader.ReadInt();
                        m_Charges = reader.ReadInt();

                        goto case 1;
                    }
                case 1:
                    {
                        m_MagicalAttributes = new MagicalAttributes( this, reader );
                        m_AosResistances = new ElementAttributes( this, reader );
                        m_SkillBonuses = new SkillBonuses( this, reader );

                        if ( Parent is Mobile )
                        {
                            //-------- Charged Time Left -----------

                            m_isequiped = true;
                            InvalidateProperties();

                            //------ FIN Charged Time Left ---------
                            m_SkillBonuses.AddTo( (Mobile) Parent );
                        }

                        int strBonus = m_MagicalAttributes.BonusStr;
                        int dexBonus = m_MagicalAttributes.BonusDex;
                        int intBonus = m_MagicalAttributes.BonusInt;

                        if ( Parent is Mobile && ( strBonus != 0 || dexBonus != 0 || intBonus != 0 ) )
                        {
                            Mobile m = (Mobile) Parent;

                            string modName = Serial.ToString();

                            if ( strBonus != 0 )
                                m.AddStatMod( new StatMod( StatType.Str, modName + "Str", strBonus, TimeSpan.Zero ) );

                            if ( dexBonus != 0 )
                                m.AddStatMod( new StatMod( StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero ) );

                            if ( intBonus != 0 )
                                m.AddStatMod( new StatMod( StatType.Int, modName + "Int", intBonus, TimeSpan.Zero ) );
                        }

                        if ( Parent is Mobile )
                            ( (Mobile) Parent ).CheckStatTimers();

                        break;
                    }
                case 0:
                    {
                        if ( Parent is Mobile )
                        {
                            //-------- Charged Time Left -----------

                            m_isequiped = true;
                            InvalidateProperties();

                            //------ FIN Charged Time Left ---------
                            m_SkillBonuses.AddTo( (Mobile) Parent );
                        }
                        m_MagicalAttributes = new MagicalAttributes( this );
                        m_AosResistances = new ElementAttributes( this );
                        m_SkillBonuses = new SkillBonuses( this );

                        break;
                    }
            }

            if ( version < 2 )
            {
                m_Ownable = (bool) reader.ReadBool();
                m_Owner = (Mobile) reader.ReadMobile();
                m_CraftBonusRegular = (CraftList) reader.ReadInt();
                m_CraftBonusRegularValue = reader.ReadInt();
                m_CraftBonusExcep = (CraftList) reader.ReadInt();
                m_CraftBonusExcepValue = reader.ReadInt();
                m_ProtectionEntry = (NPC_Name) reader.ReadInt();
                m_ProtectionValue = reader.ReadInt();
                m_KillersEntry = (NPC_Name) reader.ReadInt();
                m_KillersValue = reader.ReadInt();
                m_TalisSlayer = (TalisSlayerName) reader.ReadInt();
                m_TalismanType = (TalismanType) reader.ReadInt();
                m_Charges = reader.ReadInt();
            }
        }
Exemple #40
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 8:
                    {
                        m_Exceptional = reader.ReadBool();
                        m_PlayerConstructed = reader.ReadBool();
                        m_Crafter = reader.ReadMobile();

                        goto case 7;
                    }
                case 7:
                    {
                        m_AbsorptionAttributes = new AbsorptionAttributes( this, reader );

                        m_TimesImbued = reader.ReadEncodedInt();

                        m_MaxHitPoints = reader.ReadEncodedInt();
                        m_HitPoints = reader.ReadEncodedInt();

                        m_Resource = (CraftResource) reader.ReadEncodedInt();
                        m_GemType = (GemType) reader.ReadEncodedInt();

                        m_MagicalAttributes = new MagicalAttributes( this, reader );
                        m_AosResistances = new ElementAttributes( this, reader );
                        m_SkillBonuses = new SkillBonuses( this, reader );

                        if ( Parent is Mobile )
                            m_SkillBonuses.AddTo( (Mobile) Parent );

                        break;
                    }
            }

            int strBonus = m_MagicalAttributes.BonusStr;
            int dexBonus = m_MagicalAttributes.BonusDex;
            int intBonus = m_MagicalAttributes.BonusInt;

            if ( Parent is Mobile && ( strBonus != 0 || dexBonus != 0 || intBonus != 0 ) )
            {
                Mobile m = (Mobile) Parent;

                string modName = Serial.ToString();

                if ( strBonus != 0 )
                    m.AddStatMod( new StatMod( StatType.Str, modName + "Str", strBonus, TimeSpan.Zero ) );

                if ( dexBonus != 0 )
                    m.AddStatMod( new StatMod( StatType.Dex, modName + "Dex", dexBonus, TimeSpan.Zero ) );

                if ( intBonus != 0 )
                    m.AddStatMod( new StatMod( StatType.Int, modName + "Int", intBonus, TimeSpan.Zero ) );
            }

            if ( Parent is Mobile )
                ( (Mobile) Parent ).CheckStatTimers();
        }