ModernUO/Projects/UOContent/Holiday Stuff/Halloween/2011/Mobiles/PumpkinHead.cs
Kamron Batman e855ca1e61
fix: Removes PoolOfAcid (#1310)
## BREAKING CHANGES
You will receive a deserialization error saying cannot find type PoolOfAcid. This is ok, just hit yes to delete all.
2022-12-22 13:20:34 -08:00

116 lines
3.5 KiB
C#

using System;
using ModernUO.Serialization;
using Server.Items;
using Server.Items.Holiday;
namespace Server.Mobiles
{
[SerializationGenerator(0, false)]
public partial class PumpkinHead : BaseCreature
{
[Constructible]
public PumpkinHead()
: base(Utility.RandomBool() ? AIType.AI_Melee : AIType.AI_Mage)
{
Body = 1246 + Utility.Random(2);
BaseSoundID = 268;
SetStr(350);
SetDex(125);
SetInt(250);
SetHits(500);
SetMana(1000);
SetDamage(10, 15);
SetDamageType(ResistanceType.Physical, 100);
SetResistance(ResistanceType.Physical, 55);
SetResistance(ResistanceType.Fire, 50);
SetResistance(ResistanceType.Cold, 50);
SetResistance(ResistanceType.Poison, 65);
SetResistance(ResistanceType.Energy, 80);
SetSkill(SkillName.DetectHidden, 100.0);
SetSkill(SkillName.Meditation, 120.0);
SetSkill(SkillName.Necromancy, 100.0);
SetSkill(SkillName.SpiritSpeak, 120.0);
SetSkill(SkillName.Magery, 160.0);
SetSkill(SkillName.EvalInt, 100.0);
SetSkill(SkillName.MagicResist, 100.0);
SetSkill(SkillName.Tactics, 100.0);
SetSkill(SkillName.Wrestling, 80.0);
Fame = 5000;
Karma = -5000;
VirtualArmor = 49;
}
public override string CorpseName => "a killer pumpkin corpse";
public override bool AutoDispel => true;
public override bool BardImmune => true;
public override bool Unprovokable => true;
public override bool AreaPeaceImmune => true;
public override string DefaultName => "a killer pumpkin";
public override void GenerateLoot()
{
if (Utility.RandomDouble() < .05)
{
switch (Utility.Random(5))
{
case 0:
PackItem(new PaintedEvilClownMask());
break;
case 1:
PackItem(new PaintedDaemonMask());
break;
case 2:
PackItem(new PaintedPlagueMask());
break;
case 3:
PackItem(new PaintedEvilJesterMask());
break;
case 4:
PackItem(new PaintedPorcelainMask());
break;
}
}
PackItem(new WrappedCandy());
AddLoot(LootPack.UltraRich, 2);
}
public virtual void Lifted_Callback(Mobile from)
{
if (from?.Deleted == false && from is PlayerMobile)
{
Combatant = from;
Warmode = true;
}
}
public override Item NewHarmfulItem() =>
new Acid(TimeSpan.FromSeconds(10), 25, 30)
{
Name = "gooey nasty pumpkin hummus",
Hue = 144
};
public override void OnDamage(int amount, Mobile from, bool willKill)
{
if (Utility.RandomBool())
{
if (from?.Map != null && Map != Map.Internal && Map == from.Map && from.InRange(this, 12))
{
SpillAcid(willKill ? this : from, willKill ? 3 : 1);
}
}
base.OnDamage(amount, from, willKill);
}
}
}