#W# Source and Scripts added. Added Scripts/Settings.cs to expose some basic tweak able settings.

This commit is contained in:
WarrentyExpired 2026-08-06 11:06:05 -04:00
parent b51c58f514
commit 3045c83799
3512 changed files with 627673 additions and 0 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,199 @@
using System;
using Server;
using Server.Mobiles;
using Server.Items;
using Server.Targeting;
namespace Server.Items
{
public class AquariumFishNet : SpecialFishingNet
{
public override int LabelNumber{ get{ return 1074463; } } // An aquarium fishing net
[Constructable]
public AquariumFishNet()
{
ItemID = 0xDC8;
if ( Hue == 0x8A0 )
Hue = 0x240;
}
protected override void AddNetProperties( ObjectPropertyList list )
{
}
public override bool RequireDeepWater { get { return false; } }
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;
}
else
{
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;
}
else
{
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 AquariumFishNet( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
// Legacy code
public class AquariumFishingNet : Item
{
public override int LabelNumber{ get{ return 1074463; } } // An aquarium fishing net
public AquariumFishingNet()
{
}
public AquariumFishingNet( Serial serial ) : base( serial )
{
}
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( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

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

View file

@ -0,0 +1,92 @@
using System;
using System.Collections;
using Server.Gumps;
using Server.Items;
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;
Dragable = 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 virtual 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, false, false ); // Name
// item details
if ( item is BaseFish )
AddHtmlLocalized( 20, 239, 315, 20, ( (BaseFish) item ).GetDescription(), 0xFFFFFF, false, false );
else
AddHtmlLocalized( 20, 239, 315, 20, 1073634, 0xFFFFFF, false, false ); // An aquarium decoration
// item image
AddItem( 150, 80, item.ItemID, item.Hue );
// item number / all items
AddHtml( 20, 195, 250, 20, String.Format( "<BASEFONT COLOR=#FFFFFF>{0}/{1}</BASEFONT>", page, m_Aquarium.Items.Count ), false, false );
// remove item
if ( edit )
{
AddBackground( 230, 195, 100, 26, 0x13BE );
AddButton( 235, 200, 0x845, 0x846, page, GumpButtonType.Reply, 0 );
AddHtmlLocalized( 260, 198, 60, 26, 1073838, 0x0, false, false ); // 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, false, false ); // NEXT PAGE
}
// previous page
if ( page > 1 )
{
AddButton( 45, 280, 0xFAE, 0xFAF, 0, GumpButtonType.Page, page - 1 );
AddHtmlLocalized( 80, 283, 100, 18, 1044044, 0xFFFFFF, false, false ); // PREV PAGE
}
}
public override void OnResponse( NetState sender, RelayInfo info )
{
if ( m_Aquarium == null || m_Aquarium.Deleted )
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,98 @@
using System;
using Server;
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;
private int m_Maintain;
private int m_Improve;
private int m_Added;
[CommandProperty( AccessLevel.GameMaster )]
public int State
{
get{ return 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{ return m_Maintain; }
set{ m_Maintain = value; }
}
[CommandProperty( AccessLevel.GameMaster )]
public int Improve
{
get{ return m_Improve; }
set{ m_Improve = value; }
}
[CommandProperty( AccessLevel.GameMaster )]
public int Added
{
get{ return m_Added; }
set{ m_Added = value; }
}
public AquariumState()
{
}
public override string ToString()
{
return "...";
}
public virtual void Serialize( GenericWriter writer )
{
writer.Write( 0 ); // version
writer.Write( m_State );
writer.Write( m_Maintain );
writer.Write( m_Improve );
writer.Write( m_Added );
}
public virtual void Deserialize( GenericReader reader )
{
int version = reader.ReadInt();
m_State = reader.ReadInt();
m_Maintain = reader.ReadInt();
m_Improve = reader.ReadInt();
m_Added = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,100 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class BaseFish : Item
{
private static readonly TimeSpan DeathDelay = TimeSpan.FromMinutes( 5 );
private Timer m_Timer;
[CommandProperty( AccessLevel.GameMaster )]
public bool Dead
{
get{ return ( ItemID == 0x3B0C ); }
}
[Constructable]
public BaseFish( int itemID ) : base( itemID )
{
StartTimer();
}
public BaseFish( Serial serial ) : base( serial )
{
}
public virtual void StartTimer()
{
if ( m_Timer != null )
m_Timer.Stop();
m_Timer = Timer.DelayCall( DeathDelay, new TimerCallback( Kill ) );
InvalidateProperties();
}
public virtual void StopTimer()
{
if ( m_Timer != null )
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
else 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( (int) 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,33 @@
using System;
using Server;
namespace Server.Items
{
public class AlbinoCourtesanFish : BaseFish
{
public override int LabelNumber{ get{ return 1074592; } } // Albino Courtesan Fish
[Constructable]
public AlbinoCourtesanFish() : base( 0x3B04 )
{
}
public AlbinoCourtesanFish( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,179 @@
using System;
using System.Collections.Generic;
using Server;
using Server.ContextMenus;
using Server.Mobiles;
using Server.Network;
namespace Server.Items
{
public class FishBowl : BaseContainer
{
public override int LabelNumber{ get{ return 1074499; } } // A fish bowl
[CommandProperty( AccessLevel.GameMaster )]
public bool Empty
{
get{ return ( Items.Count == 0 ); }
}
[CommandProperty( AccessLevel.GameMaster )]
public BaseFish Fish
{
get
{
if ( Empty )
return null;
if ( Items[ 0 ] is BaseFish )
return (BaseFish) Items[ 0 ];
return null;
}
}
public override double DefaultWeight { get { return 2.0; } }
[Constructable]
public FishBowl() : base( 0x241C )
{
Hue = 0x47E;
MaxItems = 1;
}
public FishBowl( Serial serial ) : base( serial )
{
}
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( (int) 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 == null || m_Bowl.Deleted || !m_Bowl.IsAccessibleTo( Owner.From ) )
return;
BaseFish fish = m_Bowl.Fish;
if ( fish != null )
{
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,33 @@
using System;
using Server;
namespace Server.Items
{
public class BrineShrimp : BaseFish
{
public override int LabelNumber{ get{ return 1074415; } } // Brine shrimp
[Constructable]
public BrineShrimp() : base( 0x3B11 )
{
}
public BrineShrimp( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,41 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class AquariumMessage : MessageInABottle
{
public override int LabelNumber{ get{ return 1073894; } } // Message in a Bottle
[Constructable]
public AquariumMessage() : base()
{
}
public AquariumMessage( Serial serial ) : base( serial )
{
}
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( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,41 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class CaptainBlackheartsFishingPole : FishingPole
{
public override int LabelNumber{ get{ return 1074571; } } // Captain Blackheart's Fishing Pole
[Constructable]
public CaptainBlackheartsFishingPole() : base()
{
}
public CaptainBlackheartsFishingPole( Serial serial ) : base( serial )
{
}
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( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,50 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class CraftysFishingHat : BaseHat
{
public override int LabelNumber{ get{ return 1074572; } } // Crafty's Fishing Hat
public override int BasePhysicalResistance{ get{ return 0; } }
public override int BaseFireResistance{ get{ return 5; } }
public override int BaseColdResistance{ get{ return 9; } }
public override int BasePoisonResistance{ get{ return 5; } }
public override int BaseEnergyResistance{ get{ return 5; } }
public override int InitMinHits{ get{ return 20; } }
public override int InitMaxHits{ get{ return 30; } }
[Constructable]
public CraftysFishingHat() : base( 0x1713 )
{
}
public CraftysFishingHat( Serial serial ) : base( serial )
{
}
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( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,41 @@
using System;
using Server;
namespace Server.Items
{
public class FishBones : Item
{
public override int LabelNumber{ get{ return 1074601; } } // Fish bones
public override double DefaultWeight{ get{ return 1.0; } }
[Constructable]
public FishBones() : base( 0x3B0C )
{
}
public FishBones( Serial serial ) : base( serial )
{
}
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( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,42 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class IslandStatue : Item
{
public override int LabelNumber{ get{ return 1074600; } } // An island statue
public override double DefaultWeight{ get{ return 1.0; } }
[Constructable]
public IslandStatue() : base( 0x3B0F )
{
}
public IslandStatue( Serial serial ) : base( serial )
{
}
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( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,42 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class Shell : Item
{
public override int LabelNumber{ get{ return 1074598; } } // A shell
public override double DefaultWeight{ get{ return 1.0; } }
[Constructable]
public Shell() : base( Utility.RandomList( 0x3B12, 0x3B13 ) )
{
}
public Shell( Serial serial ) : base( serial )
{
}
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( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,43 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
[FlipableAttribute( 0x14F3, 0x14F4 )]
public class ToyBoat : Item
{
public override int LabelNumber{ get{ return 1074363; } } // A toy boat
public override double DefaultWeight{ get{ return 1.0; } }
[Constructable]
public ToyBoat() : base( 0x14F4 )
{
}
public ToyBoat( Serial serial ) : base( serial )
{
}
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( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,52 @@
using System;
using Server;
namespace Server.Items
{
public class WaterloggedBoots : BaseShoes
{
public override int LabelNumber{ get{ return 1074364; } } // Waterlogged boots
[Constructable]
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 void AddNameProperties( ObjectPropertyList list )
{
base.AddNameProperties( list );
list.Add( 1073634 ); // An aquarium decoration
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,46 @@
using System;
using Server;
using Server.Mobiles;
namespace Server.Items
{
public class VacationWafer : Item
{
public const int VacationDays = 7;
public override int LabelNumber{ get{ return 1074431; } } // An aquarium flake sphere
[Constructable]
public VacationWafer() : base( 0x973 )
{
}
public VacationWafer( Serial serial ) : base( serial )
{
}
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( (int) 1 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( version < 1 && ItemID == 0x971 )
ItemID = 0x973;
}
}
}