Reorganizes Project (#41)
This commit is contained in:
parent
08bf44af9a
commit
3614a66aee
3499 changed files with 79 additions and 55 deletions
|
|
@ -0,0 +1,65 @@
|
|||
//using System.Collections.Generic;
|
||||
|
||||
namespace Server.Items.Holiday
|
||||
{
|
||||
[TypeAlias("Server.Items.ClownMask", "Server.Items.DaemonMask", "Server.Items.PlagueMask")]
|
||||
public class BasePaintedMask : Item
|
||||
{
|
||||
private static string[] m_Staffers =
|
||||
{
|
||||
"Ryan",
|
||||
"Mark",
|
||||
"Krrios",
|
||||
"Zippy",
|
||||
"Athena",
|
||||
"Eos",
|
||||
"Xavier"
|
||||
};
|
||||
|
||||
private string m_Staffer;
|
||||
|
||||
public BasePaintedMask(int itemid)
|
||||
: this(m_Staffers[Utility.Random(m_Staffers.Length)], itemid)
|
||||
{
|
||||
}
|
||||
|
||||
public BasePaintedMask(string staffer, int itemid)
|
||||
: base(itemid + Utility.Random(2))
|
||||
{
|
||||
m_Staffer = staffer;
|
||||
|
||||
Utility.Intern(m_Staffer);
|
||||
}
|
||||
|
||||
public BasePaintedMask(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string DefaultName
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Staffer != null ? $"{MaskName} hand painted by {m_Staffer}" : MaskName;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual string MaskName => "A Mask";
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(1); // version
|
||||
writer.Write(m_Staffer);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
|
||||
if (version == 1) m_Staffer = Utility.Intern(reader.ReadString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items.Holiday
|
||||
{
|
||||
public class PaintedEvilClownMask : BasePaintedMask
|
||||
{
|
||||
[Constructible]
|
||||
public PaintedEvilClownMask()
|
||||
: base(0x4a90)
|
||||
{
|
||||
}
|
||||
|
||||
public PaintedEvilClownMask(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string MaskName => "Evil Clown Mask";
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items.Holiday
|
||||
{
|
||||
public class PaintedDaemonMask : BasePaintedMask
|
||||
{
|
||||
[Constructible]
|
||||
public PaintedDaemonMask()
|
||||
: base(0x4a92)
|
||||
{
|
||||
}
|
||||
|
||||
public PaintedDaemonMask(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string MaskName => "Daemon Mask";
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
namespace Server.Items.Holiday
|
||||
{
|
||||
public class PaintedPlagueMask : BasePaintedMask
|
||||
{
|
||||
[Constructible]
|
||||
public PaintedPlagueMask()
|
||||
: base(0x4A8E)
|
||||
{
|
||||
}
|
||||
|
||||
public PaintedPlagueMask(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string MaskName => "Plague Mask";
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,129 @@
|
|||
using System;
|
||||
using Server.Items;
|
||||
using Server.Items.Holiday;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class PumpkinHead : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public PumpkinHead()
|
||||
: base(Utility.RandomBool() ? AIType.AI_Melee : AIType.AI_Mage, FightMode.Closest, 10, 1, 0.05, 0.1)
|
||||
{
|
||||
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 PumpkinHead(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
Item bad = new AcidSlime(TimeSpan.FromSeconds(10), 25, 30);
|
||||
|
||||
bad.Name = "gooey nasty pumpkin hummus";
|
||||
|
||||
bad.Hue = 144;
|
||||
|
||||
return bad;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
public override void Serialize(GenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(GenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
int version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue