This commit is contained in:
parent
2204d5fb86
commit
03fc95bfb7
105 changed files with 9135 additions and 161 deletions
|
|
@ -1,17 +1,28 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Engines.CannedEvil;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName("corpse of Ilhenir")]
|
||||
public class Ilhenir : BaseCreature
|
||||
public class Ilhenir : BaseChampion
|
||||
{
|
||||
public override ChampionSkullType SkullType{ get{ return ChampionSkullType.Pain; } }
|
||||
|
||||
public override Type[] UniqueList{ get{ return new Type[] { }; } }
|
||||
public override Type[] SharedList{ get{ return new Type[] { typeof( ANecromancerShroud ),
|
||||
typeof( LieutenantOfTheBritannianRoyalGuard ),
|
||||
typeof( OblivionsNeedle ),
|
||||
typeof( TheRobeOfBritanniaAri ) }; } }
|
||||
public override Type[] DecorativeList{ get{ return new Type[] { typeof( MonsterStatuette ) }; } }
|
||||
|
||||
public override MonsterStatuetteType[] StatueTypes{ get{ return new MonsterStatuetteType[] { MonsterStatuetteType.PlagueBeast,
|
||||
MonsterStatuetteType.RedDeath }; } }
|
||||
|
||||
// Based off of the Bone Demon, since Stratics and UOGuide are lacking in info. Many things guessed for now.
|
||||
[Constructable]
|
||||
public Ilhenir()
|
||||
: base(AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4)
|
||||
public Ilhenir() : base(AIType.AI_Mage)
|
||||
{
|
||||
Name = "Ilhenir";
|
||||
Title = "the Stained";
|
||||
|
|
@ -23,7 +34,7 @@ namespace Server.Mobiles
|
|||
|
||||
SetHits( 9000 );
|
||||
|
||||
SetDamage(4, 6);
|
||||
SetDamage(21, 28);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 60);
|
||||
SetDamageType(ResistanceType.Fire, 20);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using Server.Engines.CannedEvil;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
using Server.Misc;
|
||||
|
|
@ -7,10 +8,22 @@ using Server.Misc;
|
|||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a minotaur corpse" )]
|
||||
public class Meraktus : BaseCreature
|
||||
public class Meraktus : BaseChampion
|
||||
{
|
||||
public override ChampionSkullType SkullType{ get{ return ChampionSkullType.Pain; } }
|
||||
|
||||
public override Type[] UniqueList{ get{ return new Type[] { typeof( Subdue ) }; } }
|
||||
public override Type[] SharedList{ get{ return new Type[] { }; } }
|
||||
public override Type[] DecorativeList{ get{ return new Type[] { typeof( ArtifactLargeVase ),
|
||||
typeof( ArtifactVase ),
|
||||
typeof( MinotaurStatueDeed ) }; } }
|
||||
|
||||
public override MonsterStatuetteType[] StatueTypes{ get{ return new MonsterStatuetteType[] { }; } }
|
||||
|
||||
public override bool NoGoodies{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public Meraktus() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) // NEED TO CHECK
|
||||
public Meraktus() : base( AIType.AI_Melee )
|
||||
{
|
||||
Name = "Meraktus";
|
||||
Title = "the Tormented";
|
||||
|
|
@ -22,7 +35,7 @@ namespace Server.Mobiles
|
|||
|
||||
SetHits( 4100, 4200 );
|
||||
|
||||
SetDamage( 3, 5 );
|
||||
SetDamage( 16, 30 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,25 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Engines.CannedEvil;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Twaulo : BaseCreature
|
||||
public class Twaulo : BaseChampion
|
||||
{
|
||||
// COMPLETELY guessed beyond stats. Stats/skills come from Stratics and UOGuide. No idea what the special attacks should be.
|
||||
// Based on Silvani, due to them both using Blue creatures.
|
||||
|
||||
public override ChampionSkullType SkullType{ get{ return ChampionSkullType.Pain; } }
|
||||
|
||||
public override Type[] UniqueList{ get{ return new Type[] { typeof( Quell ) }; } }
|
||||
public override Type[] SharedList{ get{ return new Type[] { typeof( TheMostKnowledgePerson ), typeof( OblivionsNeedle ) }; } }
|
||||
public override Type[] DecorativeList{ get{ return new Type[] { typeof( Pier ), typeof( MonsterStatuette ) }; } }
|
||||
|
||||
public override MonsterStatuetteType[] StatueTypes{ get{ return new MonsterStatuetteType[] { MonsterStatuetteType.DreadHorn }; } }
|
||||
|
||||
[Constructable]
|
||||
public Twaulo()
|
||||
: base(AIType.AI_Archer, FightMode.Evil, 18, 1, 0.1, 0.2)
|
||||
public Twaulo() : base(AIType.AI_Archer, FightMode.Evil)
|
||||
{
|
||||
Name = "Twaulo";
|
||||
Title = "of the Glade";
|
||||
|
|
@ -23,7 +32,7 @@ namespace Server.Mobiles
|
|||
|
||||
SetHits( 7500 );
|
||||
|
||||
SetDamage( 3, 4 );
|
||||
SetDamage( 19, 24 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
|
|
@ -33,13 +42,12 @@ namespace Server.Mobiles
|
|||
SetResistance( ResistanceType.Poison, 50, 60 );
|
||||
SetResistance( ResistanceType.Energy, 50, 60 );
|
||||
|
||||
SetSkill( SkillName.Archery, 85.0, 100 ); // Guestimate
|
||||
SetSkill( SkillName.EvalInt, 0 ); // Per Stratics?!?
|
||||
SetSkill( SkillName.Magery, 0 ); // Per Stratics?!?
|
||||
SetSkill( SkillName.Meditation, 0 ); // Per Stratics?!?
|
||||
SetSkill( SkillName.MagicResist, 0 ); // Per Stratics?!?
|
||||
SetSkill( SkillName.Tactics, 85.0, 100 ); // Stratics says 0?!?
|
||||
SetSkill( SkillName.Wrestling, 0 ); // Per Stratics?!?
|
||||
//Lacking OSI information skills are based on Centaurs and scaled up the way other champs are.
|
||||
SetSkill( SkillName.Anatomy, 115.1, 135.0 );
|
||||
SetSkill( SkillName.Archery, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 100.5, 150.0 );
|
||||
SetSkill( SkillName.Tactics, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 100.0 );
|
||||
|
||||
Fame = 50000;
|
||||
Karma = 50000;
|
||||
|
|
@ -64,65 +72,6 @@ namespace Server.Mobiles
|
|||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
public override int TreasureMapLevel{ get{ return 5; } }
|
||||
|
||||
public void SpawnPixies( Mobile target )
|
||||
{
|
||||
Map map = this.Map;
|
||||
|
||||
if ( map == null )
|
||||
return;
|
||||
|
||||
int newPixies = Utility.RandomMinMax( 3, 6 );
|
||||
|
||||
for ( int i = 0; i < newPixies; ++i )
|
||||
{
|
||||
Pixie pixie = new Pixie();
|
||||
|
||||
pixie.Team = this.Team;
|
||||
pixie.FightMode = FightMode.Closest;
|
||||
|
||||
bool validLocation = false;
|
||||
Point3D loc = this.Location;
|
||||
|
||||
for ( int j = 0; !validLocation && j < 10; ++j )
|
||||
{
|
||||
int x = X + Utility.Random( 3 ) - 1;
|
||||
int y = Y + Utility.Random( 3 ) - 1;
|
||||
int z = map.GetAverageZ( x, y );
|
||||
|
||||
if ( validLocation = map.CanFit( x, y, this.Z, 16, false, false ) )
|
||||
loc = new Point3D( x, y, Z );
|
||||
else if ( validLocation = map.CanFit( x, y, z, 16, false, false ) )
|
||||
loc = new Point3D( x, y, z );
|
||||
}
|
||||
|
||||
pixie.MoveToWorld( loc, map );
|
||||
pixie.Combatant = target;
|
||||
}
|
||||
}
|
||||
|
||||
public override void AlterDamageScalarFrom( Mobile caster, ref double scalar )
|
||||
{
|
||||
if ( 0.1 >= Utility.RandomDouble() )
|
||||
SpawnPixies( caster );
|
||||
}
|
||||
|
||||
public override void OnGaveMeleeAttack( Mobile defender )
|
||||
{
|
||||
base.OnGaveMeleeAttack( defender );
|
||||
|
||||
defender.Damage( Utility.Random( 20, 10 ), this );
|
||||
defender.Stam -= Utility.Random( 20, 10 );
|
||||
defender.Mana -= Utility.Random( 20, 10 );
|
||||
}
|
||||
|
||||
public override void OnGotMeleeAttack( Mobile attacker )
|
||||
{
|
||||
base.OnGotMeleeAttack( attacker );
|
||||
|
||||
if ( 0.1 >= Utility.RandomDouble() )
|
||||
SpawnPixies( attacker );
|
||||
}
|
||||
|
||||
public Twaulo( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue