コード例 #1
0
        public virtual int OnCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, BaseTool tool, CraftItem craftItem, int resHue)
        {
            if (Core.ML)
            {
                Quality = (CraftQuality)quality;

                if (makersMark)
                {
                    Crafter = from;
                }

                Type resourceType = typeRes;

                if (resourceType == null)
                {
                    resourceType = craftItem.Resources.GetAt(0).ItemType;
                }

                Hue = CraftResources.GetHue(CraftResources.GetFromType(resourceType));

                CraftContext context = craftSystem.GetContext(from);

                if (context != null && context.DoNotColor)
                {
                    Hue = 0;
                }
            }

            return(quality);
        }
コード例 #2
0
 public BaseClothing( int itemID, Layer layer, int hue )
     : base(itemID)
 {
     Layer = layer;
     Hue = hue;
     m_Quality = CraftQuality.Regular;
 }
コード例 #3
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 2:
            {
                m_Crafter  = reader.ReadMobile();
                m_Quality  = (CraftQuality)reader.ReadEncodedInt();
                m_Resource = (CraftResource)reader.ReadEncodedInt();
                break;
            }

            case 1:                     //Captcha for EmptyBookcase
            case 0:
            {
                m_InheritsBaseCont = true;
                m_OldVersion       = version;
                m_Quality          = CraftQuality.Regular;
                m_Resource         = DefaultResource;
                break;
            }
            }
        }
コード例 #4
0
ファイル: BaseClothing.cs プロジェクト: proxeeus/UORebirth
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 4:
            {
                m_Identified = reader.ReadMobileList();

                goto case 3;
            }

            case 3:
            {
                m_Effect        = (SpellEffect)reader.ReadInt();
                m_EffectCharges = reader.ReadInt();
                if (version < 4)
                {
                    /*m_Identified = */ reader.ReadBool();
                }
                goto case 2;
            }

            case 2:
            {
                m_PlayerConstructed = reader.ReadBool();
                goto case 1;
            }

            case 1:
            {
                m_Crafter = reader.ReadMobile();
                m_Quality = (CraftQuality)reader.ReadInt();
                break;
            }

            case 0:
            {
                m_Crafter = null;
                m_Quality = CraftQuality.Regular;
                break;
            }
            }

            if (version < 2)
            {
                m_PlayerConstructed = false;
            }

            if (Parent is Mobile && m_Effect != SpellEffect.None && m_EffectCharges > 0 && SpellCastEffect.IsRepeatingEffect(m_Effect))
            {
                m_Timer = new CheckTimer(this);
                m_Timer.Start();
            }
        }
コード例 #5
0
        public BaseOtherEquipable(int itemID) : base(itemID)
        {
            m_Quality = CraftQuality.Regular;
            Resource  = DefaultResource;

            m_AosAttributes      = new AosAttributes(this);
            m_AosArmorAttributes = new AosArmorAttributes(this);
            m_AosSkillBonuses    = new AosSkillBonuses(this);

            m_OriginalWeight = Weight;
        }
コード例 #6
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 2:
            {
                m_Crafter = reader.ReadMobile();
                m_Quality = (CraftQuality)reader.ReadEncodedInt();
                goto case 1;
            }

            case 1:
            {
                m_Level = (SecureLevel)reader.ReadInt();
                goto case 0;
            }

            case 0:
            {
                if (version < 1)
                {
                    m_Level = SecureLevel.Anyone;
                }

                if (version < 2)
                {
                    m_Quality = CraftQuality.Regular;
                }

                m_Title = reader.ReadString();

                if (reader.ReadBool())
                {
                    m_Greeting = new PlayerBBMessage(reader);
                }

                int count = reader.ReadEncodedInt();

                m_Messages = new List <PlayerBBMessage>(count);

                for (int i = 0; i < count; ++i)
                {
                    m_Messages.Add(new PlayerBBMessage(reader));
                }

                break;
            }
            }
        }
コード例 #7
0
        public BaseOtherEquipable( int itemID )
            : base(itemID)
        {
            m_Quality = CraftQuality.Regular;
            Resource = DefaultResource;

            m_AosAttributes = new AosAttributes( this );
            m_AosArmorAttributes = new AosArmorAttributes( this );
            m_AosSkillBonuses = new AosSkillBonuses( this );

            m_OriginalWeight = Weight;
        }
コード例 #8
0
ファイル: BaseArmor.cs プロジェクト: proxeeus/UORebirth
        public BaseArmor(int itemID) :  base(itemID)
        {
            m_Quality    = CraftQuality.Regular;
            m_Durability = DurabilityLevel.Regular;
            m_Crafter    = null;

            m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax(InitMinHits, InitMaxHits);

            this.Layer = (Layer)ItemData.Quality;

            m_AosAttributes      = new AosAttributes(this);
            m_AosArmorAttributes = new AosArmorAttributes(this);
            m_AosSkillBonuses    = new AosSkillBonuses(this);
        }
コード例 #9
0
ファイル: BaseArmor.cs プロジェクト: FreeReign/Rebirth-Repack
        public BaseArmor( int itemID )
            : base(itemID)
        {
            m_Quality = CraftQuality.Regular;
            m_Durability = DurabilityLevel.Regular;
            m_Crafter = null;

            m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits );

            this.Layer = (Layer)ItemData.Quality;

            m_AosAttributes = new AosAttributes( this );
            m_AosArmorAttributes = new AosArmorAttributes( this );
            m_AosSkillBonuses = new AosSkillBonuses( this );
        }
