#W# Mobs: Still working on adding some new mobs.

This commit is contained in:
WarrentyExpired 2026-10-30 14:14:38 -04:00
parent 5bdc30d7ea
commit fbda425fee
12 changed files with 311 additions and 7 deletions

View file

@ -597,5 +597,14 @@
"Castoriel", "Celebrindal", "Chathmiru", "Davlien", "Gerrath", "Jerraintho", "Lewys", "Misran", "Nandrien", "Olonal",
"Peorilien", "Regornolas", "Rylvarn", "Silnaliel", "Talendeor", "Uomo", "Verlolas"
]
},
{
"type": "ancient wyvern",
"names": [
"Malith", "Uira", "Larange", "Mogonth", "Coliath", "Nenith", "Cath", "Antarahi", "Ghilong", "Ngran",
"Marab", "Polarinth", "Emaleth", "Zilahed", "Nenith", "Halzanth", "Speth", "Meth", "Ptorahee",
"Naranoth", "Lauralare", "Olthonis", "Roth", "Camalanth", "Spath", "Halzanth", "Hrontr", "Takhansa",
"Santega", "Lant", "Weth"
]
}
]

View file

@ -19,7 +19,7 @@ anim2.mul
1088 Evil Mage Lord - Added
1089 Ancient Lich - Added
1090 Shambler
1091-1095 Balrons
1091-1095 Balrons - Added
1096 Ent
1097 Larger Ent
1098 Ancient Ent
@ -42,7 +42,7 @@ anim2.mul
1115 Very Large Daemon with Skull for Head
1117 Giant Black Dragon
1118 Giant Ice Dragon
1119 - 1125 Different Color Wyrms
1119 - 1125 Different Color Wyrms - Added Ancient Wyvrens
1126 Black Knight
1127 Exodus
1128 Fire Lion - Added Smoldering Lion
@ -55,8 +55,24 @@ anim2.mul
1133 Skeletal Lion
1134 Fire Unicorn
1135 Hell Steed
1136 Griffon
1137 Hippogriffon
1136 Griffon - Added
1137 Evil Griffon - Added
1139 Skeleton Archer - Added
1140 - 1143 Clydesdale Horse - Added
1144 - 1147 Clydesdale Horse with Saddles - Added
1148 Fire Unicorn
1149 Large Moss Rock Guy
1150 Fire Rock Elemental
1151 - 1153 Medium Size Wyverns
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163 Skeletal Hell Cat
1164

View file

@ -1,3 +1,5 @@
Hellish Nightmare
Smoldering Lion
Dark Lion
Griffon
Evil Griffon

View file

@ -0,0 +1,78 @@
using ModernUO.Serialization;
namespace Server.Mobiles
{
[SerializationGenerator(0, false)]
public partial class AncientWyvern : BaseCreature
{
[Constructible]
public AncientWyvern() : base(AIType.AI_Mage)
{
Name = NameList.RandomName("ancient wyvern");
Body = Utility.RandomList(1119, 1120, 1121, 1122, 1123, 1124, 1125); //46;
BaseSoundID = 362;
SetStr(796, 825);
SetDex(86, 105);
SetInt(436, 475);
SetHits(478, 495);
SetDamage(16, 22);
SetDamageType(ResistanceType.Physical, 50);
SetDamageType(ResistanceType.Poison, 50);
SetResistance(ResistanceType.Physical, 55, 65);
SetResistance(ResistanceType.Fire, 50, 60);
SetResistance(ResistanceType.Cold, 40, 50);
SetResistance(ResistanceType.Poison, 100 );
SetResistance(ResistanceType.Energy, 50, 60);
SetSkill(SkillName.EvalInt, 30.1, 40.0);
SetSkill(SkillName.Magery, 30.1, 40.0);
SetSkill(SkillName.Meditation, 52.5, 75.0);
SetSkill(SkillName.MagicResist, 99.1, 100.0);
SetSkill(SkillName.Tactics, 97.6, 100.0);
SetSkill(SkillName.Wrestling, 90.1, 92.5);
Fame = 15000;
Karma = -15000;
VirtualArmor = 60;
Tamable = true;
ControlSlots = 3;
MinTameSkill = 93.9;
}
public override string CorpseName => "an ancient wyvern corpse";
public override string DefaultName => "an ancient wyvern";
public override bool ReacquireOnMovement => true;
public override bool AutoDispel => true;
public override HideType HideType => HideType.Barbed;
public override int Hides => 40;
public override int Meat => 19;
public override int Scales => 12;
public override ScaleType ScaleType => (ScaleType)Utility.Random(4);
public override Poison PoisonImmune => Poison.Deadly;
public override Poison HitPoison => Utility.RandomBool() ? Poison.Regular : Poison.Deadly;
public override int TreasureMapLevel => 5;
public override bool CanFly => true;
public override bool CanAngerOnTame => true;
private static MonsterAbility[] _abilities = { MonsterAbilities.FireBreath };
public override MonsterAbility[] GetMonsterAbilities() => _abilities;
public override void GenerateLoot()
{
AddLoot(LootPack.FilthyRich, 2);
AddLoot(LootPack.Gems, 3);
}
public override int GetIdleSound() => 0x16B;
public override int GetHurtSound() => 0x16D;
}
}

