#W# Initial Commit: Avatars Conquest

This commit is contained in:
WarrentyExpired 2026-07-03 20:19:48 -04:00
commit 8eae46895e
7512 changed files with 416187 additions and 0 deletions

View file

@ -0,0 +1,69 @@
using System;
using System.Collections;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "a centaur corpse" )]
public class Centaur : BaseCreature
{
[Constructable]
public Centaur() : base( AIType.AI_Melee, FightMode.Evil, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "centaur" );
HiddenTitle = "the centaur";
Body = 126;
BaseSoundID = 679;
SetStr( 202, 300 );
SetDex( 104, 260 );
SetInt( 91, 100 );
SetHits( 130, 172 );
SetDamage( 13, 24 );
SetSkill( SkillName.Archery, 95.1, 100.0 );
SetSkill( SkillName.MagicResist, 50.3, 80.0 );
SetSkill( SkillName.Tactics, 90.1, 100.0 );
SetSkill( SkillName.HandToHand, 95.1, 100.0 );
Fame = 6500;
Karma = 6500;
VirtualArmor = 50;
AddItem( new Bow() );
PackItem( new Arrow( Utility.RandomMinMax( 80, 90 ) ) );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.Average );
AddLoot( LootPack.Gems );
}
public override int Meat{ get{ return 1; } }
public override int Hides{ get{ return 8; } }
public Centaur( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( BaseSoundID == 678 )
BaseSoundID = 679;
}
}
}

View file

@ -0,0 +1,66 @@
using System;
using Server;
using Server.Items;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a dread horn corpse" )]
public class DreadHorn : BaseCreature
{
public override bool HasBreath{ get{ return true; } }
public override bool ReacquireOnMovement{ get{ return !Controlled; } }
[Constructable]
public DreadHorn() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
BaseSoundID = 0xA8;
SetStr( 596, 625 );
SetDex( 186, 205 );
SetInt( 186, 225 );
SetHits( 398, 415 );
SetDamage( 22, 28 );
SetSkill( SkillName.Concentration, 30.4, 70.0 );
SetSkill( SkillName.Magery, 30.4, 70.0 );
SetSkill( SkillName.MagicResist, 105.3, 120.0 );
SetSkill( SkillName.Tactics, 117.6, 120.0 );
SetSkill( SkillName.HandToHand, 100.5, 112.5 );
Fame = 19000;
Karma = -19000;
VirtualArmor = 70;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.Average );
AddLoot( LootPack.LowScrolls );
AddLoot( LootPack.HighPotions );
}
public override int Meat{ get{ return 5; } }
public override int Hides{ get{ return 10; } }
public DreadHorn( 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();
}
}
}

View file

@ -0,0 +1,63 @@
using System;
using Server;
using Server.Misc;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a fairy corpse" )]
public class Fairy : BaseCreature
{
[Constructable]
public Fairy() : base( AIType.AI_Mage, FightMode.Evil, 10, 1, 0.2, 0.4 )
{
Name = "a fairy";
Body = 58;
BaseSoundID = 0x57A;
Hue = 1185;
SetStr( 196, 225 );
SetDex( 196, 225 );
SetInt( 196, 225 );
SetHits( 118, 135 );
SetDamage( 17, 18 );
SetSkill( SkillName.Concentration, 80.0 );
SetSkill( SkillName.Magery, 80.0 );
SetSkill( SkillName.MagicResist, 80.0 );
SetSkill( SkillName.Tactics, 80.0 );
SetSkill( SkillName.HandToHand, 80.0 );
Fame = 4000;
Karma = 4000;
VirtualArmor = 40;
AddItem( new LightSource() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.Average );
}
public Fairy( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,65 @@
using System;
using Server;
using Server.Misc;
namespace Server.Mobiles
{
[CorpseName( "a pixie corpse" )]
public class Pixie : BaseCreature
{
[Constructable]
public Pixie() : base( AIType.AI_Mage, FightMode.Evil, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "pixie" );
HiddenTitle = "the pixie";
Body = 37;
BaseSoundID = 0x467;
SetStr( 21, 30 );
SetDex( 301, 400 );
SetInt( 201, 250 );
SetHits( 13, 18 );
SetDamage( 9, 15 );
SetSkill( SkillName.Concentration, 90.1, 100.0 );
SetSkill( SkillName.Magery, 90.1, 100.0 );
SetSkill( SkillName.Meditation, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 100.5, 150.0 );
SetSkill( SkillName.Tactics, 10.1, 20.0 );
SetSkill( SkillName.HandToHand, 10.1, 12.5 );
Fame = 7000;
Karma = 7000;
VirtualArmor = 100;
}
public override void GenerateLoot()
{
AddLoot( LootPack.LowScrolls );
AddLoot( LootPack.Gems, 2 );
}
public override int Hides{ get{ return 5; } }
public override int Meat{ get{ return 1; } }
public Pixie( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View 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 );
}
}
}

View file

@ -0,0 +1,67 @@
using System;
using Server.Mobiles;
using Server.Network;
namespace Server.Mobiles
{
[CorpseName( "a unicorn corpse" )]
public class Unicorn : BaseCreature
{
[Constructable]
public Unicorn() : base( AIType.AI_Mage, FightMode.Evil, 10, 1, 0.2, 0.4 )
{
Name = "a unicorn";
BaseSoundID = 0x4BC;
Body = 230;
SetStr( 496, 525 );
SetDex( 86, 105 );
SetInt( 86, 125 );
SetHits( 298, 315 );
SetDamage( 16, 22 );
SetSkill( SkillName.Concentration, 10.4, 50.0 );
SetSkill( SkillName.Magery, 10.4, 50.0 );
SetSkill( SkillName.MagicResist, 85.3, 100.0 );
SetSkill( SkillName.Tactics, 97.6, 100.0 );
SetSkill( SkillName.HandToHand, 80.5, 92.5 );
Fame = 14000;
Karma = 14000;
VirtualArmor = 60;
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.Average );
AddLoot( LootPack.LowScrolls );
AddLoot( LootPack.HighPotions );
}
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override int Meat{ get{ return 3; } }
public override int Hides{ get{ return 10; } }
public Unicorn( 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();
}
}
}

View file

@ -0,0 +1,65 @@
using System;
using Server;
using Server.Misc;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "a wisp corpse" )]
public class Wisp : BaseCreature
{
public override InhumanSpeech SpeechType{ get{ return InhumanSpeech.Wisp; } }
public override TimeSpan ReacquireDelay { get { return TimeSpan.FromSeconds( 1.0 ); } }
[Constructable]
public Wisp() : base( AIType.AI_Mage, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a wisp";
Body = 58;
BaseSoundID = 466;
SetStr( 196, 225 );
SetDex( 196, 225 );
SetInt( 196, 225 );
SetHits( 118, 135 );
SetDamage( 17, 18 );
SetSkill( SkillName.Concentration, 80.0 );
SetSkill( SkillName.Magery, 80.0 );
SetSkill( SkillName.MagicResist, 80.0 );
SetSkill( SkillName.Tactics, 80.0 );
SetSkill( SkillName.HandToHand, 80.0 );
Fame = 4000;
Karma = 0;
VirtualArmor = 40;
AddItem( new LightSource() );
}
public override void GenerateLoot()
{
AddLoot( LootPack.Rich );
AddLoot( LootPack.Average );
}
public Wisp( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}