#W# Initial Commit: Avatars Conquest
This commit is contained in:
commit
5df497787a
7510 changed files with 416048 additions and 0 deletions
112
Scripts/Mobiles/Fey/Satyr.cs
Normal file
112
Scripts/Mobiles/Fey/Satyr.cs
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
using System;
|
||||
using Server;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
using Server.Misc;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a satyr's corpse" )]
|
||||
public class Satyr : BaseCreature
|
||||
{
|
||||
private DateTime m_NextPickup;
|
||||
|
||||
[Constructable]
|
||||
public Satyr() : base( AIType.AI_Animal, FightMode.Evil, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a satyr";
|
||||
Body = 118;
|
||||
BaseSoundID = 0x585;
|
||||
|
||||
SetStr( 177, 195 );
|
||||
SetDex( 251, 269 );
|
||||
SetInt( 153, 170 );
|
||||
|
||||
SetHits( 150, 200 );
|
||||
|
||||
SetDamage( 13, 24 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 55.0, 65.0 );
|
||||
SetSkill( SkillName.Tactics, 80.0, 100.0 );
|
||||
SetSkill( SkillName.HandToHand, 80.0, 100.0 );
|
||||
|
||||
Fame = 5000;
|
||||
Karma = 5000;
|
||||
|
||||
VirtualArmor = 28;
|
||||
|
||||
Pipes pipe = new Pipes();
|
||||
pipe.Name = "satyr pipes";
|
||||
PackItem( pipe );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override void OnThink()
|
||||
{
|
||||
if ( DateTime.Now >= m_NextPickup )
|
||||
{
|
||||
m_NextPickup = DateTime.Now + TimeSpan.FromSeconds( Utility.RandomMinMax( 10, 20 ) );
|
||||
Peace( Combatant );
|
||||
}
|
||||
base.OnThink();
|
||||
}
|
||||
|
||||
public override int Meat { get { return 1; } }
|
||||
|
||||
public Satyr( 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();
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
private DateTime m_NextPeace;
|
||||
public void Peace( Mobile target )
|
||||
{
|
||||
if ( target == null || Deleted || !Alive || m_NextPeace > DateTime.Now )
|
||||
return;
|
||||
|
||||
PlayerMobile p = target as PlayerMobile;
|
||||
|
||||
if ( p != null && p.PeacedUntil < DateTime.Now && !p.Hidden && CanBeHarmful( p ) )
|
||||
{
|
||||
p.PeacedUntil = DateTime.Now + TimeSpan.FromSeconds( Utility.RandomMinMax( 20, 45 ) );
|
||||
p.SendLocalizedMessage( 500616 ); // You hear lovely music, and forget to continue battling!
|
||||
p.FixedParticles( 0x376A, 1, 32, 0x15BD, EffectLayer.Waist );
|
||||
p.Combatant = null;
|
||||
target.Warmode = false;
|
||||
UndressItem( target, Layer.OneHanded );
|
||||
UndressItem( target, Layer.TwoHanded );
|
||||
|
||||
PlaySound( Utility.RandomMinMax( 0x58A, 0x58C ) );
|
||||
}
|
||||
|
||||
m_NextPeace = DateTime.Now + TimeSpan.FromSeconds( 50 );
|
||||
}
|
||||
|
||||
public void UndressItem( Mobile m, Layer layer )
|
||||
{
|
||||
Item item = m.FindItemOnLayer( layer );
|
||||
|
||||
if ( item != null && item.Movable )
|
||||
m.PlaceInBackpack( item );
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue