using System;
using Server.Gumps;
using Server.Network;
namespace Server.Items
{
public enum SoulstoneType
{
Green,
Blue,
Red,
Violet
}
public class SoulstoneFragmentToken : PromotionalToken
{
[Constructable]
public SoulstoneFragmentToken()
: base()
{
}
public SoulstoneFragmentToken(Serial serial)
: base(serial)
{
}
public override TextDefinition ItemGumpName
{
get
{
return 1070999;
}
}//
Soulstone Fragment
public override TextDefinition ItemName
{
get
{
return 1071000;
}
}//soulstone fragment
public override TextDefinition ItemReceiveMessage
{
get
{
return 1070976;
}
}// A soulstone fragment has been created in your bank box.
public override Item CreateItemFor(Mobile from)
{
if (from != null && from.Account != null)
return new SoulstoneFragment(from.Account.ToString());
else
return null;
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
public class SoulstoneToken : PromotionalToken
{
[CommandProperty(AccessLevel.GameMaster)]
public SoulstoneType Type { get; set; }
[Constructable]
public SoulstoneToken()
: this(SoulstoneType.Blue)
{
}
[Constructable]
public SoulstoneToken(SoulstoneType type)
: base()
{
Type = type;
}
public SoulstoneToken(Serial serial)
: base(serial)
{
}
public override int LabelNumber
{
get
{
switch (Type)
{
default: return 1070997;
case SoulstoneType.Green: return 1078831;
case SoulstoneType.Blue: return 1078832;
case SoulstoneType.Red: return 1078833;
case SoulstoneType.Violet: return 1158404;
}
}
}
public override TextDefinition ItemGumpName
{
get
{
return 1030903;
}
}// Soulstone
public override TextDefinition ItemName
{
get
{
switch(Type)
{
default: return 1030899;
case SoulstoneType.Green: return 1078834;
case SoulstoneType.Blue: return 1078835;
case SoulstoneType.Red: return 1078836;
case SoulstoneType.Violet: return 1158404;
}
}
}//soulstone
public override TextDefinition ItemReceiveMessage
{
get
{
return 1070743;
}
}// A soulstone has been created in your bank box.
public override Item CreateItemFor(Mobile from)
{
if (from != null && from.Account != null)
{
switch (Type)
{
case SoulstoneType.Green: return new SoulStone(from.Account.ToString()) { LastUserName = @from.RawName };
case SoulstoneType.Blue: return new BlueSoulstone(from.Account.ToString()) { LastUserName = @from.RawName };
case SoulstoneType.Red: return new RedSoulstone(from.Account.ToString()) { LastUserName = @from.RawName };
case SoulstoneType.Violet: return new VioletSoulstone(from.Account.ToString()) { LastUserName = @from.RawName };
}
}
return null;
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1);
writer.Write((int)Type);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch (version)
{
case 1:
Type = (SoulstoneType)reader.ReadInt();
break;
}
}
}
}