This commit is contained in:
mark 2008-05-29 03:57:42 +00:00
parent e41632fe95
commit 9c5abc3b0d
48 changed files with 261 additions and 70 deletions

View file

@ -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 )

View file

@ -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 )

View file

@ -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; } }

View file

@ -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 )
{

View file

@ -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;

View file

@ -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] );
}
}

View file

@ -12,6 +12,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
public override double DefaultWeight
{
get { return 0.1; }

View file

@ -12,6 +12,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
public override double DefaultWeight
{
get { return 0.1; }

View file

@ -13,6 +13,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
public override double DefaultWeight
{
get { return 0.1; }

View file

@ -13,6 +13,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
public override double DefaultWeight
{
get { return 0.1; }

View file

@ -28,6 +28,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );

View file

@ -25,6 +25,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
public abstract BaseIngot GetIngot();
public override void Serialize( GenericWriter writer )

View file

@ -30,6 +30,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );

View file

@ -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 )
{

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public BatWing() : this( 1 )
{

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public BlackPearl() : this( 1 )
{

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public Bloodmoss() : this( 1 )
{

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public DaemonBlood() : this( 1 )
{

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public DeadWood() : this( 1 )
{

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public Garlic() : this( 1 )
{

View file

@ -15,6 +15,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public Ginseng() : this( 1 )
{

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public GraveDust() : this( 1 )
{

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public MandrakeRoot() : this( 1 )
{

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public Nightshade() : this( 1 )
{

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public NoxCrystal() : this( 1 )
{

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public PigIron() : this( 1 )
{

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public SpidersSilk() : this( 1 )
{

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public SulfurousAsh() : this( 1 )
{

View file

@ -15,6 +15,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public BoltOfCloth() : this( 1 )
{

View file

@ -13,6 +13,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
[Constructable]
public Bone() : this( 1 )
{

View file

@ -15,6 +15,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
public override double DefaultWeight
{
get { return 0.1; }

View file

@ -23,6 +23,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );

View file

@ -23,6 +23,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );

View file

@ -15,6 +15,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
public override double DefaultWeight
{
get { return 0.1; }

View file

@ -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 )

View file

@ -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 )
{
}

View file

@ -14,6 +14,8 @@ namespace Server.Items
}
}
int ICommodity.DescriptionNumber { get { return LabelNumber; } }
public override int LabelNumber{ get{ return 1044626; } } // sand
[Constructable]

View file

@ -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;
}
}
}
}