374 lines
12 KiB
C#
374 lines
12 KiB
C#
using System;
|
|
using Server;
|
|
using Server.Network;
|
|
using Server.Items;
|
|
using System.Collections;
|
|
|
|
namespace Server.Items
|
|
{
|
|
public class GraniteFurnessAddonDeed : BaseAddonDeed
|
|
{
|
|
public override BaseAddon Addon
|
|
{ get { return new GraniteFurnessAddon(); } }
|
|
|
|
[Constructable]
|
|
public GraniteFurnessAddonDeed()
|
|
{
|
|
Name = "A Granite Furness";
|
|
}
|
|
|
|
public GraniteFurnessAddonDeed(Serial serial) : base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write(0); // Version
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int version = reader.ReadInt();
|
|
}
|
|
}
|
|
|
|
public class GraniteFurnessAddon : BaseAddon
|
|
{
|
|
[Server.Engines.Craft.Forge]
|
|
public override BaseAddonDeed Deed
|
|
{ get { return new GraniteFurnessAddonDeed(); } }
|
|
|
|
[Constructable]
|
|
public GraniteFurnessAddon()
|
|
{
|
|
// Furness Walls 1st Layer
|
|
AddComponent(new AddonComponent(1822), -3, -3, 0);
|
|
AddComponent(new AddonComponent(1822), -2, -3, 0);
|
|
AddComponent(new AddonComponent(1822), -1, -3, 0);
|
|
|
|
AddComponent(new AddonComponent(1822), -3, -2, 0);
|
|
AddComponent(new AddonComponent(1822), -3, -1, 0);
|
|
|
|
AddComponent(new AddonComponent(1822), -2, -1, 0);
|
|
AddComponent(new AddonComponent(1822), -1, -1, 0);
|
|
AddComponent(new AddonComponent(1822), -1, -2, 0);
|
|
|
|
// Furness Walls 2nd Layer
|
|
AddComponent(new AddonComponent(1822), -3, -3, 5);
|
|
AddComponent(new AddonComponent(1822), -2, -3, 5);
|
|
AddComponent(new AddonComponent(1822), -1, -3, 5);
|
|
|
|
AddComponent(new AddonComponent(1822), -3, -2, 5);
|
|
AddComponent(new AddonComponent(1822), -3, -1, 5);
|
|
|
|
// Front Pillar
|
|
AddComponent(new AddonComponent(1822), -1, -1, 5);
|
|
AddComponent(new AddonComponent(1822), -1, -1, 10);
|
|
|
|
// Furness Wall 3rd Layer
|
|
AddComponent(new AddonComponent(1822), -3, -3, 10);
|
|
AddComponent(new AddonComponent(1822), -2, -3, 10);
|
|
AddComponent(new AddonComponent(1822), -1, -3, 10);
|
|
|
|
AddComponent(new AddonComponent(1822), -3, -2, 10);
|
|
AddComponent(new AddonComponent(1822), -3, -1, 10);
|
|
|
|
// Stone Top
|
|
AddComponent(new AddonComponent(2325), -3, -3, 15);
|
|
AddComponent(new AddonComponent(2325), -2, -3, 15);
|
|
AddComponent(new AddonComponent(2325), -1, -3, 15);
|
|
|
|
AddComponent(new AddonComponent(2325), -3, -2, 15);
|
|
AddComponent(new AddonComponent(2325), -1, -2, 15);
|
|
|
|
AddComponent(new AddonComponent(2325), -3, -1, 15);
|
|
AddComponent(new AddonComponent(2325), -2, -1, 15);
|
|
AddComponent(new AddonComponent(2325), -1, -1, 15);
|
|
|
|
// Top Parts
|
|
AddComponent(new AddonComponent(8705), -3, -3, 16);
|
|
AddComponent(new AddonComponent(8705), -1, -3, 16);
|
|
AddComponent(new AddonComponent(8705), -3, -1, 16);
|
|
AddComponent(new AddonComponent(8706), -1, -1, 16);
|
|
|
|
// Stone Floor Front Parts
|
|
AddComponent(new AddonComponent(2328), -1, 0, 0);
|
|
AddComponent(new AddonComponent(2328), -2, 0, 0);
|
|
AddComponent(new AddonComponent(2328), -3, 0, 0);
|
|
AddComponent(new AddonComponent(2328), 0, -1, 0);
|
|
AddComponent(new AddonComponent(2328), 0, -2, 0);
|
|
AddComponent(new AddonComponent(2328), 0, -3, 0);
|
|
|
|
AddComponent(new AddonComponent(1981), 0, -2, 1);
|
|
|
|
// Animated Parts in Center
|
|
AddComponent(new AddonComponent(14089), -2, -2, 0);
|
|
AddComponent(new AddonComponent(2339), -2, -2, 13);
|
|
|
|
// Ladder
|
|
AddComponent(new AddonComponent(2214), 0, -3, 0);
|
|
|
|
// Winch
|
|
AddComponent(new AddonComponent(7849), -2, -1, 16);
|
|
|
|
// Sign On Top
|
|
AddComponent(new GraniteFurnessSign(), -1, -2, 17);
|
|
|
|
// Pulley
|
|
AddComponent(new GraniteFurnessPulley(), -3, 0, 10);
|
|
|
|
// Furness Fire South
|
|
AddComponent(new GraniteFurnessFlamesSouth(), -2, -1, 5);
|
|
|
|
// Furness Fire East
|
|
AddComponent(new GraniteFurnessFlamesEast(), -1, -2, 5);
|
|
|
|
// Furness Crate
|
|
AddComponent(new GraniteFurnessCrate(), -2, 0, 0);
|
|
}
|
|
|
|
public GraniteFurnessAddon(Serial serial) : base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write(0); // Version
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int version = reader.ReadInt();
|
|
}
|
|
}
|
|
|
|
public class GraniteFurnessSign : AddonComponent
|
|
{
|
|
private string m_SafetyWarning = "Safety Warning";
|
|
private string m_Resource = "Normal Granite";
|
|
|
|
[Constructable]
|
|
public GraniteFurnessSign() : base(7976)
|
|
{
|
|
Name = "Granite Furness";
|
|
Weight = 2500;
|
|
Hue = 33;
|
|
}
|
|
|
|
public override void OnDoubleClick(Mobile from)
|
|
{
|
|
from.SendMessage(89, "Keep Hands Away For The Furness.");
|
|
}
|
|
|
|
public override void GetProperties(ObjectPropertyList list)
|
|
{
|
|
base.GetProperties(list);
|
|
list.Add(1060661, "This Furness Uses \t{0}", m_Resource.ToString());
|
|
list.Add(1060658, "{0} \tKeep Hands Away From The Furness Fire At All Times.", m_SafetyWarning.ToString());
|
|
list.Add(1060659, "{0} \tAlways Use The Correct Protective Equipment.", m_SafetyWarning.ToString());
|
|
}
|
|
|
|
public GraniteFurnessSign(Serial serial) : base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write(0); // Version
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int version = reader.ReadInt();
|
|
}
|
|
}
|
|
|
|
public class GraniteFurnessPulley : AddonComponent
|
|
{
|
|
[Constructable]
|
|
public GraniteFurnessPulley() : base(7838)
|
|
{
|
|
Name = "Granite Furness Pulley";
|
|
}
|
|
|
|
public override void OnDoubleClick(Mobile from)
|
|
{
|
|
from.SendMessage(89, "This part of the machine looks too complicated to you.");
|
|
}
|
|
|
|
public GraniteFurnessPulley(Serial serial) : base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write(0); // Version
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int version = reader.ReadInt();
|
|
}
|
|
}
|
|
|
|
public class GraniteFurnessFlamesSouth : AddonComponent
|
|
{
|
|
[Constructable]
|
|
public GraniteFurnessFlamesSouth() : base(6732)
|
|
{
|
|
Name = "Intensly Hot Flames";
|
|
}
|
|
|
|
public override void OnDoubleClick(Mobile from)
|
|
{
|
|
if (!from.InRange(this.GetWorldLocation(), 1))
|
|
{
|
|
from.SendMessage(89, "Your not close enough to the flames.");
|
|
}
|
|
else
|
|
{
|
|
from.SendMessage(89, "You play with the fire... and get burnt !!!");
|
|
Effects.SendLocationEffect(new Point3D(from.X, from.Y, from.Z + 1), from.Map, 0x3709, 15);
|
|
Effects.PlaySound(new Point3D(from.X, from.Y, from.Z), from.Map, 0x208);
|
|
}
|
|
}
|
|
|
|
public GraniteFurnessFlamesSouth(Serial serial) : base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write(0); // Version
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int version = reader.ReadInt();
|
|
}
|
|
}
|
|
|
|
public class GraniteFurnessFlamesEast : AddonComponent
|
|
{
|
|
[Constructable]
|
|
public GraniteFurnessFlamesEast() : base(6686)
|
|
{
|
|
Name = "Intensly Hot Flames";
|
|
}
|
|
|
|
public override void OnDoubleClick(Mobile from)
|
|
{
|
|
if (!from.InRange(this.GetWorldLocation(), 1))
|
|
{
|
|
from.SendMessage(89, "Your not close enough to the flames.");
|
|
}
|
|
else
|
|
{
|
|
from.SendMessage(89, "You play with the fire... and get burnt !!!");
|
|
Effects.SendLocationEffect(new Point3D(from.X, from.Y, from.Z + 1), from.Map, 0x3709, 15);
|
|
Effects.PlaySound(new Point3D(from.X, from.Y, from.Z), from.Map, 0x208);
|
|
}
|
|
}
|
|
|
|
public GraniteFurnessFlamesEast(Serial serial) : base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write(0); // Version
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int version = reader.ReadInt();
|
|
}
|
|
}
|
|
|
|
public class GraniteFurnessCrate : AddonComponent
|
|
{
|
|
[Constructable]
|
|
public GraniteFurnessCrate() : base(3645)
|
|
{
|
|
Name = "Granite Crate";
|
|
}
|
|
|
|
public override void OnDoubleClick(Mobile from)
|
|
{
|
|
from.SendMessage(89, "Place your Normal Granite into the crate");
|
|
}
|
|
|
|
public override bool OnDragDrop(Mobile from, Item dropped)
|
|
{
|
|
if (!from.InRange(this.GetWorldLocation(), 1))
|
|
{
|
|
from.SendMessage(89, "You are too far from the crate, step closer.");
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
if (dropped is BaseGranite)
|
|
{
|
|
if (dropped is Granite)
|
|
{
|
|
// NORMAL GRANITE
|
|
Granite yourgranite = (Granite)dropped;
|
|
dropped.Delete();
|
|
from.SendMessage(89, "The machine processes your granite.");
|
|
Effects.PlaySound(from.Location, from.Map, 0x2F3); // Plays the earthquake sound
|
|
Item spawn = new Sand();
|
|
spawn.MoveToWorld(new Point3D(this.X + 2, this.Y - 2, this.Z + 2), this.Map);
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
// Wrong Granite Type (Not Normal)
|
|
if (dropped is BaseGranite)
|
|
{
|
|
BaseGranite yourgranite = (BaseGranite)dropped;
|
|
dropped.Delete();
|
|
from.SendMessage(89, "The machine tries to processes the granite but fail's.");
|
|
Effects.PlaySound(from.Location, from.Map, 0x208); // Plays the sound
|
|
from.SendMessage(89, "You loose your piece of granite!!!");
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|
|
from.SendMessage(89, "This machine can only process normal granite.");
|
|
return false;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public GraniteFurnessCrate(Serial serial) : base(serial)
|
|
{
|
|
}
|
|
|
|
public override void Serialize(GenericWriter writer)
|
|
{
|
|
base.Serialize(writer);
|
|
writer.Write(0); // Version
|
|
}
|
|
|
|
public override void Deserialize(GenericReader reader)
|
|
{
|
|
base.Deserialize(reader);
|
|
int version = reader.ReadInt();
|
|
}
|
|
}
|
|
}
|