/* created by: Lord Greywolf with thanks to Daat99 for his "Elementals" script that inspired me to make this */ using System; using Server; using Server.Items; using Server.daat99;// remove is no Daat99 installed namespace Server.Mobiles { [CorpseName( "a dragon corpse" )] public class RandomDragons : BaseCreature { [Constructable] public RandomDragons() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) { int i_Resource = 0; int i_Multiple = 0; int i_TSlots = 0; string s_Name; i_Resource = Utility.RandomMinMax( 1, 25 ); //Name = "a dragon"; Body = Utility.RandomList( 12, 59 ); Hue = Utility.RandomList( 2986, 2999, 2998, 2997, 2995, 2990, 2989, 2980, 2978, 2976, 2975, 2972, 2967, 2957, 2940, 2931, 2862 ); i_Multiple = i_Resource +2; BaseSoundID = 362; switch (i_Resource) { case 1: default: s_Name = "Baby Dragon ";break; case 2: s_Name = "Baby Sister ";break; case 3: s_Name = "Baby Brother ";break; case 4: s_Name = "Little Dragon ";break; case 5: s_Name = "Little Sister ";break; case 6: s_Name = "Little Brother ";break; case 7: s_Name = "Little Cousin ";break; case 8: s_Name = "Sister ";break; case 9: s_Name = "Brother ";break; case 10: s_Name = "Cousin ";break; case 11: s_Name = "Big ";break; case 12: s_Name = "Big Sister ";break; case 13: s_Name = "Big Brother ";break; case 14: s_Name = "Big Cousin ";break; case 15: s_Name = "Aunt ";break; case 16: s_Name = "Uncle ";break; case 17: s_Name = "Big Aunt ";break; case 18: s_Name = "Big Uncle ";break; case 19: s_Name = "Momma ";break; case 20: s_Name = "Daddy ";break; case 21: s_Name = "Big Momma ";break; case 22: s_Name = "Big Dady ";break; case 23: s_Name = "Enforcer ";break; case 24: s_Name = "'Tiny' ";break; case 25: s_Name = "God Father ";break; } Name = s_Name + NameList.RandomName( "daemon" ); SetStr( 800 + (i_Multiple*10), 800 + (i_Multiple*10) ); SetDex( 90 + (i_Multiple*3), 100 + (i_Multiple*3) ); SetInt( 425 + (i_Multiple*3), 460 + (i_Multiple*3) ); SetHits( 500 + (i_Multiple*10), 600 + (i_Multiple*10) ); SetDamage( 5 + (i_Multiple*2), 10 + (i_Multiple*2) ); SetDamageType( ResistanceType.Physical, 80 ); SetDamageType( ResistanceType.Poison, 5 ); SetDamageType( ResistanceType.Fire, 5 ); SetDamageType( ResistanceType.Cold, 5 ); SetDamageType( ResistanceType.Energy, 5 ); SetResistance( ResistanceType.Physical, 50 + i_Multiple ); SetResistance( ResistanceType.Fire, 70 + i_Multiple ); SetResistance( ResistanceType.Cold, 50 + i_Multiple ); SetResistance( ResistanceType.Poison, 40 + i_Multiple ); SetResistance( ResistanceType.Energy, 40 + i_Multiple ); SetSkill( SkillName.EvalInt, 30.0 + (i_Multiple*2) ); SetSkill( SkillName.Magery, 30.0 + (i_Multiple*2) ); SetSkill( SkillName.MagicResist, 50.0 + (i_Multiple*2) ); SetSkill( SkillName.Tactics, 50.0 + (i_Multiple*2) ); SetSkill( SkillName.Wrestling, 50.0 + (i_Multiple*2) ); Fame = 15000; Karma = -15000; VirtualArmor = (50 + (i_Multiple*1)); switch (i_Resource) { case 1: default: i_TSlots = 3;break; case 2: i_TSlots = 3;break; case 3: i_TSlots = 3;break; case 4: i_TSlots = 3;break; case 5: i_TSlots = 4;break; case 6: i_TSlots = 4;break; case 7: i_TSlots = 4;break; case 8: i_TSlots = 4;break; case 9: i_TSlots = 5;break; case 10: i_TSlots = 5;break; case 11: i_TSlots = 5;break; case 12: i_TSlots = 5;break; case 13: i_TSlots = 6;break; case 14: i_TSlots = 6;break; case 15: i_TSlots = 6;break; case 16: i_TSlots = 6;break; case 17: i_TSlots = 7;break; case 18: i_TSlots = 7;break; case 19: i_TSlots = 7;break; case 20: i_TSlots = 7;break; case 21: i_TSlots = 8;break; case 22: i_TSlots = 8;break; case 23: i_TSlots = 8;break; case 24: i_TSlots = 8;break; case 25: i_TSlots = 9;break; } Tamable = true; ControlSlots = i_TSlots; MinTameSkill = (100.0 + (i_Multiple*2)); // remove next 2 lines if no Daat99 system installed if ( Daat99OWLTR.Ops[5].Setting ) PackItem( new ResourceRecipe() ); AddLoot( LootPack.FilthyRich, i_TSlots -1 ); PackItem( new Gold ((i_Multiple*100), (i_Multiple*250))); } public override bool HasBreath{ get{ return true; } } // fire breath enabled public override bool AutoDispel{ get{ return true; } } public override int TreasureMapLevel{ get{ if (ControlSlots >= 8) return 6; else if (ControlSlots >= 6) return 5; return 4;} } public override int Meat{ get{ return 19; } } public override int Hides{ get{ return 20; } } public override HideType HideType{ get{ return HideType.Barbed; } } public override int Scales{ get{ return 10 + ControlSlots; } } public override ScaleType ScaleType{ get{ return ( Body == 12 ? ScaleType.Yellow : ScaleType.Red ); } } public override FoodType FavoriteFood{ get{ return FoodType.Meat; } } public RandomDragons( 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(); } } }