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); }
public BaseClothing( int itemID, Layer layer, int hue ) : base(itemID) { Layer = layer; Hue = hue; m_Quality = CraftQuality.Regular; }
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; } } }
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(); } }
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; }
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; } } }
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; }
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); }
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 ); }
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; } }
public BaseCraftableItem( int itemID ) : base(itemID) { m_Quality = CraftQuality.Regular; Resource = DefaultResource; }
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; } } }
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; } } }
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(); } }
public BaseFurnitureContainer( int itemID ) : base(itemID) { m_Quality = CraftQuality.Regular; Resource = DefaultResource; }
public LockableContainer(int itemID) : base(itemID) { m_Quality = CraftQuality.Regular; Resource = DefaultResource; m_MaxLockLevel = 100; }
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 ); }
public BaseCraftableItem(int itemID) : base(itemID) { m_Quality = CraftQuality.Regular; Resource = DefaultResource; }
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 } }
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(); }
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 }
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 }
public BaseClothing(int itemID, Layer layer, int hue) : base(itemID) { Layer = layer; Hue = hue; m_Quality = CraftQuality.Regular; }
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(); } }
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; } } }
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; } }
public BaseFurnitureContainer(int itemID) : base(itemID) { m_Quality = CraftQuality.Regular; Resource = DefaultResource; }