コード例 #10
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 1:
            {
                m_Crafter  = reader.ReadMobile();
                m_Quality  = (CraftQuality)reader.ReadEncodedInt();
                m_Resource = (CraftResource)reader.ReadEncodedInt();
                goto case 0;
            }

            case 0:
            {
                m_BurntOut  = reader.ReadBool();
                m_Burning   = reader.ReadBool();
                m_Duration  = reader.ReadTimeSpan();
                m_Protected = reader.ReadBool();

                if (m_Burning && m_Duration != TimeSpan.Zero)
                {
                    DoTimer(reader.ReadDeltaTime() - DateTime.Now);
                }

                break;
            }
            }

            if (version < 1)
            {
                m_Quality  = CraftQuality.Regular;
                m_Resource = DefaultResource;
            }
        }
コード例 #11
0
 public BaseCraftableItem( int itemID )
     : base(itemID)
 {
     m_Quality = CraftQuality.Regular;
     Resource = DefaultResource;
 }
コード例 #12
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch ( version )
            {
                case 2:
                {
                    m_Crafter = reader.ReadMobile();
                    m_Quality = (CraftQuality)reader.ReadEncodedInt();
                    m_Resource = (CraftResource)reader.ReadEncodedInt();
                    break;
                }
                case 1:
                case 0:
                {
                    m_InheritsItem = true;
                    m_OldVersion = version;
                    m_Quality = CraftQuality.Regular;
                    m_Resource = DefaultResource;
                    break;
                }
            }
        }
コード例 #13
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 2:
                {
                    m_Crafter = reader.ReadMobile();
                    m_Quality = (CraftQuality)reader.ReadEncodedInt();
                    goto case 1;
                }
                case 1:
                {
                    m_Level = (SecureLevel)reader.ReadInt();
                    goto case 0;
                }
                case 0:
                {
                    if ( version < 1 )
                        m_Level = SecureLevel.Anyone;

                    if ( version < 2 )
                        m_Quality = CraftQuality.Regular;

                    m_Title = reader.ReadString();

                    if ( reader.ReadBool() )
                        m_Greeting = new PlayerBBMessage( reader );

                    int count = reader.ReadEncodedInt();

                    m_Messages = new List<PlayerBBMessage>( count );

                    for ( int i = 0; i < count; ++i )
                        m_Messages.Add( new PlayerBBMessage( reader ) );

                    break;
                }
            }
        }
コード例 #14
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

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

                if (GetSaveFlag(flags, SaveFlag.Attributes))
                {
                    m_AosAttributes = new AosAttributes(this, reader);
                }
                else
                {
                    m_AosAttributes = new AosAttributes(this);
                }

                if (GetSaveFlag(flags, SaveFlag.ArmorAttributes))
                {
                    m_AosArmorAttributes = new AosArmorAttributes(this, reader);
                }
                else
                {
                    m_AosArmorAttributes = new AosArmorAttributes(this);
                }

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

                if (GetSaveFlag(flags, SaveFlag.Quality))
                {
                    m_Quality = (CraftQuality)reader.ReadEncodedInt();
                }
                else
                {
                    m_Quality = CraftQuality.Regular;
                }

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

                if (m_Resource == CraftResource.None)
                {
                    m_Resource = DefaultResource;
                }

                if (GetSaveFlag(flags, SaveFlag.StrReq))
                {
                    m_StrReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_StrReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.DexReq))
                {
                    m_DexReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_DexReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.IntReq))
                {
                    m_IntReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_IntReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.SkillBonuses))
                {
                    m_AosSkillBonuses = new AosSkillBonuses(this, reader);
                }

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

                if (GetSaveFlag(flags, SaveFlag.BonusRandomAttributes))
                {
                    m_BonusRandomAttributes = new BonusAttribute[reader.ReadInt()];

                    for (int i = 0; i < m_BonusRandomAttributes.Length; i++)
                    {
                        m_BonusRandomAttributes[i] = new BonusAttribute(reader);
                    }
                }

                break;
            }

            case 0:
            {
                m_InheritsItem       = true;
                m_OldVersion         = version;
                m_AosAttributes      = new AosAttributes(this);
                m_AosArmorAttributes = new AosArmorAttributes(this);
                m_Quality            = CraftQuality.Regular;
                m_Resource           = DefaultResource;
                m_PlayerConstructed  = true;
                break;
            }
            }

            if (m_AosSkillBonuses == null)
            {
                m_AosSkillBonuses = new AosSkillBonuses(this);
            }

            if (Core.AOS && Parent is Mobile)
            {
                m_AosSkillBonuses.AddTo((Mobile)Parent);
            }

            if (Parent is Mobile)
            {
                ((Mobile)Parent).CheckStatTimers();
            }
        }
コード例 #15
0
 public BaseFurnitureContainer( int itemID )
     : base(itemID)
 {
     m_Quality = CraftQuality.Regular;
     Resource = DefaultResource;
 }
