Reorganizes Project (#41)

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

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,190 @@
namespace Server.Items
{
public class AquariumFishNet : SpecialFishingNet
{
[Constructible]
public AquariumFishNet()
{
ItemID = 0xDC8;
if (Hue == 0x8A0)
Hue = 0x240;
}
public AquariumFishNet(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074463; // An aquarium fishing net
public override bool RequireDeepWater => false;
protected override void AddNetProperties(ObjectPropertyList list)
{
}
protected override void FinishEffect(Point3D p, Map map, Mobile from)
{
if (from.Skills.Fishing.Value < 10)
{
from.SendLocalizedMessage(1074487); // The creatures are too quick for you!
}
else
{
BaseFish fish = GiveFish(from);
FishBowl bowl = Aquarium.GetEmptyBowl(from);
if (bowl != null)
{
fish.StopTimer();
bowl.AddItem(fish);
from.SendLocalizedMessage(1074489); // A live creature jumps into the fish bowl in your pack!
Delete();
return;
}
if (from.PlaceInBackpack(fish))
{
from.PlaySound(0x5A2);
from.SendLocalizedMessage(
1074490); // A live creature flops around in your pack before running out of air.
fish.Kill();
Delete();
return;
}
fish.Delete();
from.SendLocalizedMessage(1074488); // You could not hold the creature.
}
InUse = false;
Movable = true;
if (!from.PlaceInBackpack(this))
{
if (from.Map == null || from.Map == Map.Internal)
Delete();
else
MoveToWorld(from.Location, from.Map);
}
}
private BaseFish GiveFish(Mobile from)
{
double skill = from.Skills.Fishing.Value;
if (skill / 100.0 >= Utility.RandomDouble())
{
int max = (int)skill / 5;
if (max > 20)
max = 20;
switch (Utility.Random(max))
{
case 0: return new MinocBlueFish();
case 1: return new Shrimp();
case 2: return new FandancerFish();
case 3: return new GoldenBroadtail();
case 4: return new RedDartFish();
case 5: return new AlbinoCourtesanFish();
case 6: return new MakotoCourtesanFish();
case 7: return new NujelmHoneyFish();
case 8: return new Jellyfish();
case 9: return new SpeckledCrab();
case 10: return new LongClawCrab();
case 11: return new AlbinoFrog();
case 12: return new KillerFrog();
case 13: return new VesperReefTiger();
case 14: return new PurpleFrog();
case 15: return new BritainCrownFish();
case 16: return new YellowFinBluebelly();
case 17: return new SpottedBuccaneer();
case 18: return new SpinedScratcherFish();
default: return new SmallMouthSuckerFin();
}
}
return new MinocBlueFish();
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
// Legacy code
public class AquariumFishingNet : Item
{
public AquariumFishingNet()
{
}
public AquariumFishingNet(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074463; // An aquarium fishing net
private Item CreateReplacement()
{
Item result = new AquariumFishNet();
result.Hue = Hue;
result.LootType = LootType;
result.Movable = Movable;
result.Name = Name;
result.QuestItem = QuestItem;
result.Visible = Visible;
return result;
}
public override void OnDoubleClick(Mobile from)
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
return;
}
Item replacement = CreateReplacement();
if (!from.PlaceInBackpack(replacement))
{
replacement.Delete();
from.SendLocalizedMessage(500720); // You don't have enough room in your backpack!
}
else
{
Delete();
from.Use(replacement);
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class AquariumFood : Item
{
[Constructible]
public AquariumFood() : base(0xEFC)
{
}
public AquariumFood(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074819; // Aquarium food
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,89 @@
using Server.Gumps;
using Server.Network;
namespace Server.Items
{
public class AquariumGump : Gump
{
private Aquarium m_Aquarium;
public AquariumGump(Aquarium aquarium, bool edit) : base(100, 100)
{
m_Aquarium = aquarium;
Closable = true;
Disposable = true;
Draggable = true;
Resizable = false;
AddPage(0);
AddBackground(0, 0, 350, 323, 0xE10);
AddImage(0, 0, 0x2C96);
if (m_Aquarium.Items.Count == 0)
return;
for (int i = 1; i <= m_Aquarium.Items.Count; i++)
DisplayPage(i, edit);
}
public void DisplayPage(int page, bool edit)
{
AddPage(page);
Item item = m_Aquarium.Items[page - 1];
// item name
if (item.LabelNumber != 0)
AddHtmlLocalized(20, 217, 250, 20, item.LabelNumber, 0xFFFFFF); // Name
// item details
if (item is BaseFish fish)
AddHtmlLocalized(20, 239, 315, 20, fish.GetDescription(), 0xFFFFFF);
else
AddHtmlLocalized(20, 239, 315, 20, 1073634, 0xFFFFFF); // An aquarium decoration
// item image
AddItem(150, 80, item.ItemID, item.Hue);
// item number / all items
AddHtml(20, 195, 250, 20, $"<BASEFONT COLOR=#FFFFFF>{page}/{m_Aquarium.Items.Count}</BASEFONT>");
// remove item
if (edit)
{
AddBackground(230, 195, 100, 26, 0x13BE);
AddButton(235, 200, 0x845, 0x846, page);
AddHtmlLocalized(260, 198, 60, 26, 1073838, 0x0); // Remove
}
// next page
if (page < m_Aquarium.Items.Count)
{
AddButton(195, 280, 0xFA5, 0xFA7, 0, GumpButtonType.Page, page + 1);
AddHtmlLocalized(230, 283, 100, 18, 1044045, 0xFFFFFF); // NEXT PAGE
}
// previous page
if (page > 1)
{
AddButton(45, 280, 0xFAE, 0xFAF, 0, GumpButtonType.Page, page - 1);
AddHtmlLocalized(80, 283, 100, 18, 1044044, 0xFFFFFF); // PREV PAGE
}
}
public override void OnResponse(NetState sender, RelayInfo info)
{
if (m_Aquarium?.Deleted != false)
return;
bool edit = m_Aquarium.HasAccess(sender.Mobile);
if (info.ButtonID > 0 && info.ButtonID <= m_Aquarium.Items.Count && edit)
m_Aquarium.RemoveItem(sender.Mobile, info.ButtonID - 1);
if (info.ButtonID > 0)
sender.Mobile.SendGump(new AquariumGump(m_Aquarium, edit));
}
}
}

View file

@ -0,0 +1,76 @@
namespace Server.Items
{
public enum WaterState
{
Dead,
Dying,
Unhealthy,
Healthy,
Strong
}
public enum FoodState
{
Dead,
Starving,
Hungry,
Full,
Overfed
}
[PropertyObject]
public class AquariumState
{
private int m_State;
[CommandProperty(AccessLevel.GameMaster)]
public int State
{
get => m_State;
set
{
m_State = value;
if (m_State < 0)
m_State = 0;
if (m_State > 4)
m_State = 4;
}
}
[CommandProperty(AccessLevel.GameMaster)]
public int Maintain{ get; set; }
[CommandProperty(AccessLevel.GameMaster)]
public int Improve{ get; set; }
[CommandProperty(AccessLevel.GameMaster)]
public int Added{ get; set; }
public override string ToString()
{
return "...";
}
public virtual void Serialize(GenericWriter writer)
{
writer.Write(0); // version
writer.Write(m_State);
writer.Write(Maintain);
writer.Write(Improve);
writer.Write(Added);
}
public virtual void Deserialize(GenericReader reader)
{
int version = reader.ReadInt();
m_State = reader.ReadInt();
Maintain = reader.ReadInt();
Improve = reader.ReadInt();
Added = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,93 @@
using System;
namespace Server.Items
{
public class BaseFish : Item
{
private static readonly TimeSpan DeathDelay = TimeSpan.FromMinutes(5);
private Timer m_Timer;
[Constructible]
public BaseFish(int itemID) : base(itemID)
{
StartTimer();
}
public BaseFish(Serial serial) : base(serial)
{
}
[CommandProperty(AccessLevel.GameMaster)]
public bool Dead => ItemID == 0x3B0C;
public virtual void StartTimer()
{
m_Timer?.Stop();
m_Timer = Timer.DelayCall(DeathDelay, Kill);
InvalidateProperties();
}
public virtual void StopTimer()
{
m_Timer?.Stop();
m_Timer = null;
InvalidateProperties();
}
public override void OnDelete()
{
StopTimer();
}
public virtual void Kill()
{
ItemID = 0x3B0C;
StopTimer();
InvalidateProperties();
}
public int GetDescription()
{
// TODO: This will never return "very unusual dead aquarium creature" due to the way it is killed
if (ItemID > 0x3B0F)
return Dead ? 1074424 : 1074422; // A very unusual [dead/live] aquarium creature
if (Hue != 0)
return Dead ? 1074425 : 1074423; // A [dead/live] aquarium creature of unusual color
return Dead ? 1073623 : 1073622; // A [dead/live] aquarium creature
}
public override void GetProperties(ObjectPropertyList list)
{
base.GetProperties(list);
list.Add(GetDescription());
if (!Dead && m_Timer != null)
list.Add(1074507); // Gasping for air
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (!(Parent is Aquarium) && !(Parent is FishBowl))
StartTimer();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class AlbinoCourtesanFish : BaseFish
{
[Constructible]
public AlbinoCourtesanFish() : base(0x3B04)
{
}
public AlbinoCourtesanFish(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074592; // Albino Courtesan Fish
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,31 @@
namespace Server.Items
{
public class AlbinoFrog : BaseFish
{
[Constructible]
public AlbinoFrog() : base(0x3B0D)
{
Hue = 0x47E;
}
public AlbinoFrog(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073824; // An Albino Frog
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class BritainCrownFish : BaseFish
{
[Constructible]
public BritainCrownFish() : base(0x3AFF)
{
}
public BritainCrownFish(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074589; // Britain Crown Fish
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class FandancerFish : BaseFish
{
[Constructible]
public FandancerFish() : base(0x3B02)
{
}
public FandancerFish(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074591; // Fandancer Fish
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class GoldenBroadtail : BaseFish
{
[Constructible]
public GoldenBroadtail() : base(0x3B03)
{
}
public GoldenBroadtail(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073828; // A Golden Broadtail
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class Jellyfish : BaseFish
{
[Constructible]
public Jellyfish() : base(0x3B0E)
{
}
public Jellyfish(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074593; // Jellyfish
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class KillerFrog : BaseFish
{
[Constructible]
public KillerFrog() : base(0x3B0D)
{
}
public KillerFrog(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073825; // A Killer Frog
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,31 @@
namespace Server.Items
{
public class LongClawCrab : BaseFish
{
[Constructible]
public LongClawCrab() : base(0x3AFC)
{
Hue = 0x527;
}
public LongClawCrab(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073827; // A Long Claw Crab
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class MakotoCourtesanFish : BaseFish
{
[Constructible]
public MakotoCourtesanFish() : base(0x3AFD)
{
}
public MakotoCourtesanFish(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073835; // A Makoto Courtesan Fish
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class MinocBlueFish : BaseFish
{
[Constructible]
public MinocBlueFish() : base(0x3AFE)
{
}
public MinocBlueFish(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073829; // A Minoc Blue Fish
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class NujelmHoneyFish : BaseFish
{
[Constructible]
public NujelmHoneyFish() : base(0x3B06)
{
}
public NujelmHoneyFish(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073830; // A Nujel'm Honey Fish
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,31 @@
namespace Server.Items
{
public class PurpleFrog : BaseFish
{
[Constructible]
public PurpleFrog() : base(0x3B0D)
{
Hue = 0x4FA;
}
public PurpleFrog(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073823; // A Purple Frog
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class RedDartFish : BaseFish
{
[Constructible]
public RedDartFish() : base(0x3B00)
{
}
public RedDartFish(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073834; // A Red Dart Fish
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class Shrimp : BaseFish
{
[Constructible]
public Shrimp() : base(0x3B14)
{
}
public Shrimp(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074596; // Shrimp
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class SmallMouthSuckerFin : BaseFish
{
[Constructible]
public SmallMouthSuckerFin() : base(0x3B01)
{
}
public SmallMouthSuckerFin(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074590; // Small Mouth Sucker Fin
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class SpeckledCrab : BaseFish
{
[Constructible]
public SpeckledCrab() : base(0x3AFC)
{
}
public SpeckledCrab(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073826; // A Speckled Crab
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class SpinedScratcherFish : BaseFish
{
[Constructible]
public SpinedScratcherFish() : base(0x3B05)
{
}
public SpinedScratcherFish(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073832; // A Spined Scratcher Fish
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class SpottedBuccaneer : BaseFish
{
[Constructible]
public SpottedBuccaneer() : base(0x3B09)
{
}
public SpottedBuccaneer(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073833; // A Spotted Buccaneer
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class VesperReefTiger : BaseFish
{
[Constructible]
public VesperReefTiger() : base(0x3B08)
{
}
public VesperReefTiger(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073836; // A Vesper Reef Tiger
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class YellowFinBluebelly : BaseFish
{
[Constructible]
public YellowFinBluebelly() : base(0x3B07)
{
}
public YellowFinBluebelly(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073831; // A Yellow Fin Bluebelly
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,170 @@
using System.Collections.Generic;
using Server.ContextMenus;
using Server.Network;
namespace Server.Items
{
public class FishBowl : BaseContainer
{
[Constructible]
public FishBowl() : base(0x241C)
{
Hue = 0x47E;
MaxItems = 1;
}
public FishBowl(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074499; // A fish bowl
[CommandProperty(AccessLevel.GameMaster)]
public bool Empty => Items.Count == 0;
[CommandProperty(AccessLevel.GameMaster)]
public BaseFish Fish
{
get
{
if (Empty)
return null;
return Items[0] as BaseFish;
}
}
public override double DefaultWeight => 2.0;
public override void OnDoubleClick(Mobile from)
{
}
public override bool TryDropItem(Mobile from, Item dropped, bool sendFullMessage)
{
if (!CheckHold(from, dropped, sendFullMessage, true))
return false;
DropItem(dropped);
return true;
}
public override bool OnDragDrop(Mobile from, Item dropped)
{
if (!IsAccessibleTo(from))
{
from.SendLocalizedMessage(502436); // That is not accessible.
return false;
}
if (!(dropped is BaseFish))
{
from.SendLocalizedMessage(1074836); // The container can not hold that type of object.
return false;
}
if (base.OnDragDrop(from, dropped))
{
((BaseFish)dropped).StopTimer();
InvalidateProperties();
return true;
}
return false;
}
public override bool CheckItemUse(Mobile from, Item item)
{
if (item != this)
return false;
return base.CheckItemUse(from, item);
}
public override bool CheckLift(Mobile from, Item item, ref LRReason reject)
{
if (item != this)
{
reject = LRReason.CannotLift;
return false;
}
return base.CheckLift(from, item, ref reject);
}
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
if (!Empty)
{
BaseFish fish = Fish;
if (fish != null)
list.Add(1074494, "#{0}", fish.LabelNumber); // Contains: ~1_CREATURE~
}
}
public override void GetContextMenuEntries(Mobile from, List<ContextMenuEntry> list)
{
base.GetContextMenuEntries(from, list);
if (!Empty && IsAccessibleTo(from))
list.Add(new RemoveCreature(this));
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version == 0)
Weight = DefaultWeight;
}
private class RemoveCreature : ContextMenuEntry
{
private FishBowl m_Bowl;
public RemoveCreature(FishBowl bowl) : base(6242, 3) // Remove creature
{
m_Bowl = bowl;
}
public override void OnClick()
{
if (m_Bowl?.Deleted != false || !m_Bowl.IsAccessibleTo(Owner.From))
return;
BaseFish fish = m_Bowl.Fish;
if (fish == null)
return;
if (fish.IsLockedDown) // for legacy fish bowls
{
Owner.From.SendLocalizedMessage(1010449); // You may not use this object while it is locked down.
}
else if (!Owner.From.PlaceInBackpack(fish))
{
Owner.From.SendLocalizedMessage(1074496); // There is no room in your pack for the creature.
}
else
{
Owner.From.SendLocalizedMessage(1074495); // The creature has been removed from the fish bowl.
fish.StartTimer();
m_Bowl.InvalidateProperties();
}
}
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class BrineShrimp : BaseFish
{
[Constructible]
public BrineShrimp() : base(0x3B11)
{
}
public BrineShrimp(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074415; // Brine shrimp
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class Coral : BaseFish
{
[Constructible]
public Coral() : base(Utility.RandomList(0x3AF9, 0x3AFA, 0x3AFB))
{
}
public Coral(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074588; // Coral
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class FullMoonFish : BaseFish
{
[Constructible]
public FullMoonFish() : base(0x3B15)
{
}
public FullMoonFish(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074597; // A Full Moon Fish
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class SeaHorseFish : BaseFish
{
[Constructible]
public SeaHorseFish() : base(0x3B10)
{
}
public SeaHorseFish(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074414; // A sea horse
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class StrippedFlakeFish : BaseFish
{
[Constructible]
public StrippedFlakeFish() : base(0x3B0A)
{
}
public StrippedFlakeFish(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074595; // Stripped Flake Fish
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,30 @@
namespace Server.Items
{
public class StrippedSosarianSwill : BaseFish
{
[Constructible]
public StrippedSosarianSwill() : base(0x3B0A)
{
}
public StrippedSosarianSwill(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074594; // Stripped Sosarian Swill
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,37 @@
namespace Server.Items
{
public class AquariumMessage : MessageInABottle
{
[Constructible]
public AquariumMessage()
{
}
public AquariumMessage(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1073894; // Message in a Bottle
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1073634); // An aquarium decoration
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,37 @@
namespace Server.Items
{
public class CaptainBlackheartsFishingPole : FishingPole
{
[Constructible]
public CaptainBlackheartsFishingPole()
{
}
public CaptainBlackheartsFishingPole(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074571; // Captain Blackheart's Fishing Pole
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1073634); // An aquarium decoration
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,46 @@
namespace Server.Items
{
public class CraftysFishingHat : BaseHat
{
[Constructible]
public CraftysFishingHat() : base(0x1713)
{
}
public CraftysFishingHat(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074572; // Crafty's Fishing Hat
public override int BasePhysicalResistance => 0;
public override int BaseFireResistance => 5;
public override int BaseColdResistance => 9;
public override int BasePoisonResistance => 5;
public override int BaseEnergyResistance => 5;
public override int InitMinHits => 20;
public override int InitMaxHits => 30;
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1073634); // An aquarium decoration
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,38 @@
namespace Server.Items
{
public class FishBones : Item
{
[Constructible]
public FishBones() : base(0x3B0C)
{
}
public FishBones(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074601; // Fish bones
public override double DefaultWeight => 1.0;
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1073634); // An aquarium decoration
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,38 @@
namespace Server.Items
{
public class IslandStatue : Item
{
[Constructible]
public IslandStatue() : base(0x3B0F)
{
}
public IslandStatue(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074600; // An island statue
public override double DefaultWeight => 1.0;
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1073634); // An aquarium decoration
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,38 @@
namespace Server.Items
{
public class Shell : Item
{
[Constructible]
public Shell() : base(Utility.RandomList(0x3B12, 0x3B13))
{
}
public Shell(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074598; // A shell
public override double DefaultWeight => 1.0;
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1073634); // An aquarium decoration
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,39 @@
namespace Server.Items
{
[Flippable(0x14F3, 0x14F4)]
public class ToyBoat : Item
{
[Constructible]
public ToyBoat() : base(0x14F4)
{
}
public ToyBoat(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074363; // A toy boat
public override double DefaultWeight => 1.0;
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1073634); // An aquarium decoration
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,49 @@
namespace Server.Items
{
public class WaterloggedBoots : BaseShoes
{
[Constructible]
public WaterloggedBoots() : base(0x1711)
{
if (Utility.RandomBool())
{
// thigh boots
ItemID = 0x1711;
Weight = 4.0;
}
else
{
// boots
ItemID = 0x170B;
Weight = 3.0;
}
}
public WaterloggedBoots(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074364; // Waterlogged boots
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1073634); // An aquarium decoration
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,42 @@
namespace Server.Items
{
public class VacationWafer : Item
{
public const int VacationDays = 7;
[Constructible]
public VacationWafer() : base(0x973)
{
}
public VacationWafer(Serial serial) : base(serial)
{
}
public override int LabelNumber => 1074431; // An aquarium flake sphere
public override void AddNameProperties(ObjectPropertyList list)
{
base.AddNameProperties(list);
list.Add(1074432, VacationDays.ToString()); // Vacation days: ~1_DAYS~
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(1); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
if (version < 1 && ItemID == 0x971)
ItemID = 0x973;
}
}
}