#W# Mobs: Still working on adding some new mobs.
This commit is contained in:
parent
5bdc30d7ea
commit
fbda425fee
12 changed files with 311 additions and 7 deletions
|
|
@ -597,5 +597,14 @@
|
||||||
"Castoriel", "Celebrindal", "Chathmiru", "Davlien", "Gerrath", "Jerraintho", "Lewys", "Misran", "Nandrien", "Olonal",
|
"Castoriel", "Celebrindal", "Chathmiru", "Davlien", "Gerrath", "Jerraintho", "Lewys", "Misran", "Nandrien", "Olonal",
|
||||||
"Peorilien", "Regornolas", "Rylvarn", "Silnaliel", "Talendeor", "Uomo", "Verlolas"
|
"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"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ anim2.mul
|
||||||
1088 Evil Mage Lord - Added
|
1088 Evil Mage Lord - Added
|
||||||
1089 Ancient Lich - Added
|
1089 Ancient Lich - Added
|
||||||
1090 Shambler
|
1090 Shambler
|
||||||
1091-1095 Balrons
|
1091-1095 Balrons - Added
|
||||||
1096 Ent
|
1096 Ent
|
||||||
1097 Larger Ent
|
1097 Larger Ent
|
||||||
1098 Ancient Ent
|
1098 Ancient Ent
|
||||||
|
|
@ -42,7 +42,7 @@ anim2.mul
|
||||||
1115 Very Large Daemon with Skull for Head
|
1115 Very Large Daemon with Skull for Head
|
||||||
1117 Giant Black Dragon
|
1117 Giant Black Dragon
|
||||||
1118 Giant Ice Dragon
|
1118 Giant Ice Dragon
|
||||||
1119 - 1125 Different Color Wyrms
|
1119 - 1125 Different Color Wyrms - Added Ancient Wyvrens
|
||||||
1126 Black Knight
|
1126 Black Knight
|
||||||
1127 Exodus
|
1127 Exodus
|
||||||
1128 Fire Lion - Added Smoldering Lion
|
1128 Fire Lion - Added Smoldering Lion
|
||||||
|
|
@ -55,8 +55,24 @@ anim2.mul
|
||||||
1133 Skeletal Lion
|
1133 Skeletal Lion
|
||||||
1134 Fire Unicorn
|
1134 Fire Unicorn
|
||||||
1135 Hell Steed
|
1135 Hell Steed
|
||||||
1136 Griffon
|
1136 Griffon - Added
|
||||||
1137 Hippogriffon
|
1137 Evil Griffon - Added
|
||||||
1139 Skeleton Archer - Added
|
1139 Skeleton Archer - Added
|
||||||
1140 - 1143 Clydesdale Horse - Added
|
1140 - 1143 Clydesdale Horse - Added
|
||||||
1144 - 1147 Clydesdale Horse with Saddles - 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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
Hellish Nightmare
|
Hellish Nightmare
|
||||||
Smoldering Lion
|
Smoldering Lion
|
||||||
Dark Lion
|
Dark Lion
|
||||||
|
Griffon
|
||||||
|
Evil Griffon
|
||||||
|
|
|
||||||
78
Projects/UOContent/Mobiles/Monsters/Custom/AncientWyvern.cs
Normal file
78
Projects/UOContent/Mobiles/Monsters/Custom/AncientWyvern.cs
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -13,6 +13,7 @@ namespace Server.Mobiles
|
||||||
public DarkLion() : base(1132, 1132, AIType.AI_Melee)
|
public DarkLion() : base(1132, 1132, AIType.AI_Melee)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
BaseSoundID = 0x0B3;
|
||||||
SetStr(801, 1010);
|
SetStr(801, 1010);
|
||||||
SetDex(171, 270);
|
SetDex(171, 270);
|
||||||
SetInt(301, 325);
|
SetInt(301, 325);
|
||||||
|
|
@ -58,6 +59,11 @@ namespace Server.Mobiles
|
||||||
private static MonsterAbility[] _abilities = { MonsterAbilities.BloodBathAttack };
|
private static MonsterAbility[] _abilities = { MonsterAbilities.BloodBathAttack };
|
||||||
public override MonsterAbility[] GetMonsterAbilities() => _abilities;
|
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()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
54
Projects/UOContent/Mobiles/Monsters/Custom/EvilGriffon.cs
Normal file
54
Projects/UOContent/Mobiles/Monsters/Custom/EvilGriffon.cs
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
54
Projects/UOContent/Mobiles/Monsters/Custom/Griffon.cs
Normal file
54
Projects/UOContent/Mobiles/Monsters/Custom/Griffon.cs
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -89,7 +89,11 @@ namespace Server.Mobiles
|
||||||
AddLoot(LootPack.Potions);
|
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)
|
if (!Controlled)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -13,7 +13,7 @@ namespace Server.Mobiles
|
||||||
public SmolderingLion() : base(AIType.AI_Melee, FightMode.Closest)
|
public SmolderingLion() : base(AIType.AI_Melee, FightMode.Closest)
|
||||||
{
|
{
|
||||||
Body = 1128;
|
Body = 1128;
|
||||||
BaseSoundID = 0x69;
|
BaseSoundID = 0x0B3;
|
||||||
|
|
||||||
SetStr(250, 300);
|
SetStr(250, 300);
|
||||||
SetDex(100, 150);
|
SetDex(100, 150);
|
||||||
|
|
@ -56,6 +56,11 @@ namespace Server.Mobiles
|
||||||
private static MonsterAbility[] _abilities = { MonsterAbilities.FireBreath };
|
private static MonsterAbility[] _abilities = { MonsterAbilities.FireBreath };
|
||||||
public override MonsterAbility[] GetMonsterAbilities() => _abilities;
|
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()
|
public override void GenerateLoot()
|
||||||
{
|
{
|
||||||
AddLoot(LootPack.Average);
|
AddLoot(LootPack.Average);
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ namespace Server.Mobiles
|
||||||
public Balron() : base(AIType.AI_Mage)
|
public Balron() : base(AIType.AI_Mage)
|
||||||
{
|
{
|
||||||
Name = NameList.RandomName("balron");
|
Name = NameList.RandomName("balron");
|
||||||
Body = 40;
|
Body = Utility.RandomList(1091, 1092, 1093, 1094); //40;
|
||||||
BaseSoundID = 357;
|
BaseSoundID = 357;
|
||||||
|
|
||||||
SetStr(986, 1185);
|
SetStr(986, 1185);
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ namespace Server.Mobiles
|
||||||
[Constructible]
|
[Constructible]
|
||||||
public AncientWyrm() : base(AIType.AI_Mage)
|
public AncientWyrm() : base(AIType.AI_Mage)
|
||||||
{
|
{
|
||||||
|
Name = NameList.RandomName("ancient wyvern");
|
||||||
Body = 46;
|
Body = 46;
|
||||||
BaseSoundID = 362;
|
BaseSoundID = 362;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue