Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
268
Scripts/Items/Addons/FruitTrees.cs
Normal file
268
Scripts/Items/Addons/FruitTrees.cs
Normal file
@@ -0,0 +1,268 @@
|
||||
using System;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public abstract class BaseFruitTreeAddon : BaseAddon
|
||||
{
|
||||
private int m_Fruits;
|
||||
public BaseFruitTreeAddon()
|
||||
: base()
|
||||
{
|
||||
Timer.DelayCall(TimeSpan.FromMinutes(5), new TimerCallback(Respawn));
|
||||
}
|
||||
|
||||
public BaseFruitTreeAddon(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override abstract BaseAddonDeed Deed { get; }
|
||||
public abstract Item Fruit { get; }
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int Fruits
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_Fruits;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value < 0)
|
||||
this.m_Fruits = 0;
|
||||
else
|
||||
this.m_Fruits = value;
|
||||
}
|
||||
}
|
||||
public override void OnComponentUsed(AddonComponent c, Mobile from)
|
||||
{
|
||||
if (from.InRange(c.Location, 2))
|
||||
{
|
||||
if (this.m_Fruits > 0)
|
||||
{
|
||||
Item fruit = this.Fruit;
|
||||
|
||||
if (fruit == null)
|
||||
return;
|
||||
|
||||
if (!from.PlaceInBackpack(fruit))
|
||||
{
|
||||
fruit.Delete();
|
||||
from.SendLocalizedMessage(501015); // There is no room in your backpack for the fruit.
|
||||
}
|
||||
else
|
||||
{
|
||||
if (--this.m_Fruits == 0)
|
||||
Timer.DelayCall(TimeSpan.FromMinutes(30), new TimerCallback(Respawn));
|
||||
|
||||
from.SendLocalizedMessage(501016); // You pick some fruit and put it in your backpack.
|
||||
}
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage(501017); // There is no more fruit on this tree
|
||||
}
|
||||
else
|
||||
from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.WriteEncodedInt(0); // version
|
||||
|
||||
writer.Write((int)this.m_Fruits);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
|
||||
this.m_Fruits = reader.ReadInt();
|
||||
|
||||
if (this.m_Fruits == 0)
|
||||
this.Respawn();
|
||||
}
|
||||
|
||||
private void Respawn()
|
||||
{
|
||||
this.m_Fruits = Utility.RandomMinMax(1, 4);
|
||||
}
|
||||
}
|
||||
|
||||
public class AppleTreeAddon : BaseFruitTreeAddon
|
||||
{
|
||||
[Constructable]
|
||||
public AppleTreeAddon()
|
||||
: base()
|
||||
{
|
||||
this.AddComponent(new LocalizedAddonComponent(0xD98, 1076269), 0, 0, 0);
|
||||
this.AddComponent(new LocalizedAddonComponent(0x3124, 1076269), 0, 0, 0);
|
||||
}
|
||||
|
||||
public AppleTreeAddon(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override BaseAddonDeed Deed
|
||||
{
|
||||
get
|
||||
{
|
||||
return new AppleTreeDeed();
|
||||
}
|
||||
}
|
||||
public override Item Fruit
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Apple();
|
||||
}
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.WriteEncodedInt(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class AppleTreeDeed : BaseAddonDeed
|
||||
{
|
||||
[Constructable]
|
||||
public AppleTreeDeed()
|
||||
: base()
|
||||
{
|
||||
this.LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public AppleTreeDeed(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override BaseAddon Addon
|
||||
{
|
||||
get
|
||||
{
|
||||
return new AppleTreeAddon();
|
||||
}
|
||||
}
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1076269;
|
||||
}
|
||||
}// Apple Tree
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.WriteEncodedInt(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class PeachTreeAddon : BaseFruitTreeAddon
|
||||
{
|
||||
[Constructable]
|
||||
public PeachTreeAddon()
|
||||
: base()
|
||||
{
|
||||
this.AddComponent(new LocalizedAddonComponent(0xD9C, 1076270), 0, 0, 0);
|
||||
this.AddComponent(new LocalizedAddonComponent(0x3123, 1076270), 0, 0, 0);
|
||||
}
|
||||
|
||||
public PeachTreeAddon(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override BaseAddonDeed Deed
|
||||
{
|
||||
get
|
||||
{
|
||||
return new PeachTreeDeed();
|
||||
}
|
||||
}
|
||||
public override Item Fruit
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Peach();
|
||||
}
|
||||
}
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.WriteEncodedInt(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class PeachTreeDeed : BaseAddonDeed
|
||||
{
|
||||
[Constructable]
|
||||
public PeachTreeDeed()
|
||||
: base()
|
||||
{
|
||||
this.LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public PeachTreeDeed(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override BaseAddon Addon
|
||||
{
|
||||
get
|
||||
{
|
||||
return new PeachTreeAddon();
|
||||
}
|
||||
}
|
||||
public override int LabelNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
return 1076270;
|
||||
}
|
||||
}// Peach Tree
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.WriteEncodedInt(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user