#W# Dungeon: Added a New Player Dungeon with some weaker mobs for level 1.
This commit is contained in:
parent
11b620b0dc
commit
45ac268d7c
17 changed files with 3711 additions and 0 deletions
|
|
@ -0,0 +1,61 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
using Server.Misc;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class BlindRatmanArcher : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public BlindRatmanArcher() : base(AIType.AI_Archer)
|
||||
{
|
||||
Name = NameList.RandomName("ratman");
|
||||
Body = 0x8E;
|
||||
BaseSoundID = 437;
|
||||
|
||||
SetStr(106, 140);
|
||||
SetDex(61, 90);
|
||||
SetInt(116, 140);
|
||||
|
||||
SetHits(88, 108);
|
||||
|
||||
SetDamage(2, 8);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 40, 55);
|
||||
SetResistance(ResistanceType.Fire, 10, 20);
|
||||
SetResistance(ResistanceType.Cold, 10, 20);
|
||||
SetResistance(ResistanceType.Poison, 10, 20);
|
||||
SetResistance(ResistanceType.Energy, 10, 20);
|
||||
|
||||
SetSkill(SkillName.Anatomy, 30.2, 50.0);
|
||||
SetSkill(SkillName.Archery, 40.1, 50.0);
|
||||
SetSkill(SkillName.MagicResist, 65.1, 90.0);
|
||||
SetSkill(SkillName.Tactics, 30.1, 55.0);
|
||||
SetSkill(SkillName.Wrestling, 20.1, 40.0);
|
||||
|
||||
Fame = 1500;
|
||||
Karma = -1500;
|
||||
|
||||
|
||||
VirtualArmor = 56;
|
||||
|
||||
AddItem(new Bow());
|
||||
PackItem(new Arrow(Utility.RandomMinMax(50, 70)));
|
||||
}
|
||||
|
||||
public override string CorpseName => "a blind ratman archer corpse";
|
||||
public override InhumanSpeech SpeechType => InhumanSpeech.Ratman;
|
||||
|
||||
public override bool CanRummageCorpses => true;
|
||||
public override int Hides => 4;
|
||||
//public override HideType HideType => HideType.Spined;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Average);
|
||||
}
|
||||
}
|
||||
}
|
||||
54
Projects/UOContent/Mobiles/NewbieDungeon/CaveBear.cs
Normal file
54
Projects/UOContent/Mobiles/NewbieDungeon/CaveBear.cs
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Grizzlybear")]
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class CaveBear : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public CaveBear() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
{
|
||||
Body = 212;
|
||||
BaseSoundID = 0xA3;
|
||||
Hue = 0x08FD;
|
||||
|
||||
SetStr(50, 75);
|
||||
SetDex(51, 75);
|
||||
SetInt(16, 40);
|
||||
|
||||
SetHits(56, 73);
|
||||
SetMana(0);
|
||||
|
||||
SetDamage(3, 8);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 25, 35);
|
||||
SetResistance(ResistanceType.Cold, 15, 25);
|
||||
SetResistance(ResistanceType.Poison, 5, 10);
|
||||
SetResistance(ResistanceType.Energy, 5, 10);
|
||||
|
||||
SetSkill(SkillName.MagicResist, 25.1, 40.0);
|
||||
SetSkill(SkillName.Tactics, 50.1, 70.0);
|
||||
SetSkill(SkillName.Wrestling, 45.1, 70.0);
|
||||
|
||||
Fame = 1000;
|
||||
Karma = 0;
|
||||
|
||||
VirtualArmor = 24;
|
||||
|
||||
Tamable = true;
|
||||
ControlSlots = 1;
|
||||
MinTameSkill = 59.1;
|
||||
}
|
||||
|
||||
public override string CorpseName => "a cave bear corpse";
|
||||
public override string DefaultName => "a cave bear";
|
||||
|
||||
public override int Meat => 1;
|
||||
public override int Hides => 4;
|
||||
public override FoodType FavoriteFood => FoodType.Fish | FoodType.FruitsAndVeggies | FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Bear;
|
||||
}
|
||||
}
|
||||
57
Projects/UOContent/Mobiles/NewbieDungeon/CaveToad.cs
Normal file
57
Projects/UOContent/Mobiles/NewbieDungeon/CaveToad.cs
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Gianttoad")]
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class CaveToad : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public CaveToad() : base(AIType.AI_Melee)
|
||||
{
|
||||
Body = 80;
|
||||
BaseSoundID = 0x26B;
|
||||
Hue = 0x2A0;
|
||||
|
||||
SetStr(76, 100);
|
||||
SetDex(6, 25);
|
||||
SetInt(11, 20);
|
||||
|
||||
SetHits(26, 30);
|
||||
SetMana(0);
|
||||
|
||||
SetDamage(1, 6);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 20, 25);
|
||||
SetResistance(ResistanceType.Fire, 5, 10);
|
||||
SetResistance(ResistanceType.Energy, 5, 10);
|
||||
|
||||
SetSkill(SkillName.MagicResist, 15.1, 20.0);
|
||||
SetSkill(SkillName.Tactics, 20.1, 30.0);
|
||||
SetSkill(SkillName.Wrestling, 20.1, 40.0);
|
||||
|
||||
Fame = 250;
|
||||
Karma = 0;
|
||||
|
||||
VirtualArmor = 24;
|
||||
|
||||
Tamable = true;
|
||||
ControlSlots = 1;
|
||||
MinTameSkill = 29.1;
|
||||
}
|
||||
|
||||
public override string CorpseName => "a cave toad corpse";
|
||||
public override string DefaultName => "a cave toad";
|
||||
|
||||
public override int Hides => 3;
|
||||
//public override HideType HideType => HideType.Normal;
|
||||
public override FoodType FavoriteFood => FoodType.Fish | FoodType.Meat;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Poor);
|
||||
}
|
||||
}
|
||||
}
|
||||
84
Projects/UOContent/Mobiles/NewbieDungeon/CowardlyBrigaind.cs
Normal file
84
Projects/UOContent/Mobiles/NewbieDungeon/CowardlyBrigaind.cs
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class CowardlyBrigand : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public CowardlyBrigand() : base(AIType.AI_Melee)
|
||||
{
|
||||
SpeechHue = Utility.RandomDyedHue();
|
||||
Title = "the cowardly brigand";
|
||||
Hue = Race.Human.RandomSkinHue();
|
||||
|
||||
if (Female = Utility.RandomBool())
|
||||
{
|
||||
Body = 0x191;
|
||||
Name = NameList.RandomName("female");
|
||||
AddItem(new Skirt(Utility.RandomNeutralHue()));
|
||||
}
|
||||
else
|
||||
{
|
||||
Body = 0x190;
|
||||
Name = NameList.RandomName("male");
|
||||
AddItem(new ShortPants(Utility.RandomNeutralHue()));
|
||||
}
|
||||
|
||||
SetStr(56, 700);
|
||||
SetDex(31, 65);
|
||||
SetInt(61, 75);
|
||||
|
||||
SetDamage(6, 12);
|
||||
|
||||
SetSkill(SkillName.Fencing, 46.0, 67.5);
|
||||
SetSkill(SkillName.Macing, 45.0, 67.5);
|
||||
SetSkill(SkillName.MagicResist, 25.0, 47.5);
|
||||
SetSkill(SkillName.Swords, 45.0, 67.5);
|
||||
SetSkill(SkillName.Tactics, 45.0, 67.5);
|
||||
SetSkill(SkillName.Wrestling, 15.0, 37.5);
|
||||
|
||||
Fame = 500;
|
||||
Karma = -500;
|
||||
|
||||
AddItem(new Boots(Utility.RandomNeutralHue()));
|
||||
AddItem(new FancyShirt());
|
||||
AddItem(new Bandana());
|
||||
|
||||
AddItem(
|
||||
Utility.Random(7) switch
|
||||
{
|
||||
0 => new Longsword(),
|
||||
1 => new Cutlass(),
|
||||
2 => new Broadsword(),
|
||||
3 => new Axe(),
|
||||
4 => new Club(),
|
||||
5 => new Dagger(),
|
||||
_ => new Spear() // 6
|
||||
}
|
||||
);
|
||||
|
||||
Utility.AssignRandomHair(this);
|
||||
}
|
||||
|
||||
public override bool ClickTitle => false;
|
||||
|
||||
public override bool AlwaysMurderer => true;
|
||||
|
||||
public override void OnDeath(Container c)
|
||||
{
|
||||
base.OnDeath(c);
|
||||
|
||||
if (Utility.RandomDouble() < 0.9)
|
||||
{
|
||||
c.DropItem(new SeveredHumanEars());
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Meager);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class CrackedEarthElemental : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public CrackedEarthElemental() : base(AIType.AI_Melee)
|
||||
{
|
||||
Body = 14;
|
||||
BaseSoundID = 268;
|
||||
|
||||
SetStr(75, 100);
|
||||
SetDex(66, 85);
|
||||
SetInt(71, 92);
|
||||
|
||||
SetHits(56, 73);
|
||||
|
||||
SetDamage(9, 16);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 30, 35);
|
||||
SetResistance(ResistanceType.Fire, 10, 20);
|
||||
SetResistance(ResistanceType.Cold, 10, 20);
|
||||
SetResistance(ResistanceType.Poison, 15, 25);
|
||||
SetResistance(ResistanceType.Energy, 15, 25);
|
||||
|
||||
SetSkill(SkillName.MagicResist, 50.1, 95.0);
|
||||
SetSkill(SkillName.Tactics, 50.1, 80.0);
|
||||
SetSkill(SkillName.Wrestling, 40.1, 80.0);
|
||||
|
||||
Fame = 1500;
|
||||
Karma = -1500;
|
||||
|
||||
VirtualArmor = 34;
|
||||
|
||||
PackItem(new FertileDirt(Utility.RandomMinMax(1, 4)));
|
||||
PackItem(new MandrakeRoot());
|
||||
|
||||
PackItem(new IronOre(2)
|
||||
{
|
||||
ItemID = 0x19B7
|
||||
});
|
||||
}
|
||||
|
||||
public override string CorpseName => "an cracked earth elemental corpse";
|
||||
public override string DefaultName => "an cracked earth elemental";
|
||||
|
||||
public override bool BleedImmune => true;
|
||||
public override int TreasureMapLevel => 1;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Poor);
|
||||
AddLoot(LootPack.Meager);
|
||||
AddLoot(LootPack.Gems);
|
||||
}
|
||||
}
|
||||
}
|
||||
66
Projects/UOContent/Mobiles/NewbieDungeon/DustyBoneMagi.cs
Normal file
66
Projects/UOContent/Mobiles/NewbieDungeon/DustyBoneMagi.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.BoneMage")]
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class DustyBoneMagi : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public DustyBoneMagi() : base(AIType.AI_Mage)
|
||||
{
|
||||
Body = 148;
|
||||
BaseSoundID = 451;
|
||||
|
||||
SetStr(46, 70);
|
||||
SetDex(36, 55);
|
||||
SetInt(80, 110);
|
||||
|
||||
SetHits(46, 60);
|
||||
|
||||
SetDamage(3, 7);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 35, 40);
|
||||
SetResistance(ResistanceType.Fire, 20, 30);
|
||||
SetResistance(ResistanceType.Cold, 50, 60);
|
||||
SetResistance(ResistanceType.Poison, 20, 30);
|
||||
SetResistance(ResistanceType.Energy, 30, 40);
|
||||
|
||||
SetSkill(SkillName.EvalInt, 30.1, 40.0);
|
||||
SetSkill(SkillName.Magery, 40.1, 60.0);
|
||||
SetSkill(SkillName.MagicResist, 55.1, 70.0);
|
||||
SetSkill(SkillName.Tactics, 45.1, 60.0);
|
||||
SetSkill(SkillName.Wrestling, 45.1, 55.0);
|
||||
SetSkill(SkillName.Necromancy, 49, 59.1);
|
||||
SetSkill(SkillName.SpiritSpeak, 40.0, 59.0);
|
||||
|
||||
Fame = 1200;
|
||||
Karma = -1200;
|
||||
|
||||
VirtualArmor = 38;
|
||||
|
||||
PackReg(3);
|
||||
PackNecroReg(3, 10);
|
||||
PackItem(new Bone());
|
||||
}
|
||||
|
||||
public override string CorpseName => "a dusty skeletal corpse";
|
||||
public override string DefaultName => "a dusty bone mage";
|
||||
|
||||
public override bool BleedImmune => true;
|
||||
|
||||
public override OppositionGroup OppositionGroup => OppositionGroup.FeyAndUndead;
|
||||
|
||||
public override Poison PoisonImmune => Poison.Regular;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Meager);
|
||||
AddLoot(LootPack.LowScrolls);
|
||||
AddLoot(LootPack.Potions);
|
||||
}
|
||||
}
|
||||
}
|
||||
102
Projects/UOContent/Mobiles/NewbieDungeon/FeebleOrc.cs
Normal file
102
Projects/UOContent/Mobiles/NewbieDungeon/FeebleOrc.cs
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
using Server.Misc;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class FeebleOrc : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public FeebleOrc() : base(AIType.AI_Melee)
|
||||
{
|
||||
Name = NameList.RandomName("orc");
|
||||
Body = 17;
|
||||
BaseSoundID = 0x45A;
|
||||
|
||||
SetStr(66, 90);
|
||||
SetDex(51, 75);
|
||||
SetInt(36, 60);
|
||||
|
||||
SetHits(38, 52);
|
||||
|
||||
SetDamage(3, 6);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 25, 30);
|
||||
SetResistance(ResistanceType.Fire, 20, 30);
|
||||
SetResistance(ResistanceType.Cold, 10, 20);
|
||||
SetResistance(ResistanceType.Poison, 10, 20);
|
||||
SetResistance(ResistanceType.Energy, 20, 30);
|
||||
|
||||
SetSkill(SkillName.MagicResist, 50.1, 75.0);
|
||||
SetSkill(SkillName.Tactics, 45.1, 70.0);
|
||||
SetSkill(SkillName.Wrestling, 40.1, 60.0);
|
||||
|
||||
Fame = 700;
|
||||
Karma = -700;
|
||||
|
||||
VirtualArmor = 28;
|
||||
|
||||
PackItem(
|
||||
Utility.Random(20) switch
|
||||
{
|
||||
0 => new Scimitar(),
|
||||
1 => new Katana(),
|
||||
2 => new WarMace(),
|
||||
3 => new WarHammer(),
|
||||
4 => new Kryss(),
|
||||
5 => new Pitchfork(),
|
||||
_ => null // 6-19
|
||||
}
|
||||
);
|
||||
|
||||
PackItem(new ThighBoots());
|
||||
|
||||
PackItem(
|
||||
Utility.Random(3) switch
|
||||
{
|
||||
0 => new Ribs(),
|
||||
1 => new Shaft(),
|
||||
_ => new Candle() // 2
|
||||
}
|
||||
);
|
||||
|
||||
if (Utility.RandomDouble() < 0.2)
|
||||
{
|
||||
PackItem(new BolaBall());
|
||||
}
|
||||
}
|
||||
|
||||
public override string CorpseName => "a feeble orcish corpse";
|
||||
public override InhumanSpeech SpeechType => InhumanSpeech.Orc;
|
||||
|
||||
public override bool CanRummageCorpses => true;
|
||||
public override int TreasureMapLevel => 1;
|
||||
public override int Meat => 1;
|
||||
|
||||
public override OppositionGroup OppositionGroup => OppositionGroup.SavagesAndOrcs;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Meager);
|
||||
}
|
||||
|
||||
public override bool IsEnemy(Mobile m) =>
|
||||
(!m.Player || m.FindItemOnLayer<OrcishKinMask>(Layer.Helm) == null) && base.IsEnemy(m);
|
||||
|
||||
public override void AggressiveAction(Mobile aggressor, bool criminal)
|
||||
{
|
||||
base.AggressiveAction(aggressor, criminal);
|
||||
|
||||
if (aggressor.FindItemOnLayer(Layer.Helm) is OrcishKinMask item)
|
||||
{
|
||||
AOS.Damage(aggressor, 50, 0, 100, 0, 0, 0);
|
||||
item.Delete();
|
||||
aggressor.FixedParticles(0x36BD, 20, 10, 5044, EffectLayer.Head);
|
||||
aggressor.PlaySound(0x307);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Projects/UOContent/Mobiles/NewbieDungeon/FledglingImp.cs
Normal file
64
Projects/UOContent/Mobiles/NewbieDungeon/FledglingImp.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class FledglingImp : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public FledglingImp() : base(AIType.AI_Mage)
|
||||
{
|
||||
Body = 74;
|
||||
BaseSoundID = 422;
|
||||
|
||||
SetStr(71, 85);
|
||||
SetDex(41, 60);
|
||||
SetInt(66, 85);
|
||||
|
||||
SetHits(55, 70);
|
||||
|
||||
SetDamage(6, 9);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 0);
|
||||
SetDamageType(ResistanceType.Fire, 50);
|
||||
SetDamageType(ResistanceType.Poison, 50);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 25, 35);
|
||||
SetResistance(ResistanceType.Fire, 40, 50);
|
||||
SetResistance(ResistanceType.Cold, 20, 30);
|
||||
SetResistance(ResistanceType.Poison, 30, 40);
|
||||
SetResistance(ResistanceType.Energy, 30, 40);
|
||||
|
||||
SetSkill(SkillName.EvalInt, 20.1, 30.0);
|
||||
SetSkill(SkillName.Magery, 50.1, 70.0);
|
||||
SetSkill(SkillName.MagicResist, 20.1, 30.0);
|
||||
SetSkill(SkillName.Tactics, 42.1, 50.0);
|
||||
SetSkill(SkillName.Wrestling, 40.1, 44.0);
|
||||
|
||||
Fame = 1200;
|
||||
Karma = -1200;
|
||||
|
||||
VirtualArmor = 30;
|
||||
|
||||
Tamable = true;
|
||||
ControlSlots = 2;
|
||||
MinTameSkill = 65.1;
|
||||
}
|
||||
|
||||
public override string CorpseName => "a fledgling imp corpse";
|
||||
public override string DefaultName => "a fledgling imp";
|
||||
|
||||
public override int Meat => 1;
|
||||
public override int Hides => 3;
|
||||
public override HideType HideType => HideType.Spined;
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Daemon;
|
||||
public override bool CanFly => true;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Meager);
|
||||
AddLoot(LootPack.MedScrolls, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
83
Projects/UOContent/Mobiles/NewbieDungeon/FrailSkeleton.cs
Normal file
83
Projects/UOContent/Mobiles/NewbieDungeon/FrailSkeleton.cs
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class FrailSkeleton : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public FrailSkeleton() : base(AIType.AI_Melee)
|
||||
{
|
||||
Body = Utility.RandomList(50, 56);
|
||||
BaseSoundID = 0x48D;
|
||||
|
||||
SetStr(36, 50);
|
||||
SetDex(36, 55);
|
||||
SetInt(16, 40);
|
||||
|
||||
SetHits(34, 48);
|
||||
|
||||
SetDamage(3, 7);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 15, 20);
|
||||
SetResistance(ResistanceType.Fire, 5, 10);
|
||||
SetResistance(ResistanceType.Cold, 25, 40);
|
||||
SetResistance(ResistanceType.Poison, 25, 35);
|
||||
SetResistance(ResistanceType.Energy, 5, 15);
|
||||
|
||||
SetSkill(SkillName.MagicResist, 45.1, 60.0);
|
||||
SetSkill(SkillName.Tactics, 45.1, 60.0);
|
||||
SetSkill(SkillName.Wrestling, 45.1, 55.0);
|
||||
|
||||
Fame = 250;
|
||||
Karma = -250;
|
||||
|
||||
VirtualArmor = 16;
|
||||
|
||||
switch (Utility.Random(5))
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
PackItem(new BoneArms());
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
PackItem(new BoneChest());
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
PackItem(new BoneGloves());
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
PackItem(new BoneLegs());
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
PackItem(new BoneHelm());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override string CorpseName => "a frail skeletal corpse";
|
||||
public override string DefaultName => "a frail skeleton";
|
||||
|
||||
public override bool BleedImmune => true;
|
||||
public override Poison PoisonImmune => Poison.Lesser;
|
||||
|
||||
public override OppositionGroup OppositionGroup => OppositionGroup.FeyAndUndead;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Poor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class LesserGiantSpider : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public LesserGiantSpider() : base(AIType.AI_Melee)
|
||||
{
|
||||
Body = 28;
|
||||
BaseSoundID = 0x388;
|
||||
Hue = 0x2F0;
|
||||
|
||||
SetStr(46, 60);
|
||||
SetDex(36, 55);
|
||||
SetInt(36, 60);
|
||||
|
||||
SetHits(36, 50);
|
||||
SetMana(0);
|
||||
|
||||
SetDamage(5, 11);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 15, 20);
|
||||
SetResistance(ResistanceType.Poison, 25, 35);
|
||||
|
||||
SetSkill(SkillName.Poisoning, 20.1, 50.0);
|
||||
SetSkill(SkillName.MagicResist, 25.1, 40.0);
|
||||
SetSkill(SkillName.Tactics, 35.1, 50.0);
|
||||
SetSkill(SkillName.Wrestling, 30.1, 45.0);
|
||||
|
||||
Fame = 200;
|
||||
Karma = -200;
|
||||
|
||||
VirtualArmor = 16;
|
||||
|
||||
Tamable = true;
|
||||
ControlSlots = 1;
|
||||
MinTameSkill = 49.1;
|
||||
|
||||
PackItem(new SpidersSilk(5));
|
||||
}
|
||||
|
||||
public override string CorpseName => "a lesser giant spider corpse";
|
||||
public override string DefaultName => "a lesser giant spider";
|
||||
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Arachnid;
|
||||
public override Poison PoisonImmune => Poison.Lesser;
|
||||
public override Poison HitPoison => Poison.Lesser;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Poor);
|
||||
}
|
||||
}
|
||||
}
|
||||
64
Projects/UOContent/Mobiles/NewbieDungeon/LesserHarpy.cs
Normal file
64
Projects/UOContent/Mobiles/NewbieDungeon/LesserHarpy.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class LesserHarpy : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public LesserHarpy() : base(AIType.AI_Melee)
|
||||
{
|
||||
Body = 30;
|
||||
BaseSoundID = 402;
|
||||
|
||||
SetStr(96, 120);
|
||||
SetDex(86, 110);
|
||||
SetInt(51, 75);
|
||||
|
||||
SetHits(38, 42);
|
||||
|
||||
SetDamage(3, 5);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 25, 30);
|
||||
SetResistance(ResistanceType.Fire, 10, 20);
|
||||
SetResistance(ResistanceType.Cold, 10, 30);
|
||||
SetResistance(ResistanceType.Poison, 20, 30);
|
||||
SetResistance(ResistanceType.Energy, 10, 20);
|
||||
|
||||
SetSkill(SkillName.MagicResist, 50.1, 65.0);
|
||||
SetSkill(SkillName.Tactics, 40.1, 70.0);
|
||||
SetSkill(SkillName.Wrestling, 30.1, 60.0);
|
||||
|
||||
Fame = 500;
|
||||
Karma = -500;
|
||||
|
||||
VirtualArmor = 28;
|
||||
}
|
||||
|
||||
public override string CorpseName => "a lesser harpy corpse";
|
||||
public override string DefaultName => "a lesser harpy";
|
||||
|
||||
public override bool CanRummageCorpses => true;
|
||||
public override int Meat => 2;
|
||||
public override MeatType MeatType => MeatType.Bird;
|
||||
public override int Feathers => 20;
|
||||
public override bool CanFly => true;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Meager, 2);
|
||||
}
|
||||
|
||||
public override int GetAttackSound() => 916;
|
||||
|
||||
public override int GetAngerSound() => 916;
|
||||
|
||||
public override int GetDeathSound() => 917;
|
||||
|
||||
public override int GetHurtSound() => 919;
|
||||
|
||||
public override int GetIdleSound() => 918;
|
||||
}
|
||||
}
|
||||
55
Projects/UOContent/Mobiles/NewbieDungeon/MangyRatman.cs
Normal file
55
Projects/UOContent/Mobiles/NewbieDungeon/MangyRatman.cs
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Misc;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class MangyRatman : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public MangyRatman() : base(AIType.AI_Melee)
|
||||
{
|
||||
Name = NameList.RandomName("ratman");
|
||||
Body = 42;
|
||||
BaseSoundID = 437;
|
||||
|
||||
SetStr(56, 80);
|
||||
SetDex(51, 70);
|
||||
SetInt(36, 60);
|
||||
|
||||
SetHits(58, 72);
|
||||
|
||||
SetDamage(4, 5);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 25, 30);
|
||||
SetResistance(ResistanceType.Fire, 10, 20);
|
||||
SetResistance(ResistanceType.Cold, 10, 20);
|
||||
SetResistance(ResistanceType.Poison, 10, 20);
|
||||
SetResistance(ResistanceType.Energy, 10, 20);
|
||||
|
||||
SetSkill(SkillName.MagicResist, 35.1, 60.0);
|
||||
SetSkill(SkillName.Tactics, 30.1, 55.0);
|
||||
SetSkill(SkillName.Wrestling, 30.1, 55.0);
|
||||
|
||||
Fame = 700;
|
||||
Karma = -700;
|
||||
|
||||
VirtualArmor = 28;
|
||||
}
|
||||
|
||||
public override string CorpseName => "a mangy ratman's corpse";
|
||||
public override InhumanSpeech SpeechType => InhumanSpeech.Ratman;
|
||||
|
||||
public override bool CanRummageCorpses => true;
|
||||
public override int Hides => 4;
|
||||
//public override HideType HideType => HideType.Spined;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Meager);
|
||||
// TODO: weapon, misc
|
||||
}
|
||||
}
|
||||
}
|
||||
65
Projects/UOContent/Mobiles/NewbieDungeon/SicklyRatmanMage.cs
Normal file
65
Projects/UOContent/Mobiles/NewbieDungeon/SicklyRatmanMage.cs
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Misc;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class SicklyRatmanMage : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public SicklyRatmanMage() : base(AIType.AI_Mage)
|
||||
{
|
||||
Name = NameList.RandomName("ratman");
|
||||
Body = 0x8F;
|
||||
BaseSoundID = 437;
|
||||
|
||||
SetStr(906, 130);
|
||||
SetDex(50, 70);
|
||||
SetInt(100, 130);
|
||||
|
||||
SetHits(88, 108);
|
||||
|
||||
SetDamage(4, 11);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 40, 45);
|
||||
SetResistance(ResistanceType.Fire, 10, 20);
|
||||
SetResistance(ResistanceType.Cold, 10, 20);
|
||||
SetResistance(ResistanceType.Poison, 10, 20);
|
||||
SetResistance(ResistanceType.Energy, 10, 20);
|
||||
|
||||
SetSkill(SkillName.EvalInt, 30.1, 60.0);
|
||||
SetSkill(SkillName.Magery, 40.1, 65.0);
|
||||
SetSkill(SkillName.MagicResist, 65.1, 90.0);
|
||||
SetSkill(SkillName.Tactics, 30.1, 55.0);
|
||||
SetSkill(SkillName.Wrestling, 30.1, 55.0);
|
||||
|
||||
Fame = 2500;
|
||||
Karma = -2500;
|
||||
|
||||
VirtualArmor = 44;
|
||||
|
||||
PackReg(6);
|
||||
|
||||
if (Utility.RandomDouble() < 0.02)
|
||||
{
|
||||
PackStatue();
|
||||
}
|
||||
}
|
||||
|
||||
public override string CorpseName => "a sickly ratman mage corpse";
|
||||
public override InhumanSpeech SpeechType => InhumanSpeech.Ratman;
|
||||
|
||||
public override bool CanRummageCorpses => true;
|
||||
public override int Meat => 1;
|
||||
public override int Hides => 4;
|
||||
//public override HideType HideType => HideType.Spined;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.Average);
|
||||
AddLoot(LootPack.LowScrolls);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue