Files
abysmal-isle/Scripts/Mobiles/Bosses/ChiefParoxysmus.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

183 lines
4.8 KiB
C#

using System;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName("a chief paroxysmus corpse")]
public class ChiefParoxysmus : BasePeerless
{
[Constructable]
public ChiefParoxysmus()
: base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
{
Name = "a chief paroxysmus";
Body = 0x100;
SetStr(1232, 1400);
SetDex(76, 82);
SetInt(76, 85);
SetHits(50000);
SetDamage(27, 31);
SetDamageType(ResistanceType.Physical, 80);
SetDamageType(ResistanceType.Poison, 20);
SetResistance(ResistanceType.Physical, 75, 85);
SetResistance(ResistanceType.Fire, 40, 50);
SetResistance(ResistanceType.Cold, 50, 60);
SetResistance(ResistanceType.Poison, 55, 65);
SetResistance(ResistanceType.Energy, 50, 60);
SetSkill(SkillName.Wrestling, 120.0);
SetSkill(SkillName.Tactics, 120.0);
SetSkill(SkillName.MagicResist, 120.0);
SetSkill(SkillName.Anatomy, 120.0);
SetSkill(SkillName.Poisoning, 120.0);
PackResources(8);
PackTalismans(5);
Timer.DelayCall(TimeSpan.FromSeconds(1), new TimerCallback(SpawnBulbous)); //BulbousPutrification
Fame = 25000;
Karma = -25000;
SetAreaEffect(AreaEffect.PoisonBreath);
}
public ChiefParoxysmus(Serial serial)
: base(serial)
{
}
public override bool GivesMLMinorArtifact
{
get
{
return true;
}
}
public override Poison PoisonImmune
{
get
{
return Poison.Lethal;
}
}
public override void GenerateLoot()
{
AddLoot(LootPack.AosSuperBoss, 8);
}
public override void OnDeath(Container c)
{
base.OnDeath(c);
c.DropItem(new LardOfParoxysmus());
switch ( Utility.Random(3) )
{
case 0:
c.DropItem(new ParoxysmusDinner());
break;
case 1:
c.DropItem(new ParoxysmusCorrodedStein());
break;
case 2:
c.DropItem(new StringOfPartsOfParoxysmusVictims());
break;
}
if (Utility.RandomDouble() < 0.6)
c.DropItem(new ParrotItem());
if (Utility.RandomBool())
c.DropItem(new SweatOfParoxysmus());
if (Utility.RandomDouble() < 0.05)
c.DropItem(new ParoxysmusSwampDragonStatuette());
if (Utility.RandomDouble() < 0.05)
c.DropItem(new ScepterOfTheChief());
}
public override int GetDeathSound()
{
return 0x56F;
}
public override int GetAttackSound()
{
return 0x570;
}
public override int GetIdleSound()
{
return 0x571;
}
public override int GetAngerSound()
{
return 0x572;
}
public override int GetHurtSound()
{
return 0x573;
}
public override void OnDamage(int amount, Mobile from, bool willKill)
{
base.OnDamage(amount, from, willKill);
// eats pet or summons
if (from is BaseCreature)
{
BaseCreature creature = (BaseCreature)from;
if (creature.Controlled || creature.Summoned)
{
Heal(creature.Hits);
creature.Kill();
Effects.PlaySound(Location, Map, 0x574);
}
}
// teleports player near
if (from is PlayerMobile && !InRange(from.Location, 1))
{
Combatant = from;
from.MoveToWorld(GetSpawnPosition(1), Map);
from.FixedParticles(0x376A, 9, 32, 0x13AF, EffectLayer.Waist);
from.PlaySound(0x1FE);
}
}
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();
}
public virtual void SpawnBulbous()
{
for (int i = 0; i < 3; i++)
{
SpawnHelper(new BulbousPutrification(), GetSpawnPosition(4));
}
}
}
}