RunUO/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/MilitiaFighter.cs

151 lines
No EOL
3.8 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using Server;
using Server.Items;
using Server.Mobiles;
using Server.Network;
namespace Server.Engines.Quests.Haven
{
public class MilitiaFighter : BaseCreature
{
[Constructable]
public MilitiaFighter() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
InitStats( 40, 30, 5 );
Title = "the Militia Fighter";
SpeechHue = Utility.RandomDyedHue();
Hue = Utility.RandomSkinHue();
Female = false;
Body = 0x190;
Name = NameList.RandomName( "male" );
Utility.AssignRandomHair( this );
Utility.AssignRandomFacialHair( this, HairHue );
AddItem( new ThighBoots( 0x1BB ) );
AddItem( new LeatherChest() );
AddItem( new LeatherArms() );
AddItem( new LeatherLegs() );
AddItem( new LeatherCap() );
AddItem( new LeatherGloves() );
AddItem( new LeatherGorget() );
Item weapon;
switch ( Utility.Random( 6 ) )
{
case 0: weapon = new Broadsword(); break;
case 1: weapon = new Cutlass(); break;
case 2: weapon = new Katana(); break;
case 3: weapon = new Longsword(); break;
case 4: weapon = new Scimitar(); break;
default: weapon = new VikingSword(); break;
}
weapon.Movable = false;
AddItem( weapon );
Item shield = new BronzeShield();
shield.Movable = false;
AddItem( shield );
SetSkill( SkillName.Swords, 20.0 );
}
public override bool ClickTitle { get { return false; } }
public override bool IsEnemy( Mobile m )
{
if ( m.Player || m is BaseVendor )
return false;
if ( m is BaseCreature )
{
BaseCreature bc = (BaseCreature)m;
Mobile master = bc.GetMaster();
if( master != null )
return IsEnemy( master );
}
return m.Karma < 0;
}
public MilitiaFighter( 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 MilitiaFighterCorpse : Corpse
{
public MilitiaFighterCorpse( Mobile owner, HairInfo hair, FacialHairInfo facialhair, List<Item> equipItems ) : base( owner, hair, facialhair, equipItems )
{
}
public override void AddNameProperty( ObjectPropertyList list )
{
if ( ItemID == 0x2006 ) // Corpse form
{
list.Add( "a human corpse" );
list.Add( 1049318, this.Name ); // the remains of ~1_NAME~ the militia fighter
}
else
{
list.Add( 1049319 ); // the remains of a militia fighter
}
}
public override void OnSingleClick( Mobile from )
{
int hue = Notoriety.GetHue( Server.Misc.NotorietyHandlers.CorpseNotoriety( from, this ) );
if ( ItemID == 0x2006 ) // Corpse form
from.Send( new MessageLocalized( Serial, ItemID, MessageType.Label, hue, 3, 1049318, "", Name ) ); // the remains of ~1_NAME~ the militia fighter
else
from.Send( new MessageLocalized( Serial, ItemID, MessageType.Label, hue, 3, 1049319, "", "" ) ); // the remains of a militia fighter
}
public override void Open( Mobile from, bool checkSelfLoot )
{
if ( from.InRange( this.GetWorldLocation(), 2 ) )
{
from.SendLocalizedMessage( 1049661, "", 0x22 ); // Thinking about his sacrifice, you can't bring yourself to loot the body of this militia fighter.
}
}
public MilitiaFighterCorpse( 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();
}
}
}