コード例 #16
0
 public LockableContainer(int itemID) : base(itemID)
 {
     m_Quality      = CraftQuality.Regular;
     Resource       = DefaultResource;
     m_MaxLockLevel = 100;
 }
コード例 #17
0
        public BaseWeapon( int itemID )
            : base(itemID)
        {
            Layer = (Layer)ItemData.Quality;

            m_Quality = CraftQuality.Regular;
            m_StrReq = -1;
            m_DexReq = -1;
            m_IntReq = -1;
            m_MinDamage = -1;
            m_MaxDamage = -1;
            m_HitSound = -1;
            m_MissSound = -1;
            m_Speed = -1;
            m_MaxRange = -1;
            m_Skill = (SkillName)(-1);
            m_Type = (WeaponType)(-1);
            m_Animation = (WeaponAnimation)(-1);

            m_Hits = m_MaxHits = Utility.RandomMinMax( InitMinHits, InitMaxHits );

            m_Resource = CraftResource.Iron;

            m_AosAttributes = new AosAttributes( this );
            m_AosWeaponAttributes = new AosWeaponAttributes( this );
        }
コード例 #18
0
 public BaseCraftableItem(int itemID) : base(itemID)
 {
     m_Quality = CraftQuality.Regular;
     Resource  = DefaultResource;
 }
コード例 #19
0
ファイル: BaseArmor.cs プロジェクト: proxeeus/UORebirth
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 8:
            {
                m_Identified = reader.ReadMobileList();

                goto case 7;
            }

            case 7:
            case 6:
            case 5:
            {
                SaveFlag flags = (SaveFlag)reader.ReadEncodedInt();

                if (GetSaveFlag(flags, SaveFlag.Attributes))
                {
                    m_AosAttributes = new AosAttributes(this, reader);
                }
                else
                {
                    m_AosAttributes = new AosAttributes(this);
                }

                if (GetSaveFlag(flags, SaveFlag.ArmorAttributes))
                {
                    m_AosArmorAttributes = new AosArmorAttributes(this, reader);
                }
                else
                {
                    m_AosArmorAttributes = new AosArmorAttributes(this);
                }

                if (GetSaveFlag(flags, SaveFlag.PhysicalBonus))
                {
                    m_PhysicalBonus = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.FireBonus))
                {
                    m_FireBonus = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.ColdBonus))
                {
                    m_ColdBonus = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.PoisonBonus))
                {
                    m_PoisonBonus = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.EnergyBonus))
                {
                    m_EnergyBonus = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.Identified) && version < 7)
                {
                    reader.ReadBool();
                }
                //m_Identified = ( version >= 7 || reader.ReadBool() );

                if (GetSaveFlag(flags, SaveFlag.MaxHitPoints))
                {
                    m_MaxHitPoints = reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.HitPoints))
                {
                    m_HitPoints = reader.ReadEncodedInt();
                }

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

                if (GetSaveFlag(flags, SaveFlag.Quality))
                {
                    m_Quality = (CraftQuality)reader.ReadEncodedInt();
                }
                else
                {
                    m_Quality = CraftQuality.Regular;
                }

                if (version == 5 && m_Quality == CraftQuality.Low)
                {
                    m_Quality = CraftQuality.Regular;
                }

                if (GetSaveFlag(flags, SaveFlag.Durability))
                {
                    m_Durability = (DurabilityLevel)reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.Protection))
                {
                    m_Protection = (ArmorProtectionLevel)reader.ReadEncodedInt();
                }

                if (GetSaveFlag(flags, SaveFlag.BaseArmor))
                {
                    m_ArmorBase = reader.ReadEncodedInt();
                }
                else
                {
                    m_ArmorBase = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.StrBonus))
                {
                    m_StrBonus = reader.ReadEncodedInt();
                }
                else
                {
                    m_StrBonus = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.DexBonus))
                {
                    m_DexBonus = reader.ReadEncodedInt();
                }
                else
                {
                    m_DexBonus = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.IntBonus))
                {
                    m_IntBonus = reader.ReadEncodedInt();
                }
                else
                {
                    m_IntBonus = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.StrReq))
                {
                    m_StrReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_StrReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.DexReq))
                {
                    m_DexReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_DexReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.IntReq))
                {
                    m_IntReq = reader.ReadEncodedInt();
                }
                else
                {
                    m_IntReq = -1;
                }

                if (GetSaveFlag(flags, SaveFlag.MedAllowance))
                {
                    m_Meditate = (AMA)reader.ReadEncodedInt();
                }
                else
                {
                    m_Meditate = (AMA)(-1);
                }

                if (GetSaveFlag(flags, SaveFlag.SkillBonuses))
                {
                    m_AosSkillBonuses = new AosSkillBonuses(this, reader);
                }

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

                break;
            }

            case 4:
            {
                m_AosAttributes      = new AosAttributes(this, reader);
                m_AosArmorAttributes = new AosArmorAttributes(this, reader);
                goto case 3;
            }

            case 3:
            {
                m_PhysicalBonus = reader.ReadInt();
                m_FireBonus     = reader.ReadInt();
                m_ColdBonus     = reader.ReadInt();
                m_PoisonBonus   = reader.ReadInt();
                m_EnergyBonus   = reader.ReadInt();
                goto case 2;
            }

            case 2:
            case 1:
            {
                /*m_Identified = */ reader.ReadBool();
                goto case 0;
            }

            case 0:
            {
                m_ArmorBase    = reader.ReadInt();
                m_MaxHitPoints = reader.ReadInt();
                m_HitPoints    = reader.ReadInt();
                m_Crafter      = reader.ReadMobile();
                m_Quality      = (CraftQuality)reader.ReadInt();
                m_Durability   = (DurabilityLevel)reader.ReadInt();
                m_Protection   = (ArmorProtectionLevel)reader.ReadInt();

                AMT mat = (AMT)reader.ReadInt();

                if (m_ArmorBase == RevertArmorBase)
                {
                    m_ArmorBase = -1;
                }

                /*m_BodyPos = (ArmorBodyType)*/ reader.ReadInt();

                if (version < 4)
                {
                    m_AosAttributes      = new AosAttributes(this);
                    m_AosArmorAttributes = new AosArmorAttributes(this);
                }

                if (version < 3 && m_Quality == CraftQuality.Exceptional)
                {
                    DistributeBonuses(6);
                }

                m_StrBonus = reader.ReadInt();
                m_DexBonus = reader.ReadInt();
                m_IntBonus = reader.ReadInt();
                m_StrReq   = reader.ReadInt();
                m_DexReq   = reader.ReadInt();
                m_IntReq   = reader.ReadInt();

                if (m_StrBonus == OldStrBonus)
                {
                    m_StrBonus = -1;
                }

                if (m_DexBonus == OldDexBonus)
                {
                    m_DexBonus = -1;
                }

                if (m_IntBonus == OldIntBonus)
                {
                    m_IntBonus = -1;
                }

                if (m_StrReq == OldStrReq)
                {
                    m_StrReq = -1;
                }

                if (m_DexReq == OldDexReq)
                {
                    m_DexReq = -1;
                }

                if (m_IntReq == OldIntReq)
                {
                    m_IntReq = -1;
                }

                m_Meditate = (AMA)reader.ReadInt();

                if (m_Meditate == OldMedAllowance)
                {
                    m_Meditate = (AMA)(-1);
                }

                if (m_MaxHitPoints == 0 && m_HitPoints == 0)
                {
                    m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax(InitMinHits, InitMaxHits);
                }

                break;
            }
            }

            if (m_AosSkillBonuses == null)
            {
                m_AosSkillBonuses = new AosSkillBonuses(this);
            }

            if (Core.AOS && Parent is Mobile)
            {
                m_AosSkillBonuses.AddTo((Mobile)Parent);
            }

            int strBonus = ComputeStatBonus(StatType.Str);
            int dexBonus = ComputeStatBonus(StatType.Dex);
            int intBonus = ComputeStatBonus(StatType.Int);

            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();
            }

            if (version < 7)
            {
                m_PlayerConstructed = true;                 // we don't know, so, assume it's crafted
            }
        }
