513 lines
12 KiB
C#
513 lines
12 KiB
C#
using Server;
|
|
using System;
|
|
|
|
namespace Server.Items
|
|
{
|
|
public abstract class BaseComplexFood : Food
|
|
{
|
|
private int m_Pieces;
|
|
|
|
[CommandProperty(AccessLevel.GameMaster)]
|
|
public int PiecesLeft
|
|
{
|
|
get { return m_Pieces; }
|
|
set
|
|
{
|
|
int oldAmt = m_Pieces;
|
|
m_Pieces = value;
|
|
|
|
if (m_Pieces == 0)
|
|
Delete();
|
|
else if (oldAmt != m_Pieces)
|
|
{
|
|
OnChanged();
|
|
InvalidateProperties();
|
|
}
|
|
}
|
|
}
|
|
|
|
public abstract Food Piece { get; }
|
|
public abstract int Pieces { get; }
|
|
|
|
public BaseComplexFood(int id)
|
|
: base(id)
|
|
{
|
|
Stackable = false;
|
|
this.Weight = 1.0;
|
|
|
|
m_Pieces = Pieces;
|
|
this.FillFactor = m_Pieces;
|
|
}
|
|
|
|
public override void OnDoubleClick(Mobile from)
|
|
{
|
|
if (IsChildOf(from.Backpack))
|
|
{
|
|
Item piece = Piece;
|
|
|
|
if (piece == null)
|
|
return;
|
|
|
|
if (from.Backpack == null || !from.Backpack.TryDropItem(from, piece, false))
|
|
piece.MoveToWorld(from.Location, from.Map);
|
|
|
|
PiecesLeft--;
|
|
}
|
|
}
|
|
|
|
public virtual void OnChanged()
|
|
{
|
|
}
|
|
|
|
public override void GetProperties(ObjectPropertyList list)
|
|
{
|
|
base.GetProperties(list);
|
|
|
|
list.Add(1153515, m_Pieces.ToString()); // ~1_COUNT~ pieces
|
|
}
|
|
|
|
public BaseComplexFood(Serial serial)
|
|
: base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
|
|
writer.Write((int)0); // version
|
|
writer.Write(m_Pieces);
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
|
|
int version = reader.ReadInt();
|
|
m_Pieces = reader.ReadInt();
|
|
}
|
|
}
|
|
|
|
public class SweetPotatoPie : BaseComplexFood
|
|
{
|
|
public override int LabelNumber { get { return 1153514; } } // sweet potato pie
|
|
|
|
public override Food Piece { get { return new SliceOfPie(); } }
|
|
public override int Pieces { get { return 6; } }
|
|
|
|
[Constructable]
|
|
public SweetPotatoPie()
|
|
: base(19469)
|
|
{
|
|
Stackable = false;
|
|
this.Weight = 1.0;
|
|
}
|
|
|
|
public override void OnChanged()
|
|
{
|
|
if (PiecesLeft < Pieces && ItemID == 19469)
|
|
ItemID = 19458;
|
|
}
|
|
|
|
public SweetPotatoPie(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(19459, 19560)]
|
|
public class SliceOfPie : Food
|
|
{
|
|
public override int LabelNumber { get { return 1153519; } } // slice of pie
|
|
|
|
[Constructable]
|
|
public SliceOfPie()
|
|
: base(19459)
|
|
{
|
|
Stackable = false;
|
|
this.Weight = 1.0;
|
|
this.FillFactor = 1;
|
|
}
|
|
|
|
public SliceOfPie(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 MashedSweetPotatoes : Food
|
|
{
|
|
public override int LabelNumber { get { return 1153516; } } // mashed sweet potatoes
|
|
|
|
[Constructable]
|
|
public MashedSweetPotatoes()
|
|
: base(19461)
|
|
{
|
|
Stackable = false;
|
|
this.Weight = 1.0;
|
|
this.FillFactor = 1;
|
|
}
|
|
|
|
public MashedSweetPotatoes(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(19371, 19372)]
|
|
public class BasketOfRolls : BaseComplexFood
|
|
{
|
|
public override int LabelNumber { get { return 1153518; } } // basket of rolls
|
|
|
|
public override Food Piece { get { return new DinnerRoll(); } }
|
|
public override int Pieces { get { return 13; } }
|
|
|
|
[Constructable]
|
|
public BasketOfRolls()
|
|
: base(19371)
|
|
{
|
|
Stackable = false;
|
|
this.Weight = 1.0;
|
|
}
|
|
|
|
public BasketOfRolls(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 DinnerRoll : Food
|
|
{
|
|
public override int LabelNumber { get { return 1153520; } } // dinner roll
|
|
|
|
[Constructable]
|
|
public DinnerRoll()
|
|
: base(2538)
|
|
{
|
|
this.Weight = 1.0;
|
|
this.FillFactor = 1;
|
|
}
|
|
|
|
public DinnerRoll(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(18824, 18831)]
|
|
public class TurkeyPlatter : BaseComplexFood
|
|
{
|
|
public override int LabelNumber { get { return 1153517; } } // turkey platter
|
|
|
|
public override Food Piece
|
|
{
|
|
get
|
|
{
|
|
switch (Utility.Random(6))
|
|
{
|
|
default:
|
|
case 0: return new TurkeyDinner();
|
|
case 1: return new RoastDuck();
|
|
case 2: return new RoastTurkey();
|
|
case 3: return new RoastChicken();
|
|
case 4: return new TurkeyLeg();
|
|
case 5: return new GibletGravey();
|
|
}
|
|
}
|
|
}
|
|
|
|
public override int Pieces { get { return 8; } }
|
|
|
|
[Constructable]
|
|
public TurkeyPlatter()
|
|
: base(18824)
|
|
{
|
|
Stackable = false;
|
|
this.Weight = 1.0;
|
|
}
|
|
|
|
public TurkeyPlatter(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 TurkeyDinner : Food
|
|
{
|
|
public override int LabelNumber { get { return 1153532; } } // Turkey Dinner
|
|
|
|
[Constructable]
|
|
public TurkeyDinner()
|
|
: base(2479)
|
|
{
|
|
this.Weight = 1.0;
|
|
this.FillFactor = 1;
|
|
}
|
|
|
|
public TurkeyDinner(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(2487, 2488)]
|
|
public class RoastDuck : Food
|
|
{
|
|
public override int LabelNumber { get { return 1153505; } } // Roast Duck
|
|
|
|
[Constructable]
|
|
public RoastDuck()
|
|
: base(2487)
|
|
{
|
|
this.Weight = 1.0;
|
|
this.FillFactor = 1;
|
|
}
|
|
|
|
public RoastDuck(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(2487, 2488)]
|
|
public class RoastTurkey : Food
|
|
{
|
|
public override int LabelNumber { get { return 1153507; } } // Roast Turkey
|
|
|
|
[Constructable]
|
|
public RoastTurkey()
|
|
: base(2487)
|
|
{
|
|
this.Weight = 1.0;
|
|
this.FillFactor = 1;
|
|
}
|
|
|
|
public RoastTurkey(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(2487, 2488)]
|
|
public class RoastChicken : Food
|
|
{
|
|
public override int LabelNumber { get { return 1153506; } } // Roast Turkey
|
|
|
|
[Constructable]
|
|
public RoastChicken()
|
|
: base(2487)
|
|
{
|
|
this.Weight = 1.0;
|
|
this.FillFactor = 1;
|
|
}
|
|
|
|
public RoastChicken(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 TurkeyLeg : Food
|
|
{
|
|
public override int LabelNumber { get { return 1153508; } } // turkey leg
|
|
|
|
[Constructable]
|
|
public TurkeyLeg()
|
|
: base(5640)
|
|
{
|
|
this.Weight = 1.0;
|
|
this.FillFactor = 1;
|
|
}
|
|
|
|
public TurkeyLeg(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 GibletGravey : Food
|
|
{
|
|
public override int LabelNumber { get { return 1153509; } } // Giblet Gravey
|
|
|
|
[Constructable]
|
|
public GibletGravey()
|
|
: base(5634)
|
|
{
|
|
this.Weight = 1.0;
|
|
this.FillFactor = 1;
|
|
}
|
|
|
|
public GibletGravey(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();
|
|
}
|
|
}
|
|
} |