ModernUO/Projects/UOContent/Engines/Quests/Witch Apprentice/Items/HagStew.cs
Kamron Batman fb915992dd
fix(core): Adds Hashed & Hierarchical Timer Wheel (#655)
- Removes TimerPriority
- Removes TimerThread
- Adds a [Hashed & Hierarchical Timer Wheel](http://www.cs.columbia.edu/~nahum/w6998/papers/ton97-timing-wheels.pdf)
2021-07-11 22:42:06 -07:00

72 lines
1.7 KiB
C#

using System;
namespace Server.Items
{
public class HagStew : BaseAddon
{
[Constructible]
public HagStew()
{
AddonComponent stew;
stew = new AddonComponent(2416);
stew.Name = "stew";
stew.Visible = true;
AddComponent(stew, 0, 0, -7); // stew
}
public HagStew(Serial serial) : base(serial)
{
}
public override void OnComponentUsed(AddonComponent stew, Mobile from)
{
if (!from.InRange(GetWorldLocation(), 2))
{
from.SendMessage("You are too far away.");
}
else
{
stew.Visible = false;
var hagstew = new BreadLoaf(); // this decides your fillrate
hagstew.Eat(from);
Timer m_timer = new ShowStew(stew);
m_timer.Start();
}
}
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();
}
public class ShowStew : Timer
{
private readonly AddonComponent stew;
public ShowStew(AddonComponent ac) : base(TimeSpan.FromSeconds(30))
{
stew = ac;
}
protected override void OnTick()
{
if (stew.Visible == false)
{
Stop();
stew.Visible = true;
}
}
}
}
}