コード例 #20
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

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

                    if ( GetSaveFlag( flags, SaveFlag.Attributes ) )
                        m_AosAttributes = new AosAttributes( this, reader );
                    else
                        m_AosAttributes = new AosAttributes( this );

                    if ( GetSaveFlag( flags, SaveFlag.ArmorAttributes ) )
                        m_AosArmorAttributes = new AosArmorAttributes( this, reader );
                    else
                        m_AosArmorAttributes = new AosArmorAttributes( this );

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

                    if ( GetSaveFlag( flags, SaveFlag.Quality ) )
                        m_Quality = (CraftQuality)reader.ReadEncodedInt();
                    else
                        m_Quality = CraftQuality.Regular;

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

                    if ( m_Resource == CraftResource.None )
                        m_Resource = DefaultResource;

                    if ( GetSaveFlag( flags, SaveFlag.StrReq ) )
                        m_StrReq = reader.ReadEncodedInt();
                    else
                        m_StrReq = -1;

                    if ( GetSaveFlag( flags, SaveFlag.DexReq ) )
                        m_DexReq = reader.ReadEncodedInt();
                    else
                        m_DexReq = -1;

                    if ( GetSaveFlag( flags, SaveFlag.IntReq ) )
                        m_IntReq = reader.ReadEncodedInt();
                    else
                        m_IntReq = -1;

                    if ( GetSaveFlag( flags, SaveFlag.SkillBonuses ) )
                        m_AosSkillBonuses = new AosSkillBonuses( this, reader );

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

                    if ( GetSaveFlag( flags, SaveFlag.BonusRandomAttributes ) )
                    {
                        m_BonusRandomAttributes = new BonusAttribute[reader.ReadInt()];

                        for( int i = 0; i < m_BonusRandomAttributes.Length; i++ )
                            m_BonusRandomAttributes[i] =  new BonusAttribute( reader );
                    }

                    break;
                }
                case 0:
                {
                    m_InheritsItem = true;
                    m_OldVersion = version;
                    m_AosAttributes = new AosAttributes( this );
                    m_AosArmorAttributes = new AosArmorAttributes( this );
                    m_Quality = CraftQuality.Regular;
                    m_Resource = DefaultResource;
                    m_PlayerConstructed = true;
                    break;
                }
            }

            if ( m_AosSkillBonuses == null )
                m_AosSkillBonuses = new AosSkillBonuses( this );

            if ( Core.AOS && Parent is Mobile )
                m_AosSkillBonuses.AddTo( (Mobile)Parent );

            if ( Parent is Mobile )
                ((Mobile)Parent).CheckStatTimers();
        }
