Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
275
Scripts/Services/Expansions/High Seas/Items/Fish/Bait.cs
Normal file
275
Scripts/Services/Expansions/High Seas/Items/Fish/Bait.cs
Normal file
@@ -0,0 +1,275 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Targeting;
|
||||
using Server.Prompts;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class Bait : Item
|
||||
{
|
||||
public static readonly bool UsePrompt = true;
|
||||
|
||||
private Type m_BaitType;
|
||||
private object m_Label;
|
||||
private int m_UsesRemaining;
|
||||
private int m_Index;
|
||||
private bool m_Enhanced;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Type BaitType { get { return m_BaitType; } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int UsesRemaining { get { return m_UsesRemaining; } set { m_UsesRemaining = value; InvalidateProperties(); } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int Index
|
||||
{
|
||||
get { return m_Index; }
|
||||
set
|
||||
{
|
||||
m_Index = value;
|
||||
|
||||
if (value < 0)
|
||||
m_Index = 0;
|
||||
if (value >= FishInfo.FishInfos.Count)
|
||||
m_Index = FishInfo.FishInfos.Count - 1;
|
||||
|
||||
m_BaitType = FishInfo.GetTypeFromIndex(m_Index);
|
||||
Hue = FishInfo.GetFishHue(m_Index);
|
||||
m_Label = FishInfo.GetFishLabel(m_Index);
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool Enhanced { get { return m_Enhanced; } set { m_Enhanced = value; InvalidateProperties(); } }
|
||||
|
||||
[Constructable]
|
||||
public Bait(int index) : base(2454)
|
||||
{
|
||||
Index = index;
|
||||
m_UsesRemaining = 1;
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Bait() : base(2454)
|
||||
{
|
||||
m_UsesRemaining = 1;
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (IsChildOf(from.Backpack))
|
||||
{
|
||||
if (UsePrompt && m_UsesRemaining > 1)
|
||||
{
|
||||
from.SendMessage("How much bait would you like to use?");
|
||||
from.Prompt = new InternalPrompt(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
from.Target = new InternalTarget(this, 1);
|
||||
from.SendMessage("Target the fishing pole or lobster trap that you would like to apply the bait to.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void TryBeginTarget(Mobile from, int amount)
|
||||
{
|
||||
if (amount < 0) amount = 1;
|
||||
if (amount > m_UsesRemaining) amount = m_UsesRemaining;
|
||||
|
||||
from.Target = new InternalTarget(this, amount);
|
||||
from.SendMessage("Target the fishing pole or lobster trap that you would like to apply the bait to.");
|
||||
}
|
||||
|
||||
public override void AddNameProperty(ObjectPropertyList list)
|
||||
{
|
||||
object label = FishInfo.GetFishLabel(m_Index);
|
||||
|
||||
if (m_Enhanced)
|
||||
{
|
||||
//~1_token~ ~2_token~ bait
|
||||
if (label is int)
|
||||
list.Add(1116464, "#{0}\t#{1}", 1116470, (int)label);
|
||||
else if (label is string)
|
||||
list.Add(1116464, "#{0}\t{1}", 1116470, (string)label);
|
||||
}
|
||||
else if (label is int)
|
||||
list.Add(1116465, String.Format("#{0}", (int)label)); //~1_token~ bait
|
||||
else if (label is string)
|
||||
list.Add(1116465, (string)label);
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
list.Add(1116466, m_UsesRemaining.ToString()); //amount: ~1_val~
|
||||
}
|
||||
|
||||
private class InternalPrompt : Prompt
|
||||
{
|
||||
private Bait m_Bait;
|
||||
|
||||
public InternalPrompt(Bait bait)
|
||||
{
|
||||
m_Bait = bait;
|
||||
}
|
||||
|
||||
public override void OnResponse(Mobile from, string text)
|
||||
{
|
||||
int amount = Utility.ToInt32( text );
|
||||
m_Bait.TryBeginTarget(from, amount);
|
||||
}
|
||||
|
||||
public override void OnCancel(Mobile from)
|
||||
{
|
||||
from.SendMessage("Not applying bait...");
|
||||
}
|
||||
}
|
||||
|
||||
private class InternalTarget : Target
|
||||
{
|
||||
private Bait m_Bait;
|
||||
private int m_Amount;
|
||||
|
||||
public InternalTarget(Bait bait, int amount)
|
||||
: base(0, false, TargetFlags.None)
|
||||
{
|
||||
m_Bait = bait;
|
||||
m_Amount = amount;
|
||||
}
|
||||
|
||||
protected override void OnTarget(Mobile from, object targeted)
|
||||
{
|
||||
if (targeted == m_Bait)
|
||||
return;
|
||||
|
||||
if (targeted is FishingPole)
|
||||
{
|
||||
if (!m_Bait.IsFishBait())
|
||||
{
|
||||
from.SendMessage("Think again before applying lobster or crab bait to a fishing pole!");
|
||||
return;
|
||||
}
|
||||
|
||||
FishingPole pole = (FishingPole)targeted;
|
||||
|
||||
bool hasBait = pole.BaitType != null;
|
||||
|
||||
if (hasBait && pole.BaitType != m_Bait.BaitType)
|
||||
from.SendMessage("You swap out the old bait for new.");
|
||||
|
||||
if (pole.BaitType == m_Bait.BaitType)
|
||||
pole.BaitUses += m_Amount;
|
||||
else
|
||||
{
|
||||
pole.BaitType = m_Bait.BaitType;
|
||||
pole.BaitUses += m_Amount;
|
||||
}
|
||||
|
||||
if (m_Bait.Enhanced)
|
||||
pole.EnhancedBait = true;
|
||||
|
||||
from.SendLocalizedMessage(1149759); //You bait the hook.
|
||||
m_Bait.UsesRemaining -= m_Amount;
|
||||
}
|
||||
else if (targeted is LobsterTrap)
|
||||
{
|
||||
if (m_Bait.IsFishBait())
|
||||
{
|
||||
from.SendMessage("Think again before applying fish bait to a lobster trap!");
|
||||
return;
|
||||
}
|
||||
|
||||
LobsterTrap trap = (LobsterTrap)targeted;
|
||||
|
||||
bool hasBait = trap.BaitType != null;
|
||||
|
||||
trap.BaitType = m_Bait.BaitType;
|
||||
//trap.Hue = m_Bait.Hue;
|
||||
|
||||
if (hasBait && trap.BaitType != m_Bait.BaitType)
|
||||
from.SendMessage("You swap out the old bait for new.");
|
||||
|
||||
if (trap.BaitType == m_Bait.BaitType)
|
||||
trap.BaitUses += m_Amount;
|
||||
else
|
||||
{
|
||||
trap.BaitType = m_Bait.BaitType;
|
||||
trap.BaitUses += m_Amount;
|
||||
}
|
||||
|
||||
if (m_Bait.Enhanced)
|
||||
trap.EnhancedBait = true;
|
||||
|
||||
from.SendLocalizedMessage(1149760); //You bait the trap.
|
||||
m_Bait.UsesRemaining -= m_Amount;
|
||||
}
|
||||
else if (targeted is Bait && ((Bait)targeted).IsChildOf(from.Backpack) && ((Bait)targeted).BaitType == m_Bait.BaitType)
|
||||
{
|
||||
Bait bait = (Bait)targeted;
|
||||
|
||||
bait.UsesRemaining += m_Amount;
|
||||
m_Bait.UsesRemaining -= m_Amount;
|
||||
|
||||
if (m_Bait.UsesRemaining <= 0)
|
||||
{
|
||||
m_Bait.Delete();
|
||||
from.SendLocalizedMessage(1116469); //You combine these baits into one cup and destroy the other cup.
|
||||
}
|
||||
else
|
||||
from.SendMessage("You combine these baits into one cup.");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_Bait.UsesRemaining <= 0)
|
||||
{
|
||||
m_Bait.Delete();
|
||||
from.SendLocalizedMessage(1116467); //Your bait is used up so you destroy the container.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsFishBait()
|
||||
{
|
||||
if (m_BaitType == null)
|
||||
Index = Utility.RandomMinMax(0, 34);
|
||||
|
||||
return !m_BaitType.IsSubclassOf(typeof(BaseCrabAndLobster));
|
||||
}
|
||||
|
||||
public Bait(Serial serial) : base(serial) { }
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)0);
|
||||
|
||||
writer.Write(m_UsesRemaining);
|
||||
writer.Write(m_Index);
|
||||
writer.Write(m_Enhanced);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
|
||||
m_UsesRemaining = reader.ReadInt();
|
||||
m_Index = reader.ReadInt();
|
||||
m_Enhanced = reader.ReadBool();
|
||||
|
||||
if (m_Index < 0)
|
||||
m_Index = 0;
|
||||
if (m_Index >= FishInfo.FishInfos.Count)
|
||||
m_Index = FishInfo.FishInfos.Count - 1;
|
||||
|
||||
m_BaitType = FishInfo.FishInfos[m_Index].Type;
|
||||
//Hue = FishInfo.FishInfos[m_Index].Hue;
|
||||
m_Label = FishInfo.GetFishLabel(m_Index);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,703 @@
|
||||
using Server;
|
||||
using System;
|
||||
using Server.Targeting;
|
||||
using Server.Misc;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class BaseCrabAndLobster : BaseHighseasFish
|
||||
{
|
||||
public override Item GetCarved { get { return null; } }
|
||||
public override int GetCarvedAmount { get { return 1; } }
|
||||
public override double DefaultWeight { get { return 2.0; } }
|
||||
|
||||
public BaseCrabAndLobster(int itemID) : base(itemID)
|
||||
{
|
||||
}
|
||||
|
||||
public BaseCrabAndLobster(Serial serial) : base(serial) { }
|
||||
|
||||
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 RareCrabAndLobster : BaseCrabAndLobster
|
||||
{
|
||||
private Mobile m_CaughtBy;
|
||||
private DateTime m_DateCaught;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Mobile Fisher { get { return m_CaughtBy; } set { m_CaughtBy = value; } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public DateTime DateCaught { get { return m_DateCaught; } set { m_DateCaught = value; } }
|
||||
|
||||
public RareCrabAndLobster(int itemID)
|
||||
: base(itemID)
|
||||
{
|
||||
}
|
||||
|
||||
public RareCrabAndLobster(Serial serial) : base(serial) { }
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)0);
|
||||
writer.Write(m_CaughtBy);
|
||||
writer.Write(m_DateCaught);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
m_CaughtBy = reader.ReadMobile();
|
||||
m_DateCaught = reader.ReadDateTime();
|
||||
}
|
||||
}
|
||||
|
||||
public class Crab : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1096489; } }
|
||||
|
||||
[Constructable]
|
||||
public Crab()
|
||||
: base(BaseHighseasFish.GetCrabID())
|
||||
{
|
||||
}
|
||||
|
||||
public Crab(Serial serial) : base(serial) { }
|
||||
|
||||
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 Lobster : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1096491; } }
|
||||
|
||||
[Constructable]
|
||||
public Lobster()
|
||||
: base(BaseHighseasFish.GetLobsterID())
|
||||
{
|
||||
}
|
||||
|
||||
public Lobster(Serial serial) : base(serial) { }
|
||||
|
||||
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 AppleCrab : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116378; } }
|
||||
|
||||
[Constructable]
|
||||
public AppleCrab() : base (BaseHighseasFish.GetCrabID())
|
||||
{
|
||||
}
|
||||
|
||||
public AppleCrab(Serial serial) : base(serial) { }
|
||||
|
||||
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 BlueCrab : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116374; } }
|
||||
|
||||
[Constructable]
|
||||
public BlueCrab()
|
||||
: base(BaseHighseasFish.GetCrabID())
|
||||
{
|
||||
}
|
||||
|
||||
public BlueCrab(Serial serial) : base(serial) { }
|
||||
|
||||
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 DungeonessCrab : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116373; } }
|
||||
|
||||
[Constructable]
|
||||
public DungeonessCrab()
|
||||
: base(BaseHighseasFish.GetCrabID())
|
||||
{
|
||||
}
|
||||
|
||||
public DungeonessCrab(Serial serial) : base(serial) { }
|
||||
|
||||
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 KingCrab : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116375; } }
|
||||
|
||||
[Constructable]
|
||||
public KingCrab()
|
||||
: base(BaseHighseasFish.GetCrabID())
|
||||
{
|
||||
}
|
||||
|
||||
public KingCrab(Serial serial) : base(serial) { }
|
||||
|
||||
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 RockCrab : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116376; } }
|
||||
|
||||
[Constructable]
|
||||
public RockCrab()
|
||||
: base(BaseHighseasFish.GetCrabID())
|
||||
{
|
||||
}
|
||||
|
||||
public RockCrab(Serial serial) : base(serial) { }
|
||||
|
||||
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 SnowCrab : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116377; } }
|
||||
|
||||
[Constructable]
|
||||
public SnowCrab()
|
||||
: base(BaseHighseasFish.GetCrabID())
|
||||
{
|
||||
}
|
||||
|
||||
public SnowCrab(Serial serial) : base(serial) { }
|
||||
|
||||
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 StoneCrab : RareCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116334; } }
|
||||
public override Item GetCarved { get { return new StoneCrabMeat(); } }
|
||||
|
||||
[Constructable]
|
||||
public StoneCrab()
|
||||
: base(BaseHighseasFish.GetCrabID())
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(StoneCrab));
|
||||
}
|
||||
|
||||
public StoneCrab(Serial serial) : base(serial) { }
|
||||
|
||||
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 SpiderCrab : RareCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116336; } }
|
||||
public override Item GetCarved { get { return new SpiderCrabMeat(); } }
|
||||
|
||||
[Constructable]
|
||||
public SpiderCrab()
|
||||
: base(BaseHighseasFish.GetCrabID())
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(SpiderCrab));
|
||||
}
|
||||
|
||||
public SpiderCrab(Serial serial) : base(serial) { }
|
||||
|
||||
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 TunnelCrab : RareCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116372; } }
|
||||
|
||||
[Constructable]
|
||||
public TunnelCrab()
|
||||
: base(BaseHighseasFish.GetCrabID())
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(TunnelCrab));
|
||||
}
|
||||
|
||||
public TunnelCrab(Serial serial) : base(serial) { }
|
||||
|
||||
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 VoidCrab : RareCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116368; } }
|
||||
|
||||
[Constructable]
|
||||
public VoidCrab()
|
||||
: base(BaseHighseasFish.GetCrabID())
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(VoidCrab));
|
||||
}
|
||||
public VoidCrab(Serial serial) : base(serial) { }
|
||||
|
||||
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 CrustyLobster : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116383; } }
|
||||
|
||||
[Constructable]
|
||||
public CrustyLobster()
|
||||
: base(BaseHighseasFish.GetLobsterID())
|
||||
{
|
||||
}
|
||||
|
||||
public CrustyLobster(Serial serial) : base(serial) { }
|
||||
|
||||
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 FredLobster : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116382; } }
|
||||
|
||||
[Constructable]
|
||||
public FredLobster()
|
||||
: base(BaseHighseasFish.GetLobsterID())
|
||||
{
|
||||
}
|
||||
|
||||
public FredLobster(Serial serial) : base(serial) { }
|
||||
|
||||
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 HummerLobster : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116381; } }
|
||||
|
||||
[Constructable]
|
||||
public HummerLobster()
|
||||
: base(BaseHighseasFish.GetLobsterID())
|
||||
{
|
||||
}
|
||||
|
||||
public HummerLobster(Serial serial) : base(serial) { }
|
||||
|
||||
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 RockLobster : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116380; } }
|
||||
|
||||
[Constructable]
|
||||
public RockLobster()
|
||||
: base(BaseHighseasFish.GetLobsterID())
|
||||
{
|
||||
}
|
||||
|
||||
public RockLobster(Serial serial) : base(serial) { }
|
||||
|
||||
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 ShovelNoseLobster : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116384; } }
|
||||
|
||||
[Constructable]
|
||||
public ShovelNoseLobster()
|
||||
: base(BaseHighseasFish.GetLobsterID())
|
||||
{
|
||||
}
|
||||
|
||||
public ShovelNoseLobster(Serial serial) : base(serial) { }
|
||||
|
||||
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 SpineyLobster : BaseCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116379; } }
|
||||
|
||||
[Constructable]
|
||||
public SpineyLobster()
|
||||
: base(BaseHighseasFish.GetLobsterID())
|
||||
{
|
||||
}
|
||||
|
||||
public SpineyLobster(Serial serial) : base(serial) { }
|
||||
|
||||
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 BlueLobster : RareCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116366; } }
|
||||
public override Item GetCarved { get { return new BlueLobsterMeat(); } }
|
||||
|
||||
[Constructable]
|
||||
public BlueLobster()
|
||||
: base(BaseHighseasFish.GetLobsterID())
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(BlueLobster));
|
||||
}
|
||||
|
||||
public BlueLobster(Serial serial) : base(serial) { }
|
||||
|
||||
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 BloodLobster : RareCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116370; } }
|
||||
|
||||
[Constructable]
|
||||
public BloodLobster()
|
||||
: base(BaseHighseasFish.GetLobsterID())
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(BloodLobster));
|
||||
}
|
||||
|
||||
public BloodLobster(Serial serial) : base(serial) { }
|
||||
|
||||
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 DreadLobster : RareCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116371; } }
|
||||
|
||||
[Constructable]
|
||||
public DreadLobster()
|
||||
: base(BaseHighseasFish.GetLobsterID())
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(DreadLobster));
|
||||
}
|
||||
|
||||
public DreadLobster(Serial serial) : base(serial) { }
|
||||
|
||||
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 VoidLobster : RareCrabAndLobster
|
||||
{
|
||||
public override int LabelNumber { get { return 1116369; } }
|
||||
|
||||
[Constructable]
|
||||
public VoidLobster()
|
||||
: base(BaseHighseasFish.GetLobsterID())
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(VoidLobster));
|
||||
}
|
||||
|
||||
public VoidLobster(Serial serial) : base(serial) { }
|
||||
|
||||
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 StoneCrabMeat : Item
|
||||
{
|
||||
public override int LabelNumber { get { return 1116317; } }
|
||||
|
||||
[Constructable]
|
||||
public StoneCrabMeat() : base(4159)
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(StoneCrab));
|
||||
}
|
||||
|
||||
public StoneCrabMeat(Serial serial) : base(serial) { }
|
||||
|
||||
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 SpiderCrabMeat : Item
|
||||
{
|
||||
public override int LabelNumber { get { return 1116320; } }
|
||||
|
||||
[Constructable]
|
||||
public SpiderCrabMeat()
|
||||
: base(4159)
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(SpiderCrab));
|
||||
}
|
||||
|
||||
public SpiderCrabMeat(Serial serial) : base(serial) { }
|
||||
|
||||
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 BlueLobsterMeat : Item
|
||||
{
|
||||
public override int LabelNumber { get { return 1116318; } }
|
||||
|
||||
[Constructable]
|
||||
public BlueLobsterMeat()
|
||||
: base(4159)
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(BlueLobster));
|
||||
}
|
||||
|
||||
public BlueLobsterMeat(Serial serial) : base(serial) { }
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
1176
Scripts/Services/Expansions/High Seas/Items/Fish/Fish.cs
Normal file
1176
Scripts/Services/Expansions/High Seas/Items/Fish/Fish.cs
Normal file
File diff suppressed because it is too large
Load Diff
449
Scripts/Services/Expansions/High Seas/Items/Fish/FishInfo.cs
Normal file
449
Scripts/Services/Expansions/High Seas/Items/Fish/FishInfo.cs
Normal file
@@ -0,0 +1,449 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using Server;
|
||||
using Server.Multis;
|
||||
using Server.Regions;
|
||||
using Server.Mobiles;
|
||||
using Server.Engines.Quests;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class FishInfo
|
||||
{
|
||||
public static void Configure()
|
||||
{
|
||||
//Rare Fish; 0 - 15
|
||||
m_FishInfos.Add(new FishInfo(2506, typeof(AutumnDragonfish), 1116090, "Ilshenar", false, RareChance, 105.4));//Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2591, typeof(BlueLobster), 1116366, "Ice", false, RareChance, 103.1)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(1157, typeof(BullFish), 1116095, "Labyrinth", false, RareChance, 105.4)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(1167, typeof(CrystalFish), 1116092, "Prism of Light", false, RareChance, 105.4)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2578, typeof(FairySalmon), 1116089, "TerMur", false, RareChance, 85.8)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(1461, typeof(FireFish), 1116093, "Shame", false, RareChance, 95.8)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(1257, typeof(GiantKoi), 1116088, "Tokuno", true, RareChance, 95.8)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2579/*1287*/, typeof(GreatBarracuda),1116100, "Felucca", true, RareChance, 89.0)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2959, typeof(HolyMackerel), 1116087, "Gravewater Lake", false, RareChance, 102.9)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2075, typeof(LavaFish), 1116096, "Abyss", false, RareChance, 110.0)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2075/*1152*/, typeof(ReaperFish), 1116094, "Doom", false, RareChance, 98.1)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2539, typeof(SpiderCrab), 1116367, "Terathan Keep", false, RareChance, 103.1)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2558, typeof(StoneCrab), 1116365, "T2A", true, RareChance, 103.1)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(43, typeof(SummerDragonfish), 1116091, "Destard", false, RareChance, 105.2)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(1154, typeof(UnicornFish), 1116086, "Twisted Weald", false, RareChance, 110.0)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2515, typeof(YellowtailBarracuda), 1116098, "Trammel", true, RareChance, 81.9));//Confirmed
|
||||
|
||||
//Legendary Fish ; 16-34
|
||||
m_FishInfos.Add(new FishInfo(2406, typeof(AbyssalDragonfish), 1116118, "Destard", false, LegendaryChance, 120.0)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2500, typeof(BlackMarlin), 1116099, "Felucca", true, LegendaryChance, 110.1)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2117, typeof(BloodLobster), 1116370, "Shame", false, LegendaryChance, 115.1)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(0, typeof(BlueMarlin), 1116097, "Trammel", true, LegendaryChance, 105.0)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(1777, typeof(DreadLobster), 1116371, "Doom", false, LegendaryChance, 115.1));
|
||||
m_FishInfos.Add(new FishInfo(1158, typeof(DungeonPike), 1116107, "Terathan Keep", false, LegendaryChance, 105.1)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2576, typeof(GiantSamuraiFish), 1116103, "Tokuno", true, LegendaryChance, 110.1)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(1281, typeof(GoldenTuna), 1116102, "Tokuno", true, LegendaryChance, 105.0)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2604, typeof(Kingfish), 1116085, "TrammelAndFelucca", true, LegendaryChance, 92.2)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(1463, typeof(LanternFish), 1116106, "Prism of Light", false, LegendaryChance, 105.1)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(1283, typeof(RainbowFish), 1116108, "Twisted Weald", false, LegendaryChance, 105.1));
|
||||
m_FishInfos.Add(new FishInfo(2076, typeof(SeekerFish), 1116109, "Labyrinth", false, LegendaryChance, 105.1));
|
||||
m_FishInfos.Add(new FishInfo(0, typeof(SpringDragonfish), 1116104, "Ilshenar", false, LegendaryChance, 120.0)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(1837, typeof(StoneFish), 1116110, "T2A", true, LegendaryChance, 115.1)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2600, typeof(TunnelCrab), 1116372, "Underworld", false, LegendaryChance, 115.1)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2069, typeof(VoidCrab), 1116368, "TerMur", false, LegendaryChance, 120.0)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2071, typeof(VoidLobster), 1116369, "Abyss", false, LegendaryChance, 120.0));
|
||||
m_FishInfos.Add(new FishInfo(2499, typeof(WinterDragonfish), 1116105, "Ice", false, LegendaryChance, 120.0)); //Confirmed
|
||||
m_FishInfos.Add(new FishInfo(2551, typeof(ZombieFish), 1116101, "Gravewater Lake", false, LegendaryChance, 115.1)); //Confirmed
|
||||
|
||||
//Cannot fish up but used for bait
|
||||
m_FishInfos.Add(new FishInfo(1170, typeof(Charydbis), 1150208, "cannotfishup", true, LegendaryChance, 120.0));
|
||||
|
||||
m_InvalidatedLocations = false;
|
||||
Timer.DelayCall(TimeSpan.FromSeconds(10), new TimerCallback(InvalidateLocations));
|
||||
}
|
||||
|
||||
public static List<FishInfo> FishInfos { get { return m_FishInfos; } }
|
||||
private static List<FishInfo> m_FishInfos = new List<FishInfo>();
|
||||
|
||||
private int m_Hue;
|
||||
private Type m_Type;
|
||||
private object m_Label;
|
||||
private object m_Location;
|
||||
private bool m_RequiresDeepWater;
|
||||
private double m_BaseChance;
|
||||
private double m_MinSkill;
|
||||
|
||||
public int Hue { get { return m_Hue; } }
|
||||
public Type Type { get { return m_Type; } }
|
||||
public object LabelNumber { get { return m_Label; } }
|
||||
public object Location { get { return m_Location; } set { m_Location = value; } }
|
||||
public bool RequiresDeepWater { get { return m_RequiresDeepWater; } }
|
||||
public double BaseChance { get { return m_BaseChance; } }
|
||||
public double MinSkill { get { return m_MinSkill; } }
|
||||
|
||||
public static readonly double RareChance = 0.0075;
|
||||
public static readonly double LegendaryChance = 0.001;
|
||||
|
||||
public static bool m_InvalidatedLocations;
|
||||
|
||||
public FishInfo(int hue, Type type, object label, object found, bool deepwater, double basechance, double minskill)
|
||||
{
|
||||
m_Hue = hue;
|
||||
m_Type = type;
|
||||
m_Label = label;
|
||||
m_Location = found;
|
||||
m_RequiresDeepWater = deepwater;
|
||||
m_BaseChance = basechance;
|
||||
m_MinSkill = minskill;
|
||||
}
|
||||
|
||||
public static void InvalidateLocations()
|
||||
{
|
||||
if (m_InvalidatedLocations)
|
||||
return;
|
||||
|
||||
int c = 0;
|
||||
|
||||
foreach (FishInfo info in m_FishInfos)
|
||||
{
|
||||
if (info.Location is string)
|
||||
{
|
||||
string str = info.Location as string;
|
||||
|
||||
if (str == "Trammel")
|
||||
{
|
||||
info.Location = Map.Trammel;
|
||||
c++;
|
||||
}
|
||||
else if (str == "Felucca")
|
||||
{
|
||||
info.Location = Map.Felucca;
|
||||
c++;
|
||||
}
|
||||
else if (str == "Tokuno")
|
||||
{
|
||||
info.Location = Map.Tokuno;
|
||||
c++;
|
||||
}
|
||||
else if (str == "Ilshenar")
|
||||
{
|
||||
info.Location = Map.Ilshenar;
|
||||
c++;
|
||||
}
|
||||
else if (str == "Malas")
|
||||
{
|
||||
info.Location = Map.Malas;
|
||||
c++;
|
||||
}
|
||||
else if (str == "TerMur")
|
||||
{
|
||||
info.Location = Map.TerMur;
|
||||
c++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_InvalidatedLocations = true;
|
||||
//Console.WriteLine("Invalidated {0} Map Locations in FishInfo.cs", c.ToString());
|
||||
}
|
||||
|
||||
public static bool IsRareFish(Type type)
|
||||
{
|
||||
return m_FishInfos.Any(info => info.Type == type);
|
||||
}
|
||||
|
||||
public static FishInfo GetInfo(Type type)
|
||||
{
|
||||
return m_FishInfos.FirstOrDefault(info => info.Type == type);
|
||||
}
|
||||
|
||||
public static FishInfo GetInfo(int hue)
|
||||
{
|
||||
return m_FishInfos.FirstOrDefault(info => info.Hue == hue);
|
||||
}
|
||||
|
||||
public static int GetIndexFromType(Type type)
|
||||
{
|
||||
if(type == null)
|
||||
return -1;
|
||||
|
||||
for(int i = 0; i < m_FishInfos.Count; i++)
|
||||
if(m_FishInfos[i].Type == type)
|
||||
return i;
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static Type GetTypeFromIndex(int index)
|
||||
{
|
||||
if(index < 0 || index >= m_FishInfos.Count)
|
||||
return m_FishInfos[0].Type;
|
||||
|
||||
return m_FishInfos[index].Type;
|
||||
}
|
||||
|
||||
public static int GetFishHue(int index)
|
||||
{
|
||||
if (index < 0 || index >= m_FishInfos.Count)
|
||||
return 0;
|
||||
|
||||
return m_FishInfos[index].Hue;
|
||||
}
|
||||
|
||||
public static int GetFishHue(Type type)
|
||||
{
|
||||
foreach (FishInfo info in m_FishInfos)
|
||||
if (info.Type == type)
|
||||
return info.Hue;
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static object GetFishLabel(int index)
|
||||
{
|
||||
if (index < 0 || index >= m_FishInfos.Count)
|
||||
return 0;
|
||||
|
||||
return m_FishInfos[index].LabelNumber;
|
||||
}
|
||||
|
||||
public static object GetFishLabel(Type type)
|
||||
{
|
||||
foreach (FishInfo info in FishInfos)
|
||||
{
|
||||
if (info.Type == type)
|
||||
return info.LabelNumber;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static string GetFishLocation(Type type)
|
||||
{
|
||||
foreach (FishInfo info in FishInfos)
|
||||
{
|
||||
if (info.Type == type)
|
||||
return info.Location.ToString();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Type GetSpecialItem(Mobile from, Item harvestItem, Point3D pnt, bool rareOnly)
|
||||
{
|
||||
return GetSpecialItem(from, harvestItem, pnt, 0, rareOnly);
|
||||
}
|
||||
|
||||
public static Type GetSpecialItem(Mobile from, Item harvestItem, Point3D pnt, double bump, bool rareOnly)
|
||||
{
|
||||
InvalidateLocations();
|
||||
|
||||
Map map = from.Map;
|
||||
Point3D fromLoc = from.Location;
|
||||
|
||||
Region reg = from.Region;
|
||||
|
||||
if (reg.Parent != null)
|
||||
reg = reg.Parent;
|
||||
|
||||
double skill = from.Skills[SkillName.Fishing].Value;
|
||||
bool fishing = harvestItem is FishingPole;
|
||||
|
||||
Type bait = null;
|
||||
Type item = null;
|
||||
bool enhanced = false;
|
||||
|
||||
if (harvestItem is FishingPole)
|
||||
{
|
||||
bait = ((FishingPole)harvestItem).BaitType;
|
||||
enhanced = ((FishingPole)harvestItem).EnhancedBait;
|
||||
}
|
||||
else if (harvestItem is LobsterTrap)
|
||||
{
|
||||
bait = ((LobsterTrap)harvestItem).BaitType;
|
||||
enhanced = ((LobsterTrap)harvestItem).EnhancedBait;
|
||||
}
|
||||
|
||||
//insertion of baited type first to increase chances of fishing it up!
|
||||
List<FishInfo> infos = new List<FishInfo>(m_FishInfos);
|
||||
|
||||
if (bait != null)
|
||||
{
|
||||
for (int i = 0; i < infos.Count; i++)
|
||||
{
|
||||
FishInfo info = infos[i];
|
||||
if (info.Type == bait)
|
||||
{
|
||||
infos.Remove(info);
|
||||
infos.Insert(0, info);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < infos.Count; i++)
|
||||
{
|
||||
FishInfo info = infos[i];
|
||||
|
||||
double baitStr = info.GetBaitStrength(bait, from, enhanced);
|
||||
|
||||
if ((info.RequiresDeepWater && !IsDeepWater(pnt, map, reg)) || skill < info.MinSkill)
|
||||
continue;
|
||||
|
||||
if (fishing && info.Type.IsSubclassOf(typeof(BaseCrabAndLobster)))
|
||||
continue;
|
||||
|
||||
if (!fishing && !info.Type.IsSubclassOf(typeof(BaseCrabAndLobster)))
|
||||
continue;
|
||||
|
||||
if (info.Location is string)
|
||||
{
|
||||
string loc = (string)info.Location;
|
||||
|
||||
if (loc.ToLower() == "cannotfishup")
|
||||
continue;
|
||||
|
||||
if (loc.ToLower() == "t2a" && Server.Spells.SpellHelper.IsAnyT2A(map, fromLoc) && info.Roll(from, baitStr, bump))
|
||||
item = info.Type;
|
||||
|
||||
if (loc.ToLower() == "trammelandfelucca" && (map == Map.Trammel || map == Map.Felucca) && !Server.Spells.SpellHelper.IsAnyT2A(map, fromLoc) && info.Roll(from, baitStr, bump))
|
||||
item = info.Type;
|
||||
|
||||
if (loc.ToLower() == "fire island" && IsFireIsland(fromLoc, map) && info.Roll(from, baitStr, bump))
|
||||
item = info.Type;
|
||||
|
||||
if (loc.ToLower() == "gravewater lake" && IsGravewaterLake(fromLoc, map))
|
||||
item = info.Type;
|
||||
|
||||
if (from.Region != null && from.Region.IsPartOf(loc) && info.Roll(from, baitStr, bump))
|
||||
item = info.Type;
|
||||
|
||||
}
|
||||
else if (info.Location is Map)
|
||||
{
|
||||
Map locMap = (Map)info.Location;
|
||||
|
||||
if (map == locMap && info.Roll(from, baitStr, bump))
|
||||
item = info.Type;
|
||||
}
|
||||
}
|
||||
|
||||
ColUtility.Free(infos);
|
||||
|
||||
if (!rareOnly && item == null && from is PlayerMobile)
|
||||
{
|
||||
double chance = skill / 121.5;
|
||||
|
||||
bool dungeon = IsDungeon(pnt, map, reg);
|
||||
bool shore = IsShore(pnt, map, reg);
|
||||
bool deep = IsDeepWater(pnt, map, reg);
|
||||
|
||||
if (fishing && chance >= Utility.RandomDouble())
|
||||
{
|
||||
if (dungeon && skill >= 106.0)
|
||||
item = BaseHighseasFish.DungeonFish[Utility.Random(BaseHighseasFish.DungeonFish.Length)];
|
||||
else if (deep && skill >= 80.0)
|
||||
item = BaseHighseasFish.DeepWaterFish[Utility.Random(BaseHighseasFish.DeepWaterFish.Length)];
|
||||
else if(shore && skill >= 50.0)
|
||||
item = BaseHighseasFish.ShoreFish[Utility.Random(BaseHighseasFish.ShoreFish.Length)];
|
||||
}
|
||||
else if (skill >= 50.0 && !fishing && chance >= Utility.RandomDouble())
|
||||
{
|
||||
item = BaseHighseasFish.LobstersAndCrabs[Utility.Random(BaseHighseasFish.LobstersAndCrabs.Length)];
|
||||
}
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
public double GetBaitStrength(Type baitType, Mobile from, bool enhanced)
|
||||
{
|
||||
if (baitType != this.Type)
|
||||
return 1.0;
|
||||
|
||||
double str = enhanced ? 3.0 : 2.0;
|
||||
|
||||
for (int i = 0; i < from.Items.Count; i++)
|
||||
{
|
||||
Item item = from.Items[i];
|
||||
if (item is IFishingAttire)
|
||||
{
|
||||
if (item is ISetItem)
|
||||
{
|
||||
if (((ISetItem)item).SetEquipped)
|
||||
{
|
||||
str += ((double)((IFishingAttire)item).SetBonus / 100) / (double)((ISetItem)item).Pieces;
|
||||
}
|
||||
else
|
||||
{
|
||||
str += (double)((IFishingAttire)item).BaitBonus / 100;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
str += (double)((IFishingAttire)item).BaitBonus / 100;
|
||||
}
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
public bool Roll(Mobile from, double baitStr, double bump)
|
||||
{
|
||||
double baseChance = MagicalFishFinder.HasSchool(from) ? BaseChance * 10 : BaseChance;
|
||||
|
||||
return (baseChance + bump) * baitStr > Utility.RandomDouble();
|
||||
}
|
||||
|
||||
public static bool IsDeepWater(Point3D pnt, Map map, Region region)
|
||||
{
|
||||
return SpecialFishingNet.FullValidation(map, pnt.X, pnt.Y) && !IsDungeon(pnt, map, region);
|
||||
}
|
||||
|
||||
public static bool IsShore(Point3D pnt, Map map, Region region)
|
||||
{
|
||||
return !IsDeepWater(pnt, map, region) && !IsDungeon(pnt, map, region);
|
||||
}
|
||||
|
||||
public static bool IsDungeon(Point3D pnt, Map map, Region region)
|
||||
{
|
||||
return region.IsPartOf<DungeonRegion>() || IsMondainDungeon(region) || Server.Spells.SpellHelper.IsTrammelWind(map, pnt) || Server.Spells.SpellHelper.IsFeluccaWind(map, pnt);
|
||||
}
|
||||
|
||||
public static bool IsMondainDungeon(Region region)
|
||||
{
|
||||
if (region.IsPartOf("Twisted Weald"))
|
||||
return true;
|
||||
if (region.IsPartOf("Sanctuary"))
|
||||
return true;
|
||||
if (region.IsPartOf("Prism of Light"))
|
||||
return true;
|
||||
if (region.IsPartOf("Citadel"))
|
||||
return true;
|
||||
if (region.IsPartOf("Bedlam"))
|
||||
return true;
|
||||
if (region.IsPartOf("Blighted Grove"))
|
||||
return true;
|
||||
if (region.IsPartOf("Painted Caves"))
|
||||
return true;
|
||||
if (region.IsPartOf("Palace of Paroxysmus"))
|
||||
return true;
|
||||
if (region.IsPartOf("Labyrinth"))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool IsFireIsland(Point3D p, Map map)
|
||||
{
|
||||
return (map == Map.Felucca || map == Map.Trammel) && (p.X > 4559 && p.X < 4636 && p.Y > 3548 && p.Y < 3627
|
||||
|| p.X > 4465 && p.X < 4493 && p.Y > 4479 && p.Y < 3746);
|
||||
}
|
||||
|
||||
public static bool IsGravewaterLake(Point3D p, Map map)
|
||||
{
|
||||
return map == Map.Malas && ((p.X >= 1440 && p.X <= 1863 && p.Y >= 1527 && p.Y <= 1746) || (p.X >= 1381 && p.X <= 1596 && p.Y >= 1565 && p.Y <= 1789));
|
||||
}
|
||||
|
||||
public static Type[] SOSArtifacts { get { return m_SOSArtifacts; } }
|
||||
private static Type[] m_SOSArtifacts = new Type[]
|
||||
{
|
||||
typeof(AntiqueWeddingDress), typeof(GrapeVine),
|
||||
typeof(KelpWovenLeggings), typeof(LargeFishingNet),
|
||||
typeof(RunedDriftwoodBow), typeof(ValkyrieArmor)
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
690
Scripts/Services/Expansions/High Seas/Items/Fish/FishPies.cs
Normal file
690
Scripts/Services/Expansions/High Seas/Items/Fish/FishPies.cs
Normal file
@@ -0,0 +1,690 @@
|
||||
using Server;
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
using Server.Engines.Craft;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public enum FishPieEffect
|
||||
{
|
||||
None,
|
||||
MedBoost,
|
||||
FocusBoost,
|
||||
ColdSoak,
|
||||
EnergySoak,
|
||||
FireSoak,
|
||||
PoisonSoak,
|
||||
PhysicalSoak,
|
||||
WeaponDam,
|
||||
HitChance,
|
||||
DefChance,
|
||||
SpellDamage,
|
||||
ManaRegen,
|
||||
HitsRegen,
|
||||
StamRegen,
|
||||
SoulCharge,
|
||||
CastFocus,
|
||||
}
|
||||
|
||||
public class BaseFishPie : Item, IQuality
|
||||
{
|
||||
private ItemQuality _Quality;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public ItemQuality Quality { get { return _Quality; } set { _Quality = value; InvalidateProperties(); } }
|
||||
|
||||
public bool PlayerConstructed { get { return true; } }
|
||||
|
||||
public virtual TimeSpan Duration { get { return TimeSpan.FromMinutes(5); } }
|
||||
public virtual int BuffName { get { return 0; } }
|
||||
public virtual int BuffAmount { get { return 0; } }
|
||||
public virtual FishPieEffect Effect { get { return FishPieEffect.None; } }
|
||||
|
||||
public static Dictionary<Mobile, List<FishPieEffect>> m_EffectsList = new Dictionary<Mobile, List<FishPieEffect>>();
|
||||
|
||||
public BaseFishPie() : base(4161)
|
||||
{
|
||||
Stackable = true;
|
||||
}
|
||||
|
||||
public virtual int OnCraft(int quality, bool makersMark, Mobile from, CraftSystem craftSystem, Type typeRes, ITool tool, CraftItem craftItem, int resHue)
|
||||
{
|
||||
Quality = (ItemQuality)quality;
|
||||
|
||||
return quality;
|
||||
}
|
||||
|
||||
public static bool IsUnderEffects(Mobile from, FishPieEffect type)
|
||||
{
|
||||
if (!m_EffectsList.ContainsKey(from) || m_EffectsList[from] == null)
|
||||
return false;
|
||||
|
||||
return m_EffectsList[from].Contains(type);
|
||||
}
|
||||
|
||||
public static bool TryAddBuff(Mobile from, FishPieEffect type)
|
||||
{
|
||||
if (IsUnderEffects(from, type))
|
||||
return false;
|
||||
|
||||
if (!m_EffectsList.ContainsKey(from))
|
||||
m_EffectsList.Add(from, new List<FishPieEffect>());
|
||||
|
||||
m_EffectsList[from].Add(type);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void RemoveBuff(Mobile from, FishPieEffect type)
|
||||
{
|
||||
if(!m_EffectsList.ContainsKey(from))
|
||||
return;
|
||||
|
||||
if (m_EffectsList[from] != null && m_EffectsList[from].Contains(type))
|
||||
m_EffectsList[from].Remove(type);
|
||||
|
||||
if (m_EffectsList[from] == null || m_EffectsList[from].Count == 0)
|
||||
m_EffectsList.Remove(from);
|
||||
|
||||
BuffInfo.RemoveBuff(from, BuffIcon.FishPie);
|
||||
from.Delta(MobileDelta.WeaponDamage);
|
||||
}
|
||||
|
||||
public static void ScaleDamage(Mobile from, Mobile to, ref int totalDamage, int phys, int fire, int cold, int pois, int nrgy, int direct)
|
||||
{
|
||||
if (Core.EJ && from is PlayerMobile && to is PlayerMobile)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (IsUnderEffects(to, FishPieEffect.PhysicalSoak) && phys > 0)
|
||||
totalDamage -= (int)Math.Min(5.0, totalDamage * ((double)phys / 100.0));
|
||||
|
||||
if (IsUnderEffects(to, FishPieEffect.FireSoak) && fire > 0)
|
||||
totalDamage -= (int)Math.Min(5.0, totalDamage * ((double)fire / 100.0));
|
||||
|
||||
if (IsUnderEffects(to, FishPieEffect.ColdSoak) && cold > 0)
|
||||
totalDamage -= (int)Math.Min(5.0, totalDamage * ((double)cold / 100.0));
|
||||
|
||||
if (IsUnderEffects(to, FishPieEffect.PoisonSoak) && pois > 0)
|
||||
totalDamage -= (int)Math.Min(5.0, totalDamage * ((double)pois / 100.0));
|
||||
|
||||
if (IsUnderEffects(to, FishPieEffect.EnergySoak) && nrgy > 0)
|
||||
totalDamage -= (int)Math.Min(5.0, totalDamage * ((double)nrgy / 100.0));
|
||||
}
|
||||
|
||||
public virtual bool Apply(Mobile from)
|
||||
{
|
||||
if (TryAddBuff(from, Effect))
|
||||
{
|
||||
switch (Effect)
|
||||
{
|
||||
default:
|
||||
case FishPieEffect.None: break;
|
||||
case FishPieEffect.MedBoost:
|
||||
TimedSkillMod mod1 = new TimedSkillMod(SkillName.Meditation, true, 10.0, Duration);
|
||||
mod1.ObeyCap = true;
|
||||
from.AddSkillMod(mod1);
|
||||
break;
|
||||
case FishPieEffect.FocusBoost:
|
||||
TimedSkillMod mod2 = new TimedSkillMod(SkillName.Focus, true, 10.0, Duration);
|
||||
mod2.ObeyCap = true;
|
||||
from.AddSkillMod(mod2);
|
||||
break;
|
||||
case FishPieEffect.ColdSoak: break;
|
||||
case FishPieEffect.EnergySoak: break;
|
||||
case FishPieEffect.PoisonSoak: break;
|
||||
case FishPieEffect.FireSoak: break;
|
||||
case FishPieEffect.PhysicalSoak: break;
|
||||
case FishPieEffect.WeaponDam: break;
|
||||
case FishPieEffect.HitChance: break;
|
||||
case FishPieEffect.DefChance: break;
|
||||
case FishPieEffect.SpellDamage: break;
|
||||
case FishPieEffect.ManaRegen: break;
|
||||
case FishPieEffect.StamRegen: break;
|
||||
case FishPieEffect.HitsRegen: break;
|
||||
case FishPieEffect.SoulCharge: break;
|
||||
case FishPieEffect.CastFocus: break;
|
||||
}
|
||||
|
||||
if (Effect != FishPieEffect.None)
|
||||
{
|
||||
new InternalTimer(Duration, from, Effect);
|
||||
|
||||
BuffInfo.AddBuff(from, new BuffInfo(BuffIcon.FishPie, 1116340, LabelNumber));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
from.SendLocalizedMessage(502173); // You are already under a similar effect.
|
||||
return false;
|
||||
}
|
||||
|
||||
private class InternalTimer : Timer
|
||||
{
|
||||
private Mobile m_From;
|
||||
private FishPieEffect m_EffectType;
|
||||
|
||||
public InternalTimer(TimeSpan duration, Mobile from, FishPieEffect type) : base(duration)
|
||||
{
|
||||
m_From = from;
|
||||
m_EffectType = type;
|
||||
Start();
|
||||
}
|
||||
|
||||
protected override void OnTick()
|
||||
{
|
||||
BaseFishPie.RemoveBuff(m_From, m_EffectType);
|
||||
}
|
||||
}
|
||||
|
||||
public override void AddCraftedProperties(ObjectPropertyList list)
|
||||
{
|
||||
if (_Quality == ItemQuality.Exceptional)
|
||||
{
|
||||
list.Add(1060636); // Exceptional
|
||||
}
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
list.Add(BuffName, BuffAmount.ToString());
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (!IsChildOf(from.Backpack))
|
||||
{
|
||||
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
|
||||
}
|
||||
else if (Apply(from))
|
||||
{
|
||||
from.FixedEffect(0x375A, 10, 15);
|
||||
from.PlaySound(0x1E7);
|
||||
from.SendLocalizedMessage(1116285, String.Format("#{0}", LabelNumber)); //You eat the ~1_val~. Mmm, tasty!
|
||||
Delete();
|
||||
}
|
||||
}
|
||||
|
||||
public BaseFishPie(Serial serial) : base(serial) { }
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write((int)1); // version
|
||||
|
||||
writer.Write((int)_Quality);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if (version > 0)
|
||||
_Quality = (ItemQuality)reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class AutumnDragonfishPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116224; } }
|
||||
public override int BuffName { get { return 1116280; } }
|
||||
public override int BuffAmount { get { return 10; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.MedBoost; } }
|
||||
|
||||
[Constructable]
|
||||
public AutumnDragonfishPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(AutumnDragonfish));
|
||||
}
|
||||
|
||||
public AutumnDragonfishPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 BullFishPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116220; } }
|
||||
public override int BuffName { get { return 1116276; } }
|
||||
public override int BuffAmount { get { return 5; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.WeaponDam; } }
|
||||
|
||||
[Constructable]
|
||||
public BullFishPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(BullFish));
|
||||
}
|
||||
|
||||
public BullFishPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 CrystalFishPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116219; } }
|
||||
public override int BuffName { get { return 1116275; } }
|
||||
public override int BuffAmount { get { return 5; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.EnergySoak; } }
|
||||
|
||||
[Constructable]
|
||||
public CrystalFishPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(CrystalFish));
|
||||
}
|
||||
|
||||
public CrystalFishPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 FairySalmonPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116222; } }
|
||||
public override int BuffName { get { return 1116278; } }
|
||||
public override int BuffAmount { get { return 2; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.CastFocus; } }
|
||||
|
||||
[Constructable]
|
||||
public FairySalmonPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(FairySalmon));
|
||||
}
|
||||
|
||||
public FairySalmonPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 FireFishPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116217; } }
|
||||
public override int BuffName { get { return 1116271; } }
|
||||
public override int BuffAmount { get { return 5; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.FireSoak; } }
|
||||
|
||||
[Constructable]
|
||||
public FireFishPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(FireFish));
|
||||
}
|
||||
|
||||
public FireFishPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 GiantKoiPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116216; } }
|
||||
public override int BuffName { get { return 1116270; } }
|
||||
public override int BuffAmount { get { return 5; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.DefChance; } }
|
||||
|
||||
[Constructable]
|
||||
public GiantKoiPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(GiantKoi));
|
||||
}
|
||||
|
||||
public GiantKoiPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 GreatBarracudaPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116214; } }
|
||||
public override int BuffName { get { return 1116269; } }
|
||||
public override int BuffAmount { get { return 5; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.HitChance; } }
|
||||
|
||||
[Constructable]
|
||||
public GreatBarracudaPie()
|
||||
{
|
||||
Hue = 1287;// FishInfo.GetFishHue(typeof(GreatBarracuda));
|
||||
}
|
||||
|
||||
public GreatBarracudaPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 HolyMackerelPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116225; } }
|
||||
public override int BuffName { get { return 1116283; } }
|
||||
public override int BuffAmount { get { return 3; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.ManaRegen; } }
|
||||
|
||||
[Constructable]
|
||||
public HolyMackerelPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(HolyMackerel));
|
||||
}
|
||||
|
||||
public HolyMackerelPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 LavaFishPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116223; } }
|
||||
public override int BuffName { get { return 1116279; } }
|
||||
public override int BuffAmount { get { return 5; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.SoulCharge; } }
|
||||
|
||||
[Constructable]
|
||||
public LavaFishPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(LavaFish));
|
||||
}
|
||||
|
||||
public LavaFishPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 ReaperFishPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116218; } }
|
||||
public override int BuffName { get { return 1116274; } }
|
||||
public override int BuffAmount { get { return 5; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.PoisonSoak; } }
|
||||
|
||||
[Constructable]
|
||||
public ReaperFishPie()
|
||||
{
|
||||
Hue = 1152;// FishInfo.GetFishHue(typeof(ReaperFish));
|
||||
}
|
||||
|
||||
public ReaperFishPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 SummerDragonfishPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116221; } }
|
||||
public override int BuffName { get { return 1116277; } }
|
||||
public override int BuffAmount { get { return 5; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.SpellDamage; } }
|
||||
|
||||
[Constructable]
|
||||
public SummerDragonfishPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(SummerDragonfish));
|
||||
}
|
||||
|
||||
public SummerDragonfishPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 UnicornFishPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116226; } }
|
||||
public override int BuffName { get { return 1116284; } }
|
||||
public override int BuffAmount { get { return 3; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.StamRegen; } }
|
||||
|
||||
[Constructable]
|
||||
public UnicornFishPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(UnicornFish));
|
||||
}
|
||||
|
||||
public UnicornFishPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 YellowtailBarracudaPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116215; } }
|
||||
public override int BuffName { get { return 1116282; } }
|
||||
public override int BuffAmount { get { return 3; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.HitsRegen; } }
|
||||
|
||||
[Constructable]
|
||||
public YellowtailBarracudaPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(YellowtailBarracuda));
|
||||
}
|
||||
|
||||
public YellowtailBarracudaPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 StoneCrabPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116227; } }
|
||||
public override int BuffName { get { return 1116272; } }
|
||||
public override int BuffAmount { get { return 3; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.PhysicalSoak; } }
|
||||
|
||||
[Constructable]
|
||||
public StoneCrabPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(StoneCrab));
|
||||
}
|
||||
|
||||
public StoneCrabPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 SpiderCrabPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116229; } }
|
||||
public override int BuffName { get { return 1116281; } }
|
||||
public override int BuffAmount { get { return 10; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.FocusBoost; } }
|
||||
|
||||
[Constructable]
|
||||
public SpiderCrabPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(SpiderCrab));
|
||||
}
|
||||
|
||||
public SpiderCrabPie(Serial serial) : base(serial) { }
|
||||
|
||||
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 BlueLobsterPie : BaseFishPie
|
||||
{
|
||||
public override int LabelNumber { get { return 1116228; } }
|
||||
public override int BuffName { get { return 1116273; } }
|
||||
public override int BuffAmount { get { return 5; } }
|
||||
public override FishPieEffect Effect { get { return FishPieEffect.ColdSoak; } }
|
||||
|
||||
[Constructable]
|
||||
public BlueLobsterPie()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(BlueLobster));
|
||||
}
|
||||
|
||||
public BlueLobsterPie(Serial serial) : base(serial) { }
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
245
Scripts/Services/Expansions/High Seas/Items/Fish/Hooks.cs
Normal file
245
Scripts/Services/Expansions/High Seas/Items/Fish/Hooks.cs
Normal file
@@ -0,0 +1,245 @@
|
||||
using Server;
|
||||
using System;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public enum HookType
|
||||
{
|
||||
None,
|
||||
Lava,
|
||||
Dredging,
|
||||
JunkProof
|
||||
}
|
||||
|
||||
[Flipable(19270, 19271)]
|
||||
public class BaseFishingHook : Item
|
||||
{
|
||||
private int m_Uses;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int Uses
|
||||
{
|
||||
get { return m_Uses; }
|
||||
set { m_Uses = value; }
|
||||
}
|
||||
|
||||
public virtual HookType HookType { get { return HookType.None; } }
|
||||
public override int LabelNumber { get { return 1098140; } }
|
||||
|
||||
public BaseFishingHook() : this(50)
|
||||
{
|
||||
}
|
||||
|
||||
public BaseFishingHook(int uses) : base(19270)
|
||||
{
|
||||
m_Uses = uses;
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
int condition = GetCondition(m_Uses);
|
||||
list.Add(1149847, String.Format("#{0}", condition)); //Condition: ~1_val~
|
||||
}
|
||||
|
||||
public static int GetCondition(int uses)
|
||||
{
|
||||
if (uses < 10)
|
||||
return 1149853; //worn
|
||||
else if (uses < 20)
|
||||
return 1149852; //fair
|
||||
else if (uses < 30)
|
||||
return 1149851; //very good
|
||||
else if (uses < 40)
|
||||
return 1149850; //good
|
||||
else if (uses < 50)
|
||||
return 1149849; //excellent
|
||||
else
|
||||
return 1149848; //new
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (IsChildOf(from.Backpack))
|
||||
{
|
||||
from.Target = new InternalTarget(this);
|
||||
//TODO: Message?
|
||||
}
|
||||
}
|
||||
|
||||
public static int GetHookType(HookType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case HookType.Lava:
|
||||
return 1150888;
|
||||
case HookType.Dredging:
|
||||
return 1150890;
|
||||
case HookType.JunkProof:
|
||||
return 1150883;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private class InternalTarget : Target
|
||||
{
|
||||
private BaseFishingHook m_Hook;
|
||||
|
||||
public InternalTarget(BaseFishingHook hook)
|
||||
: base(-1, false, TargetFlags.None)
|
||||
{
|
||||
m_Hook = hook;
|
||||
}
|
||||
|
||||
protected override void OnTarget(Mobile from, object targeted)
|
||||
{
|
||||
if (targeted is FishingPole)
|
||||
{
|
||||
FishingPole pole = (FishingPole)targeted;
|
||||
|
||||
if (pole.HookType != HookType.None)
|
||||
{
|
||||
Item hook = null;
|
||||
|
||||
switch (pole.HookType)
|
||||
{
|
||||
case HookType.None: break;
|
||||
case HookType.Lava: hook = new LavaHook(pole.HookUses); break;
|
||||
case HookType.Dredging: hook = new DredgingHook(pole.HookUses); break;
|
||||
case HookType.JunkProof: hook = new JunkProofHook(pole.HookUses); break;
|
||||
}
|
||||
|
||||
if (hook != null)
|
||||
from.AddToBackpack(hook);
|
||||
}
|
||||
|
||||
pole.HookType = m_Hook.HookType;
|
||||
pole.HookUses = m_Hook.Uses;
|
||||
pole.OriginalHue = pole.Hue;
|
||||
pole.Hue = m_Hook.Hue;
|
||||
from.SendLocalizedMessage(1150884); //You tie the hook to the fishing line.
|
||||
m_Hook.Delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public BaseFishingHook(Serial serial) : base(serial) { }
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)0);
|
||||
writer.Write(m_Uses);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
m_Uses = reader.ReadInt();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[Flipable(19268, 19269)]
|
||||
public class LavaHook : BaseFishingHook
|
||||
{
|
||||
public override HookType HookType { get { return HookType.Lava; } }
|
||||
public override int LabelNumber { get { return 1150888; } }
|
||||
|
||||
[Constructable]
|
||||
public LavaHook(int uses) : base(uses)
|
||||
{
|
||||
Hue = 2075;
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public LavaHook()
|
||||
{
|
||||
Hue = 2075;
|
||||
}
|
||||
|
||||
public LavaHook(Serial serial) : base(serial) { }
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
[Flipable(19268, 19269)]
|
||||
public class DredgingHook : BaseFishingHook
|
||||
{
|
||||
public override HookType HookType { get { return HookType.Dredging; } }
|
||||
public override int LabelNumber { get { return 1150890; } }
|
||||
|
||||
[Constructable]
|
||||
public DredgingHook(int uses) : base(uses)
|
||||
{
|
||||
Hue = 33;
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public DredgingHook()
|
||||
{
|
||||
Hue = 33;
|
||||
}
|
||||
|
||||
public DredgingHook(Serial serial) : base(serial) { }
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
[Flipable(19268, 19269)]
|
||||
public class JunkProofHook : BaseFishingHook
|
||||
{
|
||||
public override HookType HookType { get { return HookType.JunkProof; } }
|
||||
public override int LabelNumber { get { return 1150883; } }
|
||||
|
||||
[Constructable]
|
||||
public JunkProofHook(int uses) : base(uses)
|
||||
{
|
||||
Hue = 99;
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public JunkProofHook()
|
||||
{
|
||||
Hue = 99;
|
||||
}
|
||||
|
||||
public JunkProofHook(Serial serial) : base(serial) { }
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,369 @@
|
||||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class AbyssalDragonfish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116118; } }
|
||||
|
||||
[Constructable]
|
||||
public AbyssalDragonfish()
|
||||
: base(Utility.RandomMinMax(17637, 17638))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public AbyssalDragonfish(Serial serial) : base(serial) { }
|
||||
|
||||
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 BlackMarlin : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116099; } }
|
||||
|
||||
[Constructable]
|
||||
public BlackMarlin()
|
||||
: base(Utility.RandomMinMax(17156, 17157))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public BlackMarlin(Serial serial) : base(serial) { }
|
||||
|
||||
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 BlueMarlin : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116097; } }
|
||||
|
||||
[Constructable]
|
||||
public BlueMarlin()
|
||||
: base(Utility.RandomMinMax(17156, 17157))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public BlueMarlin(Serial serial) : base(serial) { }
|
||||
|
||||
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 DungeonPike : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116107; } }
|
||||
|
||||
[Constructable]
|
||||
public DungeonPike()
|
||||
: base(Utility.RandomMinMax(17603, 17604))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public DungeonPike(Serial serial) : base(serial) { }
|
||||
|
||||
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 GiantSamuraiFish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116103; } }
|
||||
|
||||
[Constructable]
|
||||
public GiantSamuraiFish()
|
||||
: base(Utility.RandomMinMax(17158, 17159))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public GiantSamuraiFish(Serial serial) : base(serial) { }
|
||||
|
||||
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 GoldenTuna : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116102; } }
|
||||
|
||||
[Constructable]
|
||||
public GoldenTuna()
|
||||
: base(Utility.RandomMinMax(17154, 17155))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public GoldenTuna(Serial serial) : base(serial) { }
|
||||
|
||||
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 Kingfish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116085; } }
|
||||
|
||||
[Constructable]
|
||||
public Kingfish()
|
||||
: base(Utility.RandomMinMax(17158, 17159))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public Kingfish(Serial serial) : base(serial) { }
|
||||
|
||||
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 LanternFish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116106; } }
|
||||
|
||||
[Constructable]
|
||||
public LanternFish()
|
||||
: base(Utility.RandomMinMax(17605, 17606))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public LanternFish(Serial serial) : base(serial) { }
|
||||
|
||||
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 RainbowFish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116108; } }
|
||||
|
||||
[Constructable]
|
||||
public RainbowFish()
|
||||
: base(Utility.RandomMinMax(17154, 17155))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public RainbowFish(Serial serial) : base(serial) { }
|
||||
|
||||
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 SeekerFish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116109; } }
|
||||
|
||||
[Constructable]
|
||||
public SeekerFish()
|
||||
: base(Utility.RandomMinMax(17158, 17159))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public SeekerFish(Serial serial) : base(serial) { }
|
||||
|
||||
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 SpringDragonfish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116104; } }
|
||||
|
||||
[Constructable]
|
||||
public SpringDragonfish()
|
||||
: base(Utility.RandomMinMax(17637, 17638))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public SpringDragonfish(Serial serial) : base(serial) { }
|
||||
|
||||
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 StoneFish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116110; } }
|
||||
|
||||
[Constructable]
|
||||
public StoneFish()
|
||||
: base(Utility.RandomMinMax(17605, 17606))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public StoneFish(Serial serial) : base(serial) { }
|
||||
|
||||
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 WinterDragonfish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116105; } }
|
||||
|
||||
[Constructable]
|
||||
public WinterDragonfish()
|
||||
: base(Utility.RandomMinMax(17637, 17638))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public WinterDragonfish(Serial serial) : base(serial) { }
|
||||
|
||||
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 ZombieFish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116101; } }
|
||||
|
||||
[Constructable]
|
||||
public ZombieFish()
|
||||
: base(Utility.RandomMinMax(17603, 17604))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public ZombieFish(Serial serial) : base(serial) { }
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
738
Scripts/Services/Expansions/High Seas/Items/Fish/RareFish.cs
Normal file
738
Scripts/Services/Expansions/High Seas/Items/Fish/RareFish.cs
Normal file
@@ -0,0 +1,738 @@
|
||||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class RareFish : BaseHighseasFish
|
||||
{
|
||||
private Mobile m_CaughtBy;
|
||||
private DateTime m_DateCaught;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Mobile Fisher { get { return m_CaughtBy; } set { m_CaughtBy = value; } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public DateTime DateCaught { get { return m_DateCaught; } set { m_DateCaught = value; } }
|
||||
|
||||
public RareFish(int itemID)
|
||||
: base(itemID)
|
||||
{
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
list.Add(1070857, m_CaughtBy != null ? m_CaughtBy.Name : "An Unknown Fisher"); //Caught by ~1_fisherman~
|
||||
|
||||
if (m_DateCaught != DateTime.MinValue)
|
||||
list.Add("[{0}]", m_DateCaught.ToShortDateString());
|
||||
}
|
||||
|
||||
public RareFish(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)0);
|
||||
writer.Write(m_CaughtBy);
|
||||
writer.Write(m_DateCaught);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
m_CaughtBy = reader.ReadMobile();
|
||||
m_DateCaught = reader.ReadDateTime();
|
||||
}
|
||||
}
|
||||
|
||||
public class AutumnDragonfish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116090; } }
|
||||
public override Item GetCarved { get { return new AutumnDragonfishSteak(); } }
|
||||
|
||||
[Constructable]
|
||||
public AutumnDragonfish()
|
||||
: base(Utility.RandomMinMax(17637, 17638))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public AutumnDragonfish(Serial serial) : base(serial) { }
|
||||
|
||||
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 BullFish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116095; } }
|
||||
public override Item GetCarved { get { return new BullFishSteak(); } }
|
||||
|
||||
[Constructable]
|
||||
public BullFish()
|
||||
: base(Utility.RandomMinMax(17605, 17606))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public BullFish(Serial serial) : base(serial) { }
|
||||
|
||||
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 CrystalFish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116092; } }
|
||||
public override Item GetCarved { get { return new CrystalFishSteak(); } }
|
||||
|
||||
[Constructable]
|
||||
public CrystalFish()
|
||||
: base(Utility.RandomMinMax(17154, 17155))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public CrystalFish(Serial serial) : base(serial) { }
|
||||
|
||||
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 FairySalmon : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116089; } }
|
||||
public override Item GetCarved { get { return new FairySalmonSteak(); } }
|
||||
|
||||
[Constructable]
|
||||
public FairySalmon()
|
||||
: base(Utility.RandomMinMax(17154, 17155))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public FairySalmon(Serial serial) : base(serial) { }
|
||||
|
||||
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 FireFish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116093; } }
|
||||
public override Item GetCarved { get { return new FireFishSteak(); } }
|
||||
|
||||
[Constructable]
|
||||
public FireFish()
|
||||
: base(Utility.RandomMinMax(17158, 17159))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public FireFish(Serial serial) : base(serial) { }
|
||||
|
||||
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 GiantKoi : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116088; } }
|
||||
public override Item GetCarved { get { return new GiantKoiSteak(); } }
|
||||
|
||||
[Constructable]
|
||||
public GiantKoi()
|
||||
: base(Utility.RandomMinMax(17605, 17606))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public GiantKoi(Serial serial) : base(serial) { }
|
||||
|
||||
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 GreatBarracuda : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116100; } }
|
||||
public override Item GetCarved { get { return new GreatBarracudaSteak(); } }
|
||||
|
||||
[Constructable]
|
||||
public GreatBarracuda()
|
||||
: base(Utility.RandomMinMax(17603, 17604))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public GreatBarracuda(Serial serial) : base(serial) { }
|
||||
|
||||
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 HolyMackerel : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116087; } }
|
||||
public override Item GetCarved { get { return new HolyMackerelSteak(); } }
|
||||
|
||||
[Constructable]
|
||||
public HolyMackerel()
|
||||
: base(Utility.RandomMinMax(17154, 17155))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public HolyMackerel(Serial serial) : base(serial) { }
|
||||
|
||||
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 LavaFish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116096; } }
|
||||
public override Item GetCarved { get { return new LavaFishSteak(); } }
|
||||
|
||||
[Constructable]
|
||||
public LavaFish()
|
||||
: base(Utility.RandomMinMax(17156, 17157))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public LavaFish(Serial serial) : base(serial) { }
|
||||
|
||||
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 ReaperFish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116094; } }
|
||||
public override Item GetCarved { get { return new ReaperFishSteak(); } }
|
||||
|
||||
[Constructable]
|
||||
public ReaperFish()
|
||||
: base(Utility.RandomMinMax(17603, 17604))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public ReaperFish(Serial serial) : base(serial) { }
|
||||
|
||||
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 SummerDragonfish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116091; } }
|
||||
public override Item GetCarved { get { return new SummerDragonfishSteak(); } }
|
||||
|
||||
[Constructable]
|
||||
public SummerDragonfish()
|
||||
: base(Utility.RandomMinMax(17637, 17638))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public SummerDragonfish(Serial serial) : base(serial) { }
|
||||
|
||||
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 UnicornFish : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116086; } }
|
||||
public override Item GetCarved { get { return new UnicornFishSteak(); } }
|
||||
|
||||
[Constructable]
|
||||
public UnicornFish()
|
||||
: base(Utility.RandomMinMax(17156, 17157))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public UnicornFish(Serial serial) : base(serial) { }
|
||||
|
||||
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 YellowtailBarracuda : RareFish
|
||||
{
|
||||
public override int LabelNumber { get { return 1116098; } }
|
||||
public override Item GetCarved { get { return new YellowtailBarracudaSteak(); } }
|
||||
|
||||
[Constructable]
|
||||
public YellowtailBarracuda()
|
||||
: base(Utility.RandomMinMax(17603, 17604))
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(this.GetType());
|
||||
}
|
||||
|
||||
public YellowtailBarracuda(Serial serial) : base(serial) { }
|
||||
|
||||
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 AutumnDragonfishSteak : RawFishSteak
|
||||
{
|
||||
public override int LabelNumber { get { return 1116314; } }
|
||||
|
||||
[Constructable]
|
||||
public AutumnDragonfishSteak()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(AutumnDragonfish));
|
||||
}
|
||||
|
||||
public AutumnDragonfishSteak(Serial serial) : base(serial) { }
|
||||
|
||||
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 BullFishSteak : RawFishSteak
|
||||
{
|
||||
public override int LabelNumber { get { return 1116310; } }
|
||||
|
||||
[Constructable]
|
||||
public BullFishSteak()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(BullFish));
|
||||
}
|
||||
|
||||
public BullFishSteak(Serial serial) : base(serial) { }
|
||||
|
||||
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 CrystalFishSteak : RawFishSteak
|
||||
{
|
||||
public override int LabelNumber { get { return 1116309; } }
|
||||
|
||||
[Constructable]
|
||||
public CrystalFishSteak()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(CrystalFish));
|
||||
}
|
||||
|
||||
public CrystalFishSteak(Serial serial) : base(serial) { }
|
||||
|
||||
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 FairySalmonSteak : RawFishSteak
|
||||
{
|
||||
public override int LabelNumber { get { return 1116312; } }
|
||||
|
||||
[Constructable]
|
||||
public FairySalmonSteak()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(FairySalmon));
|
||||
}
|
||||
|
||||
public FairySalmonSteak(Serial serial) : base(serial) { }
|
||||
|
||||
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 FireFishSteak : RawFishSteak
|
||||
{
|
||||
public override int LabelNumber { get { return 1116307; } }
|
||||
|
||||
[Constructable]
|
||||
public FireFishSteak()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(FireFish));
|
||||
}
|
||||
|
||||
public FireFishSteak(Serial serial) : base(serial) { }
|
||||
|
||||
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 GiantKoiSteak : RawFishSteak
|
||||
{
|
||||
public override int LabelNumber { get { return 1116306; } }
|
||||
|
||||
[Constructable]
|
||||
public GiantKoiSteak()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(GiantKoi));
|
||||
}
|
||||
|
||||
public GiantKoiSteak(Serial serial) : base(serial) { }
|
||||
|
||||
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 GreatBarracudaSteak : RawFishSteak
|
||||
{
|
||||
public override int LabelNumber { get { return 1116298; } }
|
||||
|
||||
[Constructable]
|
||||
public GreatBarracudaSteak()
|
||||
{
|
||||
Hue = 1287; // FishInfo.GetFishHue(typeof(GreatBarracuda));
|
||||
}
|
||||
|
||||
public GreatBarracudaSteak(Serial serial) : base(serial) { }
|
||||
|
||||
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 HolyMackerelSteak : RawFishSteak
|
||||
{
|
||||
public override int LabelNumber { get { return 1116315; } }
|
||||
|
||||
[Constructable]
|
||||
public HolyMackerelSteak()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(HolyMackerel));
|
||||
}
|
||||
|
||||
public HolyMackerelSteak(Serial serial) : base(serial) { }
|
||||
|
||||
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 LavaFishSteak : RawFishSteak
|
||||
{
|
||||
public override int LabelNumber { get { return 1116313; } }
|
||||
|
||||
[Constructable]
|
||||
public LavaFishSteak()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(LavaFish));
|
||||
}
|
||||
|
||||
public LavaFishSteak(Serial serial) : base(serial) { }
|
||||
|
||||
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 ReaperFishSteak : RawFishSteak
|
||||
{
|
||||
public override int LabelNumber { get { return 1116308; } }
|
||||
|
||||
[Constructable]
|
||||
public ReaperFishSteak()
|
||||
{
|
||||
Hue = 1152; // FishInfo.GetFishHue(typeof(ReaperFish));
|
||||
}
|
||||
|
||||
public ReaperFishSteak(Serial serial) : base(serial) { }
|
||||
|
||||
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 SummerDragonfishSteak : RawFishSteak
|
||||
{
|
||||
public override int LabelNumber { get { return 1116311; } }
|
||||
|
||||
[Constructable]
|
||||
public SummerDragonfishSteak()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(SummerDragonfish));
|
||||
}
|
||||
|
||||
public SummerDragonfishSteak(Serial serial) : base(serial) { }
|
||||
|
||||
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 UnicornFishSteak : RawFishSteak
|
||||
{
|
||||
public override int LabelNumber { get { return 1116316; } }
|
||||
|
||||
[Constructable]
|
||||
public UnicornFishSteak()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(UnicornFish));
|
||||
}
|
||||
|
||||
public UnicornFishSteak(Serial serial) : base(serial) { }
|
||||
|
||||
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 YellowtailBarracudaSteak : RawFishSteak
|
||||
{
|
||||
public override int LabelNumber { get { return 1116301; } }
|
||||
|
||||
[Constructable]
|
||||
public YellowtailBarracudaSteak()
|
||||
{
|
||||
Hue = FishInfo.GetFishHue(typeof(YellowtailBarracuda));
|
||||
}
|
||||
|
||||
public YellowtailBarracudaSteak(Serial serial) : base(serial) { }
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
416
Scripts/Services/Expansions/High Seas/Items/Fish/Trophies.cs
Normal file
416
Scripts/Services/Expansions/High Seas/Items/Fish/Trophies.cs
Normal file
@@ -0,0 +1,416 @@
|
||||
using Server;
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
using Server.Multis;
|
||||
using System.Linq;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public enum TrophyStyle
|
||||
{
|
||||
Marlin,
|
||||
Dragonfish,
|
||||
BoardGrouper,
|
||||
BoardMahi,
|
||||
Lobster,
|
||||
Crab
|
||||
}
|
||||
|
||||
public class FishTrophyDeed : Item
|
||||
{
|
||||
private int m_Weight;
|
||||
private Mobile m_Fisher;
|
||||
private DateTime m_DateCaught;
|
||||
private int m_DeedName;
|
||||
private int m_TrophyName;
|
||||
private int m_TrophyID;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Mobile Fisher { get { return m_Fisher; } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int TrophyWeight { get { return m_Weight; } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public DateTime DateCaught { get { return m_DateCaught; } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int TrophyName { get { return m_TrophyName; } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int DeedName { get { return m_DeedName; } }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int TrophyID { get { return m_TrophyID; } }
|
||||
|
||||
public override int LabelNumber { get { return m_DeedName; } }
|
||||
|
||||
public FishTrophyDeed(int weight, Mobile fisher, DateTime caught, int deedname, int trophyname, int id) : base(0x14F0)
|
||||
{
|
||||
m_Weight = weight;
|
||||
m_Fisher = fisher;
|
||||
m_DateCaught = caught;
|
||||
m_DeedName = deedname;
|
||||
m_TrophyName = trophyname;
|
||||
m_TrophyID = id;
|
||||
}
|
||||
|
||||
public override void OnDoubleClick(Mobile from)
|
||||
{
|
||||
if (IsChildOf(from.Backpack))
|
||||
{
|
||||
BaseHouse house = BaseHouse.FindHouseAt(from);
|
||||
|
||||
if (house != null && house.IsCoOwner(from))
|
||||
{
|
||||
bool northWall = BaseAddon.IsWall(from.X, from.Y - 1, from.Z, from.Map);
|
||||
bool westWall = BaseAddon.IsWall(from.X - 1, from.Y, from.Z, from.Map);
|
||||
|
||||
if (northWall && westWall)
|
||||
{
|
||||
switch (from.Direction & Direction.Mask)
|
||||
{
|
||||
case Direction.North:
|
||||
case Direction.South: northWall = true; westWall = false; break;
|
||||
|
||||
case Direction.East:
|
||||
case Direction.West: northWall = false; westWall = true; break;
|
||||
|
||||
default: from.SendMessage("Turn to face the wall on which to hang this trophy."); return;
|
||||
}
|
||||
}
|
||||
|
||||
BaseAddon addon = null;
|
||||
|
||||
if (northWall)
|
||||
addon = ConstructTrophy(true);
|
||||
else if (westWall)
|
||||
addon = ConstructTrophy(false);
|
||||
else
|
||||
from.SendLocalizedMessage(1042626); // The trophy must be placed next to a wall.
|
||||
|
||||
if (addon != null)
|
||||
{
|
||||
house.Addons[addon] = from;
|
||||
addon.MoveToWorld(from.Location, from.Map);
|
||||
Delete();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage(502092); // You must be in your house to do this.
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
|
||||
}
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
if (m_Weight >= 20)
|
||||
{
|
||||
if (m_Fisher != null)
|
||||
list.Add(1070857, m_Fisher.Name); // Caught by ~1_fisherman~
|
||||
|
||||
list.Add(1070858, m_Weight.ToString()); // ~1_weight~ stones
|
||||
}
|
||||
}
|
||||
|
||||
public BaseAddon ConstructTrophy(bool north)
|
||||
{
|
||||
BaseAddon addon = null;
|
||||
switch (m_TrophyID)
|
||||
{
|
||||
case 0: addon = new FishTrophy(typeof(AutumnDragonfish), TrophyStyle.Dragonfish, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 1: addon = new FishTrophy(typeof(BullFish), TrophyStyle.BoardMahi, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 2: addon = new FishTrophy(typeof(FireFish), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 3: addon = new FishTrophy(typeof(GiantKoi), TrophyStyle.BoardMahi, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 4: addon = new FishTrophy(typeof(LavaFish), TrophyStyle.Marlin, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 5: addon = new FishTrophy(typeof(SummerDragonfish), TrophyStyle.Dragonfish, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 6: addon = new FishTrophy(typeof(UnicornFish), TrophyStyle.Marlin, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 7: addon = new FishTrophy(typeof(AbyssalDragonfish), TrophyStyle.Dragonfish, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 8: addon = new FishTrophy(typeof(BlackMarlin), TrophyStyle.Marlin, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 9: addon = new FishTrophy(typeof(BlueMarlin), TrophyStyle.Marlin, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 10: addon = new FishTrophy(typeof(GiantSamuraiFish), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 11: addon = new FishTrophy(typeof(Kingfish), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 12: addon = new FishTrophy(typeof(LanternFish), TrophyStyle.BoardMahi, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 13: addon = new FishTrophy(typeof(SeekerFish), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 14: addon = new FishTrophy(typeof(SpringDragonfish), TrophyStyle.Dragonfish, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 15: addon = new FishTrophy(typeof(StoneFish), TrophyStyle.BoardMahi, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 16: addon = new FishTrophy(typeof(WinterDragonfish), TrophyStyle.Dragonfish, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
|
||||
case 17: addon = new FishTrophy(typeof(BlueLobster), TrophyStyle.Lobster, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 18: addon = new FishTrophy(typeof(BloodLobster), TrophyStyle.Lobster, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 19: addon = new FishTrophy(typeof(DreadLobster), TrophyStyle.Lobster, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 20: addon = new FishTrophy(typeof(VoidLobster), TrophyStyle.Lobster, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 21: addon = new FishTrophy(typeof(StoneCrab), TrophyStyle.Crab, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 22: addon = new FishTrophy(typeof(SpiderCrab), TrophyStyle.Crab, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 23: addon = new FishTrophy(typeof(TunnelCrab), TrophyStyle.Crab, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 24: addon = new FishTrophy(typeof(VoidCrab), TrophyStyle.Crab, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
|
||||
case 25: addon = new FishTrophy(typeof(CrystalFish), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 26: addon = new FishTrophy(typeof(FairySalmon), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 27: addon = new FishTrophy(typeof(GreatBarracuda), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 28: addon = new FishTrophy(typeof(HolyMackerel), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 29: addon = new FishTrophy(typeof(ReaperFish), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 30: addon = new FishTrophy(typeof(YellowtailBarracuda), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 31: addon = new FishTrophy(typeof(DungeonPike), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 32: addon = new FishTrophy(typeof(GoldenTuna), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 33: addon = new FishTrophy(typeof(RainbowFish), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
case 34: addon = new FishTrophy(typeof(ZombieFish), TrophyStyle.BoardGrouper, north, m_TrophyName, m_Weight, m_Fisher, m_DateCaught); break;
|
||||
}
|
||||
return addon;
|
||||
}
|
||||
|
||||
public FishTrophyDeed(Serial serial) : base(serial) { }
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)0);
|
||||
|
||||
writer.Write(m_Weight);
|
||||
writer.Write(m_Fisher);
|
||||
writer.Write(m_DateCaught);
|
||||
writer.Write(m_TrophyName);
|
||||
writer.Write(m_DeedName);
|
||||
writer.Write(m_TrophyID);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
|
||||
m_Weight = reader.ReadInt();
|
||||
m_Fisher = reader.ReadMobile();
|
||||
m_DateCaught = reader.ReadDateTime();
|
||||
m_TrophyName = reader.ReadInt();
|
||||
m_DeedName = reader.ReadInt();
|
||||
m_TrophyID = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class FishTrophy : BaseAddon
|
||||
{
|
||||
private int m_FishWeight;
|
||||
private Mobile m_Fisher;
|
||||
private DateTime m_DateCaught;
|
||||
private Type m_TypeName;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Mobile Fisher { get { return m_Fisher; } }
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public DateTime DateCaught { get { return m_DateCaught; } }
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int FishWeight { get { return m_FishWeight; } }
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Type TypeName { get { return m_TypeName; } }
|
||||
|
||||
public FishTrophy(Type type, TrophyStyle style, bool north, int label, int weight, Mobile fisher, DateTime datecaught)
|
||||
{
|
||||
int hue = FishInfo.GetFishHue(type);
|
||||
m_TypeName = type;
|
||||
|
||||
m_FishWeight = weight;
|
||||
m_Fisher = fisher;
|
||||
m_DateCaught = datecaught;
|
||||
|
||||
switch(style)
|
||||
{
|
||||
case TrophyStyle.Marlin:
|
||||
{
|
||||
if(north)
|
||||
{
|
||||
AddComponent(new TrophyComponent(17641, label, hue), 0, 0, 0);
|
||||
AddComponent(new TrophyComponent(17642, label, hue), -1, 0, 0);
|
||||
AddComponent(new TrophyComponent(17643, label, hue), 1, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddComponent(new TrophyComponent(17644, label, hue), 0, 0, 0);
|
||||
AddComponent(new TrophyComponent(17645, label, hue), 0, 1, 0);
|
||||
AddComponent(new TrophyComponent(17646, label, hue), 0, -1, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TrophyStyle.Dragonfish:
|
||||
{
|
||||
if (north)
|
||||
AddComponent(new TrophyComponent(17639, label, hue), 0, 0, 0);
|
||||
else
|
||||
AddComponent(new TrophyComponent(17640, label, hue), 0, 0, 0);
|
||||
break;
|
||||
}
|
||||
case TrophyStyle.BoardMahi:
|
||||
{
|
||||
if (north)
|
||||
{
|
||||
AddComponent(new TrophyComponent(19283, label, 0), 0, 0, 0);
|
||||
AddComponent(new TrophyComponent(19287, label, hue), 0, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddComponent(new TrophyComponent(19282, label, 0), 0, 0, 0);
|
||||
AddComponent(new TrophyComponent(19286, label, hue), 0, 0, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TrophyStyle.BoardGrouper:
|
||||
{
|
||||
if (north)
|
||||
{
|
||||
AddComponent(new TrophyComponent(19281, label, 0), 0, 0, 0);
|
||||
AddComponent(new TrophyComponent(19285, label, hue), 0, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddComponent(new TrophyComponent(19280, label, 0), 0, 0, 0);
|
||||
AddComponent(new TrophyComponent(19284, label, hue), 0, 0, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TrophyStyle.Crab:
|
||||
{
|
||||
if (north)
|
||||
{
|
||||
AddComponent(new TrophyComponent(18106, label, hue), 0, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddComponent(new TrophyComponent(18107, label, hue), 0, 0, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TrophyStyle.Lobster:
|
||||
{
|
||||
if (north)
|
||||
{
|
||||
AddComponent(new TrophyComponent(18108, label, hue), 0, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddComponent(new TrophyComponent(18109, label, hue), 0, 0, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Item TrophyDeed
|
||||
{
|
||||
get
|
||||
{
|
||||
var info = TaxidermyKit.TrophyInfos.FirstOrDefault(i => i.CreatureType == m_TypeName);
|
||||
|
||||
if (info != null)
|
||||
{
|
||||
return new FishTrophyDeed(m_FishWeight, m_Fisher, m_DateCaught, info.DeedNumber, info.AddonNumber, info.NorthID);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnChop(Mobile from)
|
||||
{
|
||||
if (Components.Count > 0)
|
||||
{
|
||||
OnComponentUsed(Components[0], from);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnComponentUsed(AddonComponent c, Mobile from)
|
||||
{
|
||||
if (m_TypeName == null)
|
||||
return;
|
||||
|
||||
var info = TaxidermyKit.TrophyInfos.FirstOrDefault(i => i.CreatureType == m_TypeName);
|
||||
|
||||
if (info != null)
|
||||
{
|
||||
BaseHouse house = BaseHouse.FindHouseAt(c);
|
||||
|
||||
if (house != null && (house.IsCoOwner(from) || (house.Addons.ContainsKey(this) && house.Addons[this] == from)))
|
||||
{
|
||||
from.AddToBackpack(new FishTrophyDeed(m_FishWeight, m_Fisher, m_DateCaught, info.DeedNumber, info.AddonNumber, info.NorthID));
|
||||
|
||||
if(house.Addons.ContainsKey(this))
|
||||
house.Addons.Remove(this);
|
||||
|
||||
Delete();
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendLocalizedMessage(502092); // You must be in your house to do this.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public FishTrophy(Serial serial) : base(serial) { }
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write((int)0);
|
||||
writer.Write(m_TypeName.Name);
|
||||
writer.Write(m_FishWeight);
|
||||
writer.Write(m_Fisher);
|
||||
writer.Write(m_DateCaught);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
|
||||
string name = reader.ReadString();
|
||||
m_TypeName = ScriptCompiler.FindTypeByName(name);
|
||||
m_FishWeight = reader.ReadInt();
|
||||
m_Fisher = reader.ReadMobile();
|
||||
m_DateCaught = reader.ReadDateTime();
|
||||
}
|
||||
}
|
||||
|
||||
public class TrophyComponent : LocalizedAddonComponent
|
||||
{
|
||||
public override bool ForceShowProperties { get { return true; } }
|
||||
|
||||
public TrophyComponent(int itemID, int label, int hue) : base(itemID, label)
|
||||
{
|
||||
Hue = hue;
|
||||
}
|
||||
|
||||
public override void GetProperties(ObjectPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
if (Addon != null && Addon is FishTrophy)
|
||||
{
|
||||
FishTrophy trophy = Addon as FishTrophy;
|
||||
|
||||
list.Add(1070858, trophy.FishWeight.ToString());
|
||||
list.Add(1070857, trophy.Fisher != null ? trophy.Fisher.Name : "Unknown");
|
||||
list.Add(String.Format("[{0}]", trophy.DateCaught.ToShortDateString()));
|
||||
}
|
||||
}
|
||||
|
||||
public TrophyComponent(Serial serial) : base(serial) { }
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user