fix(codegen): Codegens books (#697)

This commit is contained in:
Kamron Batman 2021-08-17 22:38:48 -07:00 committed by GitHub
parent 488f1044fa
commit f7e7fa424b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
68 changed files with 452 additions and 1109 deletions

View file

@ -102,6 +102,7 @@ namespace SerializationGenerator
var genericCtor = symbol.Constructors.FirstOrDefault(
m => !m.IsStatic &&
m.MethodKind == MethodKind.Constructor &&
m.Parameters.Length >= 1 &&
m.Parameters.Length <= 2 &&
SymbolEqualityComparer.Default.Equals(m.Parameters[0].Type, genericReaderInterface)
);

View file

@ -1,7 +1,8 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0x1B09, 0x1B10)]
public class BonePile : Item, IScissorable
public partial class BonePile : Item, IScissorable
{
[Constructible]
public BonePile() : base(0x1B09 + Utility.Random(8))
@ -10,10 +11,6 @@ namespace Server.Items
Weight = 10.0;
}
public BonePile(Serial serial) : base(serial)
{
}
public bool Scissor(Mobile from, Scissors scissors)
{
if (Deleted || !from.CanSee(this))
@ -25,19 +22,5 @@ namespace Server.Items
return true;
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -7,100 +7,51 @@ namespace Server.Items
Tournament
}
public class Head : Item
[Serializable(1, false)]
public partial class Head : Item
{
[SerializableField(0)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private string _playerName;
[SerializableField(1)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private HeadType _headType;
[Constructible]
public Head(string playerName) : this(HeadType.Regular, playerName)
{
}
[Constructible]
public Head(HeadType headType = HeadType.Regular, string playerName = null)
: base(0x1DA0)
public Head(HeadType headType = HeadType.Regular, string playerName = null) : base(0x1DA0)
{
HeadType = headType;
PlayerName = playerName;
_headType = headType;
_playerName = playerName;
}
public Head(Serial serial)
: base(serial)
{
}
[CommandProperty(AccessLevel.GameMaster)]
public string PlayerName { get; set; }
[CommandProperty(AccessLevel.GameMaster)]
public HeadType HeadType { get; set; }
public override string DefaultName
{
get
{
if (PlayerName == null)
if (_playerName == null)
{
return base.DefaultName;
}
return HeadType switch
return _headType switch
{
HeadType.Duel => $"the head of {PlayerName}, taken in a duel",
HeadType.Tournament => $"the head of {PlayerName}, taken in a tournament",
_ => $"the head of {PlayerName}"
HeadType.Duel => $"the head of {_playerName}, taken in a duel",
HeadType.Tournament => $"the head of {_playerName}, taken in a tournament",
_ => $"the head of {_playerName}"
};
}
}
public override void Serialize(IGenericWriter writer)
private void Deserialize(IGenericReader reader, int version)
{
base.Serialize(writer);
writer.Write(1); // version
writer.Write(PlayerName);
writer.WriteEncodedInt((int)HeadType);
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
switch (version)
{
case 1:
PlayerName = reader.ReadString();
HeadType = (HeadType)reader.ReadEncodedInt();
break;
case 0:
var format = Name;
if (format != null)
{
if (format.StartsWithOrdinal("the head of "))
{
format = format[14..]; // "the head of|..."
}
if (format.EndsWithOrdinal(", taken in a duel"))
{
format = format[..^", taken in a duel".Length];
HeadType = HeadType.Duel;
}
else if (format.EndsWithOrdinal(", taken in a tournament"))
{
format = format[..^", taken in a tournament".Length];
HeadType = HeadType.Tournament;
}
}
PlayerName = format;
Name = null;
break;
}
_playerName = reader.ReadString();
_headType = (HeadType)reader.ReadEncodedInt();
}
}
}

View file

@ -1,28 +1,11 @@
namespace Server.Items
{
public class LeftArm : Item
[Serializable(0, false)]
public partial class LeftArm : Item
{
[Constructible]
public LeftArm() : base(0x1DA1)
{
}
public LeftArm(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,28 +1,11 @@
namespace Server.Items
{
public class LeftLeg : Item
[Serializable(0, false)]
public partial class LeftLeg : Item
{
[Constructible]
public LeftLeg() : base(0x1DA3)
{
}
public LeftLeg(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,7 +1,8 @@
namespace Server.Items
{
[Serializable(0, false)]
[Flippable(0x1B17, 0x1B18)]
public class RibCage : Item, IScissorable
public partial class RibCage : Item, IScissorable
{
[Constructible]
public RibCage() : base(0x1B17 + Utility.Random(2))
@ -10,10 +11,6 @@ namespace Server.Items
Weight = 5.0;
}
public RibCage(Serial serial) : base(serial)
{
}
public bool Scissor(Mobile from, Scissors scissors)
{
if (Deleted || !from.CanSee(this))
@ -25,19 +22,5 @@ namespace Server.Items
return true;
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,28 +1,11 @@
namespace Server.Items
{
public class RightArm : Item
[Serializable(0, false)]
public partial class RightArm : Item
{
[Constructible]
public RightArm() : base(0x1DA2)
{
}
public RightArm(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,28 +1,11 @@
namespace Server.Items
{
public class RightLeg : Item
[Serializable(0, false)]
public partial class RightLeg : Item
{
[Constructible]
public RightLeg() : base(0x1DA4)
{
}
public RightLeg(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -1,26 +1,9 @@
namespace Server.Items
{
public class Torso : Item
[Serializable(0, false)]
public partial class Torso : Item
{
[Constructible]
public Torso() : base(0x1D9F) => Weight = 2.0;
public Torso(Serial serial) : base(serial)
{
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
}
}

View file

@ -7,10 +7,42 @@ using Server.Multis;
namespace Server.Items
{
public class BaseBook : Item, ISecurable
[Serializable(5, false)]
public partial class BaseBook : Item, ISecurable
{
private string m_Author;
private string m_Title;
[SerializableField(0)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private SecureLevel _level;
[InternString]
[InvalidateProperties]
[SerializableField(1)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private string _title;
[SerializableFieldSaveFlag(1)]
private bool ShouldSerializeTitle() => _title != DefaultContent?.Title;
[InvalidateProperties]
[SerializableField(2)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private string _author;
[SerializableFieldSaveFlag(2)]
private bool ShouldSerializeAuthor() => _author != DefaultContent?.Author;
[SerializableField(3)]
[SerializableFieldAttr("[CommandProperty(AccessLevel.GameMaster)]")]
private bool _writable;
[SerializableFieldSaveFlag(3)]
private bool ShouldSerializeWritable() => _writable;
[SerializableField(4, setter: "protected")]
private BookPageInfo[] _pages;
[SerializableFieldSaveFlag(4)]
private bool ShouldSerializePages() => DefaultContent?.IsMatch(_pages) != true;
[Constructible]
public BaseBook(int itemID, int pageCount = 20, bool writable = true) : this(itemID, null, null, pageCount, writable)
@ -22,22 +54,22 @@ namespace Server.Items
{
var content = DefaultContent;
m_Title = title ?? content?.Title;
m_Author = author ?? content?.Author;
Writable = writable;
_title = title ?? content?.Title;
_author = author ?? content?.Author;
_writable = writable;
if (content == null)
{
Pages = new BookPageInfo[pageCount];
_pages = new BookPageInfo[pageCount];
for (var i = 0; i < Pages.Length; ++i)
for (var i = 0; i < _pages.Length; ++i)
{
Pages[i] = new BookPageInfo();
_pages[i] = new BookPageInfo();
}
}
else
{
Pages = content.Copy();
_pages = content.Copy();
}
}
@ -46,39 +78,8 @@ namespace Server.Items
{
}
public BaseBook(Serial serial) : base(serial)
{
}
[CommandProperty(AccessLevel.GameMaster)]
public string Title
{
get => m_Title;
set
{
m_Title = value;
InvalidateProperties();
}
}
[CommandProperty(AccessLevel.GameMaster)]
public string Author
{
get => m_Author;
set
{
m_Author = value;
InvalidateProperties();
}
}
[CommandProperty(AccessLevel.GameMaster)]
public bool Writable { get; set; }
[CommandProperty(AccessLevel.GameMaster)]
public int PagesCount => Pages.Length;
public BookPageInfo[] Pages { get; protected set; }
public int PagesCount => _pages.Length;
public virtual BookContent DefaultContent => null;
@ -115,111 +116,52 @@ namespace Server.Items
}
}
[CommandProperty(AccessLevel.GameMaster)]
public SecureLevel Level { get; set; }
public override void GetContextMenuEntries(Mobile from, List<ContextMenuEntry> list)
{
base.GetContextMenuEntries(from, list);
SetSecureLevelEntry.AddTo(from, this, list);
}
public override void Serialize(IGenericWriter writer)
[AfterDeserialization]
private void AfterDeserialization()
{
base.Serialize(writer);
var content = DefaultContent;
var flags = SaveFlags.None;
if (m_Title != content?.Title)
if (content != null)
{
flags |= SaveFlags.Title;
}
if (m_Author != content?.Author)
{
flags |= SaveFlags.Author;
}
if (Writable)
{
flags |= SaveFlags.Writable;
}
if (content?.IsMatch(Pages) != true)
{
flags |= SaveFlags.Content;
}
writer.Write(4); // version
writer.Write((int)Level);
writer.Write((byte)flags);
if ((flags & SaveFlags.Title) != 0)
{
writer.Write(m_Title);
}
if ((flags & SaveFlags.Author) != 0)
{
writer.Write(m_Author);
}
if ((flags & SaveFlags.Content) != 0)
{
writer.WriteEncodedInt(Pages.Length);
for (var i = 0; i < Pages.Length; ++i)
{
Pages[i].Serialize(writer);
}
_title ??= content.Title;
_author ??= content.Author;
}
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
switch (version)
{
case 4:
private void Deserialize(IGenericReader reader, int version)
{
Level = (SecureLevel)reader.ReadInt();
goto case 3;
}
case 3:
case 2:
{
var content = DefaultContent;
var flags = (SaveFlags)reader.ReadByte();
var flags = (OldSaveFlags)reader.ReadEncodedInt();
if ((flags & SaveFlags.Title) != 0)
if ((flags & OldSaveFlags.Title) != 0)
{
m_Title = Utility.Intern(reader.ReadString());
_title = Utility.Intern(reader.ReadString());
}
else if (content != null)
{
m_Title = content.Title;
_title = content.Title;
}
if ((flags & SaveFlags.Author) != 0)
if ((flags & OldSaveFlags.Author) != 0)
{
m_Author = reader.ReadString();
_author = reader.ReadString();
}
else if (content != null)
{
m_Author = content.Author;
_author = content.Author;
}
Writable = (flags & SaveFlags.Writable) != 0;
Writable = (flags & OldSaveFlags.Writable) != 0;
if ((flags & SaveFlags.Content) != 0)
if ((flags & OldSaveFlags.Content) != 0)
{
Pages = new BookPageInfo[reader.ReadEncodedInt()];
@ -232,47 +174,13 @@ namespace Server.Items
{
Pages = content?.Copy() ?? Array.Empty<BookPageInfo>();
}
break;
}
case 1:
case 0:
{
m_Title = reader.ReadString();
m_Author = reader.ReadString();
Writable = reader.ReadBool();
if (version == 0 || reader.ReadBool())
{
Pages = new BookPageInfo[reader.ReadInt()];
for (var i = 0; i < Pages.Length; ++i)
{
Pages[i] = new BookPageInfo(reader);
}
}
else
{
var content = DefaultContent;
Pages = content?.Copy() ?? Array.Empty<BookPageInfo>();
}
break;
}
}
if (version < 3 && (Weight == 1 || Weight == 2))
{
Weight = -1;
}
}
public override void AddNameProperty(ObjectPropertyList list)
{
if (!string.IsNullOrEmpty(m_Title))
if (!string.IsNullOrEmpty(_title))
{
list.Add(m_Title);
list.Add(_title);
}
else
{
@ -284,25 +192,25 @@ namespace Server.Items
{
base.GetProperties( list );
if (m_Title?.Length > 0)
list.Add( 1060658, "Title\t{0}", m_Title ); // ~1_val~: ~2_val~
if (_title?.Length > 0)
list.Add( 1060658, "Title\t{0}", _title ); // ~1_val~: ~2_val~
if (m_Author?.Length > 0)
list.Add( 1060659, "Author\t{0}", m_Author ); // ~1_val~: ~2_val~
if (_author?.Length > 0)
list.Add( 1060659, "Author\t{0}", _author ); // ~1_val~: ~2_val~
if (m_Pages?.Length > 0)
list.Add( 1060660, "Pages\t{0}", m_Pages.Length ); // ~1_val~: ~2_val~
if (_pages?.Length > 0)
list.Add( 1060660, "Pages\t{0}", _pages.Length ); // ~1_val~: ~2_val~
}*/
public override void OnSingleClick(Mobile from)
{
LabelTo(from, "{0} by {1}", m_Title, m_Author);
LabelTo(from, "[{0} pages]", Pages.Length);
LabelTo(from, "{0} by {1}", _title, _author);
LabelTo(from, "[{0} pages]", _pages.Length);
}
public override void OnDoubleClick(Mobile from)
{
if (m_Title == null && m_Author == null && Writable)
if (_title == null && _author == null && Writable)
{
Title = "a book";
Author = from.Name;
@ -313,7 +221,7 @@ namespace Server.Items
}
[Flags]
private enum SaveFlags
private enum OldSaveFlags
{
None = 0x00,
Title = 0x01,

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class BlueBook : BaseBook
[Serializable(0, false)]
public partial class BlueBook : BaseBook
{
[Constructible]
public BlueBook() : base(0xFF2, 40)
@ -27,23 +28,5 @@ namespace Server.Items
public BlueBook(bool writable) : base(0xFF2, writable)
{
}
public BlueBook(Serial serial) : base(serial)
{
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class BrownBook : BaseBook
[Serializable(0, false)]
public partial class BrownBook : BaseBook
{
[Constructible]
public BrownBook() : base(0xFEF)
@ -27,23 +28,5 @@ namespace Server.Items
public BrownBook(bool writable) : base(0xFEF, writable)
{
}
public BrownBook(Serial serial) : base(serial)
{
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class BlackthornWelcomeBook : RedBook
[Serializable(0)]
public partial class BlackthornWelcomeBook : RedBook
{
public static readonly BookContent Content = new(
"A Welcome",
@ -244,24 +245,6 @@ namespace Server.Items
[Constructible]
public BlackthornWelcomeBook() : base(false) => Hue = 0x89B;
public BlackthornWelcomeBook(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class DrakovsJournal : BlueBook
[Serializable(0)]
public partial class DrakovsJournal : BlueBook
{
public static readonly BookContent Content = new(
"Drakov's Journal",
@ -94,24 +95,6 @@ namespace Server.Items
{
}
public DrakovsJournal(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class FropozJournal : RedBook
[Serializable(0)]
public partial class FropozJournal : RedBook
{
public static readonly BookContent Content = new(
"Journal",
@ -132,10 +133,6 @@ namespace Server.Items
{
}
public FropozJournal(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void AddNameProperty(ObjectPropertyList list)
@ -147,19 +144,5 @@ namespace Server.Items
{
LabelTo(from, "Fropoz's Journal");
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class KaburJournal : RedBook
[Serializable(0)]
public partial class KaburJournal : RedBook
{
public static readonly BookContent Content = new(
"Journal",
@ -211,10 +212,6 @@ namespace Server.Items
{
}
public KaburJournal(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void AddNameProperty(ObjectPropertyList list)
@ -226,19 +223,5 @@ namespace Server.Items
{
LabelTo(from, "Khabur's Journal");
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class GrammarOfOrcish : BaseBook
[Serializable(0)]
public partial class GrammarOfOrcish : BaseBook
{
public static readonly BookContent Content = new(
"A Grammar of Orcish",
@ -242,28 +243,11 @@ namespace Server.Items
{
}
public GrammarOfOrcish(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class CallToAnarchy : BaseBook
[Serializable(0)]
public partial class CallToAnarchy : BaseBook
{
public static readonly BookContent Content = new(
"A Politic Call to Anarchy",
@ -420,28 +404,11 @@ namespace Server.Items
{
}
public CallToAnarchy(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class ArmsAndWeaponsPrimer : BaseBook
[Serializable(0)]
public partial class ArmsAndWeaponsPrimer : BaseBook
{
public static readonly BookContent Content = new(
"A Primer on Arms and Weapons",
@ -608,28 +575,11 @@ namespace Server.Items
{
}
public ArmsAndWeaponsPrimer(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class SongOfSamlethe : BaseBook
[Serializable(0)]
public partial class SongOfSamlethe : BaseBook
{
public static readonly BookContent Content = new(
"A Song of Samlethe",
@ -694,28 +644,11 @@ namespace Server.Items
{
}
public SongOfSamlethe(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class TaleOfThreeTribes : BaseBook
[Serializable(0)]
public partial class TaleOfThreeTribes : BaseBook
{
public static readonly BookContent Content = new(
"A Tale of Three Tribes",
@ -823,28 +756,11 @@ namespace Server.Items
{
}
public TaleOfThreeTribes(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class GuideToGuilds : BaseBook
[Serializable(0)]
public partial class GuideToGuilds : BaseBook
{
public static readonly BookContent Content = new(
"Beltran's Guide to Guilds",
@ -1028,28 +944,11 @@ namespace Server.Items
{
}
public GuideToGuilds(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class BirdsOfBritannia : BaseBook
[Serializable(0)]
public partial class BirdsOfBritannia : BaseBook
{
public static readonly BookContent Content = new(
"Birds of Britannia",
@ -1335,28 +1234,11 @@ namespace Server.Items
{
}
public BirdsOfBritannia(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class BritannianFlora : BaseBook
[Serializable(0)]
public partial class BritannianFlora : BaseBook
{
public static readonly BookContent Content = new(
"Britannian Flora: A Casual Guide",
@ -1547,28 +1429,11 @@ namespace Server.Items
{
}
public BritannianFlora(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class ChildrenTalesVol2 : BaseBook
[Serializable(0)]
public partial class ChildrenTalesVol2 : BaseBook
{
public static readonly BookContent Content = new(
"Classic Children's Tales, Volume 2",
@ -1671,28 +1536,11 @@ namespace Server.Items
{
}
public ChildrenTalesVol2(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class TalesOfVesperVol1 : BaseBook
[Serializable(0)]
public partial class TalesOfVesperVol1 : BaseBook
{
public static readonly BookContent Content = new(
"Classic Tales of Vesper, Volume 1",
@ -1909,28 +1757,11 @@ namespace Server.Items
{
}
public TalesOfVesperVol1(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class DeceitDungeonOfHorror : BaseBook
[Serializable(0)]
public partial class DeceitDungeonOfHorror : BaseBook
{
public static readonly BookContent Content = new(
"Deceit: A Dungeon of Horrors",
@ -2058,28 +1889,11 @@ namespace Server.Items
{
}
public DeceitDungeonOfHorror(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class DimensionalTravel : BaseBook
[Serializable(0)]
public partial class DimensionalTravel : BaseBook
{
public static readonly BookContent Content = new(
"Dimensional Travel, a Monograph",
@ -2271,28 +2085,11 @@ namespace Server.Items
{
}
public DimensionalTravel(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class EthicalHedonism : BaseBook
[Serializable(0)]
public partial class EthicalHedonism : BaseBook
{
public static readonly BookContent Content = new(
"Ethical Hedonism: An Introduction",
@ -2549,28 +2346,11 @@ namespace Server.Items
{
}
public EthicalHedonism(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class MyStory : BaseBook
[Serializable(0)]
public partial class MyStory : BaseBook
{
public static readonly BookContent Content = new(
"My Story",
@ -3068,28 +2848,11 @@ namespace Server.Items
{
}
public MyStory(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class DiversityOfOurLand : BaseBook
[Serializable(0)]
public partial class DiversityOfOurLand : BaseBook
{
public static readonly BookContent Content = new(
"On the Diversity of Our Land",
@ -3248,28 +3011,11 @@ namespace Server.Items
{
}
public DiversityOfOurLand(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class QuestOfVirtues : BaseBook
[Serializable(0)]
public partial class QuestOfVirtues : BaseBook
{
public static readonly BookContent Content = new(
"Quest of the Virtues",
@ -3658,28 +3404,11 @@ namespace Server.Items
{
}
public QuestOfVirtues(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class RegardingLlamas : BaseBook
[Serializable(0)]
public partial class RegardingLlamas : BaseBook
{
public static readonly BookContent Content = new(
"Regarding Llamas",
@ -3729,28 +3458,11 @@ namespace Server.Items
{
}
public RegardingLlamas(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class TalkingToWisps : BaseBook
[Serializable(0)]
public partial class TalkingToWisps : BaseBook
{
public static readonly BookContent Content = new(
"Talking to Wisps",
@ -3846,28 +3558,11 @@ namespace Server.Items
{
}
public TalkingToWisps(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class TamingDragons : BaseBook
[Serializable(0)]
public partial class TamingDragons : BaseBook
{
public static readonly BookContent Content = new(
"Taming Dragons",
@ -3953,28 +3648,11 @@ namespace Server.Items
{
}
public TamingDragons(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class BoldStranger : BaseBook
[Serializable(0)]
public partial class BoldStranger : BaseBook
{
public static readonly BookContent Content = new(
"The Bold Stranger",
@ -4123,28 +3801,11 @@ namespace Server.Items
{
}
public BoldStranger(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class BurningOfTrinsic : BaseBook
[Serializable(0)]
public partial class BurningOfTrinsic : BaseBook
{
public static readonly BookContent Content = new(
"The Burning of Trinsic",
@ -4384,28 +4045,11 @@ namespace Server.Items
{
}
public BurningOfTrinsic(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class TheFight : BaseBook
[Serializable(0)]
public partial class TheFight : BaseBook
{
public static readonly BookContent Content = new(
"The Fight",
@ -4543,28 +4187,11 @@ namespace Server.Items
{
}
public TheFight(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class LifeOfATravellingMinstrel : BaseBook
[Serializable(0)]
public partial class LifeOfATravellingMinstrel : BaseBook
{
public static readonly BookContent Content = new(
"The Life of a Travelling Minstrel",
@ -4749,28 +4376,11 @@ namespace Server.Items
{
}
public LifeOfATravellingMinstrel(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class MajorTradeAssociation : BaseBook
[Serializable(0)]
public partial class MajorTradeAssociation : BaseBook
{
public static readonly BookContent Content = new(
"The Major Trade Associations",
@ -4956,28 +4566,11 @@ namespace Server.Items
{
}
public MajorTradeAssociation(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class RankingsOfTrades : BaseBook
[Serializable(0)]
public partial class RankingsOfTrades : BaseBook
{
public static readonly BookContent Content = new(
"The Rankings of Trades",
@ -5074,28 +4667,11 @@ namespace Server.Items
{
}
public RankingsOfTrades(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class WildGirlOfTheForest : BaseBook
[Serializable(0)]
public partial class WildGirlOfTheForest : BaseBook
{
public static readonly BookContent Content = new(
"The Wild Girl of the Forest",
@ -5265,28 +4841,11 @@ namespace Server.Items
{
}
public WildGirlOfTheForest(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class TreatiseOnAlchemy : BaseBook
[Serializable(0)]
public partial class TreatiseOnAlchemy : BaseBook
{
public static readonly BookContent Content = new(
"Treatise on Alchemy",
@ -5411,28 +4970,11 @@ namespace Server.Items
{
}
public TreatiseOnAlchemy(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
public class VirtueBook : BaseBook
[Serializable(0)]
public partial class VirtueBook : BaseBook
{
public static readonly BookContent Content = new(
"Virtue",
@ -5642,24 +5184,6 @@ namespace Server.Items
{
}
public VirtueBook(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class NewAquariumBook : BlueBook
[Serializable(0)]
public partial class NewAquariumBook : BlueBook
{
public static readonly BookContent Content = new(
"Your New Aquarium",
@ -94,24 +95,6 @@ namespace Server.Items
[Constructible]
public NewAquariumBook() : base(false) => Hue = 0;
public NewAquariumBook(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class TranslatedGargoyleJournal : BlueBook
[Serializable(0)]
public partial class TranslatedGargoyleJournal : BlueBook
{
public static readonly BookContent Content = new(
"Translated Journal",
@ -113,10 +114,6 @@ namespace Server.Items
{
}
public TranslatedGargoyleJournal(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content;
public override void AddNameProperty(ObjectPropertyList list)
@ -128,19 +125,5 @@ namespace Server.Items
{
LabelTo(from, "Translated Gargoyle Journal");
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.WriteEncodedInt(0); // version
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadEncodedInt();
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class RedBook : BaseBook
[Serializable(0, false)]
public partial class RedBook : BaseBook
{
[Constructible]
public RedBook() : base(0xFF1)
@ -27,23 +28,5 @@ namespace Server.Items
public RedBook(bool writable) : base(0xFF1, writable)
{
}
public RedBook(Serial serial) : base(serial)
{
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
}
}

View file

@ -1,6 +1,7 @@
namespace Server.Items
{
public class TanBook : BaseBook
[Serializable(0, false)]
public partial class TanBook : BaseBook
{
[Constructible]
public TanBook() : base(0xFF0)
@ -27,23 +28,5 @@ namespace Server.Items
public TanBook(bool writable) : base(0xFF0, writable)
{
}
public TanBook(Serial serial) : base(serial)
{
}
public override void Deserialize(IGenericReader reader)
{
base.Deserialize(reader);
var version = reader.ReadInt();
}
public override void Serialize(IGenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
}
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.ArmsAndWeaponsPrimer"
}

View file

@ -0,0 +1,49 @@
{
"version": 5,
"type": "Server.Items.BaseBook",
"properties": [
{
"name": "Level",
"type": "Server.Multis.SecureLevel",
"rule": "EnumMigrationRule"
},
{
"name": "Title",
"type": "string",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
"InternString"
]
},
{
"name": "Author",
"type": "string",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "Writable",
"type": "bool",
"usesSaveFlag": true,
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "Pages",
"type": "Server.Items.BookPageInfo[]",
"usesSaveFlag": true,
"rule": "ArrayMigrationRule",
"ruleArguments": [
"Server.Items.BookPageInfo",
"SerializationMethodSignatureMigrationRule",
""
]
}
]
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BirdsOfBritannia"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BlackthornWelcomeBook"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BlueBook"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BoldStranger"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BonePile"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BritannianFlora"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BrownBook"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.BurningOfTrinsic"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.CallToAnarchy"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.ChildrenTalesVol2"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DeceitDungeonOfHorror"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DimensionalTravel"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DiversityOfOurLand"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.DrakovsJournal"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.EthicalHedonism"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.FropozJournal"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.GrammarOfOrcish"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.GuideToGuilds"
}

View file

@ -0,0 +1,19 @@
{
"version": 1,
"type": "Server.Items.Head",
"properties": [
{
"name": "PlayerName",
"type": "string",
"rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [
""
]
},
{
"name": "HeadType",
"type": "Server.Items.HeadType",
"rule": "EnumMigrationRule"
}
]
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.KaburJournal"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.LeftArm"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.LeftLeg"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.LifeOfATravellingMinstrel"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.MajorTradeAssociation"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.MyStory"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.NewAquariumBook"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.QuestOfVirtues"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.RankingsOfTrades"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.RedBook"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.RegardingLlamas"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.RibCage"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.RightArm"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.RightLeg"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.SongOfSamlethe"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TaleOfThreeTribes"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TalesOfVesperVol1"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TalkingToWisps"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TamingDragons"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TanBook"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TheFight"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.Torso"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TranslatedGargoyleJournal"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.TreatiseOnAlchemy"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.VirtueBook"
}

View file

@ -0,0 +1,4 @@
{
"version": 0,
"type": "Server.Items.WildGirlOfTheForest"
}