コード例 #21
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 8:
                {
                    m_Identified = reader.ReadMobileList();

                    goto case 7;
                }
                case 7:
                case 6:
                case 5:
                {
                    SaveFlag flags = (SaveFlag)reader.ReadInt();

                    if ( GetSaveFlag( flags, SaveFlag.DamageLevel ) )
                        m_DamageLevel = (WeaponDamageLevel)reader.ReadInt();

                    if ( GetSaveFlag( flags, SaveFlag.AccuracyLevel ) )
                        m_AccuracyLevel = (WeaponAccuracyLevel)reader.ReadInt();

                    if ( GetSaveFlag( flags, SaveFlag.DurabilityLevel ) )
                        m_DurabilityLevel = (DurabilityLevel)reader.ReadInt();

                    if ( GetSaveFlag( flags, SaveFlag.Quality ) )
                        m_Quality = (CraftQuality)reader.ReadInt();
                    else
                        m_Quality = CraftQuality.Regular;

                    if ( GetSaveFlag( flags, SaveFlag.Hits ) )
                        m_Hits = reader.ReadInt();

                    if ( GetSaveFlag( flags, SaveFlag.MaxHits ) )
                        m_MaxHits = reader.ReadInt();

                    if ( GetSaveFlag( flags, SaveFlag.Slayer ) )
                        m_Slayer = (SlayerName)reader.ReadInt();

                    if ( GetSaveFlag( flags, SaveFlag.Poison ) )
                        m_Poison = Poison.Deserialize( reader );

                    if ( GetSaveFlag( flags, SaveFlag.PoisonCharges ) )
                    {
                        m_PoisonCharges = reader.ReadInt();
                        if ( version >= 7 )
                            m_PoisonChance = reader.ReadDouble();
                        else
                            m_PoisonChance = Utility.RandomDouble() * 0.25;
                    }

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

                    if ( GetSaveFlag( flags, SaveFlag.Identified ) && version < 6 )
                        reader.ReadBool();
                        //m_Identified = ( version >= 6 || reader.ReadBool() );

                    if ( GetSaveFlag( flags, SaveFlag.StrReq ) )
                        m_StrReq = reader.ReadInt();
                    else
                        m_StrReq = -1;

                    if ( GetSaveFlag( flags, SaveFlag.DexReq ) )
                        m_DexReq = reader.ReadInt();
                    else
                        m_DexReq = -1;

                    if ( GetSaveFlag( flags, SaveFlag.IntReq ) )
                        m_IntReq = reader.ReadInt();
                    else
                        m_IntReq = -1;

                    if ( GetSaveFlag( flags, SaveFlag.MinDamage ) )
                        m_MinDamage = reader.ReadInt();
                    else
                        m_MinDamage = -1;

                    if ( GetSaveFlag( flags, SaveFlag.MaxDamage ) )
                        m_MaxDamage = reader.ReadInt();
                    else
                        m_MaxDamage = -1;

                    if ( GetSaveFlag( flags, SaveFlag.HitSound ) )
                        m_HitSound = reader.ReadInt();
                    else
                        m_HitSound = -1;

                    if ( GetSaveFlag( flags, SaveFlag.MissSound ) )
                        m_MissSound = reader.ReadInt();
                    else
                        m_MissSound = -1;

                    if ( GetSaveFlag( flags, SaveFlag.Speed ) )
                        m_Speed = reader.ReadInt();
                    else
                        m_Speed = -1;

                    if ( GetSaveFlag( flags, SaveFlag.MaxRange ) )
                        m_MaxRange = reader.ReadInt();
                    else
                        m_MaxRange = -1;

                    if ( GetSaveFlag( flags, SaveFlag.Skill ) )
                        m_Skill = (SkillName)reader.ReadInt();
                    else
                        m_Skill = (SkillName)(-1);

                    if ( GetSaveFlag( flags, SaveFlag.Type ) )
                        m_Type = (WeaponType)reader.ReadInt();
                    else
                        m_Type = (WeaponType)(-1);

                    if ( GetSaveFlag( flags, SaveFlag.Animation ) )
                        m_Animation = (WeaponAnimation)reader.ReadInt();
                    else
                        m_Animation = (WeaponAnimation)(-1);

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

                    if ( GetSaveFlag( flags, SaveFlag.xAttributes ) )
                        m_AosAttributes = new AosAttributes( this, reader );
                    else
                        m_AosAttributes = new AosAttributes( this );

                    if ( GetSaveFlag( flags, SaveFlag.xWeaponAttributes ) )
                        m_AosWeaponAttributes = new AosWeaponAttributes( this, reader );
                    else
                        m_AosWeaponAttributes = new AosWeaponAttributes( this );

                    if ( UseSkillMod && m_AccuracyLevel != WeaponAccuracyLevel.Regular && Parent is Mobile )
                    {
                        m_SkillMod = new DefaultSkillMod( AccuracyMod, true, (int)m_AccuracyLevel * 5 );
                        ((Mobile)Parent).AddSkillMod( m_SkillMod );
                    }

                    if ( Core.AOS && m_AosWeaponAttributes.MageWeapon != 0 && Parent is Mobile )
                    {
                        m_MageMod = new DefaultSkillMod( SkillName.Magery, true, -m_AosWeaponAttributes.MageWeapon );
                        ((Mobile)Parent).AddSkillMod( m_MageMod );
                    }

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

                    if ( GetSaveFlag( flags, SaveFlag.SpellEffect ) )
                    {
                        m_Effect = (SpellEffect)reader.ReadInt();
                        m_EffectCharges = reader.ReadInt();
                    }

                    break;
                }
                case 4:
                {
                    m_Slayer = (SlayerName)reader.ReadInt();

                    goto case 3;
                }
                case 3:
                {
                    m_StrReq = reader.ReadInt();
                    m_DexReq = reader.ReadInt();
                    m_IntReq = reader.ReadInt();

                    goto case 2;
                }
                case 2:
                {
                    /*m_Identified = */reader.ReadBool();

                    goto case 1;
                }
                case 1:
                {
                    m_MaxRange = reader.ReadInt();

                    goto case 0;
                }
                case 0:
                {
                    if ( version == 0 )
                        m_MaxRange = 1; // default

                    if ( version < 5 )
                    {
                        m_Resource = CraftResource.Iron;
                        m_AosAttributes = new AosAttributes( this );
                        m_AosWeaponAttributes = new AosWeaponAttributes( this );
                    }

                    m_MinDamage = reader.ReadInt();
                    m_MaxDamage = reader.ReadInt();

                    m_Speed = reader.ReadInt();

                    m_HitSound = reader.ReadInt();
                    m_MissSound = reader.ReadInt();

                    m_Skill = (SkillName)reader.ReadInt();
                    m_Type = (WeaponType)reader.ReadInt();
                    m_Animation = (WeaponAnimation)reader.ReadInt();
                    m_DamageLevel = (WeaponDamageLevel)reader.ReadInt();
                    m_AccuracyLevel = (WeaponAccuracyLevel)reader.ReadInt();
                    m_DurabilityLevel = (DurabilityLevel)reader.ReadInt();
                    m_Quality = (CraftQuality)reader.ReadInt();

                    m_Crafter = reader.ReadMobile();

                    m_Poison = Poison.Deserialize( reader );
                    m_PoisonCharges = reader.ReadInt();

                    if ( m_StrReq == OldStrengthReq )
                        m_StrReq = -1;

                    if ( m_DexReq == OldDexterityReq )
                        m_DexReq = -1;

                    if ( m_IntReq == OldIntelligenceReq )
                        m_IntReq = -1;

                    if ( m_MinDamage == OldMinDamage )
                        m_MinDamage = -1;

                    if ( m_MaxDamage == OldMaxDamage )
                        m_MaxDamage = -1;

                    if ( m_HitSound == OldHitSound )
                        m_HitSound = -1;

                    if ( m_MissSound == OldMissSound )
                        m_MissSound = -1;

                    if ( m_Speed == OldSpeed )
                        m_Speed = -1;

                    if ( m_MaxRange == OldMaxRange )
                        m_MaxRange = -1;

                    if ( m_Skill == OldSkill )
                        m_Skill = (SkillName)(-1);

                    if ( m_Type == OldType )
                        m_Type = (WeaponType)(-1);

                    if ( m_Animation == OldAnimation )
                        m_Animation = (WeaponAnimation)(-1);

                    if ( UseSkillMod && m_AccuracyLevel != WeaponAccuracyLevel.Regular && Parent is Mobile )
                    {
                        m_SkillMod = new DefaultSkillMod( AccuracyMod, true, (int)m_AccuracyLevel * 5);
                        ((Mobile)Parent).AddSkillMod( m_SkillMod );
                    }

                    break;
                }
            }

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

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

                string modName = this.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();

            if ( m_Hits <= 0 && m_MaxHits <= 0 )
            {
                m_Hits = m_MaxHits = Utility.RandomMinMax( InitMinHits, InitMaxHits );
            }

            if ( version < 6 )
                m_PlayerConstructed = true; // we don't know, so, assume it's crafted
        }
