using System; using System.Collections.Generic; using Server.ContextMenus; using Server.Engines.Craft; using CustomsFramework; namespace Server.Items { public abstract class Food : Item, IEngravable, IQuality { private Mobile m_Poisoner; private Poison m_Poison; private int m_FillFactor; private bool m_PlayerConstructed; private ItemQuality _Quality; [CommandProperty(AccessLevel.GameMaster)] public Mobile Poisoner { get { return m_Poisoner; } set { m_Poisoner = value; } } [CommandProperty(AccessLevel.GameMaster)] public bool PlayerConstructed { get { return m_PlayerConstructed; } set { m_PlayerConstructed = value; InvalidateProperties(); } } [CommandProperty(AccessLevel.GameMaster)] public Poison Poison { get { return m_Poison; } set { m_Poison = value; } } [CommandProperty(AccessLevel.GameMaster)] public int FillFactor { get { return m_FillFactor; } set { m_FillFactor = value; } } [CommandProperty(AccessLevel.GameMaster)] public virtual ItemQuality Quality { get { return _Quality; } set { _Quality = value; InvalidateProperties(); } } private string m_EngravedText = string.Empty; [CommandProperty(AccessLevel.GameMaster)] public string EngravedText { get { return m_EngravedText; } set { if (value != null) m_EngravedText = value; else m_EngravedText = string.Empty; InvalidateProperties(); } } public Food(int itemID) : this(1, itemID) { } public Food(int amount, int itemID) : base(itemID) { Stackable = true; Amount = amount; m_FillFactor = 1; } public Food(Serial serial) : base(serial) { } public override void OnAfterDuped(Item newItem) { Food food = newItem as Food; if (food == null) return; food.PlayerConstructed = m_PlayerConstructed; food.Poisoner = m_Poisoner; food.Poison = m_Poison; food.Quality = _Quality; base.OnAfterDuped(newItem); } public virtual int OnCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, ITool tool, CraftItem craftItem, int resHue) { Quality = (ItemQuality)quality; return quality; } public override void GetContextMenuEntries(Mobile from, List list) { base.GetContextMenuEntries(from, list); if (from.Alive) list.Add(new ContextMenus.EatEntry(from, this)); } public virtual bool TryEat(Mobile from) { if (Deleted || !Movable || !from.CheckAlive() || !CheckItemUse(from)) return false; return Eat(from); } public override void AddCraftedProperties(ObjectPropertyList list) { if (_Quality == ItemQuality.Exceptional) { list.Add(1060636); // Exceptional } } public override void OnDoubleClick(Mobile from) { if (!Movable) return; if (from.InRange(GetWorldLocation(), 1)) { Eat(from); } } public override bool WillStack(Mobile from, Item dropped) { return dropped is Food && ((Food)dropped).PlayerConstructed == PlayerConstructed && base.WillStack(from, dropped); } public override void AddNameProperty(ObjectPropertyList list) { base.AddNameProperty(list); if (!String.IsNullOrEmpty(EngravedText)) { list.Add(1072305, Utility.FixHtml(EngravedText)); // Engraved: ~1_INSCRIPTION~ } } public virtual bool Eat(Mobile from) { // Fill the Mobile with FillFactor if (CheckHunger(from)) { // Play a random "eat" sound from.PlaySound(Utility.Random(0x3A, 3)); if (from.Body.IsHuman && !from.Mounted) { if (Core.SA) { from.Animate(AnimationType.Eat, 0); } else { from.Animate(34, 5, 1, true, false, 0); } } if (m_Poison != null) from.ApplyPoison(m_Poisoner, m_Poison); Consume(); EventSink.InvokeOnConsume(new OnConsumeEventArgs(from, this)); return true; } return false; } public virtual bool CheckHunger(Mobile from) { return FillHunger(from, m_FillFactor); } public static bool FillHunger(Mobile from, int fillFactor) { if (from.Hunger >= 20) { from.SendLocalizedMessage(500867); // You are simply too full to eat any more! return false; } int iHunger = from.Hunger + fillFactor; if (from.Stam < from.StamMax) from.Stam += Utility.Random(6, 3) + fillFactor / 5; if (iHunger >= 20) { from.Hunger = 20; from.SendLocalizedMessage(500872); // You manage to eat the food, but you are stuffed! } else { from.Hunger = iHunger; if (iHunger < 5) from.SendLocalizedMessage(500868); // You eat the food, but are still extremely hungry. else if (iHunger < 10) from.SendLocalizedMessage(500869); // You eat the food, and begin to feel more satiated. else if (iHunger < 15) from.SendLocalizedMessage(500870); // After eating the food, you feel much less hungry. else from.SendLocalizedMessage(500871); // You feel quite full after consuming the food. } return true; } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)7); // version writer.Write((int)_Quality); writer.Write(m_EngravedText); writer.Write((bool)m_PlayerConstructed); writer.Write(m_Poisoner); Poison.Serialize(m_Poison, writer); writer.Write(m_FillFactor); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch ( version ) { case 1: { switch ( reader.ReadInt() ) { case 0: m_Poison = null; break; case 1: m_Poison = Poison.Lesser; break; case 2: m_Poison = Poison.Regular; break; case 3: m_Poison = Poison.Greater; break; case 4: m_Poison = Poison.Deadly; break; } break; } case 2: { m_Poison = Poison.Deserialize(reader); break; } case 3: { m_Poison = Poison.Deserialize(reader); m_FillFactor = reader.ReadInt(); break; } case 4: { m_Poisoner = reader.ReadMobile(); goto case 3; } case 5: { m_PlayerConstructed = reader.ReadBool(); goto case 4; } case 6: m_EngravedText = reader.ReadString(); goto case 5; case 7: _Quality = (ItemQuality)reader.ReadInt(); goto case 6; } } } public class BreadLoaf : Food { public override ItemQuality Quality { get { return ItemQuality.Normal; } set { } } [Constructable] public BreadLoaf() : this(1) { } [Constructable] public BreadLoaf(int amount) : base(amount, 0x103B) { Weight = 1.0; FillFactor = 3; } public BreadLoaf(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class Bacon : Food { [Constructable] public Bacon() : this(1) { } [Constructable] public Bacon(int amount) : base(amount, 0x979) { Weight = 1.0; FillFactor = 1; } public Bacon(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class SlabOfBacon : Food { [Constructable] public SlabOfBacon() : this(1) { } [Constructable] public SlabOfBacon(int amount) : base(amount, 0x976) { Weight = 1.0; FillFactor = 3; } public SlabOfBacon(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class FishSteak : Food { public override ItemQuality Quality { get { return ItemQuality.Normal; } set { } } public override double DefaultWeight { get { return 0.1; } } [Constructable] public FishSteak() : this(1) { } [Constructable] public FishSteak(int amount) : base(amount, 0x97B) { FillFactor = 3; } public FishSteak(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class CheeseWheel : Food { public override double DefaultWeight { get { return 0.1; } } [Constructable] public CheeseWheel() : this(1) { } [Constructable] public CheeseWheel(int amount) : base(amount, 0x97E) { FillFactor = 3; } public CheeseWheel(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class CheeseWedge : Food { public override double DefaultWeight { get { return 0.1; } } [Constructable] public CheeseWedge() : this(1) { } [Constructable] public CheeseWedge(int amount) : base(amount, 0x97D) { FillFactor = 3; } public CheeseWedge(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class CheeseSlice : Food { public override double DefaultWeight { get { return 0.1; } } [Constructable] public CheeseSlice() : this(1) { } [Constructable] public CheeseSlice(int amount) : base(amount, 0x97C) { FillFactor = 1; } public CheeseSlice(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class FrenchBread : Food { [Constructable] public FrenchBread() : this(1) { } [Constructable] public FrenchBread(int amount) : base(amount, 0x98C) { Weight = 2.0; FillFactor = 3; } public FrenchBread(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class FriedEggs : Food { public override ItemQuality Quality { get { return ItemQuality.Normal; } set { } } [Constructable] public FriedEggs() : this(1) { } [Constructable] public FriedEggs(int amount) : base(amount, 0x9B6) { Weight = 1.0; FillFactor = 4; } public FriedEggs(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class CookedBird : Food { public override ItemQuality Quality { get { return ItemQuality.Normal; } set { } } [Constructable] public CookedBird() : this(1) { } [Constructable] public CookedBird(int amount) : base(amount, 0x9B7) { Weight = 1.0; FillFactor = 5; } public CookedBird(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class RoastPig : Food { [Constructable] public RoastPig() : this(1) { } [Constructable] public RoastPig(int amount) : base(amount, 0x9BB) { Weight = 45.0; FillFactor = 20; } public RoastPig(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class Sausage : Food { [Constructable] public Sausage() : this(1) { } [Constructable] public Sausage(int amount) : base(amount, 0x9C0) { Weight = 1.0; FillFactor = 4; } public Sausage(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class Ham : Food { [Constructable] public Ham() : this(1) { } [Constructable] public Ham(int amount) : base(amount, 0x9C9) { Weight = 1.0; FillFactor = 5; } public Ham(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class Cake : Food { [Constructable] public Cake() : base(0x9E9) { Stackable = false; Weight = 1.0; FillFactor = 10; } public Cake(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class Ribs : Food { public override ItemQuality Quality { get { return ItemQuality.Normal; } set { } } [Constructable] public Ribs() : this(1) { } [Constructable] public Ribs(int amount) : base(amount, 0x9F2) { Weight = 1.0; FillFactor = 5; } public Ribs(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class Cookies : Food { [Constructable] public Cookies() : base(0x160b) { Stackable = Core.ML; Weight = 1.0; FillFactor = 4; } public Cookies(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class Muffins : Food { [Constructable] public Muffins() : base(0x9eb) { Stackable = true; Weight = 1.0; FillFactor = 4; } public Muffins(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)1); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); if (version == 0) Stackable = true; } } [TypeAlias("Server.Items.Pizza")] public class CheesePizza : Food { public override int LabelNumber { get { return 1044516; } }// cheese pizza [Constructable] public CheesePizza() : base(0x1040) { Stackable = false; Weight = 1.0; FillFactor = 6; } public CheesePizza(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class SausagePizza : Food { public override int LabelNumber { get { return 1044517; } }// sausage pizza [Constructable] public SausagePizza() : base(0x1040) { Stackable = false; Weight = 1.0; FillFactor = 6; } public SausagePizza(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } #if false public class Pizza : Food { [Constructable] public Pizza() : base( 0x1040 ) { Stackable = false; Weight = 1.0; FillFactor = 6; } public Pizza( Serial serial ) : base( serial ) { } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); // version } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); } } #endif public class FruitPie : Food { public override int LabelNumber { get { return 1041346; } }// baked fruit pie [Constructable] public FruitPie() : base(0x1041) { Stackable = false; Weight = 1.0; FillFactor = 5; } public FruitPie(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class MeatPie : Food { public override int LabelNumber { get { return 1041347; } }// baked meat pie [Constructable] public MeatPie() : base(0x1041) { Stackable = false; Weight = 1.0; FillFactor = 5; } public MeatPie(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class PumpkinPie : Food { public override int LabelNumber { get { return 1041348; } }// baked pumpkin pie [Constructable] public PumpkinPie() : base(0x1041) { Stackable = false; Weight = 1.0; FillFactor = 5; } public PumpkinPie(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class ApplePie : Food { public override int LabelNumber { get { return 1041343; } }// baked apple pie [Constructable] public ApplePie() : base(0x1041) { Stackable = false; Weight = 1.0; FillFactor = 5; } public ApplePie(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class PeachCobbler : Food { public override int LabelNumber { get { return 1041344; } }// baked peach cobbler [Constructable] public PeachCobbler() : base(0x1041) { Stackable = false; Weight = 1.0; FillFactor = 5; } public PeachCobbler(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class Quiche : Food { public override int LabelNumber { get { return 1041345; } }// baked quiche [Constructable] public Quiche() : base(0x1041) { Stackable = Core.ML; Weight = 1.0; FillFactor = 5; } public Quiche(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class LambLeg : Food { public override ItemQuality Quality { get { return ItemQuality.Normal; } set { } } [Constructable] public LambLeg() : this(1) { } [Constructable] public LambLeg(int amount) : base(amount, 0x160a) { Weight = 2.0; FillFactor = 5; } public LambLeg(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class ChickenLeg : Food { public override ItemQuality Quality { get { return ItemQuality.Normal; } set { } } [Constructable] public ChickenLeg() : this(1) { } [Constructable] public ChickenLeg(int amount) : base(amount, 0x1608) { Weight = 1.0; FillFactor = 4; } public ChickenLeg(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } [FlipableAttribute(0xC74, 0xC75)] public class HoneydewMelon : Food { [Constructable] public HoneydewMelon() : this(1) { } [Constructable] public HoneydewMelon(int amount) : base(amount, 0xC74) { Weight = 1.0; FillFactor = 1; } public HoneydewMelon(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } [FlipableAttribute(0xC64, 0xC65)] public class YellowGourd : Food { [Constructable] public YellowGourd() : this(1) { } [Constructable] public YellowGourd(int amount) : base(amount, 0xC64) { Weight = 1.0; FillFactor = 1; } public YellowGourd(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } [FlipableAttribute(0xC66, 0xC67)] public class GreenGourd : Food { [Constructable] public GreenGourd() : this(1) { } [Constructable] public GreenGourd(int amount) : base(amount, 0xC66) { Weight = 1.0; FillFactor = 1; } public GreenGourd(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } [FlipableAttribute(0xC7F, 0xC81)] public class EarOfCorn : Food { [Constructable] public EarOfCorn() : this(1) { } [Constructable] public EarOfCorn(int amount) : base(amount, 0xC81) { Weight = 1.0; FillFactor = 1; } public EarOfCorn(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class Turnip : Food { [Constructable] public Turnip() : this(1) { } [Constructable] public Turnip(int amount) : base(amount, 0xD3A) { Weight = 1.0; FillFactor = 1; } public Turnip(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class SheafOfHay : Item { [Constructable] public SheafOfHay() : base(0xF36) { Weight = 10.0; } public SheafOfHay(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class ThreeTieredCake : Item, IQuality { private ItemQuality _Quality; private int _Pieces; [CommandProperty(AccessLevel.GameMaster)] public ItemQuality Quality { get { return _Quality; } set { _Quality = value; InvalidateProperties(); } } public bool PlayerConstructed { get { return true; } } [CommandProperty(AccessLevel.GameMaster)] public int Pieces { get { return _Pieces; } set { _Pieces = value; if (_Pieces <= 0) Delete(); } } public override int LabelNumber { get { return 1098235; } } // A Three Tiered Cake [Constructable] public ThreeTieredCake() : base(0x4BA3) { Weight = 1.0; Pieces = 10; } public virtual int OnCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, ITool tool, CraftItem craftItem, int resHue) { Quality = (ItemQuality)quality; return quality; } public override void OnDoubleClick(Mobile from) { if (IsChildOf(from.Backpack)) { var cake = new Cake(); cake.ItemID = 0x4BA4; from.PrivateOverheadMessage(Network.MessageType.Regular, 1154, 1157341, from.NetState); // *You cut a slice from the cake.* from.AddToBackpack(cake); Pieces--; } else { from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it. } } public override void AddCraftedProperties(ObjectPropertyList list) { if (_Quality == ItemQuality.Exceptional) { list.Add(1060636); // Exceptional } } public ThreeTieredCake(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version writer.Write((int)_Quality); writer.Write(_Pieces); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); _Quality = (ItemQuality)reader.ReadInt(); _Pieces = reader.ReadInt(); } } public class Hamburger : Food { public override int LabelNumber { get { return 1125202; } } // hamburger [Constructable] public Hamburger() : this(1) { } [Constructable] public Hamburger(int amount) : base(amount, 0xA0DA) { FillFactor = 2; } public Hamburger(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } [Flipable(0xA0D8, 0xA0D9)] public class HotDog : Food { public override int LabelNumber { get { return 1125201; } } // hot dog [Constructable] public HotDog() : this(1) { } [Constructable] public HotDog(int amount) : base(amount, 0xA0D8) { FillFactor = 2; } public HotDog(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } [Flipable(0xA0D6, 0xA0D7)] public class CookableSausage : Food { public override int LabelNumber { get { return 1125198; } } // sausage [Constructable] public CookableSausage() : base(0xA0D6) { FillFactor = 2; } public CookableSausage(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); // version } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class PulledPorkPlatter : Food { public override int LabelNumber { get { return 1123351; } } // Pulled Pork Platter [Constructable] public PulledPorkPlatter() : base(1, 0x999F) { FillFactor = 5; Stackable = false; Hue = 1157; } public PulledPorkPlatter(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } public class PulledPorkSandwich : Food { public override int LabelNumber { get { return 1123352; } } // Pulled Pork Sandwich [Constructable] public PulledPorkSandwich() : base(1, 0x99A0) { FillFactor = 3; Stackable = false; } public PulledPorkSandwich(Serial serial) : base(serial) { } public override void Serialize(GenericWriter writer) { base.Serialize(writer); writer.Write((int)0); } public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); } } }