View file

@ -13,6 +13,7 @@ namespace Server.Mobiles
public DarkLion() : base(1132, 1132, AIType.AI_Melee)
{
BaseSoundID = 0x0B3;
SetStr(801, 1010);
SetDex(171, 270);
SetInt(301, 325);
@ -58,6 +59,11 @@ namespace Server.Mobiles
private static MonsterAbility[] _abilities = { MonsterAbilities.BloodBathAttack };
public override MonsterAbility[] GetMonsterAbilities() => _abilities;
public override int GetAttackSound() => 0x0B2;
public override int GetAngerSound() => 0x0B2;
public override int GetDeathSound() => 0x0B6;
public override int GetIdleSound() => 0x0B5;
public override int GetHurtSound() => 0x0B4;
public override void GenerateLoot()
{

View file

@ -0,0 +1,54 @@
using System;
using ModernUO.Serialization;
using Server.Items;
namespace Server.Mobiles
{
[SerializationGenerator(0, false)]
public partial class EvilGriffon : BaseMount
{
public override string DefaultName => "an evil griffon";
[Constructible]
public EvilGriffon() : base(1137, 1137, AIType.AI_Melee)
{
BaseSoundID = 0x4FE;
SetStr(220, 270);
SetDex(130, 150);
SetInt(70, 90);
SetHits(200, 240);
SetDamage(14, 18);
SetDamageType(ResistanceType.Physical, 50);
SetDamageType(ResistanceType.Energy, 50); // Darker variant hits with a bit of energy
SetResistance(ResistanceType.Physical, 45, 55);
SetResistance(ResistanceType.Fire, 40, 50);
SetResistance(ResistanceType.Cold, 20, 30);
SetResistance(ResistanceType.Poison, 40, 50);
SetResistance(ResistanceType.Energy, 30, 40);
SetSkill(SkillName.MagicResist, 65.0, 80.0);
SetSkill(SkillName.Tactics, 75.0, 90.0);
SetSkill(SkillName.Wrestling, 75.0, 90.0);
Fame = 5000;
Karma = -5000; // Aggressive
Tamable = true;
ControlSlots = 2;
MinTameSkill = 85.1;
}
public override int Meat => 3;
public override int Feathers => 36;
public override FoodType FavoriteFood => FoodType.Meat;
public override void GenerateLoot()
{
AddLoot(LootPack.Average, 2);
}
}
}

View file

@ -0,0 +1,54 @@
using System;
using ModernUO.Serialization;
using Server.Items;
namespace Server.Mobiles
{
[SerializationGenerator(0, false)]
public partial class Griffon : BaseMount
{
public override string DefaultName => "a griffon";
[Constructible]
public Griffon() : base(1136, 1136, AIType.AI_Melee)
{
BaseSoundID = 0x4FE;
SetStr(200, 250);
SetDex(120, 140);
SetInt(60, 80);
SetHits(180, 220);
SetDamage(12, 16);
SetDamageType(ResistanceType.Physical, 100);
SetResistance(ResistanceType.Physical, 40, 50);
SetResistance(ResistanceType.Fire, 30, 40);
SetResistance(ResistanceType.Cold, 30, 40);
SetResistance(ResistanceType.Poison, 20, 30);
SetResistance(ResistanceType.Energy, 30, 40);
SetSkill(SkillName.MagicResist, 60.0, 75.0);
SetSkill(SkillName.Tactics, 70.0, 85.0);
SetSkill(SkillName.Wrestling, 70.0, 85.0);
Fame = 4000;
Karma = 0; // Neutral
Tamable = true;
ControlSlots = 2;
MinTameSkill = 80.1;
}
public override int Meat => 3;
public override int Feathers => 36;
public override FoodType FavoriteFood => FoodType.Meat;
public override void GenerateLoot()
{
AddLoot(LootPack.Average);
AddLoot(LootPack.Meager);
}
}
}

View file

@ -89,7 +89,11 @@ namespace Server.Mobiles
AddLoot(LootPack.Potions);
}
public override int GetAngerSound()
public override int GetAttackSound() => 0x0AB;
//public override int GetAngerSound() => 0x0A9;
public override int GetDeathSound() => 0x0AC;
public override int GetIdleSound() => 0x0A8;
public override int GetHurtSound() => 0x0AA;
{
if (!Controlled)
{

View file

@ -0,0 +1,75 @@
using System;
using ModernUO.Serialization;
using Server.Items;
namespace Server.Mobiles
{
[SerializationGenerator(0, false)]
public partial class SkeletalHellCat : BaseCreature
{
public override string DefaultName => "a skeletal hell cat";
[Constructible]
public SkeletalHellCat() : base(AIType.AI_Melee, FightMode.Closest)
{
Body = 1163;
BaseSoundID = 0x0B3;
SetStr(250, 300);
SetDex(100, 150);
SetInt(50, 100);
SetHits(150, 200);
SetDamage(8, 14);
SetDamageType(ResistanceType.Physical, 50);
SetDamageType(ResistanceType.Fire, 50);
SetResistance(ResistanceType.Physical, 45, 55);
SetResistance(ResistanceType.Fire, 60, 70);
SetResistance(ResistanceType.Cold, 20, 30);
SetResistance(ResistanceType.Poison, 10, 20);
SetResistance(ResistanceType.Energy, 20, 30); public override int GetAttackSound() => 0x0B2;
public override int GetAngerSound() => 0x0B2
public override int GetDeathSound() => 0x0B6;
public override int GetIdleSound() => 0x0B5;
public override int GetHurtSound() => 0x0B4;
SetSkill(SkillName.MagicResist, 50.0, 70.0);
SetSkill(SkillName.Tactics, 65.0, 85.0);
SetSkill(SkillName.Wrestling, 65.0, 85.0);
Fame = 3500;
Karma = -3500;
Tamable = true;
ControlSlots = 2;
MinTameSkill = 85.1;
PackItem(new SulfurousAsh(Utility.RandomMinMax(2, 4)));
}
public override string CorpseName => "a skeletal hell cat corpse";
public override bool ReacquireOnMovement => true;
public override int Meat => 2;
//public override int Hides => 10;
//public override HideType HideType => HideType.Spined;
public override FoodType FavoriteFood => FoodType.Meat;
public override PackInstinct PackInstinct => PackInstinct.Feline;
private static MonsterAbility[] _abilities = { MonsterAbilities.FireBreath };
public override MonsterAbility[] GetMonsterAbilities() => _abilities;
public override int GetAttackSound() => 0x0B2;
public override int GetAngerSound() => 0x0B2;
public override int GetDeathSound() => 0x0B6;
public override int GetIdleSound() => 0x0B5;
public override int GetHurtSound() => 0x0B4;
public override void GenerateLoot()
{
AddLoot(LootPack.Average);
AddLoot(LootPack.Meager);
}
}
}

View file

@ -13,7 +13,7 @@ namespace Server.Mobiles
public SmolderingLion() : base(AIType.AI_Melee, FightMode.Closest)
{
Body = 1128;
BaseSoundID = 0x69;
BaseSoundID = 0x0B3;
SetStr(250, 300);
SetDex(100, 150);
@ -56,6 +56,11 @@ namespace Server.Mobiles
private static MonsterAbility[] _abilities = { MonsterAbilities.FireBreath };
public override MonsterAbility[] GetMonsterAbilities() => _abilities;
public override int GetAttackSound() => 0x0B2;
public override int GetAngerSound() => 0x0B2;
public override int GetDeathSound() => 0x0B6;
public override int GetIdleSound() => 0x0B5;
public override int GetHurtSound() => 0x0B4;
public override void GenerateLoot()
{
AddLoot(LootPack.Average);

View file

@ -10,7 +10,7 @@ namespace Server.Mobiles
public Balron() : base(AIType.AI_Mage)
{
Name = NameList.RandomName("balron");
Body = 40;
Body = Utility.RandomList(1091, 1092, 1093, 1094); //40;
BaseSoundID = 357;
SetStr(986, 1185);

View file

@ -8,6 +8,7 @@ namespace Server.Mobiles
[Constructible]
public AncientWyrm() : base(AIType.AI_Mage)
{
Name = NameList.RandomName("ancient wyvern");
Body = 46;
BaseSoundID = 362;