コード例 #22
0
ファイル: BaseArmor.cs プロジェクト: FreeReign/Rebirth-Repack
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 8:
                {
                    m_Identified = reader.ReadMobileList();

                    goto case 7;
                }
                case 7:
                case 6:
                case 5:
                {
                    SaveFlag flags = (SaveFlag)reader.ReadEncodedInt();

                    if ( GetSaveFlag( flags, SaveFlag.Attributes ) )
                        m_AosAttributes = new AosAttributes( this, reader );
                    else
                        m_AosAttributes = new AosAttributes( this );

                    if ( GetSaveFlag( flags, SaveFlag.ArmorAttributes ) )
                        m_AosArmorAttributes = new AosArmorAttributes( this, reader );
                    else
                        m_AosArmorAttributes = new AosArmorAttributes( this );

                    if ( GetSaveFlag( flags, SaveFlag.PhysicalBonus ) )
                        m_PhysicalBonus = reader.ReadEncodedInt();

                    if ( GetSaveFlag( flags, SaveFlag.FireBonus ) )
                        m_FireBonus = reader.ReadEncodedInt();

                    if ( GetSaveFlag( flags, SaveFlag.ColdBonus ) )
                        m_ColdBonus = reader.ReadEncodedInt();

                    if ( GetSaveFlag( flags, SaveFlag.PoisonBonus ) )
                        m_PoisonBonus = reader.ReadEncodedInt();

                    if ( GetSaveFlag( flags, SaveFlag.EnergyBonus ) )
                        m_EnergyBonus = reader.ReadEncodedInt();

                    if ( GetSaveFlag( flags, SaveFlag.Identified ) && version < 7 )
                        reader.ReadBool();
                        //m_Identified = ( version >= 7 || reader.ReadBool() );

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

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

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

                    if ( GetSaveFlag( flags, SaveFlag.Quality ) )
                        m_Quality = (CraftQuality)reader.ReadEncodedInt();
                    else
                        m_Quality = CraftQuality.Regular;

                    if ( version == 5 && m_Quality == CraftQuality.Low )
                        m_Quality = CraftQuality.Regular;

                    if ( GetSaveFlag( flags, SaveFlag.Durability ) )
                        m_Durability = (DurabilityLevel)reader.ReadEncodedInt();

                    if ( GetSaveFlag( flags, SaveFlag.Protection ) )
                        m_Protection = (ArmorProtectionLevel)reader.ReadEncodedInt();

                    if ( GetSaveFlag( flags, SaveFlag.BaseArmor ) )
                        m_ArmorBase = reader.ReadEncodedInt();
                    else
                        m_ArmorBase = -1;

                    if ( GetSaveFlag( flags, SaveFlag.StrBonus ) )
                        m_StrBonus = reader.ReadEncodedInt();
                    else
                        m_StrBonus = -1;

                    if ( GetSaveFlag( flags, SaveFlag.DexBonus ) )
                        m_DexBonus = reader.ReadEncodedInt();
                    else
                        m_DexBonus = -1;

                    if ( GetSaveFlag( flags, SaveFlag.IntBonus ) )
                        m_IntBonus = reader.ReadEncodedInt();
                    else
                        m_IntBonus = -1;

                    if ( GetSaveFlag( flags, SaveFlag.StrReq ) )
                        m_StrReq = reader.ReadEncodedInt();
                    else
                        m_StrReq = -1;

                    if ( GetSaveFlag( flags, SaveFlag.DexReq ) )
                        m_DexReq = reader.ReadEncodedInt();
                    else
                        m_DexReq = -1;

                    if ( GetSaveFlag( flags, SaveFlag.IntReq ) )
                        m_IntReq = reader.ReadEncodedInt();
                    else
                        m_IntReq = -1;

                    if ( GetSaveFlag( flags, SaveFlag.MedAllowance ) )
                        m_Meditate = (AMA)reader.ReadEncodedInt();
                    else
                        m_Meditate = (AMA)(-1);

                    if ( GetSaveFlag( flags, SaveFlag.SkillBonuses ) )
                        m_AosSkillBonuses = new AosSkillBonuses( this, reader );

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

                    break;
                }
                case 4:
                {
                    m_AosAttributes = new AosAttributes( this, reader );
                    m_AosArmorAttributes = new AosArmorAttributes( this, reader );
                    goto case 3;
                }
                case 3:
                {
                    m_PhysicalBonus = reader.ReadInt();
                    m_FireBonus = reader.ReadInt();
                    m_ColdBonus = reader.ReadInt();
                    m_PoisonBonus = reader.ReadInt();
                    m_EnergyBonus = reader.ReadInt();
                    goto case 2;
                }
                case 2:
                case 1:
                {
                    /*m_Identified = */reader.ReadBool();
                    goto case 0;
                }
                case 0:
                {
                    m_ArmorBase = reader.ReadInt();
                    m_MaxHitPoints = reader.ReadInt();
                    m_HitPoints = reader.ReadInt();
                    m_Crafter = reader.ReadMobile();
                    m_Quality = (CraftQuality)reader.ReadInt();
                    m_Durability = (DurabilityLevel)reader.ReadInt();
                    m_Protection = (ArmorProtectionLevel)reader.ReadInt();

                    AMT mat = (AMT)reader.ReadInt();

                    if ( m_ArmorBase == RevertArmorBase )
                        m_ArmorBase = -1;

                    /*m_BodyPos = (ArmorBodyType)*/reader.ReadInt();

                    if ( version < 4 )
                    {
                        m_AosAttributes = new AosAttributes( this );
                        m_AosArmorAttributes = new AosArmorAttributes( this );
                    }

                    if ( version < 3 && m_Quality == CraftQuality.Exceptional )
                        DistributeBonuses( 6 );

                    m_StrBonus = reader.ReadInt();
                    m_DexBonus = reader.ReadInt();
                    m_IntBonus = reader.ReadInt();
                    m_StrReq = reader.ReadInt();
                    m_DexReq = reader.ReadInt();
                    m_IntReq = reader.ReadInt();

                    if ( m_StrBonus == OldStrBonus )
                        m_StrBonus = -1;

                    if ( m_DexBonus == OldDexBonus )
                        m_DexBonus = -1;

                    if ( m_IntBonus == OldIntBonus )
                        m_IntBonus = -1;

                    if ( m_StrReq == OldStrReq )
                        m_StrReq = -1;

                    if ( m_DexReq == OldDexReq )
                        m_DexReq = -1;

                    if ( m_IntReq == OldIntReq )
                        m_IntReq = -1;

                    m_Meditate = (AMA)reader.ReadInt();

                    if ( m_Meditate == OldMedAllowance )
                        m_Meditate = (AMA)(-1);

                    if ( m_MaxHitPoints == 0 && m_HitPoints == 0 )
                        m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits );

                    break;
                }
            }

            if ( m_AosSkillBonuses == null )
                m_AosSkillBonuses = new AosSkillBonuses( this );

            if ( Core.AOS && Parent is Mobile )
                m_AosSkillBonuses.AddTo( (Mobile)Parent );

            int strBonus = ComputeStatBonus( StatType.Str );
            int dexBonus = ComputeStatBonus( StatType.Dex );
            int intBonus = ComputeStatBonus( StatType.Int );

            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();

            if ( version < 7 )
                m_PlayerConstructed = true; // we don't know, so, assume it's crafted
        }
