Reorganizes Project (#41)

This commit is contained in:
Kamron Batman 2019-08-02 18:13:40 -07:00 • committed by GitHub
parent 08bf44af9a
commit 3614a66aee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3499 changed files with 79 additions and 55 deletions

View file

@ -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());
}
}
}

View file

@ -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();
}
}
}

View file

@ -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();
}
}
}

View file

@ -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();
}
}
}

View file

@ -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();
}
}
}