This commit is contained in:
mark 2009-09-06 02:06:07 +00:00
parent 4ee6ca5951
commit 06e5c8b732
70 changed files with 2798 additions and 286 deletions

View file

@ -44,6 +44,9 @@ namespace Server.Mobiles
PackItem( new Bone( 3 ) );
PackItem( new FertileDirt( Utility.RandomMinMax( 1, 5 ) ) );
if ( Core.ML && Utility.RandomDouble() < .33 )
PackItem( Engines.Plants.Seed.RandomPeculiarSeed(2) );
switch ( Utility.Random( 4 ) )
{
case 0: PackItem( new DullCopperOre( Utility.RandomMinMax( 1, 10 ) ) ); break;

View file

@ -41,6 +41,9 @@ namespace Server.Mobiles
Karma = -4000;
VirtualArmor = 30;
if ( Core.ML && Utility.RandomDouble() < .33 )
PackItem( Engines.Plants.Seed.RandomPeculiarSeed(3) );
}
public override void GenerateLoot()

View file

@ -40,6 +40,9 @@ namespace Server.Mobiles
Karma = -11500;
VirtualArmor = 40;
if ( Core.ML && Utility.RandomDouble() < .33 )
PackItem( Engines.Plants.Seed.RandomPeculiarSeed(1) );
}
public override void GenerateLoot()

View file

@ -5,13 +5,13 @@ using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "a cyclops corpse" )]
[CorpseName( "a cyclopean corpse" )]
public class Cyclops : BaseCreature
{
[Constructable]
public Cyclops() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a cyclops";
Name = "a cyclopean warrior";
Body = 75;
BaseSoundID = 604;

View file

@ -41,6 +41,9 @@ namespace Server.Mobiles
VirtualArmor = 50;
if ( Core.ML && Utility.RandomDouble() < .33 )
PackItem( Engines.Plants.Seed.RandomPeculiarSeed(2) );
PackItem( new Garlic( 5 ) );
PackItem( new Bandage( 10 ) );
}

View file

@ -15,7 +15,7 @@ namespace Server.Mobiles
[Constructable]
public RestlessSoul() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.4, 0.8 )
{
Name = "a restless soul";
Name = "restless soul";
Body = 0x3CA;
Hue = 0x453;
@ -71,12 +71,12 @@ namespace Server.Mobiles
public override int GetIdleSound()
{
return 0x1BF;
return 0x107;
}
public override int GetAngerSound()
{
return 0x107;
return 0x1BF;
}
public override int GetDeathSound()

View file

@ -64,6 +64,9 @@ namespace Server.Mobiles
PackItem( new ArcaneGem() );
if ( Core.ML && Utility.RandomDouble() < .33 )
PackItem( Engines.Plants.Seed.RandomPeculiarSeed(4) );
m_NextAbilityTime = DateTime.Now + TimeSpan.FromSeconds( Utility.RandomMinMax( 2, 5 ) );
}

View file

@ -56,6 +56,9 @@ namespace Server.Mobiles
Karma = 5000;
VirtualArmor = 28; // Don't know what it should be
if ( Core.ML && Utility.RandomDouble() < .33 )
PackItem( Engines.Plants.Seed.RandomPeculiarSeed(1) );
}
public override void GenerateLoot()

View file

@ -63,7 +63,7 @@ namespace Server.Mobiles
public override bool AutoDispel{ get{ return !Controlled; } }
public override int TreasureMapLevel{ get{ return 5; } }
public override int Meat{ get{ return 19; } }
public override int Hides{ get{ return 20; } }
public override int Hides{ get{ return 30; } }
public override HideType HideType{ get{ return HideType.Barbed; } }
public override int Scales{ get{ return 7; } }
public override ScaleType ScaleType{ get{ return ( Body == 12 ? ScaleType.Yellow : ScaleType.Red ); } }

View file

@ -51,6 +51,9 @@ namespace Server.Mobiles
VirtualArmor = 40;
if ( Core.ML && Utility.RandomDouble() < .33 )
PackItem( Engines.Plants.Seed.RandomPeculiarSeed(3) );
AddItem( new LightSource() );
}

View file

@ -40,6 +40,9 @@ namespace Server.Mobiles
VirtualArmor = 30;
PackArmor( 1, 5 );
if ( Core.ML && Utility.RandomDouble() < .33 )
PackItem( Engines.Plants.Seed.RandomPeculiarSeed(4) );
}
public override void GenerateLoot()

View file

@ -42,6 +42,9 @@ namespace Server.Mobiles
Karma = 15000;
VirtualArmor = 36;
if ( Core.ML && Utility.RandomDouble() < .33 )
PackItem( Engines.Plants.Seed.RandomPeculiarSeed(2) );
}
public override void GenerateLoot()

View file