コード例 #23
0
ファイル: BaseClothing.cs プロジェクト: proxeeus/UORebirth
 public BaseClothing(int itemID, Layer layer, int hue) : base(itemID)
 {
     Layer     = layer;
     Hue       = hue;
     m_Quality = CraftQuality.Regular;
 }
コード例 #24
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 4:
                {
                    m_Identified = reader.ReadMobileList();

                    goto case 3;
                }
                case 3:
                {
                    m_Effect = (SpellEffect)reader.ReadInt();
                    m_EffectCharges = reader.ReadInt();
                    if ( version < 4 )
                        /*m_Identified = */reader.ReadBool();
                    goto case 2;
                }
                case 2:
                {
                    m_PlayerConstructed = reader.ReadBool();
                    goto case 1;
                }
                case 1:
                {
                    m_Crafter = reader.ReadMobile();
                    m_Quality = (CraftQuality)reader.ReadInt();
                    break;
                }
                case 0:
                {
                    m_Crafter = null;
                    m_Quality = CraftQuality.Regular;
                    break;
                }
            }

            if ( version < 2 )
                m_PlayerConstructed = false;

            if ( Parent is Mobile && m_Effect != SpellEffect.None && m_EffectCharges > 0 && SpellCastEffect.IsRepeatingEffect( m_Effect ) )
            {
                m_Timer = new CheckTimer( this );
                m_Timer.Start();
            }
        }
