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( var genericCtor = symbol.Constructors.FirstOrDefault(
m => !m.IsStatic && m => !m.IsStatic &&
m.MethodKind == MethodKind.Constructor && m.MethodKind == MethodKind.Constructor &&
m.Parameters.Length >= 1 &&
m.Parameters.Length <= 2 && m.Parameters.Length <= 2 &&
SymbolEqualityComparer.Default.Equals(m.Parameters[0].Type, genericReaderInterface) SymbolEqualityComparer.Default.Equals(m.Parameters[0].Type, genericReaderInterface)
); );

View file

@ -1,7 +1,8 @@
namespace Server.Items namespace Server.Items
{ {
[Serializable(0, false)]
[Flippable(0x1B09, 0x1B10)] [Flippable(0x1B09, 0x1B10)]
public class BonePile : Item, IScissorable public partial class BonePile : Item, IScissorable
{ {
[Constructible] [Constructible]
public BonePile() : base(0x1B09 + Utility.Random(8)) public BonePile() : base(0x1B09 + Utility.Random(8))
@ -10,10 +11,6 @@ namespace Server.Items
Weight = 10.0; Weight = 10.0;
} }
public BonePile(Serial serial) : base(serial)
{
}
public bool Scissor(Mobile from, Scissors scissors) public bool Scissor(Mobile from, Scissors scissors)
{ {
if (Deleted || !from.CanSee(this)) if (Deleted || !from.CanSee(this))
@ -25,19 +22,5 @@ namespace Server.Items
return true; 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 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] [Constructible]
public Head(string playerName) : this(HeadType.Regular, playerName) public Head(string playerName) : this(HeadType.Regular, playerName)
{ {
} }
[Constructible] [Constructible]
public Head(HeadType headType = HeadType.Regular, string playerName = null) public Head(HeadType headType = HeadType.Regular, string playerName = null) : base(0x1DA0)
: base(0x1DA0)
{ {
HeadType = headType; _headType = headType;
PlayerName = playerName; _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 public override string DefaultName
{ {
get get
{ {
if (PlayerName == null) if (_playerName == null)
{ {
return base.DefaultName; return base.DefaultName;
} }
return HeadType switch return _headType switch
{ {
HeadType.Duel => $"the head of {PlayerName}, taken in a duel", HeadType.Duel => $"the head of {_playerName}, taken in a duel",
HeadType.Tournament => $"the head of {PlayerName}, taken in a tournament", HeadType.Tournament => $"the head of {_playerName}, taken in a tournament",
_ => $"the head of {PlayerName}" _ => $"the head of {_playerName}"
}; };
} }
} }
public override void Serialize(IGenericWriter writer) private void Deserialize(IGenericReader reader, int version)
{ {
base.Serialize(writer); _playerName = reader.ReadString();
_headType = (HeadType)reader.ReadEncodedInt();
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;
}
} }
} }
} }

View file