@ -60,6 +60,96 @@ namespace Server.Mobiles
public override int Hides{ get{ return 10; } }
public override HideType HideType{ get{ return HideType.Barbed; } }
public override FoodType FavoriteFood{ get{ return FoodType.Fish; } }
public override bool ShowFameTitle{ get{ return false; } }
public override bool ClickTitle{ get{ return false; } }
public override bool PropertyTitle{ get{ return false; } }
public override void OnCombatantChange()
{
if ( Combatant == null && !IsBodyMod && !Controlled && m_DisguiseTimer == null && Utility.RandomBool() )
m_DisguiseTimer = Timer.DelayCall( TimeSpan.FromSeconds( Utility.RandomMinMax( 15, 30 ) ), new TimerCallback( Disguise ) );
}
public override bool OnBeforeDeath()
{
RemoveDisguise();
return base.OnBeforeDeath();
}
#region Disguise
private Timer m_DisguiseTimer;
public void Disguise()
{
if ( Combatant != null || IsBodyMod || Controlled )
return;
FixedEffect( 0x376A, 8, 32 );
PlaySound( 0x1FE );
Female = Utility.RandomBool();
if ( Female )
{
BodyMod = 0x191;
Name = NameList.RandomName( "female" );
}
else
{
BodyMod = 0x190;
Name = NameList.RandomName( "male" );
}
Title = "the mystic llama herder";
Hue = Race.Human.RandomSkinHue();
HairItemID = Race.Human.RandomHair( this );
HairHue = Race.Human.RandomHairHue();
FacialHairItemID = Race.Human.RandomFacialHair( this );
FacialHairHue = HairHue;
switch ( Utility.Random( 4 ) )
{
case 0: AddItem( new Shoes( Utility.RandomNeutralHue() ) ); break;
case 1: AddItem( new Boots( Utility.RandomNeutralHue() ) ); break;
case 2: AddItem( new Sandals( Utility.RandomNeutralHue() ) ); break;
case 3: AddItem( new ThighBoots( Utility.RandomNeutralHue() ) ); break;
}
AddItem( new Robe( Utility.RandomNondyedHue() ) );
m_DisguiseTimer = null;
m_DisguiseTimer = Timer.DelayCall( TimeSpan.FromSeconds( 75 ), new TimerCallback( RemoveDisguise ) );
}
public void RemoveDisguise()
{
if ( !IsBodyMod )
return;
Name = "a bake kitsune";
Title = null;
BodyMod = 0;
Hue = 0;
HairItemID = 0;
HairHue = 0;
FacialHairItemID = 0;
FacialHairHue = 0;
DeleteItemOnLayer( Layer.OuterTorso );
DeleteItemOnLayer( Layer.Shoes );
m_DisguiseTimer = null;
}
public void DeleteItemOnLayer( Layer layer )
{
Item item = FindItemOnLayer( layer );
if ( item != null )
item.Delete();
}
#endregion
public override void OnGaveMeleeAttack( Mobile defender )
{
@ -180,6 +270,8 @@ namespace Server.Mobiles
SetResistance( ResistanceType.Poison, 40, 60 );
SetResistance( ResistanceType.Energy, 40, 60 );
}
Timer.DelayCall( TimeSpan.Zero, new TimerCallback( RemoveDisguise ) );
}
}
}

View file

@ -51,10 +51,10 @@ namespace Server.Mobiles
case 2: PackItem( new Axle() ); break;
}
}
if ( Core.ML && Utility.RandomDouble() < .33 )
PackItem( Engines.Plants.Seed.RandomPeculiarSeed(4) );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Meager );
@ -126,11 +126,10 @@ namespace Server.Mobiles
if ( m.Alive )
{
int damageGiven = AOS.Damage( m, from, 5, 0, 0, 0, 0, 100 );
from.Hits += damageGiven;
}
else
{
{
EndLifeDrain( m );
}
}
@ -165,7 +164,7 @@ namespace Server.Mobiles
}
if ( amt > 0 )
{
SpillAcid( target, amt, "slime" );
SpillAcid( target, amt );
from.SendLocalizedMessage( 1070820 );
if ( Mana > 14)
Mana -= 15;
@ -175,6 +174,11 @@ namespace Server.Mobiles
base.OnDamage( amount, from, willKill );
}
public override Item NewHarmfulItem()
{
return new AcidSlime( TimeSpan.FromSeconds(10), 5, 10 );
}
public Kappa( Serial serial ) : base( serial )
{
}

View file

@ -47,7 +47,8 @@ namespace Server.Mobiles
Fame = 8500;
Karma = -8500;
if ( Core.ML && Utility.RandomDouble() < .33 )
PackItem( Engines.Plants.Seed.RandomPeculiarSeed(1) );
switch( Utility.Random( 10 ) )
{