コード例 #25
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 7:
            {
                m_Quality  = (CraftQuality)reader.ReadInt();
                m_Resource = (CraftResource)reader.ReadInt();
                m_Crafter  = reader.ReadMobile();
                goto case 6;
            }

            case 6:
            {
                m_IsShipwreckedItem = reader.ReadBool();

                goto case 5;
            }

            case 5:
            {
                m_TrapOnLockpick = reader.ReadBool();

                goto case 4;
            }

            case 4:
            {
                m_RequiredSkill = reader.ReadInt();

                goto case 3;
            }

            case 3:
            {
                m_MaxLockLevel = reader.ReadInt();

                goto case 2;
            }

            case 2:
            {
                m_KeyValue = reader.ReadUInt();

                goto case 1;
            }

            case 1:
            {
                m_LockLevel = reader.ReadInt();

                goto case 0;
            }

            case 0:
            {
                if (version < 3)
                {
                    m_MaxLockLevel = 100;
                }

                if (version < 4)
                {
                    if ((m_MaxLockLevel - m_LockLevel) == 40)
                    {
                        m_RequiredSkill = m_LockLevel + 6;
                        m_LockLevel     = m_RequiredSkill - 10;
                        m_MaxLockLevel  = m_RequiredSkill + 39;
                    }
                    else
                    {
                        m_RequiredSkill = m_LockLevel;
                    }
                }

                if (version < 7)
                {
                    m_Quality  = CraftQuality.Regular;
                    m_Resource = DefaultResource;
                }

                m_Locked = reader.ReadBool();

                break;
            }
            }
        }
コード例 #26
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 1:
                {
                    m_Crafter = reader.ReadMobile();
                    m_Quality = (CraftQuality)reader.ReadEncodedInt();
                    m_Resource = (CraftResource)reader.ReadEncodedInt();
                    goto case 0;
                }
                case 0:
                {
                    m_BurntOut = reader.ReadBool();
                    m_Burning = reader.ReadBool();
                    m_Duration = reader.ReadTimeSpan();
                    m_Protected = reader.ReadBool();

                    if ( m_Burning && m_Duration != TimeSpan.Zero )
                        DoTimer( reader.ReadDeltaTime() - DateTime.Now );

                    break;
                }
            }

            if ( version < 1 )
            {
                m_Quality = CraftQuality.Regular;
                m_Resource = DefaultResource;
            }
        }
コード例 #27
0
 public BaseFurnitureContainer(int itemID) : base(itemID)
 {
     m_Quality = CraftQuality.Regular;
     Resource  = DefaultResource;
 }