307 lines
No EOL
6.6 KiB
C#
307 lines
No EOL
6.6 KiB
C#
using System;
|
|
using System.Collections;
|
|
using Server.Items;
|
|
using Server.ContextMenus;
|
|
using Server.Misc;
|
|
using Server.Network;
|
|
|
|
namespace Server.Mobiles
|
|
{
|
|
public class Citizen : BaseCreature
|
|
{
|
|
public override bool ClickTitle{ get{ return false; } }
|
|
public override bool ShowFameTitle { get { return false; } }
|
|
public override bool DeleteCorpseOnDeath{ get{ return true; } }
|
|
|
|
public DateTime m_NextTalk;
|
|
public DateTime NextTalk{ get{ return m_NextTalk; } set{ m_NextTalk = value; } }
|
|
|
|
public override void OnMovement( Mobile m, Point3D oldLocation )
|
|
{
|
|
if ( DateTime.Now >= m_NextTalk && InRange( m, 30 ) )
|
|
{
|
|
if ( Utility.RandomBool() ){ Server.Misc.CitizenTalking.CitizenTalk( this ); }
|
|
m_NextTalk = (DateTime.Now + TimeSpan.FromSeconds( Utility.RandomMinMax( 15, 45 ) ));
|
|
|
|
if ( this is CitizenNorth || this is CitizenSouth || this is CitizenEast || this is CitizenWest )
|
|
Server.Misc.CitizenDressing.RemoveMyGear( this );
|
|
}
|
|
}
|
|
|
|
[Constructable]
|
|
public Citizen() : base( AIType.AI_Citizen, FightMode.None, 10, 1, 0.2, 0.4 )
|
|
{
|
|
SpeechHue = Utility.RandomSpeechHue();
|
|
Title = Server.Misc.CitizenTitles.CitizenTitle( this );
|
|
Hue = Utility.RandomSkinHue();
|
|
CantWalk = true;
|
|
NameHue = Utility.RandomOrangeHue();
|
|
Invulnerable = true;
|
|
Clan = Clan.Citizen;
|
|
|
|
SetStr( 300 );
|
|
SetDex( 300 );
|
|
SetInt( 300 );
|
|
|
|
SetDamage( 30, 50 );
|
|
|
|
int hair = Utility.RandomHairHue();
|
|
|
|
if ( this.Female = Utility.RandomBool() )
|
|
{
|
|
Body = 0x191;
|
|
Name = NameList.RandomName( "female" );
|
|
}
|
|
else
|
|
{
|
|
Body = 0x190;
|
|
Name = NameList.RandomName( "male" );
|
|
if ( Utility.RandomBool() ){ Utility.AssignRandomFacialHair( this, hair ); }
|
|
}
|
|
|
|
Utility.AssignRandomHair( this, hair );
|
|
|
|
Server.Misc.CitizenDressing.CitizenDress( this, 0 );
|
|
}
|
|
|
|
public override void OnThink()
|
|
{
|
|
}
|
|
|
|
public override bool IsEnemy( Mobile m )
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public Citizen( 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();
|
|
}
|
|
}
|
|
public class AdventurerEast : Citizen
|
|
{
|
|
[Constructable]
|
|
public AdventurerEast() : base( )
|
|
{
|
|
Direction = Direction.East;
|
|
}
|
|
|
|
public AdventurerEast( 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();
|
|
}
|
|
}
|
|
public class AdventurerWest : Citizen
|
|
{
|
|
[Constructable]
|
|
public AdventurerWest() : base( )
|
|
{
|
|
Direction = Direction.West;
|
|
}
|
|
|
|
public AdventurerWest( 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();
|
|
}
|
|
}
|
|
public class AdventurerSouth : Citizen
|
|
{
|
|
[Constructable]
|
|
public AdventurerSouth() : base( )
|
|
{
|
|
Direction = Direction.South;
|
|
}
|
|
|
|
public AdventurerSouth( 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();
|
|
}
|
|
}
|
|
public class AdventurerNorth : Citizen
|
|
{
|
|
[Constructable]
|
|
public AdventurerNorth() : base( )
|
|
{
|
|
Direction = Direction.North;
|
|
}
|
|
|
|
public AdventurerNorth( 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();
|
|
}
|
|
}
|
|
public class CitizenEast : Citizen
|
|
{
|
|
[Constructable]
|
|
public CitizenEast() : base( )
|
|
{
|
|
Direction = Direction.East;
|
|
}
|
|
|
|
public CitizenEast( Serial serial ) : base( serial )
|
|
{
|
|
}
|
|
|
|
public override void OnAfterSpawn()
|
|
{
|
|
base.OnAfterSpawn();
|
|
Server.Misc.CitizenDressing.RemoveMyGear( this );
|
|
}
|
|
|
|
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();
|
|
}
|
|
}
|
|
public class CitizenWest : Citizen
|
|
{
|
|
[Constructable]
|
|
public CitizenWest() : base( )
|
|
{
|
|
Direction = Direction.West;
|
|
}
|
|
|
|
public CitizenWest( Serial serial ) : base( serial )
|
|
{
|
|
}
|
|
|
|
public override void OnAfterSpawn()
|
|
{
|
|
base.OnAfterSpawn();
|
|
Server.Misc.CitizenDressing.RemoveMyGear( this );
|
|
}
|
|
|
|
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();
|
|
}
|
|
}
|
|
public class CitizenSouth : Citizen
|
|
{
|
|
[Constructable]
|
|
public CitizenSouth() : base( )
|
|
{
|
|
Direction = Direction.South;
|
|
}
|
|
|
|
public CitizenSouth( Serial serial ) : base( serial )
|
|
{
|
|
}
|
|
|
|
public override void OnAfterSpawn()
|
|
{
|
|
base.OnAfterSpawn();
|
|
Server.Misc.CitizenDressing.RemoveMyGear( this );
|
|
}
|
|
|
|
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();
|
|
}
|
|
}
|
|
public class CitizenNorth : Citizen
|
|
{
|
|
[Constructable]
|
|
public CitizenNorth() : base( )
|
|
{
|
|
Direction = Direction.North;
|
|
}
|
|
|
|
public CitizenNorth( Serial serial ) : base( serial )
|
|
{
|
|
}
|
|
|
|
public override void OnThink()
|
|
{
|
|
Server.Misc.CitizenDressing.RemoveMyGear( this );
|
|
}
|
|
|
|
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();
|
|
}
|
|
}
|
|
} |