Changes properties to use automatic property initializers

This commit is contained in:
Kamron Batman 2018-09-14 15:23:29 -07:00
parent f0a48ad431
commit 06fa31a7bf
623 changed files with 13072 additions and 19304 deletions

View file

@ -10,43 +10,27 @@ namespace Server.Items
[DispellableFieldAttribute]
public class Moongate : Item
{
private Point3D m_Target;
private Map m_TargetMap;
private bool m_bDispellable;
[CommandProperty( AccessLevel.GameMaster )]
public Point3D Target { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public Point3D Target
{
get => m_Target;
set => m_Target = value;
}
public Map TargetMap { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public Map TargetMap
{
get => m_TargetMap;
set => m_TargetMap = value;
}
[CommandProperty( AccessLevel.GameMaster )]
public bool Dispellable
{
get => m_bDispellable;
set => m_bDispellable = value;
}
public bool Dispellable { get; set; }
public virtual bool ShowFeluccaWarning => false;
[Constructible]
public Moongate() : this( Point3D.Zero, null )
{
m_bDispellable = true;
Dispellable = true;
}
[Constructible]
public Moongate(bool bDispellable) : this( Point3D.Zero, null )
{
m_bDispellable = bDispellable;
Dispellable = bDispellable;
}
[Constructible]
@ -55,8 +39,8 @@ namespace Server.Items
Movable = false;
Light = LightType.Circle300;
m_Target = target;
m_TargetMap = targetMap;
Target = target;
TargetMap = targetMap;
}
public Moongate( Serial serial ) : base( serial )
@ -104,11 +88,11 @@ namespace Server.Items
{
m.SendLocalizedMessage( 1061632 ); // You can't do that while carrying the sigil.
}
else if ( m_TargetMap == Map.Felucca && m is PlayerMobile mobile && mobile.Young )
else if ( TargetMap == Map.Felucca && m is PlayerMobile mobile && mobile.Young )
{
mobile.SendLocalizedMessage( 1049543 ); // You decide against traveling to Felucca while you are still young.
}
else if ( (m.Kills >= 5 && m_TargetMap != Map.Felucca) || ( m_TargetMap == Map.Tokuno && (flags & ClientFlags.Tokuno) == 0 ) || ( m_TargetMap == Map.Malas && (flags & ClientFlags.Malas) == 0 ) || ( m_TargetMap == Map.Ilshenar && (flags & ClientFlags.Ilshenar) == 0 ) )
else if ( (m.Kills >= 5 && TargetMap != Map.Felucca) || ( TargetMap == Map.Tokuno && (flags & ClientFlags.Tokuno) == 0 ) || ( TargetMap == Map.Malas && (flags & ClientFlags.Malas) == 0 ) || ( TargetMap == Map.Ilshenar && (flags & ClientFlags.Ilshenar) == 0 ) )
{
m.SendLocalizedMessage( 1019004 ); // You are not allowed to travel there.
}
@ -116,11 +100,11 @@ namespace Server.Items
{
m.SendLocalizedMessage( 1049616 ); // You are too busy to do that at the moment.
}
else if ( m_TargetMap != null && m_TargetMap != Map.Internal )
else if ( TargetMap != null && TargetMap != Map.Internal )
{
BaseCreature.TeleportPets( m, m_Target, m_TargetMap );
BaseCreature.TeleportPets( m, Target, TargetMap );
m.MoveToWorld( m_Target, m_TargetMap );
m.MoveToWorld( Target, TargetMap );
if ( m.AccessLevel == AccessLevel.Player || !m.Hidden )
m.PlaySound( 0x1FE );
@ -139,11 +123,11 @@ namespace Server.Items
writer.Write( (int) 1 ); // version
writer.Write( m_Target );
writer.Write( m_TargetMap );
writer.Write( Target );
writer.Write( TargetMap );
// Version 1
writer.Write( m_bDispellable );
writer.Write( Dispellable );
}
public override void Deserialize( GenericReader reader )
@ -152,11 +136,11 @@ namespace Server.Items
int version = reader.ReadInt();
m_Target = reader.ReadPoint3D();
m_TargetMap = reader.ReadMap();
Target = reader.ReadPoint3D();
TargetMap = reader.ReadMap();
if ( version >= 1 )
m_bDispellable = reader.ReadBool();
Dispellable = reader.ReadBool();
}
public virtual bool ValidateUse( Mobile from, bool message )
@ -177,7 +161,7 @@ namespace Server.Items
public virtual void BeginConfirmation( Mobile from )
{
if ( IsInTown( from.Location, from.Map ) && !IsInTown( m_Target, m_TargetMap ) || (from.Map != Map.Felucca && TargetMap == Map.Felucca && ShowFeluccaWarning) )
if ( IsInTown( from.Location, from.Map ) && !IsInTown( Target, TargetMap ) || (from.Map != Map.Felucca && TargetMap == Map.Felucca && ShowFeluccaWarning) )
{
if ( from.AccessLevel == AccessLevel.Player || !from.Hidden )
from.Send( new PlaySound( 0x20E, from.Location ) );
@ -203,7 +187,7 @@ namespace Server.Items
if ( !ValidateUse( from, false ) || !from.InRange( this, range ) )
return;
if ( m_TargetMap != null )
if ( TargetMap != null )
BeginConfirmation( from );
else
from.SendMessage( "This moongate does not seem to go anywhere." );
@ -241,65 +225,26 @@ namespace Server.Items
public class ConfirmationMoongate : Moongate
{
private int m_GumpWidth;
private int m_GumpHeight;
private int m_TitleColor;
private int m_MessageColor;
private int m_TitleNumber;
private int m_MessageNumber;
private string m_MessageString;
[CommandProperty( AccessLevel.GameMaster )]
public int GumpWidth { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public int GumpWidth
{
get => m_GumpWidth;
set => m_GumpWidth = value;
}
public int GumpHeight { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public int GumpHeight
{
get => m_GumpHeight;
set => m_GumpHeight = value;
}
public int TitleColor { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public int TitleColor
{
get => m_TitleColor;
set => m_TitleColor = value;
}
public int MessageColor { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public int MessageColor
{
get => m_MessageColor;
set => m_MessageColor = value;
}
public int TitleNumber { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public int TitleNumber
{
get => m_TitleNumber;
set => m_TitleNumber = value;
}
public int MessageNumber { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public int MessageNumber
{
get => m_MessageNumber;
set => m_MessageNumber = value;
}
[CommandProperty( AccessLevel.GameMaster )]
public string MessageString
{
get => m_MessageString;
set => m_MessageString = value;
}
public string MessageString { get; set; }
[Constructible]
public ConfirmationMoongate() : this( Point3D.Zero, null )
@ -323,10 +268,10 @@ namespace Server.Items
public override void BeginConfirmation( Mobile from )
{
if ( m_GumpWidth > 0 && m_GumpHeight > 0 && m_TitleNumber > 0 && (m_MessageNumber > 0 || m_MessageString != null) )
if ( GumpWidth > 0 && GumpHeight > 0 && TitleNumber > 0 && (MessageNumber > 0 || MessageString != null) )
{
from.CloseGump( typeof( WarningGump ) );
from.SendGump( new WarningGump( m_TitleNumber, m_TitleColor, m_MessageString == null ? (object)m_MessageNumber : (object)m_MessageString, m_MessageColor, m_GumpWidth, m_GumpHeight, Warning_Callback, from ) );
from.SendGump( new WarningGump( TitleNumber, TitleColor, MessageString == null ? (object)MessageNumber : (object)MessageString, MessageColor, GumpWidth, GumpHeight, Warning_Callback, from ) );
}
else
{
@ -340,16 +285,16 @@ namespace Server.Items
writer.Write( (int) 0 ); // version
writer.WriteEncodedInt( m_GumpWidth );
writer.WriteEncodedInt( m_GumpHeight );
writer.WriteEncodedInt( GumpWidth );
writer.WriteEncodedInt( GumpHeight );
writer.WriteEncodedInt( m_TitleColor );
writer.WriteEncodedInt( m_MessageColor );
writer.WriteEncodedInt( TitleColor );
writer.WriteEncodedInt( MessageColor );
writer.WriteEncodedInt( m_TitleNumber );
writer.WriteEncodedInt( m_MessageNumber );
writer.WriteEncodedInt( TitleNumber );
writer.WriteEncodedInt( MessageNumber );
writer.Write( m_MessageString );
writer.Write( MessageString );
}
public override void Deserialize( GenericReader reader )
@ -362,16 +307,16 @@ namespace Server.Items
{
case 0:
{
m_GumpWidth = reader.ReadEncodedInt();
m_GumpHeight = reader.ReadEncodedInt();
GumpWidth = reader.ReadEncodedInt();
GumpHeight = reader.ReadEncodedInt();
m_TitleColor = reader.ReadEncodedInt();
m_MessageColor = reader.ReadEncodedInt();
TitleColor = reader.ReadEncodedInt();
MessageColor = reader.ReadEncodedInt();
m_TitleNumber = reader.ReadEncodedInt();
m_MessageNumber = reader.ReadEncodedInt();
TitleNumber = reader.ReadEncodedInt();
MessageNumber = reader.ReadEncodedInt();
m_MessageString = reader.ReadString();
MessageString = reader.ReadString();
break;
}

View file

@ -10,7 +10,6 @@ namespace Server.Items
{
private string m_Description;
private bool m_Marked;
private Point3D m_Target;
private Map m_TargetMap;
private BaseHouse m_House;
@ -31,7 +30,7 @@ namespace Server.Items
writer.Write( (string) m_Description );
writer.Write( (bool) m_Marked );
writer.Write( (Point3D) m_Target );
writer.Write( (Point3D) Target );
writer.Write( (Map) m_TargetMap );
}
@ -52,7 +51,7 @@ namespace Server.Items
{
m_Description = reader.ReadString();
m_Marked = reader.ReadBool();
m_Target = reader.ReadPoint3D();
Target = reader.ReadPoint3D();
m_TargetMap = reader.ReadMap();
CalculateHue();
@ -102,11 +101,7 @@ namespace Server.Items
}
[CommandProperty( AccessLevel.Counselor, AccessLevel.GameMaster )]
public Point3D Target
{
get => m_Target;
set => m_Target = value;
}
public Point3D Target { get; set; }
[CommandProperty( AccessLevel.Counselor, AccessLevel.GameMaster )]
public Map TargetMap
@ -150,7 +145,7 @@ namespace Server.Items
if ( m_House == null )
{
m_Target = m.Location;
Target = m.Location;
m_TargetMap = m.Map;
}
else
@ -176,19 +171,19 @@ namespace Server.Items
if ( map != null && !map.CanFit( x, y, z, 16, false, false ) )
z = map.GetAverageZ( x, y );
m_Target = new Point3D( x, y, z );
Target = new Point3D( x, y, z );
m_TargetMap = map;
}
}
else
{
m_House = null;
m_Target = m.Location;
Target = m.Location;
m_TargetMap = m.Map;
}
if ( !setDesc )
m_Description = BaseRegion.GetRuneNameFor( Region.Find( m_Target, m_TargetMap ) );
m_Description = BaseRegion.GetRuneNameFor( Region.Find( Target, m_TargetMap ) );
CalculateHue();
InvalidateProperties();

View file

@ -138,18 +138,16 @@ namespace Server.Items
private class ThrowTarget : Target
{
private BaseConflagrationPotion m_Potion;
public BaseConflagrationPotion Potion => m_Potion;
public BaseConflagrationPotion Potion { get; }
public ThrowTarget( BaseConflagrationPotion potion ) : base( 12, true, TargetFlags.None )
{
m_Potion = potion;
Potion = potion;
}
protected override void OnTarget( Mobile from, object targeted )
{
if ( m_Potion.Deleted || m_Potion.Map == Map.Internal )
if ( Potion.Deleted || Potion.Map == Map.Internal )
return;
if ( !(targeted is IPoint3D p) || from.Map == null )
@ -169,20 +167,19 @@ namespace Server.Items
else
to = new Entity( Serial.Zero, new Point3D( p ), from.Map );
Effects.SendMovingEffect( from, to, 0xF0D, 7, 0, false, false, m_Potion.Hue, 0 );
Timer.DelayCall( TimeSpan.FromSeconds( 1.5 ), new TimerStateCallback( m_Potion.Explode_Callback ), new object[] { from, new Point3D( p ), from.Map } );
Effects.SendMovingEffect( from, to, 0xF0D, 7, 0, false, false, Potion.Hue, 0 );
Timer.DelayCall( TimeSpan.FromSeconds( 1.5 ), new TimerStateCallback( Potion.Explode_Callback ), new object[] { from, new Point3D( p ), from.Map } );
}
}
public class InternalItem : Item
{
private Mobile m_From;
private int m_MinDamage;
private int m_MaxDamage;
private DateTime m_End;
private Timer m_Timer;
public Mobile From => m_From;
public Mobile From { get; private set; }
public override bool BlocksFit => true;
@ -193,7 +190,7 @@ namespace Server.Items
MoveToWorld( loc, map );
m_From = from;
From = from;
m_End = DateTime.UtcNow + TimeSpan.FromSeconds( 10 );
SetDamage( min, max );
@ -224,14 +221,14 @@ namespace Server.Items
m_MinDamage = min;
m_MaxDamage = max;
if ( m_From == null )
if ( From == null )
return;
int alchemySkill = m_From.Skills.Alchemy.Fixed;
int alchemySkill = From.Skills.Alchemy.Fixed;
int alchemyBonus = alchemySkill / 125 + alchemySkill / 250 ;
m_MinDamage = Scale( m_From, m_MinDamage + alchemyBonus );
m_MaxDamage = Scale( m_From, m_MaxDamage + alchemyBonus );
m_MinDamage = Scale( From, m_MinDamage + alchemyBonus );
m_MaxDamage = Scale( From, m_MaxDamage + alchemyBonus );
}
public override void Serialize( GenericWriter writer )
@ -240,7 +237,7 @@ namespace Server.Items
writer.Write( (int) 0 ); // version
writer.Write( (Mobile) m_From );
writer.Write( (Mobile) From );
writer.Write( (DateTime) m_End );
writer.Write( (int) m_MinDamage );
writer.Write( (int) m_MaxDamage );
@ -252,7 +249,7 @@ namespace Server.Items
int version = reader.ReadInt();
m_From = reader.ReadMobile();
From = reader.ReadMobile();
m_End = reader.ReadDateTime();
m_MinDamage = reader.ReadInt();
m_MaxDamage = reader.ReadInt();
@ -263,11 +260,11 @@ namespace Server.Items
public override bool OnMoveOver( Mobile m )
{
if ( Visible && m_From != null && (!Core.AOS || m != m_From) && SpellHelper.ValidIndirectTarget( m_From, m ) && m_From.CanBeHarmful( m, false ) )
if ( Visible && From != null && (!Core.AOS || m != From) && SpellHelper.ValidIndirectTarget( From, m ) && From.CanBeHarmful( m, false ) )
{
m_From.DoHarmful( m );
From.DoHarmful( m );
AOS.Damage( m, m_From, GetDamage(), 0, 100, 0, 0, 0 );
AOS.Damage( m, From, GetDamage(), 0, 100, 0, 0, 0 );
m.PlaySound( 0x208 );
}

View file

@ -158,18 +158,16 @@ namespace Server.Items
private class ThrowTarget : Target
{
private BaseConfusionBlastPotion m_Potion;
public BaseConfusionBlastPotion Potion => m_Potion;
public BaseConfusionBlastPotion Potion { get; }
public ThrowTarget( BaseConfusionBlastPotion potion ) : base( 12, true, TargetFlags.None )
{
m_Potion = potion;
Potion = potion;
}
protected override void OnTarget( Mobile from, object targeted )
{
if ( m_Potion.Deleted || m_Potion.Map == Map.Internal )
if ( Potion.Deleted || Potion.Map == Map.Internal )
return;
if ( !(targeted is IPoint3D p) || from.Map == null )
@ -189,8 +187,8 @@ namespace Server.Items
else
to = new Entity( Serial.Zero, new Point3D( p ), from.Map );
Effects.SendMovingEffect( from, to, 0xF0D, 7, 0, false, false, m_Potion.Hue, 0 );
Timer.DelayCall( TimeSpan.FromSeconds( 1.0 ), new TimerStateCallback( m_Potion.Explode_Callback ), new object[] { from, new Point3D( p ), from.Map } );
Effects.SendMovingEffect( from, to, 0xF0D, 7, 0, false, false, Potion.Hue, 0 );
Timer.DelayCall( TimeSpan.FromSeconds( 1.0 ), new TimerStateCallback( Potion.Explode_Callback ), new object[] { from, new Point3D( p ), from.Map } );
}
}
}

View file

@ -4,17 +4,14 @@ namespace Server.Items
{
public class CureLevelInfo
{
private Poison m_Poison;
private double m_Chance;
public Poison Poison { get; }
public Poison Poison => m_Poison;
public double Chance => m_Chance;
public double Chance { get; }
public CureLevelInfo( Poison poison, double chance )
{
m_Poison = poison;
m_Chance = chance;
Poison = poison;
Chance = chance;
}
}

View file

@ -60,9 +60,7 @@ namespace Server.Items
private Timer m_Timer;
public List<Mobile> Users => m_Users;
private List<Mobile> m_Users;
public List<Mobile> Users { get; private set; }
public override void Drink( Mobile from )
{
@ -80,11 +78,11 @@ namespace Server.Items
from.RevealingAction();
if ( m_Users == null )
m_Users = new List<Mobile>();
if ( Users == null )
Users = new List<Mobile>();
if ( !m_Users.Contains( from ) )
m_Users.Add( from );
if ( !Users.Contains( from ) )
Users.Add( from );
from.Target = new ThrowTarget( this );
@ -164,18 +162,16 @@ namespace Server.Items
private class ThrowTarget : Target
{
private BaseExplosionPotion m_Potion;
public BaseExplosionPotion Potion => m_Potion;
public BaseExplosionPotion Potion { get; }
public ThrowTarget( BaseExplosionPotion potion ) : base( 12, true, TargetFlags.None )
{
m_Potion = potion;
Potion = potion;
}
protected override void OnTarget( Mobile from, object targeted )
{
if ( m_Potion.Deleted || m_Potion.Map == Map.Internal )
if ( Potion.Deleted || Potion.Map == Map.Internal )
return;
if ( !(targeted is IPoint3D p) )
@ -200,15 +196,15 @@ namespace Server.Items
to = m;
}
Effects.SendMovingEffect( from, to, m_Potion.ItemID, 7, 0, false, false, m_Potion.Hue, 0 );
Effects.SendMovingEffect( from, to, Potion.ItemID, 7, 0, false, false, Potion.Hue, 0 );
if ( m_Potion.Amount > 1 )
if ( Potion.Amount > 1 )
{
Mobile.LiftItemDupe( m_Potion, 1 );
Mobile.LiftItemDupe( Potion, 1 );
}
m_Potion.Internalize();
Timer.DelayCall( TimeSpan.FromSeconds( 1.0 ), new TimerStateCallback( m_Potion.Reposition_OnTick ), new object[]{ from, p, map } );
Potion.Internalize();
Timer.DelayCall( TimeSpan.FromSeconds( 1.0 ), new TimerStateCallback( Potion.Reposition_OnTick ), new object[]{ from, p, map } );
}
}
@ -219,9 +215,9 @@ namespace Server.Items
Consume();
for ( int i = 0; m_Users != null && i < m_Users.Count; ++i )
for ( int i = 0; Users != null && i < Users.Count; ++i )
{
Mobile m = m_Users[i];
Mobile m = Users[i];
if ( m.Target is ThrowTarget targ && targ.Potion == this )
Target.Cancel( m );

View file

@ -22,23 +22,12 @@ namespace Server.Items
set{ m_Quality = value; InvalidateProperties(); }
}
private List<RunebookEntry> m_Entries;
private string m_Description;
private int m_CurCharges, m_MaxCharges;
private int m_DefaultIndex;
private SecureLevel m_Level;
private Mobile m_Crafter;
private DateTime m_NextUse;
private List<Mobile> m_Openers = new List<Mobile>();
[CommandProperty( AccessLevel.GameMaster )]
public DateTime NextUse
{
get => m_NextUse;
set => m_NextUse = value;
}
public DateTime NextUse { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public Mobile Crafter
@ -48,11 +37,7 @@ namespace Server.Items
}
[CommandProperty( AccessLevel.GameMaster )]
public SecureLevel Level
{
get => m_Level;
set => m_Level = value;
}
public SecureLevel Level { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public string Description
@ -66,24 +51,12 @@ namespace Server.Items
}
[CommandProperty( AccessLevel.GameMaster )]
public int CurCharges
{
get => m_CurCharges;
set => m_CurCharges = value;
}
public int CurCharges { get; set; }
[CommandProperty( AccessLevel.GameMaster )]
public int MaxCharges
{
get => m_MaxCharges;
set => m_MaxCharges = value;
}
public int MaxCharges { get; set; }
public List<Mobile> Openers
{
get => m_Openers;
set => m_Openers = value;
}
public List<Mobile> Openers { get; set; } = new List<Mobile>();
public override int LabelNumber => 1041267; // runebook
@ -96,13 +69,13 @@ namespace Server.Items
Layer = (Core.AOS ? Layer.Invalid : Layer.OneHanded);
m_Entries = new List<RunebookEntry>();
Entries = new List<RunebookEntry>();
m_MaxCharges = maxCharges;
MaxCharges = maxCharges;
m_DefaultIndex = -1;
m_Level = SecureLevel.CoOwners;
Level = SecureLevel.CoOwners;
}
[Constructible]
@ -110,14 +83,14 @@ namespace Server.Items
{
}
public List<RunebookEntry> Entries => m_Entries;
public List<RunebookEntry> Entries { get; private set; }
public RunebookEntry Default
{
get
{
if ( m_DefaultIndex >= 0 && m_DefaultIndex < m_Entries.Count )
return m_Entries[m_DefaultIndex];
if ( m_DefaultIndex >= 0 && m_DefaultIndex < Entries.Count )
return Entries[m_DefaultIndex];
return null;
}
@ -126,7 +99,7 @@ namespace Server.Items
if ( value == null )
m_DefaultIndex = -1;
else
m_DefaultIndex = m_Entries.IndexOf( value );
m_DefaultIndex = Entries.IndexOf( value );
}
}
@ -155,16 +128,16 @@ namespace Server.Items
writer.Write( m_Crafter );
writer.Write( (int) m_Level );
writer.Write( (int) Level );
writer.Write( m_Entries.Count );
writer.Write( Entries.Count );
for ( int i = 0; i < m_Entries.Count; ++i )
m_Entries[i].Serialize( writer );
for ( int i = 0; i < Entries.Count; ++i )
Entries[i].Serialize( writer );
writer.Write( m_Description );
writer.Write( m_CurCharges );
writer.Write( m_MaxCharges );
writer.Write( CurCharges );
writer.Write( MaxCharges );
writer.Write( m_DefaultIndex );
}
@ -193,21 +166,21 @@ namespace Server.Items
}
case 1:
{
m_Level = (SecureLevel)reader.ReadInt();
Level = (SecureLevel)reader.ReadInt();
goto case 0;
}
case 0:
{
int count = reader.ReadInt();
m_Entries = new List<RunebookEntry>( count );
Entries = new List<RunebookEntry>( count );
for ( int i = 0; i < count; ++i )
m_Entries.Add( new RunebookEntry( reader ) );
Entries.Add( new RunebookEntry( reader ) );
m_Description = reader.ReadString();
m_CurCharges = reader.ReadInt();
m_MaxCharges = reader.ReadInt();
CurCharges = reader.ReadInt();
MaxCharges = reader.ReadInt();
m_DefaultIndex = reader.ReadInt();
break;
@ -222,7 +195,7 @@ namespace Server.Items
else if ( m_DefaultIndex == index )
m_DefaultIndex = -1;
m_Entries.RemoveAt( index );
Entries.RemoveAt( index );
RecallRune rune = new RecallRune();
@ -279,11 +252,11 @@ namespace Server.Items
return false;
}
foreach ( Mobile m in m_Openers )
foreach ( Mobile m in Openers )
if ( IsOpen( m ) )
m.CloseGump( typeof( RunebookGump ) );
m_Openers.Clear();
Openers.Clear();
return true;
}
@ -309,7 +282,7 @@ namespace Server.Items
return;
}
if ( DateTime.UtcNow < m_NextUse )
if ( DateTime.UtcNow < NextUse )
{
from.SendLocalizedMessage( 502406 ); // This book needs time to recharge.
return;
@ -318,14 +291,14 @@ namespace Server.Items
from.CloseGump( typeof( RunebookGump ) );
from.SendGump( new RunebookGump( from, this ) );
m_Openers.Add( from );
Openers.Add( from );
}
}
public virtual void OnTravel()
{
if ( !Core.SA )
m_NextUse = DateTime.UtcNow + UseDelay;
NextUse = DateTime.UtcNow + UseDelay;
}
public override void OnAfterDuped( Item newItem )
@ -333,13 +306,13 @@ namespace Server.Items
if ( !(newItem is Runebook book) )
return;
book.m_Entries = new List<RunebookEntry>();
book.Entries = new List<RunebookEntry>();
for ( int i = 0; i < m_Entries.Count; i++ )
for ( int i = 0; i < Entries.Count; i++ )
{
RunebookEntry entry = m_Entries[i];
RunebookEntry entry = Entries[i];
book.m_Entries.Add( new RunebookEntry( entry.Location, entry.Map, entry.Description, entry.House ) );
book.Entries.Add( new RunebookEntry( entry.Location, entry.Map, entry.Description, entry.House ) );
}
}
@ -353,7 +326,7 @@ namespace Server.Items
if ( house != null && house.IsAosRules && (house.Public ? house.IsBanned( m ) : !house.HasAccess( m )) )
return false;
return ( house != null && house.HasSecureAccess( m, m_Level ) );
return ( house != null && house.HasSecureAccess( m, Level ) );
}
public override bool OnDragDrop( Mobile from, Item dropped )
@ -368,11 +341,11 @@ namespace Server.Items
{
from.SendLocalizedMessage( 1005571 ); // You cannot place objects in the book while viewing the contents.
}
else if ( m_Entries.Count < 16 )
else if ( Entries.Count < 16 )
{
if ( rune.Marked && rune.TargetMap != null )
{
m_Entries.Add( new RunebookEntry( rune.Target, rune.TargetMap, rune.Description, rune.House ) );
Entries.Add( new RunebookEntry( rune.Target, rune.TargetMap, rune.Description, rune.House ) );
rune.Delete();
@ -397,20 +370,20 @@ namespace Server.Items
}
else if ( dropped is RecallScroll )
{
if ( m_CurCharges < m_MaxCharges )
if ( CurCharges < MaxCharges )
{
from.Send( new PlaySound( 0x249, GetWorldLocation() ) );
int amount = dropped.Amount;
if ( amount > (m_MaxCharges - m_CurCharges) )
if ( amount > (MaxCharges - CurCharges) )
{
dropped.Consume( m_MaxCharges - m_CurCharges );
m_CurCharges = m_MaxCharges;
dropped.Consume( MaxCharges - CurCharges );
CurCharges = MaxCharges;
}
else
{
m_CurCharges += amount;
CurCharges += amount;
dropped.Delete();
return true;
@ -448,25 +421,20 @@ namespace Server.Items
public class RunebookEntry
{
private Point3D m_Location;
private Map m_Map;
private string m_Description;
private BaseHouse m_House;
public Point3D Location { get; }
public Point3D Location => m_Location;
public Map Map { get; }
public Map Map => m_Map;
public string Description { get; }
public string Description => m_Description;
public BaseHouse House => m_House;
public BaseHouse House { get; }
public RunebookEntry( Point3D loc, Map map, string desc, BaseHouse house )
{
m_Location = loc;
m_Map = map;
m_Description = desc;
m_House = house;
Location = loc;
Map = map;
Description = desc;
House = house;
}
public RunebookEntry( GenericReader reader )
@ -477,14 +445,14 @@ namespace Server.Items
{
case 1:
{
m_House = reader.ReadItem() as BaseHouse;
House = reader.ReadItem() as BaseHouse;
goto case 0;
}
case 0:
{
m_Location = reader.ReadPoint3D();
m_Map = reader.ReadMap();
m_Description = reader.ReadString();
Location = reader.ReadPoint3D();
Map = reader.ReadMap();
Description = reader.ReadString();
break;
}
@ -493,20 +461,20 @@ namespace Server.Items
public void Serialize( GenericWriter writer )
{
if ( m_House != null && !m_House.Deleted )
if ( House != null && !House.Deleted )
{
writer.Write( (byte) 1 ); // version
writer.Write( m_House );
writer.Write( House );
}
else
{
writer.Write( (byte) 0 ); // version
}
writer.Write( m_Location );
writer.Write( m_Map );
writer.Write( m_Description );
writer.Write( Location );
writer.Write( Map );
writer.Write( Description );
}
}
}

View file

@ -6,9 +6,7 @@ namespace Server.Items
{
public class SpellScroll : Item, ICommodity
{
private int m_SpellID;
public int SpellID => m_SpellID;
public int SpellID { get; private set; }
int ICommodity.DescriptionNumber => LabelNumber;
bool ICommodity.IsDeedable => (Core.ML);
@ -29,7 +27,7 @@ namespace Server.Items
Weight = 1.0;
Amount = amount;
m_SpellID = spellID;
SpellID = spellID;
}
public override void Serialize( GenericWriter writer )
@ -38,7 +36,7 @@ namespace Server.Items
writer.Write( (int) 0 ); // version
writer.Write( (int) m_SpellID );
writer.Write( (int) SpellID );
}
public override void Deserialize( GenericReader reader )
@ -51,7 +49,7 @@ namespace Server.Items
{
case 0:
{
m_SpellID = reader.ReadInt();
SpellID = reader.ReadInt();
break;
}
@ -77,7 +75,7 @@ namespace Server.Items
return;
}
Spell spell = SpellRegistry.NewSpell( m_SpellID, from, this );
Spell spell = SpellRegistry.NewSpell( SpellID, from, this );
if ( spell != null )
spell.Cast();

View file

@ -317,7 +317,6 @@ namespace Server.Items
public virtual int BookCount => 64;
private ulong m_Content;
private int m_Count;
public override bool AllowSecureTrade( Mobile from, Mobile to, Mobile newOwner, bool accepted )
{
@ -369,7 +368,7 @@ namespace Server.Items
if ( val >= 0 && val < BookCount )
{
m_Content |= (ulong)1 << val;
++m_Count;
++SpellCount;
InvalidateProperties();
@ -393,11 +392,11 @@ namespace Server.Items
{
m_Content = value;
m_Count = 0;
SpellCount = 0;
while ( value > 0 )
{
m_Count += (int)(value & 0x1);
SpellCount += (int)(value & 0x1);
value >>= 1;
}
@ -407,7 +406,7 @@ namespace Server.Items
}
[CommandProperty( AccessLevel.GameMaster )]
public int SpellCount => m_Count;
public int SpellCount { get; private set; }
[Constructible]
public Spellbook() : this( (ulong)0 )
@ -532,16 +531,16 @@ namespace Server.Items
to.Send( new NewSpellbookContent( this, ItemID, BookOffset + 1, m_Content ) );
} else {
if (ns.ContainerGridLines) {
to.Send(new SpellbookContent6017(m_Count, BookOffset + 1, m_Content, this));
to.Send(new SpellbookContent6017(SpellCount, BookOffset + 1, m_Content, this));
} else {
to.Send(new SpellbookContent(m_Count, BookOffset + 1, m_Content, this));
to.Send(new SpellbookContent(SpellCount, BookOffset + 1, m_Content, this));
}
}
} else {
if ( ns.ContainerGridLines ) {
to.Send( new SpellbookContent6017( m_Count, BookOffset + 1, m_Content, this ) );
to.Send( new SpellbookContent6017( SpellCount, BookOffset + 1, m_Content, this ) );
} else {
to.Send( new SpellbookContent( m_Count, BookOffset + 1, m_Content, this ) );
to.Send( new SpellbookContent( SpellCount, BookOffset + 1, m_Content, this ) );
}
}
}
@ -660,7 +659,7 @@ namespace Server.Items
if ( Core.ML && (prop = m_AosAttributes.IncreasedKarmaLoss) != 0 )
list.Add( 1075210, prop.ToString() ); // Increased Karma Loss ~1val~%
list.Add( 1042886, m_Count.ToString() ); // ~1_NUMBERS_OF_SPELLS~ Spells
list.Add( 1042886, SpellCount.ToString() ); // ~1_NUMBERS_OF_SPELLS~ Spells
}
public override void OnSingleClick( Mobile from )
@ -670,7 +669,7 @@ namespace Server.Items
if ( m_Crafter != null )
LabelTo( from, 1050043, m_Crafter.Name ); // crafted by ~1_NAME~
LabelTo( from, 1042886, m_Count.ToString() );
LabelTo( from, 1042886, SpellCount.ToString() );
}
public override void OnDoubleClick( Mobile from )
@ -721,7 +720,7 @@ namespace Server.Items
m_AosSkillBonuses.Serialize( writer );
writer.Write( m_Content );
writer.Write( m_Count );
writer.Write( SpellCount );
}
public override void Deserialize( GenericReader reader )
@ -765,7 +764,7 @@ namespace Server.Items
case 0:
{
m_Content = reader.ReadULong();
m_Count = reader.ReadInt();
SpellCount = reader.ReadInt();
break;
}