Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
83
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/ArcaneLich.cs
Normal file
83
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/ArcaneLich.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an arcane liche's corpse" )]
|
||||
public class ArcaneLich : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public ArcaneLich() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an arcane lich";
|
||||
Body = 79;
|
||||
BaseSoundID = 412;
|
||||
Hue = 2951;
|
||||
|
||||
SetStr( 416, 505 );
|
||||
SetDex( 146, 155 );
|
||||
SetInt( 682, 745 );
|
||||
|
||||
SetHits( 350, 403 );
|
||||
|
||||
SetDamage( 18, 24 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 10 );
|
||||
SetDamageType( ResistanceType.Cold, 60 );
|
||||
SetDamageType( ResistanceType.Energy, 80 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 40, 50 );
|
||||
SetResistance( ResistanceType.Fire, 80, 100 );
|
||||
SetResistance( ResistanceType.Cold, 50, 60 );
|
||||
SetResistance( ResistanceType.Poison, 50, 60 );
|
||||
SetResistance( ResistanceType.Energy, 80, 100 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 120.1, 140.0 );
|
||||
SetSkill( SkillName.Magery, 120.1, 140.0 );
|
||||
SetSkill( SkillName.Focus, 120.1, 140.0 );
|
||||
SetSkill( SkillName.MagicResist, 150.5, 200.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 80.0 );
|
||||
SetSkill( SkillName.Wrestling, 60.1, 80.0 );
|
||||
|
||||
Fame = 18000;
|
||||
Karma = -18000;
|
||||
|
||||
VirtualArmor = 60;
|
||||
PackItem( new GnarledStaff() );
|
||||
PackNecroReg( 12, 40 );
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich );
|
||||
AddLoot( LootPack.MedScrolls, 2 );
|
||||
}
|
||||
|
||||
public override bool CanRummageCorpses{ get{ return true; } }
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
public override int TreasureMapLevel{ get{ return 4; } }
|
||||
|
||||
public ArcaneLich( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
74
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Atropal.cs
Normal file
74
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Atropal.cs
Normal file
@@ -0,0 +1,74 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an atropal corpse" )]
|
||||
public class Atropal : BaseCreature
|
||||
{
|
||||
public override WeaponAbility GetWeaponAbility()
|
||||
{
|
||||
return WeaponAbility.MortalStrike;
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Atropal() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an atropal";
|
||||
Body = 3;
|
||||
Hue = 35;
|
||||
BaseSoundID = 461;
|
||||
|
||||
SetStr( 126, 150 );
|
||||
SetDex( 86, 120 );
|
||||
SetInt( 106, 120 );
|
||||
|
||||
SetHits( 176, 180 );
|
||||
|
||||
SetDamage( 14, 16 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 20 );
|
||||
SetDamageType( ResistanceType.Cold, 60 );
|
||||
SetDamageType( ResistanceType.Poison, 20 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 70, 80 );
|
||||
SetResistance( ResistanceType.Fire, 25, 30 );
|
||||
SetResistance( ResistanceType.Cold, 70, 80 );
|
||||
SetResistance( ResistanceType.Poison, 30, 40 );
|
||||
SetResistance( ResistanceType.Energy, 70, 80 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 80.1, 98.0 );
|
||||
SetSkill( SkillName.Tactics, 85.1, 90.0 );
|
||||
SetSkill( SkillName.Wrestling, 80.1, 90.0 );
|
||||
|
||||
Fame = 10500;
|
||||
Karma = -10500;
|
||||
|
||||
VirtualArmor = 80;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public Atropal( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an atropal scion corpse" )]
|
||||
public class AtropalScion : BaseCreature
|
||||
{
|
||||
public override WeaponAbility GetWeaponAbility()
|
||||
{
|
||||
return WeaponAbility.MortalStrike;
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public AtropalScion() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an atropal scion";
|
||||
Hue = 35;
|
||||
BaseSoundID = 959;
|
||||
|
||||
switch ( Utility.Random( 2 ) )
|
||||
{
|
||||
case 0: // ghoul
|
||||
Body = 153;
|
||||
BaseSoundID = 471;
|
||||
break;
|
||||
case 1: // kaze kemono
|
||||
Body = 196;
|
||||
BaseSoundID = 0x39D;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
SetStr( 126, 150 );
|
||||
SetDex( 126, 140 );
|
||||
SetInt( 406, 420 );
|
||||
|
||||
SetHits( 276, 280 );
|
||||
|
||||
SetDamage( 14, 16 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 20 );
|
||||
SetDamageType( ResistanceType.Cold, 60 );
|
||||
SetDamageType( ResistanceType.Poison, 20 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 70, 80 );
|
||||
SetResistance( ResistanceType.Fire, 25, 30 );
|
||||
SetResistance( ResistanceType.Cold, 180, 200 );
|
||||
SetResistance( ResistanceType.Poison, 30, 40 );
|
||||
SetResistance( ResistanceType.Energy, 180, 200 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 120.1, 148.0 );
|
||||
SetSkill( SkillName.Tactics, 145.1, 160.0 );
|
||||
SetSkill( SkillName.Wrestling, 80.1, 90.0 );
|
||||
|
||||
Fame = 28500;
|
||||
Karma = -28500;
|
||||
|
||||
VirtualArmor = 100;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public AtropalScion( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
82
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Baelnorn.cs
Normal file
82
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Baelnorn.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a baelnorn's corpse" )]
|
||||
public class Baelnorn : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Baelnorn() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a baelnorn";
|
||||
Body = 772;
|
||||
BaseSoundID = 0x3E9;
|
||||
Hue = 1309;
|
||||
|
||||
SetStr( 161, 180 );
|
||||
SetDex( 146, 165 );
|
||||
SetInt( 276, 305 );
|
||||
|
||||
SetHits( 102, 118 );
|
||||
|
||||
SetDamage( 26, 28 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 10 );
|
||||
SetDamageType( ResistanceType.Cold, 40 );
|
||||
SetDamageType( ResistanceType.Energy, 50 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 40, 60 );
|
||||
SetResistance( ResistanceType.Fire, 20, 30 );
|
||||
SetResistance( ResistanceType.Cold, 50, 60 );
|
||||
SetResistance( ResistanceType.Poison, 55, 65 );
|
||||
SetResistance( ResistanceType.Energy, 40, 50 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 100.0 );
|
||||
SetSkill( SkillName.Magery, 70.1, 80.0 );
|
||||
SetSkill( SkillName.Meditation, 85.1, 95.0 );
|
||||
SetSkill( SkillName.MagicResist, 80.1, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 70.1, 90.0 );
|
||||
|
||||
Fame = 8000;
|
||||
Karma = -8000;
|
||||
|
||||
VirtualArmor = 50;
|
||||
PackItem( new GnarledStaff() );
|
||||
PackNecroReg( 17, 24 );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.MedScrolls, 2 );
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
public override bool CanRummageCorpses{ get{ return true; } }
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
public override int TreasureMapLevel{ get{ return 3; } }
|
||||
|
||||
public Baelnorn( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
81
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Beguiled.cs
Normal file
81
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Beguiled.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.ContextMenus;
|
||||
using Server.Misc;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Beguiled : BaseCreature
|
||||
{
|
||||
public override bool ClickTitle{ get{ return false; } }
|
||||
|
||||
[Constructable]
|
||||
public Beguiled() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
SpeechHue = Utility.RandomDyedHue();
|
||||
Name = "the beguiled";
|
||||
Hue = 2207;
|
||||
Body = 400;
|
||||
BaseSoundID = 471;
|
||||
|
||||
SetStr( 86, 100 );
|
||||
SetDex( 81, 95 );
|
||||
SetInt( 61, 75 );
|
||||
|
||||
SetDamage( 10, 23 );
|
||||
|
||||
SetSkill( SkillName.Fencing, 66.0, 97.5 );
|
||||
SetSkill( SkillName.Macing, 65.0, 87.5 );
|
||||
SetSkill( SkillName.MagicResist, 25.0, 47.5 );
|
||||
SetSkill( SkillName.Swords, 65.0, 87.5 );
|
||||
SetSkill( SkillName.Tactics, 65.0, 87.5 );
|
||||
SetSkill( SkillName.Wrestling, 15.0, 37.5 );
|
||||
|
||||
Fame = 1000;
|
||||
Karma = -1000;
|
||||
|
||||
AddItem( new Boots( Utility.RandomNeutralHue() ) );
|
||||
AddItem( new FancyShirt());
|
||||
AddItem( new LongPants());
|
||||
AddItem( new Cap());
|
||||
|
||||
switch ( Utility.Random( 5 ))
|
||||
{
|
||||
case 0: AddItem( new Longsword() ); break;
|
||||
case 1: AddItem( new Axe() ); break;
|
||||
case 2: AddItem( new Broadsword() ); break;
|
||||
case 3: AddItem( new Dagger() ); break;
|
||||
case 4: AddItem( new Bokuto() ); break;
|
||||
}
|
||||
|
||||
Utility.AssignRandomHair( this );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
}
|
||||
|
||||
public override bool AlwaysMurderer{ get{ return true; } }
|
||||
|
||||
public Beguiled( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a soggy corpse" )]
|
||||
public class DrownedDead : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public DrownedDead() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a drowned dead";
|
||||
Body = 3;
|
||||
BaseSoundID = 471;
|
||||
Hue = 2951;
|
||||
|
||||
SetStr( 86, 90 );
|
||||
SetDex( 81, 90 );
|
||||
SetInt( 46, 50 );
|
||||
|
||||
SetHits( 88, 92 );
|
||||
|
||||
SetDamage( 11, 13 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 65, 80 );
|
||||
SetResistance( ResistanceType.Cold, 80, 90 );
|
||||
SetResistance( ResistanceType.Poison, 25, 40 );
|
||||
SetResistance( ResistanceType.Fire, 25, 40 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 65.1, 70.0 );
|
||||
SetSkill( SkillName.Tactics, 75.1, 80.0 );
|
||||
SetSkill( SkillName.Wrestling, 65.1, 70.0 );
|
||||
|
||||
Fame = 2000;
|
||||
Karma = -2000;
|
||||
|
||||
VirtualArmor = 18;
|
||||
|
||||
switch ( Utility.Random( 10 ))
|
||||
{
|
||||
case 0: PackItem( new LeftArm() ); break;
|
||||
case 1: PackItem( new RightArm() ); break;
|
||||
case 2: PackItem( new Torso() ); break;
|
||||
case 3: PackItem( new Bone() ); break;
|
||||
case 4: PackItem( new RibCage() ); break;
|
||||
case 5: PackItem( new RibCage() ); break;
|
||||
case 6: PackItem( new BonePile() ); break;
|
||||
case 7: PackItem( new BonePile() ); break;
|
||||
case 8: PackItem( new BonePile() ); break;
|
||||
case 9: PackItem( new BonePile() ); break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
|
||||
public DrownedDead( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a festering eel corpse" )]
|
||||
public class FesteringEel : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public FesteringEel() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a festering eel";
|
||||
Body = 52;
|
||||
Hue = 1745;
|
||||
BaseSoundID = 0xDB;
|
||||
|
||||
SetStr( 22, 34 );
|
||||
SetDex( 16, 25 );
|
||||
SetInt( 6, 10 );
|
||||
|
||||
SetHits( 25, 29 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 2, 5 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 15, 20 );
|
||||
SetResistance( ResistanceType.Poison, 50, 60 );
|
||||
|
||||
SetSkill( SkillName.Poisoning, 100.1, 120.0 );
|
||||
SetSkill( SkillName.MagicResist, 15.1, 20.0 );
|
||||
SetSkill( SkillName.Tactics, 19.3, 34.0 );
|
||||
SetSkill( SkillName.Wrestling, 19.3, 34.0 );
|
||||
|
||||
Fame = 300;
|
||||
Karma = -300;
|
||||
|
||||
VirtualArmor = 16;
|
||||
|
||||
Tamable = true;
|
||||
ControlSlots = 1;
|
||||
MinTameSkill = 59.1;
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Lethal; } }
|
||||
|
||||
public override bool DeathAdderCharmable{ get{ return true; } }
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override FoodType FavoriteFood{ get{ return FoodType.Eggs; } }
|
||||
|
||||
public FesteringEel(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a festering mutant corpse" )]
|
||||
public class FesteringMutant : BaseCreature
|
||||
{
|
||||
public override WeaponAbility GetWeaponAbility()
|
||||
{
|
||||
return WeaponAbility.BleedAttack;
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public FesteringMutant() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a festering mutant";
|
||||
Body = 304;
|
||||
BaseSoundID = 0x451;
|
||||
Hue = 1505;
|
||||
|
||||
SetStr( 176, 200 );
|
||||
SetDex( 121, 125 );
|
||||
SetInt( 66, 80 );
|
||||
|
||||
SetHits( 136, 140 );
|
||||
|
||||
SetDamage( 20, 24 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 50, 60 );
|
||||
SetResistance( ResistanceType.Fire, 25, 35 );
|
||||
SetResistance( ResistanceType.Cold, 15, 25 );
|
||||
SetResistance( ResistanceType.Poison, 60, 70 );
|
||||
SetResistance( ResistanceType.Energy, 30, 40 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 50.1, 75.0 );
|
||||
SetSkill( SkillName.Tactics, 75.1, 90.0 );
|
||||
SetSkill( SkillName.Wrestling, 70.1, 80.0 );
|
||||
|
||||
Fame = 7000;
|
||||
Karma = -7800;
|
||||
|
||||
VirtualArmor = 34;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override int TreasureMapLevel{ get{ return 1; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Lethal; } }
|
||||
|
||||
public FesteringMutant( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a frankenstein corpse" )]
|
||||
public class Frankenstein : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Frankenstein() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a frankenstein";
|
||||
Body = 1;
|
||||
BaseSoundID = 461;
|
||||
Hue = 2953;
|
||||
|
||||
SetStr( 128, 140 );
|
||||
SetDex( 111, 120 );
|
||||
SetInt( 46, 60 );
|
||||
|
||||
SetHits( 148, 162 );
|
||||
|
||||
SetDamage( 25, 37 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 85, 90 );
|
||||
SetResistance( ResistanceType.Cold, 80, 90 );
|
||||
SetResistance( ResistanceType.Poison, 85, 90 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 85.1, 90.0 );
|
||||
SetSkill( SkillName.Tactics, 75.1, 80.0 );
|
||||
SetSkill( SkillName.Wrestling, 95.1, 100.0 );
|
||||
|
||||
Fame = 8000;
|
||||
Karma = -8000;
|
||||
|
||||
VirtualArmor = 18;
|
||||
|
||||
switch ( Utility.Random( 10 ))
|
||||
{
|
||||
case 0: PackItem( new LeftArm() ); break;
|
||||
case 1: PackItem( new RightArm() ); break;
|
||||
case 2: PackItem( new Torso() ); break;
|
||||
case 3: PackItem( new Bone() ); break;
|
||||
case 4: PackItem( new RibCage() ); break;
|
||||
case 5: PackItem( new RibCage() ); break;
|
||||
case 6: PackItem( new BonePile() ); break;
|
||||
case 7: PackItem( new BonePile() ); break;
|
||||
case 8: PackItem( new BonePile() ); break;
|
||||
case 9: PackItem( new BonePile() ); break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
|
||||
public Frankenstein( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
86
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Ghast.cs
Normal file
86
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Ghast.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a rotting corpse" )]
|
||||
public class Ghast : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Ghast() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a ghast";
|
||||
Body = 3;
|
||||
BaseSoundID = 471;
|
||||
Hue = 39;
|
||||
|
||||
SetStr( 86, 100 );
|
||||
SetDex( 42, 60 );
|
||||
SetInt( 26, 40 );
|
||||
|
||||
SetHits( 78, 94 );
|
||||
|
||||
SetDamage( 16, 28 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 85, 100 );
|
||||
SetResistance( ResistanceType.Cold, 60, 80 );
|
||||
SetResistance( ResistanceType.Poison, 12, 22 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 15.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 48.1, 60.0 );
|
||||
SetSkill( SkillName.Wrestling, 68.1, 80.0 );
|
||||
|
||||
Fame = 1400;
|
||||
Karma = -1400;
|
||||
|
||||
VirtualArmor = 28;
|
||||
|
||||
switch ( Utility.Random( 10 ))
|
||||
{
|
||||
case 0: PackItem( new LeftArm() ); break;
|
||||
case 1: PackItem( new RightArm() ); break;
|
||||
case 2: PackItem( new Torso() ); break;
|
||||
case 3: PackItem( new Bone() ); break;
|
||||
case 4: PackItem( new RibCage() ); break;
|
||||
case 5: PackItem( new RibCage() ); break;
|
||||
case 6: PackItem( new BonePile() ); break;
|
||||
case 7: PackItem( new BonePile() ); break;
|
||||
case 8: PackItem( new BonePile() ); break;
|
||||
case 9: PackItem( new BonePile() ); break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
|
||||
public Ghast( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
85
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Guilded.cs
Normal file
85
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Guilded.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.ContextMenus;
|
||||
using Server.Misc;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Guilded : BaseCreature
|
||||
{
|
||||
public override bool ClickTitle{ get{ return false; } }
|
||||
|
||||
[Constructable]
|
||||
public Guilded() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
SpeechHue = Utility.RandomDyedHue();
|
||||
Name = "the guilded";
|
||||
Hue = 1743;
|
||||
Body = 0x191;
|
||||
BaseSoundID = 471;
|
||||
|
||||
SetStr( 86, 100 );
|
||||
SetDex( 81, 95 );
|
||||
SetInt( 61, 75 );
|
||||
|
||||
SetDamage( 10, 23 );
|
||||
|
||||
SetSkill( SkillName.Fencing, 66.0, 97.5 );
|
||||
SetSkill( SkillName.Macing, 65.0, 87.5 );
|
||||
SetSkill( SkillName.MagicResist, 25.0, 47.5 );
|
||||
SetSkill( SkillName.Swords, 65.0, 87.5 );
|
||||
SetSkill( SkillName.Tactics, 65.0, 87.5 );
|
||||
SetSkill( SkillName.Wrestling, 15.0, 37.5 );
|
||||
|
||||
Fame = 1000;
|
||||
Karma = -1000;
|
||||
|
||||
AddItem( new Boots( Utility.RandomNeutralHue() ) );
|
||||
AddItem( new FancyShirt());
|
||||
AddItem( new Skirt());
|
||||
|
||||
switch ( Utility.Random( 7 ))
|
||||
{
|
||||
case 0: AddItem( new Longsword() );
|
||||
AddItem( new Buckler() ); break;
|
||||
case 1: AddItem( new Cutlass() );
|
||||
AddItem( new ChaosShield() ); break;
|
||||
case 2: AddItem( new Broadsword() );
|
||||
AddItem( new WoodenShield() ); break;
|
||||
case 3: AddItem( new Axe() ); break;
|
||||
case 4: AddItem( new Club() ); break;
|
||||
case 5: AddItem( new Dagger() ); break;
|
||||
case 6: AddItem( new Spear() ); break;
|
||||
}
|
||||
|
||||
Utility.AssignRandomHair( this );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
}
|
||||
|
||||
public override bool AlwaysMurderer{ get{ return true; } }
|
||||
|
||||
public Guilded( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize( GenericWriter writer )
|
||||
{
|
||||
base.Serialize( writer );
|
||||
|
||||
writer.Write( (int) 0 ); // version
|
||||
}
|
||||
|
||||
public override void Deserialize( GenericReader reader )
|
||||
{
|
||||
base.Deserialize( reader );
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a guilded corpse" )]
|
||||
public class GuildedDead : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public GuildedDead() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a guilded dead";
|
||||
Body = 3;
|
||||
BaseSoundID = 412;
|
||||
Hue = 1743;
|
||||
|
||||
SetStr( 96, 100 );
|
||||
SetDex( 91, 100 );
|
||||
SetInt( 86, 90 );
|
||||
|
||||
SetHits( 98, 102 );
|
||||
|
||||
SetDamage( 15, 17 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 65, 80 );
|
||||
SetResistance( ResistanceType.Cold, 60, 80 );
|
||||
SetResistance( ResistanceType.Poison, 25, 40 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 65.1, 70.0 );
|
||||
SetSkill( SkillName.Tactics, 75.1, 80.0 );
|
||||
SetSkill( SkillName.Wrestling, 65.1, 70.0 );
|
||||
|
||||
Fame = 3000;
|
||||
Karma = -3000;
|
||||
|
||||
VirtualArmor = 18;
|
||||
|
||||
switch ( Utility.Random( 10 ))
|
||||
{
|
||||
case 0: PackItem( new LeftArm() ); break;
|
||||
case 1: PackItem( new RightArm() ); break;
|
||||
case 2: PackItem( new Torso() ); break;
|
||||
case 3: PackItem( new Bone() ); break;
|
||||
case 4: PackItem( new RibCage() ); break;
|
||||
case 5: PackItem( new RibCage() ); break;
|
||||
case 6: PackItem( new BonePile() ); break;
|
||||
case 7: PackItem( new BonePile() ); break;
|
||||
case 8: PackItem( new BonePile() ); break;
|
||||
case 9: PackItem( new BonePile() ); break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
|
||||
public GuildedDead( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
126
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/IllSoul.cs
Normal file
126
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/IllSoul.cs
Normal file
@@ -0,0 +1,126 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an ill soul corpse" )]
|
||||
public class IllSoul : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public IllSoul() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 ) // TODO apellweaving AI
|
||||
{
|
||||
Name = "an ill soul";
|
||||
Body = 400;
|
||||
Hue = 685;
|
||||
BaseSoundID = 0x482;
|
||||
|
||||
AddItem( new Hatchet() );
|
||||
AddItem( new ThighBoots() );
|
||||
AddItem( new Doublet() );
|
||||
AddItem( new ChainLegs() );
|
||||
AddItem( new NorseHelm() );
|
||||
AddItem( new LeatherArms() );
|
||||
|
||||
SetStr( 126, 150 );
|
||||
SetDex( 96, 120 );
|
||||
SetInt( 151, 175 );
|
||||
|
||||
SetHits( 76, 90 );
|
||||
|
||||
SetDamage( 6, 12 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 30, 40 );
|
||||
SetResistance( ResistanceType.Fire, 25, 35 );
|
||||
SetResistance( ResistanceType.Cold, 35, 45 );
|
||||
SetResistance( ResistanceType.Poison, 5, 15 );
|
||||
SetResistance( ResistanceType.Energy, 15, 25 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 95.1, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 95.1, 100.0 );
|
||||
SetSkill( SkillName.Meditation, 95.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 102.5, 125.0 );
|
||||
SetSkill( SkillName.Tactics, 85.0, 100.5 );
|
||||
SetSkill( SkillName.Fencing, 85.0, 100.0 );
|
||||
|
||||
Fame = 4000;
|
||||
Karma = -4000;
|
||||
|
||||
VirtualArmor = 16;
|
||||
|
||||
if ( 0.7 > Utility.RandomDouble() )
|
||||
PackItem( new ArcaneGem() );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public void AddArcane( Item item )
|
||||
{
|
||||
if ( item is IArcaneEquip )
|
||||
{
|
||||
IArcaneEquip eq = (IArcaneEquip)item;
|
||||
eq.CurArcaneCharges = eq.MaxArcaneCharges = 20;
|
||||
}
|
||||
|
||||
item.Hue = ArcaneGem.DefaultArcaneHue;
|
||||
item.LootType = LootType.Newbied;
|
||||
|
||||
AddItem( item );
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune { get { return Poison.Regular; } }
|
||||
public override Poison HitPoison { get { return Poison.Regular; } }
|
||||
public override bool ClickTitle{ get{ return false; } }
|
||||
public override bool ShowFameTitle{ get{ return false; } }
|
||||
public override bool AlwaysMurderer{ get{ return true; } }
|
||||
|
||||
public IllSoul( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override bool OnBeforeDeath()
|
||||
{
|
||||
BoneKnight rm = new BoneKnight();
|
||||
rm.Team = this.Team;
|
||||
rm.Combatant = this.Combatant;
|
||||
rm.NoKillAwards = true;
|
||||
|
||||
if ( rm.Backpack == null )
|
||||
{
|
||||
Backpack pack = new Backpack();
|
||||
pack.Movable = false;
|
||||
rm.AddItem( pack );
|
||||
}
|
||||
|
||||
for ( int i = 0; i < 2; i++ )
|
||||
{
|
||||
LootPack.FilthyRich.Generate( this, rm.Backpack, true, LootPack.GetLuckChanceForKiller( this ) );
|
||||
LootPack.FilthyRich.Generate( this, rm.Backpack, false, LootPack.GetLuckChanceForKiller( this ) );
|
||||
}
|
||||
|
||||
Effects.PlaySound(this, Map, GetDeathSound());
|
||||
Effects.SendLocationEffect( Location, Map, 0x3709, 30, 10, 0x835, 0 );
|
||||
rm.MoveToWorld( Location, Map );
|
||||
|
||||
Delete();
|
||||
return false;
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a rotting corpse" )]
|
||||
public class LeftForDead : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public LeftForDead() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "left for dead";
|
||||
Body = 3;
|
||||
BaseSoundID = 471;
|
||||
Hue = 1862;
|
||||
|
||||
SetStr( 48, 78 );
|
||||
SetDex( 38, 58 );
|
||||
SetInt( 28, 48 );
|
||||
|
||||
SetHits( 36, 58 );
|
||||
|
||||
SetDamage( 5, 10 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 25, 30 );
|
||||
SetResistance( ResistanceType.Cold, 30, 40 );
|
||||
SetResistance( ResistanceType.Poison, 16, 20 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 15.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 35.1, 50.0 );
|
||||
SetSkill( SkillName.Wrestling, 35.1, 50.0 );
|
||||
|
||||
Fame = 800;
|
||||
Karma = -800;
|
||||
|
||||
VirtualArmor = 18;
|
||||
|
||||
switch ( Utility.Random( 10 ))
|
||||
{
|
||||
case 0: PackItem( new LeftArm() ); break;
|
||||
case 1: PackItem( new RightArm() ); break;
|
||||
case 2: PackItem( new Torso() ); break;
|
||||
case 3: PackItem( new Bone() ); break;
|
||||
case 4: PackItem( new RibCage() ); break;
|
||||
case 5: PackItem( new RibCage() ); break;
|
||||
case 6: PackItem( new BonePile() ); break;
|
||||
case 7: PackItem( new BonePile() ); break;
|
||||
case 8: PackItem( new BonePile() ); break;
|
||||
case 9: PackItem( new BonePile() ); break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
|
||||
public LeftForDead( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
82
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Necrobus.cs
Normal file
82
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Necrobus.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a necrobus's corpse" )]
|
||||
public class Necrobus : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Necrobus() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a necrobus";
|
||||
Body = 0x102;
|
||||
BaseSoundID = 451;
|
||||
Hue = 1743;
|
||||
|
||||
SetStr( 171, 200 );
|
||||
SetDex( 126, 145 );
|
||||
SetInt( 276, 305 );
|
||||
|
||||
SetHits( 120, 140 );
|
||||
|
||||
SetDamage( 24, 28 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 10 );
|
||||
SetDamageType( ResistanceType.Cold, 100 );
|
||||
SetDamageType( ResistanceType.Energy, 50 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 40, 60 );
|
||||
SetResistance( ResistanceType.Fire, 20, 30 );
|
||||
SetResistance( ResistanceType.Cold, 80, 100 );
|
||||
SetResistance( ResistanceType.Poison, 85, 105 );
|
||||
SetResistance( ResistanceType.Energy, 40, 50 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 100.0 );
|
||||
SetSkill( SkillName.Magery, 70.1, 80.0 );
|
||||
SetSkill( SkillName.Meditation, 85.1, 95.0 );
|
||||
SetSkill( SkillName.MagicResist, 80.1, 100.0 );
|
||||
SetSkill( SkillName.Tactics, 70.1, 90.0 );
|
||||
|
||||
Fame = 8000;
|
||||
Karma = -8000;
|
||||
|
||||
VirtualArmor = 50;
|
||||
PackItem( new GnarledStaff() );
|
||||
PackNecroReg( 17, 24 );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
AddLoot( LootPack.MedScrolls, 2 );
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
public override bool CanRummageCorpses{ get{ return true; } }
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
public override int TreasureMapLevel{ get{ return 3; } }
|
||||
|
||||
public Necrobus( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an undead organ's corpse" )]
|
||||
public class OrganOfUndeath : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public OrganOfUndeath() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an organ of undeath";
|
||||
Body = 778;
|
||||
Hue = 2968;
|
||||
BaseSoundID = 0x26B;
|
||||
|
||||
SetStr( 76, 100 );
|
||||
SetDex( 76, 95 );
|
||||
SetInt( 36, 60 );
|
||||
|
||||
SetHits( 20, 24 );
|
||||
|
||||
SetDamage( 6, 8 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 50 );
|
||||
SetDamageType( ResistanceType.Cold, 50 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 25, 30 );
|
||||
SetResistance( ResistanceType.Cold, 15, 25 );
|
||||
SetResistance( ResistanceType.Poison, 10, 20 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 35.1, 40.0 );
|
||||
SetSkill( SkillName.Magery, 45.1, 50.0 );
|
||||
SetSkill( SkillName.MagicResist, 45.1, 50.0 );
|
||||
SetSkill( SkillName.Tactics, 25.1, 30.0 );
|
||||
SetSkill( SkillName.Wrestling, 25.1, 45.0 );
|
||||
|
||||
Fame = 1000;
|
||||
Karma = -1000;
|
||||
|
||||
VirtualArmor = 28;
|
||||
|
||||
PackReg( 10 );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
|
||||
public OrganOfUndeath( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a plagued corpse" )]
|
||||
public class PlagueBearer : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public PlagueBearer() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a plague bearer ";
|
||||
Body = 3;
|
||||
BaseSoundID = 471;
|
||||
Hue = 2967;
|
||||
|
||||
SetStr( 96, 100 );
|
||||
SetDex( 91, 100 );
|
||||
SetInt( 66, 70 );
|
||||
|
||||
SetHits( 100, 104 );
|
||||
|
||||
SetDamage( 14, 16 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
SetDamageType( ResistanceType.Poison, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 65, 80 );
|
||||
SetResistance( ResistanceType.Cold, 60, 80 );
|
||||
SetResistance( ResistanceType.Poison, 95, 100 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 65.1, 70.0 );
|
||||
SetSkill( SkillName.Tactics, 75.1, 80.0 );
|
||||
SetSkill( SkillName.Wrestling, 65.1, 70.0 );
|
||||
|
||||
Fame = 6000;
|
||||
Karma = -6000;
|
||||
|
||||
VirtualArmor = 18;
|
||||
|
||||
switch ( Utility.Random( 10 ))
|
||||
{
|
||||
case 0: PackItem( new LeftArm() ); break;
|
||||
case 1: PackItem( new RightArm() ); break;
|
||||
case 2: PackItem( new Torso() ); break;
|
||||
case 3: PackItem( new Bone() ); break;
|
||||
case 4: PackItem( new RibCage() ); break;
|
||||
case 5: PackItem( new RibCage() ); break;
|
||||
case 6: PackItem( new BonePile() ); break;
|
||||
case 7: PackItem( new BonePile() ); break;
|
||||
case 8: PackItem( new BonePile() ); break;
|
||||
case 9: PackItem( new BonePile() ); break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
|
||||
public PlagueBearer( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
96
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Ravaged.cs
Normal file
96
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Ravaged.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a ravaged corpse" )]
|
||||
public class Ravaged : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Ravaged() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "the ravaged";
|
||||
Hue = 2115;
|
||||
BaseSoundID = 0x482;
|
||||
|
||||
switch ( Utility.Random( 2 ) )
|
||||
{
|
||||
case 0: // zombie
|
||||
Body = 3;
|
||||
break;
|
||||
case 1: // ghoul
|
||||
Body = 153;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
SetStr( 46, 60 );
|
||||
SetDex( 42, 60 );
|
||||
SetInt( 26, 40 );
|
||||
|
||||
SetHits( 64, 74 );
|
||||
|
||||
SetDamage( 8, 10 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 65, 70 );
|
||||
SetResistance( ResistanceType.Cold, 60, 80 );
|
||||
SetResistance( ResistanceType.Poison, 12, 22 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 15.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 48.1, 60.0 );
|
||||
SetSkill( SkillName.Wrestling, 68.1, 80.0 );
|
||||
|
||||
Fame = 1400;
|
||||
Karma = -1400;
|
||||
|
||||
VirtualArmor = 28;
|
||||
|
||||
switch ( Utility.Random( 10 ))
|
||||
{
|
||||
case 0: PackItem( new LeftArm() ); break;
|
||||
case 1: PackItem( new RightArm() ); break;
|
||||
case 2: PackItem( new Torso() ); break;
|
||||
case 3: PackItem( new Bone() ); break;
|
||||
case 4: PackItem( new RibCage() ); break;
|
||||
case 5: PackItem( new RibCage() ); break;
|
||||
case 6: PackItem( new BonePile() ); break;
|
||||
case 7: PackItem( new BonePile() ); break;
|
||||
case 8: PackItem( new BonePile() ); break;
|
||||
case 9: PackItem( new BonePile() ); break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
|
||||
public Ravaged( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Redead.cs
Normal file
67
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Redead.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a redead corpse" )]
|
||||
public class Redead : BaseCreature
|
||||
{
|
||||
public override WeaponAbility GetWeaponAbility()
|
||||
{
|
||||
return WeaponAbility.ParalyzingBlow;
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public Redead() : base( AIType.AI_Melee,FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a redead";
|
||||
Body = 3;
|
||||
BaseSoundID = 0x3E9;
|
||||
Hue = 2313;
|
||||
|
||||
SetStr( 80, 100 );
|
||||
SetDex( 101, 105 );
|
||||
SetInt( 66, 85 );
|
||||
|
||||
SetHits( 105, 108 );
|
||||
|
||||
SetDamage( 12, 17 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 65, 75 );
|
||||
SetResistance( ResistanceType.Fire, 65, 75 );
|
||||
SetResistance( ResistanceType.Cold, 65, 75 );
|
||||
SetResistance( ResistanceType.Poison, 40, 50 );
|
||||
SetResistance( ResistanceType.Energy, 50, 60 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 65.1, 70.0 );
|
||||
SetSkill( SkillName.Tactics, 87.6, 92.5 );
|
||||
SetSkill( SkillName.Wrestling, 80.1, 90.0 );
|
||||
|
||||
Fame = 8500;
|
||||
Karma = -8500;
|
||||
|
||||
VirtualArmor = 27;
|
||||
}
|
||||
|
||||
public override int TreasureMapLevel{ get{ return 1; } }
|
||||
|
||||
public Redead( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
114
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/ReturnedFotter.cs
Normal file
114
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/ReturnedFotter.cs
Normal file
@@ -0,0 +1,114 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a mangled corpse" )]
|
||||
public class ReturnedFotter : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public ReturnedFotter() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a returned fotter";
|
||||
Hue = 1441;
|
||||
|
||||
switch ( Utility.Random( 5 ) )
|
||||
{
|
||||
case 0: // zombie
|
||||
Body = 3;
|
||||
BaseSoundID = 471;
|
||||
break;
|
||||
case 1: // headless one
|
||||
Body = 31;
|
||||
BaseSoundID = 0x39D;
|
||||
break;
|
||||
case 2: // skeleton
|
||||
Body = Utility.RandomList( 50, 56 );
|
||||
BaseSoundID = 0x48D;
|
||||
break;
|
||||
case 3: // ghoul
|
||||
Body = 153;
|
||||
BaseSoundID = 0x482;
|
||||
break;
|
||||
case 4: // patchwork skeleton
|
||||
Body = 309;
|
||||
BaseSoundID = 0x48D;
|
||||
break;
|
||||
default:
|
||||
case 5: // slime
|
||||
Body = 51;
|
||||
BaseSoundID = 456;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
SetStr( 76, 80 );
|
||||
SetDex( 42, 60 );
|
||||
SetInt( 26, 40 );
|
||||
|
||||
SetHits( 68, 74 );
|
||||
|
||||
SetDamage( 8, 12 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 65, 70 );
|
||||
SetResistance( ResistanceType.Cold, 60, 80 );
|
||||
SetResistance( ResistanceType.Poison, 12, 22 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 15.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 48.1, 60.0 );
|
||||
SetSkill( SkillName.Wrestling, 68.1, 80.0 );
|
||||
|
||||
Fame = 1400;
|
||||
Karma = -1400;
|
||||
|
||||
VirtualArmor = 28;
|
||||
|
||||
switch ( Utility.Random( 10 ))
|
||||
{
|
||||
case 0: PackItem( new LeftArm() ); break;
|
||||
case 1: PackItem( new RightArm() ); break;
|
||||
case 2: PackItem( new Torso() ); break;
|
||||
case 3: PackItem( new Bone() ); break;
|
||||
case 4: PackItem( new RibCage() ); break;
|
||||
case 5: PackItem( new RibCage() ); break;
|
||||
case 6: PackItem( new BonePile() ); break;
|
||||
case 7: PackItem( new BonePile() ); break;
|
||||
case 8: PackItem( new BonePile() ); break;
|
||||
case 9: PackItem( new BonePile() ); break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
|
||||
public ReturnedFotter( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
using System;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a rotting cat corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.RevenantCat" )]
|
||||
public class RevenantCat : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public RevenantCat() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a revenant cat";
|
||||
Body = 0xC9;
|
||||
Hue = 1743;
|
||||
BaseSoundID = 0x69;
|
||||
|
||||
SetStr( 51, 100 );
|
||||
SetDex( 52, 150 );
|
||||
SetInt( 13, 85 );
|
||||
|
||||
SetHits( 48, 67 );
|
||||
|
||||
SetDamage( 6, 12 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 40 );
|
||||
SetDamageType( ResistanceType.Fire, 60 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 25, 35 );
|
||||
SetResistance( ResistanceType.Fire, 80, 90 );
|
||||
SetResistance( ResistanceType.Energy, 15, 20 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 45.1, 60.0 );
|
||||
SetSkill( SkillName.Tactics, 40.1, 55.0 );
|
||||
SetSkill( SkillName.Wrestling, 30.1, 40.0 );
|
||||
|
||||
Fame = 1000;
|
||||
Karma = -1000;
|
||||
|
||||
VirtualArmor = 30;
|
||||
|
||||
Tamable = true;
|
||||
ControlSlots = 1;
|
||||
MinTameSkill = 71.1;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Lethal; } }
|
||||
public override int Hides{ get{ return 10; } }
|
||||
public override HideType HideType{ get{ return HideType.Spined; } }
|
||||
public override FoodType FavoriteFood{ get{ return FoodType.Meat; } }
|
||||
public override PackInstinct PackInstinct{ get{ return PackInstinct.Feline; } }
|
||||
|
||||
public RevenantCat(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
using System;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a rotting wolf corpse" )]
|
||||
[TypeAlias( "Server.Mobiles.RevenantWolf" )]
|
||||
public class RevenantWolf : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public RevenantWolf() : base( AIType.AI_Melee,FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a revenant wolf";
|
||||
Body = 23;
|
||||
BaseSoundID = 0xE5;
|
||||
Hue = 1743;
|
||||
|
||||
SetStr( 96, 120 );
|
||||
SetDex( 121, 145 );
|
||||
SetInt( 36, 60 );
|
||||
|
||||
SetHits( 58, 72 );
|
||||
SetMana( 0 );
|
||||
|
||||
SetDamage( 14, 18 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 20, 25 );
|
||||
SetResistance( ResistanceType.Fire, 10, 20 );
|
||||
SetResistance( ResistanceType.Cold, 5, 10 );
|
||||
SetResistance( ResistanceType.Poison, 5, 10 );
|
||||
SetResistance( ResistanceType.Energy, 10, 15 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 57.6, 75.0 );
|
||||
SetSkill( SkillName.Tactics, 50.1, 70.0 );
|
||||
SetSkill( SkillName.Wrestling, 60.1, 80.0 );
|
||||
|
||||
Fame = 8500;
|
||||
Karma = -8500;
|
||||
|
||||
VirtualArmor = 22;
|
||||
|
||||
Tamable = true;
|
||||
ControlSlots = 1;
|
||||
MinTameSkill = 83.1;
|
||||
}
|
||||
|
||||
public override int Meat{ get{ return 1; } }
|
||||
public override int Hides{ get{ return 7; } }
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override HideType HideType{ get{ return HideType.Spined; } }
|
||||
public override FoodType FavoriteFood{ get{ return FoodType.Meat; } }
|
||||
public override PackInstinct PackInstinct{ get{ return PackInstinct.Canine; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
public override Poison HitPoison{ get{ return Poison.Lethal; } }
|
||||
|
||||
public RevenantWolf(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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a shambling horror corpse" )]
|
||||
public class ShamblingHorror : BaseCreature
|
||||
{
|
||||
public override WeaponAbility GetWeaponAbility()
|
||||
{
|
||||
return WeaponAbility.DoubleStrike;
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public ShamblingHorror() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a shambling horror";
|
||||
Body = 309;
|
||||
BaseSoundID = 0x3E9;
|
||||
Hue = 34;
|
||||
|
||||
SetStr( 96, 120 );
|
||||
SetDex( 71, 95 );
|
||||
SetInt( 16, 40 );
|
||||
|
||||
SetHits( 58, 74 );
|
||||
|
||||
SetDamage( 18, 24 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 85 );
|
||||
SetDamageType( ResistanceType.Cold, 15 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 55, 65 );
|
||||
SetResistance( ResistanceType.Fire, 50, 60 );
|
||||
SetResistance( ResistanceType.Cold, 70, 80 );
|
||||
SetResistance( ResistanceType.Poison, 100 );
|
||||
SetResistance( ResistanceType.Energy, 40, 50 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 70.1, 95.0 );
|
||||
SetSkill( SkillName.Tactics, 55.1, 80.0 );
|
||||
SetSkill( SkillName.Wrestling, 50.1, 70.0 );
|
||||
|
||||
Fame = 500;
|
||||
Karma = -500;
|
||||
|
||||
VirtualArmor = 54;
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
|
||||
public override int TreasureMapLevel{ get{ return 1; } }
|
||||
|
||||
public ShamblingHorror( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a slaughtered corpse" )]
|
||||
public class Slaughtered : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Slaughtered() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "the slaughtered";
|
||||
Hue = 1143;
|
||||
BaseSoundID = 0x482;
|
||||
|
||||
switch ( Utility.Random( 2 ) )
|
||||
{
|
||||
case 0: // zombie
|
||||
Body = 3;
|
||||
break;
|
||||
case 1: // ghoul
|
||||
Body = 153;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
SetStr( 46, 60 );
|
||||
SetDex( 42, 60 );
|
||||
SetInt( 26, 40 );
|
||||
|
||||
SetHits( 82, 84 );
|
||||
|
||||
SetDamage( 12, 14 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 65, 70 );
|
||||
SetResistance( ResistanceType.Cold, 60, 80 );
|
||||
SetResistance( ResistanceType.Poison, 12, 22 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 18.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 58.1, 60.0 );
|
||||
SetSkill( SkillName.Wrestling, 68.1, 80.0 );
|
||||
|
||||
Fame = 1600;
|
||||
Karma = -1600;
|
||||
|
||||
VirtualArmor = 28;
|
||||
|
||||
switch ( Utility.Random( 10 ))
|
||||
{
|
||||
case 0: PackItem( new LeftArm() ); break;
|
||||
case 1: PackItem( new RightArm() ); break;
|
||||
case 2: PackItem( new Torso() ); break;
|
||||
case 3: PackItem( new Bone() ); break;
|
||||
case 4: PackItem( new RibCage() ); break;
|
||||
case 5: PackItem( new RibCage() ); break;
|
||||
case 6: PackItem( new BonePile() ); break;
|
||||
case 7: PackItem( new BonePile() ); break;
|
||||
case 8: PackItem( new BonePile() ); break;
|
||||
case 9: PackItem( new BonePile() ); break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
|
||||
public Slaughtered( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an undead tumor's corpse" )]
|
||||
public class TumorOfUndeath : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public TumorOfUndeath() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a tumor of undeath";
|
||||
Body = 22;
|
||||
Hue = 2968;
|
||||
BaseSoundID = 442;
|
||||
|
||||
SetStr( 76, 100 );
|
||||
SetDex( 76, 95 );
|
||||
SetInt( 86, 100 );
|
||||
|
||||
SetHits( 240, 284 );
|
||||
|
||||
SetDamage( 22, 28 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 50 );
|
||||
SetDamageType( ResistanceType.Cold, 50 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 35, 40 );
|
||||
SetResistance( ResistanceType.Cold, 55, 85 );
|
||||
SetResistance( ResistanceType.Poison, 60, 80 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 65.1, 80.0 );
|
||||
SetSkill( SkillName.Magery, 85.1, 120.0 );
|
||||
SetSkill( SkillName.MagicResist, 105.1, 120.0 );
|
||||
SetSkill( SkillName.Tactics, 85.1, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 65.1, 85.0 );
|
||||
|
||||
Fame = 10000;
|
||||
Karma = -10000;
|
||||
|
||||
VirtualArmor = 28;
|
||||
|
||||
PackReg( 10 );
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
|
||||
public TumorOfUndeath( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a rotting corpse" )]
|
||||
public class WalkingCorpse : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public WalkingCorpse() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a walking corpse";
|
||||
Body = 3;
|
||||
BaseSoundID = 471;
|
||||
Hue = Utility.RandomSkinHue();
|
||||
|
||||
SetStr( 36, 50 );
|
||||
SetDex( 31, 50 );
|
||||
SetInt( 26, 40 );
|
||||
|
||||
SetHits( 20, 30 );
|
||||
|
||||
SetDamage( 3, 5 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 15, 20 );
|
||||
SetResistance( ResistanceType.Cold, 20, 30 );
|
||||
SetResistance( ResistanceType.Poison, 5, 10 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 15.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 35.1, 50.0 );
|
||||
SetSkill( SkillName.Wrestling, 35.1, 50.0 );
|
||||
|
||||
Fame = 600;
|
||||
Karma = -600;
|
||||
|
||||
VirtualArmor = 18;
|
||||
|
||||
switch ( Utility.Random( 10 ))
|
||||
{
|
||||
case 0: PackItem( new LeftArm() ); break;
|
||||
case 1: PackItem( new RightArm() ); break;
|
||||
case 2: PackItem( new Torso() ); break;
|
||||
case 3: PackItem( new Bone() ); break;
|
||||
case 4: PackItem( new RibCage() ); break;
|
||||
case 5: PackItem( new RibCage() ); break;
|
||||
case 6: PackItem( new BonePile() ); break;
|
||||
case 7: PackItem( new BonePile() ); break;
|
||||
case 8: PackItem( new BonePile() ); break;
|
||||
case 9: PackItem( new BonePile() ); break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
|
||||
public WalkingCorpse( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
86
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Wronged.cs
Normal file
86
Scripts/SubSystem/CustomMonsters/Undead/Fleshy/Wronged.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a rotting corpse" )]
|
||||
public class Wronged : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public Wronged() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "the wronged";
|
||||
Body = 3;
|
||||
BaseSoundID = 471;
|
||||
Hue = 686;
|
||||
|
||||
SetStr( 48, 60 );
|
||||
SetDex( 38, 50 );
|
||||
SetInt( 28, 30 );
|
||||
|
||||
SetHits( 36, 58 );
|
||||
|
||||
SetDamage( 5, 10 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 25, 30 );
|
||||
SetResistance( ResistanceType.Cold, 30, 40 );
|
||||
SetResistance( ResistanceType.Poison, 16, 20 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 15.1, 40.0 );
|
||||
SetSkill( SkillName.Tactics, 35.1, 50.0 );
|
||||
SetSkill( SkillName.Wrestling, 35.1, 50.0 );
|
||||
|
||||
Fame = 800;
|
||||
Karma = -800;
|
||||
|
||||
VirtualArmor = 18;
|
||||
|
||||
switch ( Utility.Random( 10 ))
|
||||
{
|
||||
case 0: PackItem( new LeftArm() ); break;
|
||||
case 1: PackItem( new RightArm() ); break;
|
||||
case 2: PackItem( new Torso() ); break;
|
||||
case 3: PackItem( new Bone() ); break;
|
||||
case 4: PackItem( new RibCage() ); break;
|
||||
case 5: PackItem( new RibCage() ); break;
|
||||
case 6: PackItem( new BonePile() ); break;
|
||||
case 7: PackItem( new BonePile() ); break;
|
||||
case 8: PackItem( new BonePile() ); break;
|
||||
case 9: PackItem( new BonePile() ); break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Regular; } }
|
||||
|
||||
public Wronged( Serial serial ) : base( serial )
|
||||
{
|
||||
}
|
||||
|
||||
public override OppositionGroup OppositionGroup
|
||||
{
|
||||
get{ return OppositionGroup.FeyAndUndead; }
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user