public EnhancementAttributes(string title) { this.Title = title; this.Attributes = new AosAttributes(null); this.WeaponAttributes = new AosWeaponAttributes(null); this.ArmorAttributes = new AosArmorAttributes(null); this.AbsorptionAttributes = new SAAbsorptionAttributes(null); }
public EnhancementAttributes( string title ) { Title = title; Attributes = new AosAttributes( null ); WeaponAttributes = new AosWeaponAttributes( null ); ArmorAttributes = new AosArmorAttributes( null ); AbsorptionAttributes = new SAAbsorptionAttributes( null ); }
public BaseClothing( int itemID, Layer layer, int hue ) : base(itemID) { Layer = layer; Hue = hue; m_Quality = ClothingQuality.Regular; m_AosAttributes = new AosAttributes( this ); m_AosClothingAttributes = new AosArmorAttributes( this ); m_AosSkillBonuses = new AosSkillBonuses( this ); m_AosResistances = new AosElementAttributes( this ); }
public BaseClothing( int itemID, Layer layer, int hue ) : base(itemID) { Layer = layer; Hue = hue; m_Resource = DefaultResource; m_Quality = ClothingQuality.Regular; m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits ); m_AosAttributes = new AosAttributes( this ); m_AosClothingAttributes = new AosArmorAttributes( this ); m_AosSkillBonuses = new AosSkillBonuses( this ); m_AosResistances = new AosElementAttributes( this ); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch ( version ) { case 7: { #region SF Imbuing Physical_Modded = reader.ReadBool(); Fire_Modded = reader.ReadBool(); Cold_Modded = reader.ReadBool(); Poison_Modded = reader.ReadBool(); Energy_Modded = reader.ReadBool(); #endregion goto case 6; } case 6: { this.m_TimesImbued = reader.ReadInt(); this.m_BlessedBy = reader.ReadMobile(); #region Mondain's Legacy Sets SetFlag sflags = (SetFlag)reader.ReadEncodedInt(); if (GetSaveFlag(sflags, SetFlag.Attributes)) this.m_SetAttributes = new AosAttributes(this, reader); else this.m_SetAttributes = new AosAttributes(this); if (GetSaveFlag(sflags, SetFlag.ArmorAttributes)) this.m_SetSelfRepair = (new AosArmorAttributes(this, reader)).SelfRepair; if (GetSaveFlag(sflags, SetFlag.SkillBonuses)) this.m_SetSkillBonuses = new AosSkillBonuses(this, reader); else this.m_SetSkillBonuses = new AosSkillBonuses(this); if (GetSaveFlag(sflags, SetFlag.PhysicalBonus)) this.m_SetPhysicalBonus = reader.ReadEncodedInt(); if (GetSaveFlag(sflags, SetFlag.FireBonus)) this.m_SetFireBonus = reader.ReadEncodedInt(); if (GetSaveFlag(sflags, SetFlag.ColdBonus)) this.m_SetColdBonus = reader.ReadEncodedInt(); if (GetSaveFlag(sflags, SetFlag.PoisonBonus)) this.m_SetPoisonBonus = reader.ReadEncodedInt(); if (GetSaveFlag(sflags, SetFlag.EnergyBonus)) this.m_SetEnergyBonus = reader.ReadEncodedInt(); if (GetSaveFlag(sflags, SetFlag.SetHue)) this.m_SetHue = reader.ReadEncodedInt(); if (GetSaveFlag(sflags, SetFlag.LastEquipped)) this.m_LastEquipped = reader.ReadBool(); if (GetSaveFlag(sflags, SetFlag.SetEquipped)) this.m_SetEquipped = reader.ReadBool(); if (GetSaveFlag(sflags, SetFlag.SetSelfRepair)) this.m_SetSelfRepair = reader.ReadEncodedInt(); #endregion goto case 5; } case 5: { SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if (GetSaveFlag(flags, SaveFlag.Resource)) this.m_Resource = (CraftResource)reader.ReadEncodedInt(); else this.m_Resource = this.DefaultResource; if (GetSaveFlag(flags, SaveFlag.Attributes)) this.m_AosAttributes = new AosAttributes(this, reader); else this.m_AosAttributes = new AosAttributes(this); if (GetSaveFlag(flags, SaveFlag.ClothingAttributes)) this.m_AosClothingAttributes = new AosArmorAttributes(this, reader); else this.m_AosClothingAttributes = new AosArmorAttributes(this); if (GetSaveFlag(flags, SaveFlag.SkillBonuses)) this.m_AosSkillBonuses = new AosSkillBonuses(this, reader); else this.m_AosSkillBonuses = new AosSkillBonuses(this); if (GetSaveFlag(flags, SaveFlag.Resistances)) this.m_AosResistances = new AosElementAttributes(this, reader); else this.m_AosResistances = new AosElementAttributes(this); if (GetSaveFlag(flags, SaveFlag.MaxHitPoints)) this.m_MaxHitPoints = reader.ReadEncodedInt(); if (GetSaveFlag(flags, SaveFlag.HitPoints)) this.m_HitPoints = reader.ReadEncodedInt(); if (GetSaveFlag(flags, SaveFlag.Crafter)) this.m_Crafter = reader.ReadMobile(); if (GetSaveFlag(flags, SaveFlag.Quality)) this.m_Quality = (ClothingQuality)reader.ReadEncodedInt(); else this.m_Quality = ClothingQuality.Regular; if (GetSaveFlag(flags, SaveFlag.StrReq)) this.m_StrReq = reader.ReadEncodedInt(); else this.m_StrReq = -1; if (GetSaveFlag(flags, SaveFlag.PlayerConstructed)) this.m_PlayerConstructed = true; break; } case 4: { this.m_Resource = (CraftResource)reader.ReadInt(); goto case 3; } case 3: { this.m_AosAttributes = new AosAttributes(this, reader); this.m_AosClothingAttributes = new AosArmorAttributes(this, reader); this.m_AosSkillBonuses = new AosSkillBonuses(this, reader); this.m_AosResistances = new AosElementAttributes(this, reader); goto case 2; } case 2: { this.m_PlayerConstructed = reader.ReadBool(); goto case 1; } case 1: { this.m_Crafter = reader.ReadMobile(); this.m_Quality = (ClothingQuality)reader.ReadInt(); break; } case 0: { this.m_Crafter = null; this.m_Quality = ClothingQuality.Regular; break; } } #region Mondain's Legacy Sets if (this.m_SetAttributes == null) this.m_SetAttributes = new AosAttributes(this); if (this.m_SetSkillBonuses == null) this.m_SetSkillBonuses = new AosSkillBonuses(this); #endregion if (version < 2) this.m_PlayerConstructed = true; // we don't know, so, assume it's crafted if (version < 3) { this.m_AosAttributes = new AosAttributes(this); this.m_AosClothingAttributes = new AosArmorAttributes(this); this.m_AosSkillBonuses = new AosSkillBonuses(this); this.m_AosResistances = new AosElementAttributes(this); } if (version < 4) this.m_Resource = this.DefaultResource; if (this.m_MaxHitPoints == 0 && this.m_HitPoints == 0) this.m_HitPoints = this.m_MaxHitPoints = Utility.RandomMinMax(this.InitMinHits, this.InitMaxHits); Mobile parent = this.Parent as Mobile; if (parent != null) { if (Core.AOS) this.m_AosSkillBonuses.AddTo(parent); this.AddStatBonuses(parent); parent.CheckStatTimers(); } }
public static int GetChance( AosArmorAttribute attr, AosArmorAttributes itemAttrs ) { int chance; switch ( attr ) { case AosArmorAttribute.DurabilityBonus: chance = itemAttrs[attr] / 50; break; case AosArmorAttribute.LowerStatReq: chance = itemAttrs[attr] / 6; break; default: chance = itemAttrs[attr] / 2; break; } return chance; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { #region ItemID_Mods case 6: { SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if ( GetSaveFlag( flags, SaveFlag.Resource ) ) m_Resource = (CraftResource)reader.ReadEncodedInt(); else m_Resource = DefaultResource; if ( GetSaveFlag( flags, SaveFlag.Attributes ) ) m_AosAttributes = new AosAttributes( this, reader ); else m_AosAttributes = new AosAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.ClothingAttributes ) ) m_AosClothingAttributes = new AosArmorAttributes( this, reader ); else m_AosClothingAttributes = new AosArmorAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.SkillBonuses ) ) m_AosSkillBonuses = new AosSkillBonuses( this, reader ); else m_AosSkillBonuses = new AosSkillBonuses( this ); if ( GetSaveFlag( flags, SaveFlag.Resistances ) ) m_AosResistances = new AosElementAttributes( this, reader ); else m_AosResistances = new AosElementAttributes( this ); 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 = (ClothingQuality)reader.ReadEncodedInt(); else m_Quality = ClothingQuality.Regular; if ( GetSaveFlag( flags, SaveFlag.StrReq ) ) m_StrReq = reader.ReadEncodedInt(); else m_StrReq = -1; if ( GetSaveFlag( flags, SaveFlag.PlayerConstructed ) ) m_PlayerConstructed = true; if ( GetSaveFlag( flags, SaveFlag.Identified ) ) m_Identified = true; break; } #endregion case 5: { SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if ( GetSaveFlag( flags, SaveFlag.Resource ) ) m_Resource = (CraftResource)reader.ReadEncodedInt(); else m_Resource = DefaultResource; if ( GetSaveFlag( flags, SaveFlag.Attributes ) ) m_AosAttributes = new AosAttributes( this, reader ); else m_AosAttributes = new AosAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.ClothingAttributes ) ) m_AosClothingAttributes = new AosArmorAttributes( this, reader ); else m_AosClothingAttributes = new AosArmorAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.SkillBonuses ) ) m_AosSkillBonuses = new AosSkillBonuses( this, reader ); else m_AosSkillBonuses = new AosSkillBonuses( this ); if ( GetSaveFlag( flags, SaveFlag.Resistances ) ) m_AosResistances = new AosElementAttributes( this, reader ); else m_AosResistances = new AosElementAttributes( this ); 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 = (ClothingQuality)reader.ReadEncodedInt(); else m_Quality = ClothingQuality.Regular; if ( GetSaveFlag( flags, SaveFlag.StrReq ) ) m_StrReq = reader.ReadEncodedInt(); else m_StrReq = -1; if ( GetSaveFlag( flags, SaveFlag.PlayerConstructed ) ) m_PlayerConstructed = true; break; } case 4: { m_Resource = (CraftResource)reader.ReadInt(); goto case 3; } case 3: { m_AosAttributes = new AosAttributes( this, reader ); m_AosClothingAttributes = new AosArmorAttributes( this, reader ); m_AosSkillBonuses = new AosSkillBonuses( this, reader ); m_AosResistances = new AosElementAttributes( this, reader ); goto case 2; } case 2: { m_PlayerConstructed = reader.ReadBool(); goto case 1; } case 1: { m_Crafter = reader.ReadMobile(); m_Quality = (ClothingQuality)reader.ReadInt(); break; } case 0: { m_Crafter = null; m_Quality = ClothingQuality.Regular; break; } } if ( version < 2 ) m_PlayerConstructed = true; // we don't know, so, assume it's crafted if ( version < 3 ) { m_AosAttributes = new AosAttributes( this ); m_AosClothingAttributes = new AosArmorAttributes( this ); m_AosSkillBonuses = new AosSkillBonuses( this ); m_AosResistances = new AosElementAttributes( this ); } if ( version < 4 ) m_Resource = DefaultResource; if ( m_MaxHitPoints == 0 && m_HitPoints == 0 ) m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits ); Mobile parent = Parent as Mobile; if ( parent != null ) { if ( Core.AOS ) m_AosSkillBonuses.AddTo( parent ); AddStatBonuses( parent ); parent.CheckStatTimers(); } }
public static bool SupportsAttribute(this Item item, out AosArmorAttributes attrs) { BaseAttributes a; if (SupportsAttributes(item, "ArmorAttributes", out a) || SupportsAttributes(item, "ClothingAttributes", out a) || SupportsAttributes(item, "JewelAttributes", out a)) { attrs = (AosArmorAttributes)a; return true; } attrs = null; return false; }
public BaseClothing( int itemID, Layer layer, int hue, ClothEffect effect, int charges ) : base(itemID) { Layer = layer; Hue = hue; m_Resource = DefaultResource; m_Quality = ClothingQuality.Regular; m_ClothEffect = effect; m_Charges = charges; m_Identified = false; m_IDList = new List<Mobile>(); m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits ); m_AosAttributes = new AosAttributes( this ); m_AosClothingAttributes = new AosArmorAttributes( this ); m_AosSkillBonuses = new AosSkillBonuses( this ); m_AosResistances = new AosElementAttributes( this ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 3: { m_AosAttributes = new AosAttributes( this, reader ); if (m_AosAttributes.IsEmpty) m_AosAttributes = null; m_AosClothingAttributes = new AosArmorAttributes( this, reader ); if (m_AosClothingAttributes.IsEmpty) m_AosClothingAttributes = null; m_AosSkillBonuses = new AosSkillBonuses( this, reader ); if (m_AosSkillBonuses.IsEmpty) m_AosSkillBonuses = null; m_AosResistances = new AosElementAttributes( this, reader ); if (m_AosResistances.IsEmpty) m_AosResistances = null; goto case 2; } case 2: { m_PlayerConstructed = reader.ReadBool(); goto case 1; } case 1: { m_Crafter = reader.ReadMobile(); m_Quality = (ClothingQuality)reader.ReadInt(); break; } case 0: { m_Crafter = null; m_Quality = ClothingQuality.Regular; break; } } if ( version < 2 ) m_PlayerConstructed = true; // we don't know, so, assume it's crafted Mobile parent = Parent as Mobile; if ( parent != null ) { if (Core.AOS && m_AosSkillBonuses != null) m_AosSkillBonuses.AddTo( parent ); AddStatBonuses( parent ); parent.CheckStatTimers(); } }
public AosArmorAttributes(Item owner, AosArmorAttributes other) : base(owner, other) { }
public BaseClothing( int itemID, Layer layer, int hue ) : base( itemID ) { Layer = layer; Hue = hue; m_Resource = DefaultResource; m_Quality = ClothingQuality.Regular; m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits ); m_AosAttributes = new AosAttributes( this ); m_AosClothingAttributes = new AosArmorAttributes( this ); m_AosSkillBonuses = new AosSkillBonuses( this ); m_AosResistances = new AosElementAttributes( this ); // Genova: suporte ao UO:ML. #region Mondain's Legacy m_SetAttributes = new AosAttributes( this ); m_SetClothingAttributes = new AosArmorAttributes( this ); m_SetSkillBonuses = new AosSkillBonuses( this ); m_LastEquipped = false; #endregion }
private static void ApplyAttribute( AosArmorAttributes attrs, int min, int max, AosArmorAttribute attr, int low, int high, int scale ) { attrs[attr] = Scale( min, max, low / scale, high / scale ) * scale; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 12: m_OldCloth = reader.ReadBool(); goto case 11; case 11: m_Disease = (Disease)reader.ReadInt(); goto case 10; case 10: goto case 9; case 9: goto case 8; case 8: goto case 7; case 7: goto case 6; case 6: { m_CraftersOriginalName = reader.ReadString(); goto case 5; } case 5: { SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if ( GetSaveFlag( flags, SaveFlag.Resource ) ) m_Resource = (CraftResource)reader.ReadEncodedInt(); else m_Resource = DefaultResource; if ( GetSaveFlag( flags, SaveFlag.Attributes ) ) m_AosAttributes = new AosAttributes( this, reader ); else m_AosAttributes = new AosAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.ClothingAttributes ) ) m_AosClothingAttributes = new AosArmorAttributes( this, reader ); else m_AosClothingAttributes = new AosArmorAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.SkillBonuses ) ) m_AosSkillBonuses = new AosSkillBonuses( this, reader ); else m_AosSkillBonuses = new AosSkillBonuses( this ); if ( GetSaveFlag( flags, SaveFlag.Resistances ) ) m_AosResistances = new AosElementAttributes( this, reader ); else m_AosResistances = new AosElementAttributes( this ); 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 = (ClothingQuality)reader.ReadEncodedInt(); else m_Quality = ClothingQuality.Regular; if ( GetSaveFlag( flags, SaveFlag.StrReq ) ) m_StrReq = reader.ReadEncodedInt(); else m_StrReq = -1; if ( GetSaveFlag( flags, SaveFlag.PlayerConstructed ) ) m_PlayerConstructed = true; break; } case 4: { m_Resource = (CraftResource)reader.ReadInt(); goto case 3; } case 3: { m_AosAttributes = new AosAttributes( this, reader ); m_AosClothingAttributes = new AosArmorAttributes( this, reader ); m_AosSkillBonuses = new AosSkillBonuses( this, reader ); m_AosResistances = new AosElementAttributes( this, reader ); goto case 2; } case 2: { m_PlayerConstructed = reader.ReadBool(); goto case 1; } case 1: { m_Crafter = reader.ReadMobile(); m_Quality = (ClothingQuality)reader.ReadInt(); break; } case 0: { m_Crafter = null; m_Quality = ClothingQuality.Regular; break; } } if ( version < 2 ) m_PlayerConstructed = true; // we don't know, so, assume it's crafted if ( version < 3 ) { m_AosAttributes = new AosAttributes( this ); m_AosClothingAttributes = new AosArmorAttributes( this ); m_AosSkillBonuses = new AosSkillBonuses( this ); m_AosResistances = new AosElementAttributes( this ); } if ( version < 4 ) m_Resource = DefaultResource; if ( m_MaxHitPoints == 0 && m_HitPoints == 0 ) m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits ); Mobile parent = Parent as Mobile; if ( parent != null ) { if ( Core.AOS ) m_AosSkillBonuses.AddTo( parent ); AddStatBonuses( parent ); parent.CheckStatTimers(); } if( version < 7 && this.Hue == 2992 ) this.Hue = 2990; if( version < 8 && Quality == ClothingQuality.Masterwork ) { this.Resistances.Blunt += 1; this.Resistances.Slashing += 1; this.Resistances.Piercing += 1; } if( version < 9 && this.Crafter != null ) { this.CraftersOriginalName = this.Crafter.Name; } if( version < 10 ) { Resistances.Fire = 0; Resistances.Cold = 0; } }
public AosArmorAttributes( Item owner, AosArmorAttributes other ) : base( owner, other ) { }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); int m_PhysicalBonus = 0; int m_FireBonus = 0; int m_ColdBonus = 0; int m_PoisonBonus = 0; int m_EnergyBonus = 0; switch ( version ) { case 14: case 13: { m_CustomPropName = reader.ReadString(); goto case 12; } case 12: { SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if ( GetSaveFlag( flags, SaveFlag.Resource ) ) m_Resource = (CraftResource)reader.ReadEncodedInt(); else m_Resource = DefaultResource; if ( GetSaveFlag( flags, SaveFlag.Attributes ) ) m_AosAttributes = new AosAttributes( this, reader ); else m_AosAttributes = new AosAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.ClothingAttributes ) ) m_AosClothingAttributes = new AosArmorAttributes( this, reader ); else m_AosClothingAttributes = new AosArmorAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.SkillBonuses ) ) m_AosSkillBonuses = new AosSkillBonuses( this, reader ); else m_AosSkillBonuses = new AosSkillBonuses( this ); if ( GetSaveFlag( flags, SaveFlag.Resistances ) ) m_AosResistances = new AosElementAttributes( this, reader ); else m_AosResistances = new AosElementAttributes( this ); 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 = (ClothingQuality)reader.ReadEncodedInt(); else m_Quality = ClothingQuality.Regular; if ( GetSaveFlag( flags, SaveFlag.StrReq ) ) m_StrReq = reader.ReadEncodedInt(); else m_StrReq = -1; if ( GetSaveFlag( flags, SaveFlag.PlayerConstructed ) ) m_PlayerConstructed = true; if ( GetSaveFlag( flags, SaveFlag.Identified ) ) m_Identified = true; break; } case 11: { m_Resource = (CraftResource)reader.ReadInt(); goto case 10; } case 10: case 9: m_CustomPropName = reader.ReadString(); goto case 8; case 8: // Fixed durability case 7: case 6: { int m_ArmorBase = reader.ReadInt(); goto case 5; } case 5: { int m_OldMaxHitPoints = reader.ReadInt(); int m_OldHitPoints = reader.ReadInt(); goto case 4; } case 4: { m_PhysicalBonus = reader.ReadInt(); m_FireBonus = reader.ReadInt(); m_ColdBonus = reader.ReadInt(); m_PoisonBonus = reader.ReadInt(); m_EnergyBonus = reader.ReadInt(); goto case 3; } case 3: { m_AosAttributes = new AosAttributes( this, reader ); m_AosClothingAttributes = new AosArmorAttributes( this, reader ); m_AosSkillBonuses = new AosSkillBonuses( this, reader ); m_AosResistances = new AosElementAttributes( this, reader ); goto case 2; } case 2: { m_PlayerConstructed = reader.ReadBool(); goto case 1; } case 1: { m_Crafter = reader.ReadMobile(); m_Quality = (ClothingQuality)reader.ReadInt(); break; } case 0: { m_Crafter = null; m_Quality = ClothingQuality.Regular; break; } } if ( version < 2 ) m_PlayerConstructed = true; // we don't know, so, assume it's crafted if ( version < 3 ) { m_AosAttributes = new AosAttributes( this ); m_AosClothingAttributes = new AosArmorAttributes( this ); m_AosSkillBonuses = new AosSkillBonuses( this ); m_AosResistances = new AosElementAttributes( this ); } if ( version < 4 ) m_Resource = DefaultResource; if ( m_MaxHitPoints == 0 && m_HitPoints == 0 ) m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits ); Mobile parent = Parent as Mobile; if ( parent != null ) { if ( Core.AOS ) m_AosSkillBonuses.AddTo( parent ); AddStatBonuses( parent ); parent.CheckStatTimers(); } // *** if (version < 12) { m_AosResistances.Physical = m_PhysicalBonus; m_AosResistances.Fire = m_FireBonus; m_AosResistances.Cold = m_ColdBonus; m_AosResistances.Poison = m_PoisonBonus; m_AosResistances.Energy = m_EnergyBonus; } // *** if ( version < 14 ) Dyable = true; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 3: { m_AosAttributes = new AosAttributes( this, reader ); m_AosClothingAttributes = new AosArmorAttributes( this, reader ); m_AosSkillBonuses = new AosSkillBonuses( this, reader ); m_AosResistances = new AosElementAttributes( this, reader ); goto case 2; } case 2: { m_PlayerConstructed = reader.ReadBool(); goto case 1; } case 1: { m_Crafter = reader.ReadMobile(); m_Quality = (ClothingQuality)reader.ReadInt(); break; } case 0: { m_Crafter = null; m_Quality = ClothingQuality.Regular; break; } } if ( version < 2 ) m_PlayerConstructed = true; // we don't know, so, assume it's crafted if ( version < 3 ) { m_AosAttributes = new AosAttributes( this ); m_AosClothingAttributes = new AosArmorAttributes( this ); m_AosSkillBonuses = new AosSkillBonuses( this ); m_AosResistances = new AosElementAttributes( this ); } Mobile parent = Parent as Mobile; if ( parent != null ) { if ( Core.AOS ) m_AosSkillBonuses.AddTo( parent ); AddStatBonuses( parent ); parent.CheckStatTimers(); } //Remove (layered) tags in name if ((Layer == Layer.Earrings || Layer == Layer.Neck) && Name != null && ms_RegexLayeredTag.IsMatch(Name)) { Match m = ms_RegexLayeredTag.Match(Name); Name = m.Groups["taglessname"].Value.Trim(); } // if ( IsBugged( this ) ) // World.buggeditems.Add( this ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 9: { // erl - added to handle packing out of PlayerConstructed property goto case 8; } case 8: { // removed all AOS attributes goto case 7; } case 7: case 6: case 5: { SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if ( GetSaveFlag( flags, SaveFlag.IOBAlignment ) ) m_IOBAlignment = (IOBAlignment)reader.ReadEncodedInt(); // obsolete AOS attributes from version 8 on if (version < 8) { AosAttributes dmy_AosAttributes; AosArmorAttributes dmy_AosArmorAttributes; if ( GetSaveFlag( flags, SaveFlag.Attributes ) ) dmy_AosAttributes = new AosAttributes( this, reader ); //else //dmy_AosAttributes = new AosAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.ArmorAttributes ) ) dmy_AosArmorAttributes = new AosArmorAttributes( this, reader ); //else //dmy_AosArmorAttributes = new AosArmorAttributes( this ); // read and throw away int foox; if ( GetSaveFlag( flags, SaveFlag.PhysicalBonus ) ) foox = reader.ReadEncodedInt(); // m_PhysicalBonus if ( GetSaveFlag( flags, SaveFlag.FireBonus ) ) foox = reader.ReadEncodedInt(); // m_FireBonus if ( GetSaveFlag( flags, SaveFlag.ColdBonus ) ) foox = reader.ReadEncodedInt(); // m_ColdBonus if ( GetSaveFlag( flags, SaveFlag.PoisonBonus ) ) foox = reader.ReadEncodedInt(); // m_PoisonBonus if ( GetSaveFlag( flags, SaveFlag.EnergyBonus ) ) foox = reader.ReadEncodedInt(); // m_EnergyBonus } if ( GetSaveFlag( flags, SaveFlag.Identified ) ) 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 = (ArmorQuality)reader.ReadEncodedInt(); else m_Quality = ArmorQuality.Regular; if ( version == 5 && m_Quality == ArmorQuality.Low ) m_Quality = ArmorQuality.Regular; if ( GetSaveFlag( flags, SaveFlag.Durability ) ) m_Durability = (ArmorDurabilityLevel)reader.ReadEncodedInt(); if ( GetSaveFlag( flags, SaveFlag.Protection ) ) m_Protection = (ArmorProtectionLevel)reader.ReadEncodedInt(); 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.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); // obsolete AOS attributes from version 8 on if (version < 8) { AosSkillBonuses dmy_AosSkillBonuses; if ( GetSaveFlag( flags, SaveFlag.SkillBonuses ) ) dmy_AosSkillBonuses = new AosSkillBonuses( this, reader ); } // obsolete PlayerConstructed property from version 9 on if (version < 9) { if ( GetSaveFlag( flags, SaveFlag.PlayerConstructed ) ) PlayerCrafted = true; } break; } case 4: { // obsolete AosAttributes dmy_AosAttributes; AosArmorAttributes dmy_AosArmorAttributes; dmy_AosAttributes = new AosAttributes( this, reader ); dmy_AosArmorAttributes = new AosArmorAttributes( this, reader ); goto case 3; } case 3: { int dummy; dummy = reader.ReadInt(); dummy = reader.ReadInt(); dummy = reader.ReadInt(); dummy = reader.ReadInt(); dummy = 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 = (ArmorQuality)reader.ReadInt(); m_Durability = (ArmorDurabilityLevel)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 ) { // Adam: (Leave for Adam to remove) //m_AosAttributes = new AosAttributes( this ); //m_AosArmorAttributes = new AosArmorAttributes( this ); } if ( version < 3 && m_Quality == ArmorQuality.Exceptional ) DistributeBonuses( 6 ); if ( version >= 2 ) { m_Resource = (CraftResource)reader.ReadInt(); } else { OreInfo info; switch ( reader.ReadInt() ) { default: case 0: info = OreInfo.Iron; break; case 1: info = OreInfo.DullCopper; break; case 2: info = OreInfo.ShadowIron; break; case 3: info = OreInfo.Copper; break; case 4: info = OreInfo.Bronze; break; case 5: info = OreInfo.Gold; break; case 6: info = OreInfo.Agapite; break; case 7: info = OreInfo.Verite; break; case 8: info = OreInfo.Valorite; break; } m_Resource = CraftResources.GetFromOreInfo( info, mat ); } 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_Resource == CraftResource.None ) { if ( mat == ArmorMaterialType.Studded || mat == ArmorMaterialType.Leather ) m_Resource = CraftResource.RegularLeather; else if ( mat == ArmorMaterialType.Spined ) m_Resource = CraftResource.SpinedLeather; else if ( mat == ArmorMaterialType.Horned ) m_Resource = CraftResource.HornedLeather; else if ( mat == ArmorMaterialType.Barbed ) m_Resource = CraftResource.BarbedLeather; else m_Resource = CraftResource.Iron; } 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 ); */ if (Parent is Mobile) { ((Mobile)Parent).StatChange += new StatChangeHandler(ApplyStatBonuses); ApplyStatBonuses(Parent as Mobile, StatType.All); } if ( Parent is Mobile ) ((Mobile)Parent).CheckStatTimers(); // erl: PlayerConstructed is now obsolete, replaced with PlayerCrafted at item level // .. // if ( version < 7 ) // m_PlayerConstructed = true; // we don't know, so, assume it's crafted // .. }
public static void RemoveAttribute( AosArmorAttributes attrs, AosArmorAttribute attr, int amount ) { if ( attr == AosArmorAttribute.MageArmor && attrs.MageArmor > 0 ) attrs[attr] = 0; else attrs[attr] = Math.Max( attrs[attr] - amount, 0 ); }
public static void ApplyAttribute( AosArmorAttributes attrs, AosArmorAttribute attr, int amount ) { if ( attr == AosArmorAttribute.MageArmor && attrs.MageArmor == 0 ) attrs[attr] = 1; else attrs[attr] += amount; }
public BaseClothing(int itemID, Layer layer, int hue) : base(itemID) { this.Layer = layer; this.Hue = hue; this.m_Resource = this.DefaultResource; this.m_Quality = ClothingQuality.Regular; this.m_HitPoints = this.m_MaxHitPoints = Utility.RandomMinMax(this.InitMinHits, this.InitMaxHits); this.m_AosAttributes = new AosAttributes(this); this.m_AosClothingAttributes = new AosArmorAttributes(this); this.m_AosSkillBonuses = new AosSkillBonuses(this); this.m_AosResistances = new AosElementAttributes(this); #region Mondain's Legacy Sets this.m_SetAttributes = new AosAttributes(this); this.m_SetSkillBonuses = new AosSkillBonuses(this); #endregion }
public BaseClothing( int itemID, Layer layer, int hue ) : base( itemID ) { Layer = layer; Hue = hue; m_Resource = DefaultResource; m_Quality = ClothingQuality.Regular; m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits ); m_AosAttributes = new AosAttributes( this ); m_AosClothingAttributes = new AosArmorAttributes( this ); m_AosSkillBonuses = new AosSkillBonuses( this ); m_AosResistances = new AosElementAttributes( this ); #region Mondain's Legacy Sets m_SetAttributes = new AosAttributes( this ); m_SetSkillBonuses = new AosSkillBonuses( this ); #endregion ItemValue = GearScore.GetItemValue( this ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 6: { // Genova: suporte ao UO:ML. #region Mondain's Legacy SetFlag sflags = (SetFlag) reader.ReadEncodedInt(); if ( GetSaveFlag( sflags, SetFlag.Attributes ) ) m_SetAttributes = new AosAttributes( this, reader ); else m_SetAttributes = new AosAttributes( this ); if ( GetSaveFlag( sflags, SetFlag.ArmorAttributes ) ) m_SetClothingAttributes = new AosArmorAttributes( this, reader ); else m_SetClothingAttributes = new AosArmorAttributes( this ); if ( GetSaveFlag( sflags, SetFlag.SkillBonuses ) ) m_SetSkillBonuses = new AosSkillBonuses( this, reader ); else m_SetSkillBonuses = new AosSkillBonuses( this ); if ( GetSaveFlag( sflags, SetFlag.PhysicalBonus ) ) m_SetPhysicalBonus = reader.ReadEncodedInt(); if ( GetSaveFlag( sflags, SetFlag.FireBonus ) ) m_SetFireBonus = reader.ReadEncodedInt(); if ( GetSaveFlag( sflags, SetFlag.ColdBonus ) ) m_SetColdBonus = reader.ReadEncodedInt(); if ( GetSaveFlag( sflags, SetFlag.PoisonBonus ) ) m_SetPoisonBonus = reader.ReadEncodedInt(); if ( GetSaveFlag( sflags, SetFlag.EnergyBonus ) ) m_SetEnergyBonus = reader.ReadEncodedInt(); if ( GetSaveFlag( sflags, SetFlag.SetHue ) ) m_SetHue = reader.ReadEncodedInt(); if ( GetSaveFlag( sflags, SetFlag.LastEquipped ) ) m_LastEquipped = reader.ReadBool(); if ( GetSaveFlag( sflags, SetFlag.SetEquipped ) ) m_SetEquipped = reader.ReadBool(); #endregion goto case 5; } case 5: { SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if ( GetSaveFlag( flags, SaveFlag.Resource ) ) m_Resource = (CraftResource)reader.ReadEncodedInt(); else m_Resource = DefaultResource; if ( GetSaveFlag( flags, SaveFlag.Attributes ) ) m_AosAttributes = new AosAttributes( this, reader ); else m_AosAttributes = new AosAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.ClothingAttributes ) ) m_AosClothingAttributes = new AosArmorAttributes( this, reader ); else m_AosClothingAttributes = new AosArmorAttributes( this ); if ( GetSaveFlag( flags, SaveFlag.SkillBonuses ) ) m_AosSkillBonuses = new AosSkillBonuses( this, reader ); else m_AosSkillBonuses = new AosSkillBonuses( this ); if ( GetSaveFlag( flags, SaveFlag.Resistances ) ) m_AosResistances = new AosElementAttributes( this, reader ); else m_AosResistances = new AosElementAttributes( this ); 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 = (ClothingQuality)reader.ReadEncodedInt(); else m_Quality = ClothingQuality.Regular; if ( GetSaveFlag( flags, SaveFlag.StrReq ) ) m_StrReq = reader.ReadEncodedInt(); else m_StrReq = -1; if ( GetSaveFlag( flags, SaveFlag.PlayerConstructed ) ) m_PlayerConstructed = true; break; } case 4: { m_Resource = (CraftResource)reader.ReadInt(); goto case 3; } case 3: { m_AosAttributes = new AosAttributes( this, reader ); m_AosClothingAttributes = new AosArmorAttributes( this, reader ); m_AosSkillBonuses = new AosSkillBonuses( this, reader ); m_AosResistances = new AosElementAttributes( this, reader ); goto case 2; } case 2: { m_PlayerConstructed = reader.ReadBool(); goto case 1; } case 1: { m_Crafter = reader.ReadMobile(); m_Quality = (ClothingQuality)reader.ReadInt(); break; } case 0: { m_Crafter = null; m_Quality = ClothingQuality.Regular; break; } } // Genova: suporte ao UO:ML. #region Mondain's Legacy if ( m_SetAttributes == null ) m_SetAttributes = new AosAttributes( this ); if ( m_SetClothingAttributes == null ) m_SetClothingAttributes = new AosArmorAttributes( this ); if ( m_SetSkillBonuses == null ) m_SetSkillBonuses = new AosSkillBonuses( this ); #endregion if ( version < 2 ) m_PlayerConstructed = true; // we don't know, so, assume it's crafted if ( version < 3 ) { m_AosAttributes = new AosAttributes( this ); m_AosClothingAttributes = new AosArmorAttributes( this ); m_AosSkillBonuses = new AosSkillBonuses( this ); m_AosResistances = new AosElementAttributes( this ); } if ( version < 4 ) m_Resource = DefaultResource; if ( m_MaxHitPoints == 0 && m_HitPoints == 0 ) m_HitPoints = m_MaxHitPoints = Utility.RandomMinMax( InitMinHits, InitMaxHits ); Mobile parent = Parent as Mobile; if ( parent != null ) { if ( Core.AOS ) m_AosSkillBonuses.AddTo( parent ); AddStatBonuses( parent ); parent.CheckStatTimers(); } }
private static void ApplyAttribute( AosArmorAttributes attrs, int min, int max, AosArmorAttribute attr, int low, int high ) { attrs[attr] = Scale( min, max, low, high ); }