Give me some idea.
darkangel.cs
[code:1]
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "a dark angel corpse" )]
public class DarkAngel : BaseCreature
{
[Constructable]
public DarkAngel () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = NameList.RandomName( "Daemon" );
Body = 9;
BaseSoundID = 357;
Hue = 1;
SetStr( 450, 550 );
SetDex( 200, 300 );
SetInt( 700, 800 );
SetHits( 400, 500 );
SetDamage( 20, 30 );
SetDamageType( ResistanceType.Physical, 100 );
SetResistance( ResistanceType.Physical, 45, 60 );
SetResistance( ResistanceType.Fire, 50, 60 );
SetResistance( ResistanceType.Cold, 30, 40 );
SetResistance( ResistanceType.Poison, 20, 30 );
SetResistance( ResistanceType.Energy, 30, 40 );
SetSkill( SkillName.EvalInt, 70.1, 80.0 );
SetSkill( SkillName.Magery, 70.1, 80.0 );
SetSkill( SkillName.MagicResist, 85.1, 95.0 );
SetSkill( SkillName.Tactics, 70.1, 80.0 );
SetSkill( SkillName.Wrestling, 60.1, 80.0 );
Fame = 15000;
Karma = -15000;
VirtualArmor = 60;
ControlSlots = 5;
PackGold( 1000, 4000 );
switch ( Utility.Random( 15 ) )
{
case 0: PackItem( new BlendWithForestScroll() ); break;
case 1: PackItem( new FireflyScroll() ); break;
case 2: PackItem( new GraspingRootsScroll() ); break;
case 3: PackItem( new HollowReedScroll() ); break;
case 4: PackItem( new LureStoneScroll() ); break;
case 5: PackItem( new MushroomCircleScroll() ); break;
case 6: PackItem( new MushroomGatewayScroll() ); break;
case 7: PackItem( new NaturesPassageScroll() ); break;
case 8: PackItem( new PackOfBeastScroll() ); break;
case 9: PackItem( new SheildOfEarthScroll() ); break;
case 10: PackItem( new SpringOfLifeScroll() ); break;
case 11: PackItem( new SwarmOfInsectsScroll() ); break;
case 12: PackItem( new TreefellowScroll() ); break;
case 13: PackItem( new VolcanicEruptionScroll() ); break;
case 14: PackItem( new DruidicSpellbook() ); break;
};
PackItem( new DestroyingAngel(Utility.RandomMinMax( 1, 5 )) );
}
public override bool CanRummageCorpses{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
public override int Meat{ get{ return 1; } }
public DarkAngel( 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();
}
}
}
[/code:1]
MadTreeElemental.cs
[code:1]
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "a mad tree elemental corpse" )]
public class MadTreeElemental : BaseCreature
{
[Constructable]
public MadTreeElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a mad tree elemental";
Body = 13;
Hue = 0x56;
BaseSoundID = 263;
SetStr( 200, 350 );
SetDex( 200, 250 );
SetInt( 300, 600 );
SetHits( 250, 350 );
SetDamage( 30, 40 );
SetDamageType( ResistanceType.Physical, 90 );
SetDamageType( ResistanceType.Cold, 90 );
SetDamageType( ResistanceType.Energy, 90 );
SetResistance( ResistanceType.Physical, 90, 100 );
SetResistance( ResistanceType.Fire, 0, 5 );
SetResistance( ResistanceType.Cold, 10, 20 );
SetResistance( ResistanceType.Poison, 90, 100 );
SetResistance( ResistanceType.Energy, 70, 85 );
SetSkill( SkillName.EvalInt, 80.1, 95.0 );
SetSkill( SkillName.Magery, 90.1, 100.0 );
SetSkill( SkillName.MagicResist, 95.1, 98.0 );
SetSkill( SkillName.Tactics, 70.1, 90.0 );
SetSkill( SkillName.Wrestling, 80.1, 100.0 );
Fame = 4500;
Karma = -4500;
VirtualArmor = 70;
ControlSlots = 2;
PackGold( 300, 500 );
switch ( Utility.Random( 15 ) )
{
case 0: PackItem( new BlendWithForestScroll() ); break;
case 1: PackItem( new FireflyScroll() ); break;
case 2: PackItem( new GraspingRootsScroll() ); break;
case 3: PackItem( new HollowReedScroll() ); break;
case 4: PackItem( new LureStoneScroll() ); break;
case 5: PackItem( new MushroomCircleScroll() ); break;
case 6: PackItem( new MushroomGatewayScroll() ); break;
case 7: PackItem( new NaturesPassageScroll() ); break;
case 8: PackItem( new PackOfBeastScroll() ); break;
case 9: PackItem( new SheildOfEarthScroll() ); break;
case 10: PackItem( new SpringOfLifeScroll() ); break;
case 11: PackItem( new SwarmOfInsectsScroll() ); break;
case 12: PackItem( new TreefellowScroll() ); break;
case 13: PackItem( new VolcanicEruptionScroll() ); break;
case 14: PackItem( new DruidicSpellbook() ); break;
}
PackItem( new PetrafiedWood(Utility.RandomMinMax( 1, 5 )) );
}
public MadTreeElemental( 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();
}
}
}
[/code:1]
SpringElement.cs
[code:1]
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Targeting;
namespace Server.Mobiles
{
[CorpseName( "a spring elemental corpse" )]
public class SpringElemental : BaseCreature
{
[Constructable]
public SpringElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a spring elemental";
Body = 16;
BaseSoundID = 278;
SetStr( 200, 300 );
SetDex( 66, 85 );
SetInt( 150, 175 );
SetHits( 100, 150 );
SetDamage( 10, 15 );
SetDamageType( ResistanceType.Physical, 100 );
SetDamageType( ResistanceType.Energy, 70);
SetResistance( ResistanceType.Physical, 35, 45 );
SetResistance( ResistanceType.Fire, 10, 25 );
SetResistance( ResistanceType.Cold, 10, 25 );
SetResistance( ResistanceType.Poison, 60, 70 );
SetResistance( ResistanceType.Energy, 5, 10 );
SetSkill( SkillName.EvalInt, 60.1, 75.0 );
SetSkill( SkillName.Magery, 60.1, 75.0 );
SetSkill( SkillName.MagicResist, 100.1, 115.0 );
SetSkill( SkillName.Tactics, 50.1, 70.0 );
SetSkill( SkillName.Wrestling, 50.1, 70.0 );
Fame = 4500;
Karma = 4500;
VirtualArmor = 60;
ControlSlots = 3;
CanSwim = true;
PackGold( 100, 200 );
switch ( Utility.Random( 15 ) )
{
case 0: PackItem( new BlendWithForestScroll() ); break;
case 1: PackItem( new FireflyScroll() ); break;
case 2: PackItem( new GraspingRootsScroll() ); break;
case 3: PackItem( new HollowReedScroll() ); break;
case 4: PackItem( new LureStoneScroll() ); break;
case 5: PackItem( new MushroomCircleScroll() ); break;
case 6: PackItem( new MushroomGatewayScroll() ); break;
case 7: PackItem( new NaturesPassageScroll() ); break;
case 8: PackItem( new PackOfBeastScroll() ); break;
case 9: PackItem( new SheildOfEarthScroll() ); break;
case 10: PackItem( new SpringOfLifeScroll() ); break;
case 11: PackItem( new SwarmOfInsectsScroll() ); break;
case 12: PackItem( new TreefellowScroll() ); break;
case 13: PackItem( new VolcanicEruptionScroll() ); break;
case 14: PackItem( new DruidicSpellbook() ); break;
}
PackItem( new SpringWater(Utility.RandomMinMax( 1, 5 )) );
}
public SpringElemental( 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();
}
}
}
[/code:1]