Files
abysmal-isle/Scripts/Items/Consumables/ThanksGivingFood.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

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();
}
}
}