This commit is contained in:
parent
e41632fe95
commit
9c5abc3b0d
48 changed files with 261 additions and 70 deletions
|
|
@ -7,6 +7,7 @@ namespace Server.Items
|
|||
public interface ICommodity
|
||||
{
|
||||
string Description{ get; }
|
||||
int DescriptionNumber{ get; }
|
||||
}
|
||||
|
||||
public class CommodityDeed : Item
|
||||
|
|
@ -100,7 +101,7 @@ namespace Server.Items
|
|||
base.GetProperties( list );
|
||||
|
||||
if ( m_Commodity != null )
|
||||
list.Add( 1060658, "#{0}\t{1}", m_Commodity.LabelNumber, m_Commodity.Amount ); // ~1_val~: ~2_val~
|
||||
list.Add( 1060658, "#{0}\t{1}", ((ICommodity)m_Commodity).DescriptionNumber, m_Commodity.Amount ); // ~1_val~: ~2_val~
|
||||
}
|
||||
|
||||
public override void OnSingleClick( Mobile from )
|
||||
|
|
|
|||
|
|
@ -79,8 +79,8 @@ namespace Server.Items
|
|||
{
|
||||
string filePath = Path.Combine( Core.BaseDirectory, "Data/treasure.cfg" );
|
||||
|
||||
ArrayList list = new ArrayList();
|
||||
ArrayList havenList = new ArrayList();
|
||||
List<Point2D> list = new List<Point2D>();
|
||||
List<Point2D> havenList = new List<Point2D>();
|
||||
|
||||
if ( File.Exists( filePath ) )
|
||||
{
|
||||
|
|
@ -109,8 +109,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
m_Locations = (Point2D[])list.ToArray( typeof( Point2D ) );
|
||||
m_HavenLocations = (Point2D[])havenList.ToArray( typeof( Point2D ) );
|
||||
m_Locations = list.ToArray();
|
||||
m_HavenLocations = havenList.ToArray();
|
||||
}
|
||||
|
||||
public static bool IsInHavenIsland( IPoint2D loc )
|
||||
|
|
|
|||
|
|
@ -371,7 +371,7 @@ namespace Server.Items
|
|||
m_PostedHue = m_Poster.Hue;
|
||||
m_Lines = lines;
|
||||
|
||||
ArrayList list = new ArrayList();
|
||||
List<BulletinEquip> list = new List<BulletinEquip>();
|
||||
|
||||
for ( int i = 0; i < poster.Items.Count; ++i )
|
||||
{
|
||||
|
|
@ -381,7 +381,7 @@ namespace Server.Items
|
|||
list.Add( new BulletinEquip( item.ItemID, item.Hue ) );
|
||||
}
|
||||
|
||||
m_PostedEquip = (BulletinEquip[])list.ToArray( typeof( BulletinEquip ) );
|
||||
m_PostedEquip = list.ToArray();
|
||||
}
|
||||
|
||||
public Mobile Poster{ get{ return m_Poster; } }
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ namespace Server.Items
|
|||
Mobile from = e.Mobile;
|
||||
string speech = e.Speech;
|
||||
|
||||
foreach ( ReceiverCrystal receiver in new ArrayList( Receivers ) )
|
||||
foreach ( ReceiverCrystal receiver in new List<ReceiverCrystal>( Receivers ) )
|
||||
{
|
||||
if ( receiver.Deleted )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class EffectItem : Item
|
||||
{
|
||||
private static ArrayList m_Free = new ArrayList(); // List of available EffectItems
|
||||
private static List<EffectItem> m_Free = new List<EffectItem>(); // List of available EffectItems
|
||||
|
||||
public static readonly TimeSpan DefaultDuration = TimeSpan.FromSeconds( 5.0 );
|
||||
|
||||
|
|
@ -16,7 +17,7 @@ namespace Server.Items
|
|||
|
||||
for ( int i = m_Free.Count - 1; item == null && i >= 0; --i ) // We reuse new entries first so decay works better
|
||||
{
|
||||
EffectItem free = (EffectItem)m_Free[i];
|
||||
EffectItem free = m_Free[i];
|
||||
|
||||
m_Free.RemoveAt( i );
|
||||
|
||||
|
|
@ -75,9 +76,9 @@ namespace Server.Items
|
|||
|
||||
private class FreeTimer : Timer
|
||||
{
|
||||
private Item m_Item;
|
||||
private EffectItem m_Item;
|
||||
|
||||
public FreeTimer( Item item, TimeSpan delay ) : base( delay )
|
||||
public FreeTimer( EffectItem item, TimeSpan delay ) : base( delay )
|
||||
{
|
||||
m_Item = item;
|
||||
Priority = TimerPriority.OneSecond;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ using Server;
|
|||
using Server.Mobiles;
|
||||
using Server.Spells;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
|
|
@ -115,7 +116,7 @@ namespace Server.Items
|
|||
if( !Drying && age > (m_Duration - age) )
|
||||
Drying = true;
|
||||
|
||||
ArrayList toDamage = new ArrayList();
|
||||
List<Mobile> toDamage = new List<Mobile>();
|
||||
|
||||
foreach( Mobile m in GetMobilesInRange( 0 ) )
|
||||
{
|
||||
|
|
@ -128,7 +129,7 @@ namespace Server.Items
|
|||
}
|
||||
|
||||
for( int i = 0; i < toDamage.Count; i++ )
|
||||
Damage( (Mobile)toDamage[i] );
|
||||
Damage( toDamage[i] );
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override double DefaultWeight
|
||||
{
|
||||
get { return 0.1; }
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override double DefaultWeight
|
||||
{
|
||||
get { return 0.1; }
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override double DefaultWeight
|
||||
{
|
||||
get { return 0.1; }
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override double DefaultWeight
|
||||
{
|
||||
get { return 0.1; }
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public abstract BaseIngot GetIngot();
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ using Server.Network;
|
|||
|
||||
namespace Server.Items
|
||||
{
|
||||
public abstract class BaseGranite : Item, ICommodity
|
||||
public abstract class BaseGranite : Item
|
||||
{
|
||||
private CraftResource m_Resource;
|
||||
|
||||
|
|
@ -14,14 +14,6 @@ namespace Server.Items
|
|||
get{ return m_Resource; }
|
||||
set{ m_Resource = value; InvalidateProperties(); }
|
||||
}
|
||||
|
||||
string ICommodity.Description
|
||||
{
|
||||
get
|
||||
{
|
||||
return String.Format( "{0} {1} high quality granite", Amount, CraftResources.GetName( m_Resource ).ToLower() );
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public BatWing() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public BlackPearl() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public Bloodmoss() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public DaemonBlood() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public DeadWood() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public Garlic() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public Ginseng() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public GraveDust() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public MandrakeRoot() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public Nightshade() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public NoxCrystal() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public PigIron() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public SpidersSilk() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public SulfurousAsh() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public BoltOfCloth() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
[Constructable]
|
||||
public Bone() : this( 1 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override double DefaultWeight
|
||||
{
|
||||
get { return 0.1; }
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override double DefaultWeight
|
||||
{
|
||||
get { return 0.1; }
|
||||
|
|
|
|||
|
|
@ -22,6 +22,24 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
if ( m_Resource >= CraftResource.OakWood && m_Resource <= CraftResource.YewWood )
|
||||
return 1075052 + ( (int)m_Resource - (int)CraftResource.OakWood );
|
||||
|
||||
switch ( m_Resource )
|
||||
{
|
||||
case CraftResource.Bloodwood: return 1075055;
|
||||
case CraftResource.Frostwood: return 1075056;
|
||||
case CraftResource.Heartwood: return 1075062; //WHY Osi. Why?
|
||||
}
|
||||
|
||||
return LabelNumber;
|
||||
}
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Board()
|
||||
: this( 1 )
|
||||
|
|
@ -49,7 +67,6 @@ namespace Server.Items
|
|||
: base( 0x1BD7 )
|
||||
{
|
||||
Stackable = true;
|
||||
Weight = 2.0;
|
||||
Amount = amount;
|
||||
|
||||
m_Resource = resource;
|
||||
|
|
@ -77,7 +94,7 @@ namespace Server.Items
|
|||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 2 );
|
||||
writer.Write( (int) 3 );
|
||||
|
||||
writer.Write( (int)m_Resource );
|
||||
}
|
||||
|
|
@ -90,6 +107,7 @@ namespace Server.Items
|
|||
|
||||
switch ( version )
|
||||
{
|
||||
case 3:
|
||||
case 2:
|
||||
{
|
||||
m_Resource = (CraftResource)reader.ReadInt();
|
||||
|
|
@ -97,7 +115,7 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
if ( version == 0 && Weight == 0.1 )
|
||||
if ( (version == 0 && Weight == 0.1) || ( version <= 2 && Weight == 2 ) )
|
||||
Weight = -1;
|
||||
|
||||
if ( version <= 1 )
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return CraftResources.IsStandard( m_Resource ) ? LabelNumber : 1075062 + ( (int)m_Resource - (int)CraftResource.RegularWood ); } }
|
||||
|
||||
[Constructable]
|
||||
public Log() : this( 1 )
|
||||
{
|
||||
|
|
@ -107,7 +109,8 @@ namespace Server.Items
|
|||
}
|
||||
|
||||
[Constructable]
|
||||
public HeartwoodLog( int amount ) : base( CraftResource.Heartwood, amount )
|
||||
public HeartwoodLog( int amount )
|
||||
: base( CraftResource.Heartwood, amount )
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
|
||||
|
||||
public override int LabelNumber{ get{ return 1044626; } } // sand
|
||||
|
||||
[Constructable]
|
||||
|
|
|
|||
|
|
@ -7,6 +7,10 @@ namespace Server.Items
|
|||
[Constructable]
|
||||
public FireColumnTrap() : base( 0x1B71 )
|
||||
{
|
||||
m_MinDamage = 10;
|
||||
m_MaxDamage = 40;
|
||||
|
||||
m_WarningFlame = true;
|
||||
}
|
||||
|
||||
public override bool PassivelyTriggered{ get{ return true; } }
|
||||
|
|
@ -14,16 +18,54 @@ namespace Server.Items
|
|||
public override int PassiveTriggerRange{ get{ return 3; } }
|
||||
public override TimeSpan ResetDelay{ get{ return TimeSpan.FromSeconds( 0.5 ); } }
|
||||
|
||||
private int m_MinDamage;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public virtual int MinDamage
|
||||
{
|
||||
get { return m_MinDamage; }
|
||||
set { m_MinDamage = value; }
|
||||
}
|
||||
|
||||
private int m_MaxDamage;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public virtual int MaxDamage
|
||||
{
|
||||
get { return m_MaxDamage; }
|
||||
set { m_MaxDamage = value; }
|
||||
}
|
||||
|
||||
private bool m_WarningFlame;
|
||||
|
||||
[CommandProperty( AccessLevel.GameMaster )]
|
||||
public virtual bool WarningFlame
|
||||
{
|
||||
get { return m_WarningFlame; }
|
||||
set { m_WarningFlame = value; }
|
||||
}
|
||||
|
||||
public override void OnTrigger( Mobile from )
|
||||
{
|
||||
if ( from.AccessLevel > AccessLevel.Player )
|
||||
return;
|
||||
|
||||
Effects.SendLocationParticles( EffectItem.Create( Location, Map, EffectItem.DefaultDuration ), 0x3709, 10, 30, 5052 );
|
||||
Effects.PlaySound( Location, Map, 0x225 );
|
||||
if ( WarningFlame )
|
||||
DoEffect();
|
||||
|
||||
if ( from.Alive && CheckRange( from.Location, 0 ) )
|
||||
Spells.SpellHelper.Damage( TimeSpan.FromSeconds( 0.5 ), from, from, Utility.RandomMinMax( 10, 40 ), 0, 100, 0, 0, 0 );
|
||||
{
|
||||
Spells.SpellHelper.Damage( TimeSpan.FromSeconds( 0.5 ), from, from, Utility.RandomMinMax( MinDamage, MaxDamage ), 0, 100, 0, 0, 0 );
|
||||
|
||||
if ( !WarningFlame )
|
||||
DoEffect();
|
||||
}
|
||||
}
|
||||
|
||||
private void DoEffect()
|
||||
{
|
||||
Effects.SendLocationParticles( EffectItem.Create( Location, Map, EffectItem.DefaultDuration ), 0x3709, 10, 30, 5052 );
|
||||
Effects.PlaySound( Location, Map, 0x225 );
|
||||
}
|
||||
|
||||
public FireColumnTrap( Serial serial ) : base( serial )
|
||||
|
|
@ -34,7 +76,11 @@ namespace Server.Items
|
|||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
writer.Write( (int) 1 ); // version
|
||||
|
||||
writer.Write( m_WarningFlame );
|
||||
writer.Write( m_MinDamage );
|
||||
writer.Write( m_MaxDamage );
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
|
|
@ -42,6 +88,24 @@ namespace Server.Items
|
|||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
switch ( version )
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
m_WarningFlame = reader.ReadBool();
|
||||
m_MinDamage = reader.ReadInt();
|
||||
m_MaxDamage = reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( version == 0 )
|
||||
{
|
||||
m_WarningFlame = true;
|
||||
m_MinDamage = 10;
|
||||
m_MaxDamage = 40;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue