Reorganizes Project (#41)

This commit is contained in:
Kamron Batman 2019-08-02 18:13:40 -07:00 committed by GitHub
parent 08bf44af9a
commit 3614a66aee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3499 changed files with 79 additions and 55 deletions

View file

@ -0,0 +1,57 @@
/*
* Simply add this box with param true to create the entire valentine's 2007 package.
* Adding it with no params or false will create an empty box.
*/
namespace Server.Items
{
public class RedVelvetGiftBox : BaseContainer
{
[Constructible]
public RedVelvetGiftBox(bool fill = false)
: base(0xE7A)
{
Hue = 0x20;
if (fill)
{
for (int i = 0; i < 5; i++)
{
AddToBox(new ValentinesCardSouth(), new Point3D(60 + i * 10, 47, 0));
AddToBox(new ValentinesCardEast(), new Point3D(20 + i * 10, 72, 0));
}
AddToBox(new Bacon(), new Point3D(90, 85, 0));
AddToBox(new RoseInAVase(), new Point3D(130, 55, 0));
}
}
public RedVelvetGiftBox(Serial serial)
: base(serial)
{
}
public override int DefaultGumpID => 0x3f;
public override int LabelNumber => 1077596; // A Red Velvet Box
public virtual void AddToBox(Item item, Point3D loc)
{
DropItem(item);
item.Location = loc;
}
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();
}
}
}

View file

@ -0,0 +1,34 @@
namespace Server.Items
{
public class RoseInAVase : Item /* TODO: when dye tub changes are implemented, furny dyable this */
{
[Constructible]
public RoseInAVase()
: base(0x0EB0)
{
Hue = 0x20;
LootType = LootType.Blessed;
}
public RoseInAVase(Serial serial)
: base(serial)
{
}
public override int LabelNumber => 1023760; // A Rose in a Vase 1023760
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();
}
}
}

View file

@ -0,0 +1,197 @@
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class ValentinesCard : Item
{
private static string Unsigned = "___";
private string m_From;
private int m_LabelNumber;
private string m_To;
[Constructible]
public ValentinesCard(int itemid)
: base(itemid)
{
LootType = LootType.Blessed;
Hue = Utility.RandomDouble() < .001 ? 0x47E : 0xE8;
m_LabelNumber = Utility.Random(1077589, 5);
}
public ValentinesCard(Serial serial)
: base(serial)
{
}
public override string DefaultName => "a Valentine's card";
[CommandProperty(AccessLevel.GameMaster)]
public virtual string From
{
get => m_From;
set => m_From = value;
}
[CommandProperty(AccessLevel.GameMaster)]
public virtual string To
{
get => m_To;
set => m_To = value;
}
/*
* Five possible messages to be signed:
*
* To my one true love, ~1_target_player~. Signed: ~2_player~ 1077589
* Youve pwnd my heart, ~1_target_player~. Signed: ~2_player~ 1077590
* Happy Valentines Day, ~1_target_player~. Signed: ~2_player~ 1077591
* Blackrock has driven me crazy... for ~1_target_player~! Signed: ~2_player~ 1077592
* You light my Candle of Love, ~1_target_player~! Signed: ~2_player~ 1077593
*
*/
public override void AddNameProperty(ObjectPropertyList list)
{
list.Add(m_LabelNumber, $"{m_To ?? Unsigned}\t{m_From ?? Unsigned}");
}
public override void OnSingleClick(Mobile from)
{
base.OnSingleClick(from);
LabelTo(from, m_LabelNumber,
$"{m_To ?? Unsigned}\t{m_From ?? Unsigned}");
}
public override void OnDoubleClick(Mobile from)
{
if (m_To == null)
{
if (IsChildOf(from))
{
from.BeginTarget(10, false, TargetFlags.None, OnTarget);
from.SendLocalizedMessage(1077497); //To whom do you wish to give this card?
}
else
{
from.SendLocalizedMessage(1080063); // This must be in your backpack to use it.
}
}
}
public virtual void OnTarget(Mobile from, object targeted)
{
if (!Deleted)
{
if (targeted != null && targeted is Mobile to)
{
if (to is PlayerMobile)
{
if (to != from)
{
m_From = from.Name;
m_To = to.Name;
from.SendLocalizedMessage(
1077498); //You fill out the card. Hopefully the other person actually likes you...
InvalidateProperties();
}
else
{
from.SendLocalizedMessage(1077495); //You can't give yourself a card, silly!
}
}
else
{
from.SendLocalizedMessage(1077496); //You can't possibly be THAT lonely!
}
}
else
{
from.SendLocalizedMessage(1077488); //That's not another player!
}
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
writer.Write(m_LabelNumber);
writer.Write(m_From);
writer.Write(m_To);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
m_LabelNumber = reader.ReadInt();
m_From = reader.ReadString();
m_To = reader.ReadString();
Utility.Intern(ref m_From);
Utility.Intern(ref m_To);
}
}
public class ValentinesCardSouth : ValentinesCard
{
[Constructible]
public ValentinesCardSouth()
: base(0x0EBD)
{
}
public ValentinesCardSouth(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 ValentinesCardEast : ValentinesCard
{
[Constructible]
public ValentinesCardEast()
: base(0x0EBE)
{
}
public ValentinesCardEast(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();
}
}
}