@ -1,28 +1,11 @@
namespace Server.Items namespace Server.Items
{ {
public class LeftArm : Item [Serializable(0, false)]
public partial class LeftArm : Item
{ {
[Constructible] [Constructible]
public LeftArm() : base(0x1DA1) 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 namespace Server.Items
{ {
public class LeftLeg : Item [Serializable(0, false)]
public partial class LeftLeg : Item
{ {
[Constructible] [Constructible]
public LeftLeg() : base(0x1DA3) 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 namespace Server.Items
{ {
[Serializable(0, false)]
[Flippable(0x1B17, 0x1B18)] [Flippable(0x1B17, 0x1B18)]
public class RibCage : Item, IScissorable public partial class RibCage : Item, IScissorable
{ {
[Constructible] [Constructible]
public RibCage() : base(0x1B17 + Utility.Random(2)) public RibCage() : base(0x1B17 + Utility.Random(2))
@ -10,10 +11,6 @@ namespace Server.Items
Weight = 5.0; Weight = 5.0;
} }
public RibCage(Serial serial) : base(serial)
{
}
public bool Scissor(Mobile from, Scissors scissors) public bool Scissor(Mobile from, Scissors scissors)
{ {
if (Deleted || !from.CanSee(this)) if (Deleted || !from.CanSee(this))
@ -25,19 +22,5 @@ namespace Server.Items
return true; 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 namespace Server.Items
{ {
public class RightArm : Item [Serializable(0, false)]
public partial class RightArm : Item
{ {
[Constructible] [Constructible]
public RightArm() : base(0x1DA2) 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 namespace Server.Items
{ {
public class RightLeg : Item [Serializable(0, false)]
public partial class RightLeg : Item
{ {
[Constructible] [Constructible]
public RightLeg() : base(0x1DA4) 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 namespace Server.Items
{ {
public class Torso : Item [Serializable(0, false)]
public partial class Torso : Item
{ {
[Constructible] [Constructible]
public Torso() : base(0x1D9F) => Weight = 2.0; 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 namespace Server.Items
{ {
public class BaseBook : Item, ISecurable [Serializable(5, false)]
public partial class BaseBook : Item, ISecurable
{ {
private string m_Author; [SerializableField(0)]
private string m_Title; [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] [Constructible]
public BaseBook(int itemID, int pageCount = 20, bool writable = true) : this(itemID, null, null, pageCount, writable) 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; var content = DefaultContent;
m_Title = title ?? content?.Title; _title = title ?? content?.Title;
m_Author = author ?? content?.Author; _author = author ?? content?.Author;
Writable = writable; _writable = writable;
if (content == null) 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 else
{ {
Pages = content.Copy(); _pages = content.Copy();
} }
} }
@ -46,39 +78,8 @@ namespace Server.Items
{ {
} }
public BaseBook(Serial serial) : base(serial)
{
}
[CommandProperty(AccessLevel.GameMaster)] [CommandProperty(AccessLevel.GameMaster)]
public string Title public int PagesCount => _pages.Length;
{
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 virtual BookContent DefaultContent => null; public virtual BookContent DefaultContent => null;
@ -115,164 +116,71 @@ namespace Server.Items
} }
} }
[CommandProperty(AccessLevel.GameMaster)]
public SecureLevel Level { get; set; }
public override void GetContextMenuEntries(Mobile from, List<ContextMenuEntry> list) public override void GetContextMenuEntries(Mobile from, List<ContextMenuEntry> list)
{ {
base.GetContextMenuEntries(from, list); base.GetContextMenuEntries(from, list);
SetSecureLevelEntry.AddTo(from, this, list); SetSecureLevelEntry.AddTo(from, this, list);
} }
public override void Serialize(IGenericWriter writer) [AfterDeserialization]
private void AfterDeserialization()
{ {
base.Serialize(writer);
var content = DefaultContent; var content = DefaultContent;
var flags = SaveFlags.None; if (content != null)
if (m_Title != content?.Title)
{ {
flags |= SaveFlags.Title; _title ??= content.Title;
} _author ??= content.Author;
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);
}
} }
} }
public override void Deserialize(IGenericReader reader) private void Deserialize(IGenericReader reader, int version)
{ {
base.Deserialize(reader); Level = (SecureLevel)reader.ReadInt();
var content = DefaultContent;
var version = reader.ReadInt(); var flags = (OldSaveFlags)reader.ReadEncodedInt();
switch (version) if ((flags & OldSaveFlags.Title) != 0)
{ {
case 4: _title = Utility.Intern(reader.ReadString());
{ }
Level = (SecureLevel)reader.ReadInt(); else if (content != null)
goto case 3; {
} _title = content.Title;
case 3:
case 2:
{
var content = DefaultContent;
var flags = (SaveFlags)reader.ReadByte();
if ((flags & SaveFlags.Title) != 0)
{
m_Title = Utility.Intern(reader.ReadString());
}
else if (content != null)
{
m_Title = content.Title;
}
if ((flags & SaveFlags.Author) != 0)
{
m_Author = reader.ReadString();
}
else if (content != null)
{
m_Author = content.Author;
}
Writable = (flags & SaveFlags.Writable) != 0;
if ((flags & SaveFlags.Content) != 0)
{
Pages = new BookPageInfo[reader.ReadEncodedInt()];
for (var i = 0; i < Pages.Length; ++i)
{
Pages[i] = new BookPageInfo(reader);
}
}
else
{
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)) if ((flags & OldSaveFlags.Author) != 0)
{ {
Weight = -1; _author = reader.ReadString();
}
else if (content != null)
{
_author = content.Author;
}
Writable = (flags & OldSaveFlags.Writable) != 0;
if ((flags & OldSaveFlags.Content) != 0)
{
Pages = new BookPageInfo[reader.ReadEncodedInt()];
for (var i = 0; i < Pages.Length; ++i)
{
Pages[i] = new BookPageInfo(reader);
}
}
else
{
Pages = content?.Copy() ?? Array.Empty<BookPageInfo>();
} }
} }
public override void AddNameProperty(ObjectPropertyList list) public override void AddNameProperty(ObjectPropertyList list)
{ {
if (!string.IsNullOrEmpty(m_Title)) if (!string.IsNullOrEmpty(_title))
{ {
list.Add(m_Title); list.Add(_title);
} }
else else
{ {
@ -284,25 +192,25 @@ namespace Server.Items
{ {
base.GetProperties( list ); base.GetProperties( list );
if (m_Title?.Length > 0) if (_title?.Length > 0)
list.Add( 1060658, "Title\t{0}", m_Title ); // ~1_val~: ~2_val~ list.Add( 1060658, "Title\t{0}", _title ); // ~1_val~: ~2_val~
if (m_Author?.Length > 0) if (_author?.Length > 0)
list.Add( 1060659, "Author\t{0}", m_Author ); // ~1_val~: ~2_val~ list.Add( 1060659, "Author\t{0}", _author ); // ~1_val~: ~2_val~
if (m_Pages?.Length > 0) if (_pages?.Length > 0)
list.Add( 1060660, "Pages\t{0}", m_Pages.Length ); // ~1_val~: ~2_val~ list.Add( 1060660, "Pages\t{0}", _pages.Length ); // ~1_val~: ~2_val~
}*/ }*/
public override void OnSingleClick(Mobile from) public override void OnSingleClick(Mobile from)
{ {
LabelTo(from, "{0} by {1}", m_Title, m_Author); LabelTo(from, "{0} by {1}", _title, _author);
LabelTo(from, "[{0} pages]", Pages.Length); LabelTo(from, "[{0} pages]", _pages.Length);
} }
public override void OnDoubleClick(Mobile from) public override void OnDoubleClick(Mobile from)
{ {
if (m_Title == null && m_Author == null && Writable) if (_title == null && _author == null && Writable)
{ {
Title = "a book"; Title = "a book";
Author = from.Name; Author = from.Name;
@ -313,7 +221,7 @@ namespace Server.Items
} }
[Flags] [Flags]
private enum SaveFlags private enum OldSaveFlags
{ {
None = 0x00, None = 0x00,
Title = 0x01, Title = 0x01,

View file

@ -1,6 +1,7 @@
namespace Server.Items namespace Server.Items
{ {
public class BlueBook : BaseBook [Serializable(0, false)]
public partial class BlueBook : BaseBook
{ {
[Constructible] [Constructible]
public BlueBook() : base(0xFF2, 40) public BlueBook() : base(0xFF2, 40)
@ -27,23 +28,5 @@ namespace Server.Items
public BlueBook(bool writable) : base(0xFF2, writable) 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 namespace Server.Items
{ {
public class BrownBook : BaseBook [Serializable(0, false)]
public partial class BrownBook : BaseBook
{ {
[Constructible] [Constructible]
public BrownBook() : base(0xFEF) public BrownBook() : base(0xFEF)
@ -27,23 +28,5 @@ namespace Server.Items
public BrownBook(bool writable) : base(0xFEF, writable) 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 namespace Server.Items
{ {
public class BlackthornWelcomeBook : RedBook [Serializable(0)]
public partial class BlackthornWelcomeBook : RedBook
{ {
public static readonly BookContent Content = new( public static readonly BookContent Content = new(
"A Welcome", "A Welcome",
@ -244,24 +245,6 @@ namespace Server.Items
[Constructible] [Constructible]
public BlackthornWelcomeBook() : base(false) => Hue = 0x89B; public BlackthornWelcomeBook() : base(false) => Hue = 0x89B;
public BlackthornWelcomeBook(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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 namespace Server.Items
{ {
public class DrakovsJournal : BlueBook [Serializable(0)]
public partial class DrakovsJournal : BlueBook
{ {
public static readonly BookContent Content = new( public static readonly BookContent Content = new(
"Drakov's Journal", "Drakov's Journal",
@ -94,24 +95,6 @@ namespace Server.Items
{ {
} }
public DrakovsJournal(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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 namespace Server.Items
{ {
public class FropozJournal : RedBook [Serializable(0)]
public partial class FropozJournal : RedBook
{ {
public static readonly BookContent Content = new( public static readonly BookContent Content = new(
"Journal", "Journal",
@ -132,10 +133,6 @@ namespace Server.Items
{ {
} }
public FropozJournal(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; public override BookContent DefaultContent => Content;
public override void AddNameProperty(ObjectPropertyList list) public override void AddNameProperty(ObjectPropertyList list)
@ -147,19 +144,5 @@ namespace Server.Items
{ {
LabelTo(from, "Fropoz's Journal"); 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 namespace Server.Items
{ {
public class KaburJournal : RedBook [Serializable(0)]
public partial class KaburJournal : RedBook
{ {
public static readonly BookContent Content = new( public static readonly BookContent Content = new(
"Journal", "Journal",
@ -211,10 +212,6 @@ namespace Server.Items
{ {
} }
public KaburJournal(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; public override BookContent DefaultContent => Content;
public override void AddNameProperty(ObjectPropertyList list) public override void AddNameProperty(ObjectPropertyList list)
@ -226,19 +223,5 @@ namespace Server.Items
{ {
LabelTo(from, "Khabur's Journal"); 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 namespace Server.Items
{ {
public class GrammarOfOrcish : BaseBook [Serializable(0)]
public partial class GrammarOfOrcish : BaseBook
{ {
public static readonly BookContent Content = new( public static readonly BookContent Content = new(
"A Grammar of Orcish", "A Grammar of Orcish",
@ -242,28 +243,11 @@ namespace Server.Items
{ {
} }
public GrammarOfOrcish(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"A Politic Call to Anarchy", "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 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( public static readonly BookContent Content = new(
"A Primer on Arms and Weapons", "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 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( public static readonly BookContent Content = new(
"A Song of Samlethe", "A Song of Samlethe",
@ -694,28 +644,11 @@ namespace Server.Items
{ {
} }
public SongOfSamlethe(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"A Tale of Three Tribes", "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 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( public static readonly BookContent Content = new(
"Beltran's Guide to Guilds", "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 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( public static readonly BookContent Content = new(
"Birds of Britannia", "Birds of Britannia",
@ -1335,28 +1234,11 @@ namespace Server.Items
{ {
} }
public BirdsOfBritannia(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"Britannian Flora: A Casual Guide", "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 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( public static readonly BookContent Content = new(
"Classic Children's Tales, Volume 2", "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 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( public static readonly BookContent Content = new(
"Classic Tales of Vesper, Volume 1", "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 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( public static readonly BookContent Content = new(
"Deceit: A Dungeon of Horrors", "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 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( public static readonly BookContent Content = new(
"Dimensional Travel, a Monograph", "Dimensional Travel, a Monograph",
@ -2271,28 +2085,11 @@ namespace Server.Items
{ {
} }
public DimensionalTravel(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"Ethical Hedonism: An Introduction", "Ethical Hedonism: An Introduction",
@ -2549,28 +2346,11 @@ namespace Server.Items
{ {
} }
public EthicalHedonism(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"My Story", "My Story",
@ -3068,28 +2848,11 @@ namespace Server.Items
{ {
} }
public MyStory(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"On the Diversity of Our Land", "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 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( public static readonly BookContent Content = new(
"Quest of the Virtues", "Quest of the Virtues",
@ -3658,28 +3404,11 @@ namespace Server.Items
{ {
} }
public QuestOfVirtues(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"Regarding Llamas", "Regarding Llamas",
@ -3729,28 +3458,11 @@ namespace Server.Items
{ {
} }
public RegardingLlamas(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"Talking to Wisps", "Talking to Wisps",
@ -3846,28 +3558,11 @@ namespace Server.Items
{ {
} }
public TalkingToWisps(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"Taming Dragons", "Taming Dragons",
@ -3953,28 +3648,11 @@ namespace Server.Items
{ {
} }
public TamingDragons(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"The Bold Stranger", "The Bold Stranger",
@ -4123,28 +3801,11 @@ namespace Server.Items
{ {
} }
public BoldStranger(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"The Burning of Trinsic", "The Burning of Trinsic",
@ -4384,28 +4045,11 @@ namespace Server.Items
{ {
} }
public BurningOfTrinsic(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"The Fight", "The Fight",
@ -4543,28 +4187,11 @@ namespace Server.Items
{ {
} }
public TheFight(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"The Life of a Travelling Minstrel", "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 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( public static readonly BookContent Content = new(
"The Major Trade Associations", "The Major Trade Associations",
@ -4956,28 +4566,11 @@ namespace Server.Items
{ {
} }
public MajorTradeAssociation(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"The Rankings of Trades", "The Rankings of Trades",
@ -5074,28 +4667,11 @@ namespace Server.Items
{ {
} }
public RankingsOfTrades(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"The Wild Girl of the Forest", "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 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( public static readonly BookContent Content = new(
"Treatise on Alchemy", "Treatise on Alchemy",
@ -5411,28 +4970,11 @@ namespace Server.Items
{ {
} }
public TreatiseOnAlchemy(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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( public static readonly BookContent Content = new(
"Virtue", "Virtue",
@ -5642,24 +5184,6 @@ namespace Server.Items
{ {
} }
public VirtueBook(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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 namespace Server.Items
{ {
public class NewAquariumBook : BlueBook [Serializable(0)]
public partial class NewAquariumBook : BlueBook
{ {
public static readonly BookContent Content = new( public static readonly BookContent Content = new(
"Your New Aquarium", "Your New Aquarium",
@ -94,24 +95,6 @@ namespace Server.Items
[Constructible] [Constructible]
public NewAquariumBook() : base(false) => Hue = 0; public NewAquariumBook() : base(false) => Hue = 0;
public NewAquariumBook(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; 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 namespace Server.Items
{ {
public class TranslatedGargoyleJournal : BlueBook [Serializable(0)]
public partial class TranslatedGargoyleJournal : BlueBook
{ {
public static readonly BookContent Content = new( public static readonly BookContent Content = new(
"Translated Journal", "Translated Journal",
@ -113,10 +114,6 @@ namespace Server.Items
{ {
} }
public TranslatedGargoyleJournal(Serial serial) : base(serial)
{
}
public override BookContent DefaultContent => Content; public override BookContent DefaultContent => Content;
public override void AddNameProperty(ObjectPropertyList list) public override void AddNameProperty(ObjectPropertyList list)
@ -128,19 +125,5 @@ namespace Server.Items
{ {
LabelTo(from, "Translated Gargoyle Journal"); 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 namespace Server.Items
{ {
public class RedBook : BaseBook [Serializable(0, false)]
public partial class RedBook : BaseBook
{ {
[Constructible] [Constructible]
public RedBook() : base(0xFF1) public RedBook() : base(0xFF1)
@ -27,23 +28,5 @@ namespace Server.Items
public RedBook(bool writable) : base(0xFF1, writable) 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 namespace Server.Items
{ {
public class TanBook : BaseBook [Serializable(0, false)]
public partial class TanBook : BaseBook
{ {
[Constructible] [Constructible]
public TanBook() : base(0xFF0) public TanBook() : base(0xFF0)
@ -27,23 +28,5 @@ namespace Server.Items
public TanBook(bool writable) : base(0xFF0, writable) 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"
}