halloween

This commit is contained in:
xavier 2012-10-23 02:21:53 +00:00
parent 116e29de49
commit 1720ae3a6c
24 changed files with 1079 additions and 0 deletions

View file

@ -0,0 +1,92 @@
using System;
using Server;
using Server.Mobiles;
namespace Server.Items
{
public class HalloweenPumpkin : Item
{
private readonly string[] staff =
{
"Ryan", "Mark", "Eos", "Athena", "Xavier", "Krrios"
};
[Constructable]
public HalloweenPumpkin()
: base()
{
Weight = Utility.RandomMinMax( 3, 20 );
ItemID = ( Utility.RandomDouble() <= .02 ) ? 0x4694 + Utility.Random( 2 ) : Utility.RandomList( 0xc6a, 0xc6b, 0xc6c );
}
public override void OnDoubleClick( Mobile from )
{
this.ItemID = GetItemID( ItemID );
base.OnDoubleClick( from );
}
private int GetItemID( int itemid )
{
switch( ItemID )
{
case 0x4694: itemid = 0x4691; break;
case 0x4691: itemid = 0x4694; break;
case 0x4698: itemid = 0x4695; break;
case 0x4695: itemid = 0x4698; break;
}
return itemid;
}
public override void OnItemLifted( Mobile from, Item item )
{
base.OnItemLifted( from, item );
if( item != null && !item.Deleted && item == this )
{
if( Utility.RandomBool() )
{
int[][] coord = { new int[] { -3, -3 }, new int[] { -3, 0 }, new int[] { 0, 3 }, new int[] { 3, 3 } };
for( int i=0; i < 4; i++ )
{
Point3D loc = new Point3D( from.X + coord[ i ][ 0 ], from.Y + coord[ i ][ 1 ], Map.GetAverageZ( from.X, from.Y ) );
if( Map.CanSpawnMobile( loc ) )
{
BaseCreature pumpkinhead = new PumpkinHead();
pumpkinhead.FocusMob = from;
pumpkinhead.MoveToWorld( loc, from.Map );
}
}
Delete();
}
else
{
Name = String.Format( "{0}'s Jack-O-antern", staff[ Utility.Random( staff.Length ) ] );
}
}
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( ( int )0 ); // version
}
public HalloweenPumpkin( Serial serial )
: base( serial)
{
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View file

@ -0,0 +1,36 @@
using System;
using Server;
using Server.Misc;
namespace Server.Items
{
public class PumpkinScarecrow : Lantern
{
public override int LabelNumber { get { return 1096947; } }
[Constructable]
public PumpkinScarecrow()
: base( Utility.RandomBool() ? 0x469B : 0x469C )
{
}
public PumpkinScarecrow( 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();
}
}
}

View file

@ -0,0 +1,36 @@
using System;
using Server;
using Server.Misc;
namespace Server.Items
{
public class RuinedTapestry : Item
{
public override int DefaultName{ get { return "Ruined Tapestry "; } }
[Constructable]
public RuinedTapestry()
: base( Utility.RandomBool() ? 0x4699 : 0x469A )
{
}
public RuinedTapestry( 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();
}
}
}

View file

@ -0,0 +1,49 @@
using System;
using Server;
namespace Server.Items
{
public class TwilightLantern : Lantern
{
public override string DefaultName { get { return "Twilight Lantern"; } }
[Constructable]
public TwilightLantern()
: base()
{
Hue = Utility.RandomBool() ? 142 : 947;
}
public override bool AllowEquipedCast( Mobile from )
{
return true;
}
public override void GetProperties( ObjectPropertyList list )
{
base.GetProperties( list );
list.Add( 1060482 ); // Spell Channeling
}
public TwilightLantern( 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();
}
}
}

View file

@ -0,0 +1,41 @@
using System;
using Server;
namespace Server.Items
{
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class CreepyCake : Food
{
public override string DefaultName { get { return "Creepy Cake"; } }
[Constructable]
public CreepyCake()
: base( 0x9e9 )
{
Hue = 0x3E4;
}
public CreepyCake( 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();
}
}
}

View file

@ -0,0 +1,42 @@
using System;
using Server;
namespace Server.Items
{
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class HarvestWine : BeverageBottle
{
public override string DefaultName { get { return "Harvest Wine"; } }
public override double DefaultWeight { get { return 1; } }
[Constructable]
public HarvestWine()
: base( BeverageType.Wine )
{
Hue = 0xe0;
}
public HarvestWine( 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();
}
}
}

View file

@ -0,0 +1,38 @@
using System;
using Server;
namespace Server.Items
{
public class MrPlainsCookies : Food
{
public override string DefaultName{ get { return "Mr Plain's Cookies"; } }
[Constructable]
public MrPlainsCookies( )
: base( 0x160C )
{
this.Weight = 1.0;
this.FillFactor = 4;
Hue = 0xF4;
}
public MrPlainsCookies( 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();
}
}
}

View file

@ -0,0 +1,51 @@
using System;
using Server;
using Server.Mobiles;
namespace Server.Items
{
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class MurkyMilk : Pitcher
{
public override string DefaultName { get { return "Murky Milk";; } }
public override int MaxQuantity { get { return 5; } }
public override double DefaultWeight { get { return 1; } }
[Constructable]
public MurkyMilk( )
: base( BeverageType.Milk )
{
Hue = 0x3e5;
Quantity = MaxQuantity;
ItemID = ( Utility.RandomBool() ) ? 0x09F0 : 0x09AD;
}
public override int ComputeItemID()
{
return base.ComputeItemID();
}
public MurkyMilk( 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();
}
}
}

View file

@ -0,0 +1,41 @@
using System;
using Server;
namespace Server.Items
{
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class PumpkinPizza : CheesePizza
{
public override string DefaultName { get { return "Pumpkin Pizza"; } }
[Constructable]
public PumpkinPizza( )
: base()
{
Hue = 0xF3;
}
public PumpkinPizza( 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();
}
}
}

View file

@ -0,0 +1,40 @@
using System;
using Server;
namespace Server.Items
{
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class GrimWarning : Item
{
public override double DefaultWeight { get { return 1; } }
[Constructable]
public GrimWarning ()
: base( 0x42BD )
{
}
public GrimWarning( 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();
}
}
}

View file

@ -0,0 +1,40 @@
using System;
using Server;
namespace Server.Items
{
/*
first seen halloween 2009. subsequently in 2010,
2011 and 2012. GM Beggar-only Semi-Rare Treats
*/
public class SkullsOnPike : Item
{
public override double DefaultWeight { get { return 1; } }
[Constructable]
public SkullsOnPike()
: base( 0x42B5 )
{
}
public SkullsOnPike( 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();
}
}
}

View file

@ -0,0 +1,35 @@
using System;
using Server;
namespace Server.Items
{
public class ChairInAGhostCostume : Item
{
public override double DefaultWeight { get { return 5; } }
[Constructable]
public ChairInAGhostCostume()
: base( 0x3F26 )
{
}
public ChairInAGhostCostume( 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();
}
}
}

View file

@ -0,0 +1,36 @@
using System;
using Server;
namespace Server.Items
{
public class ColoredSmallWebs : Item
{
public override double DefaultWeight { get { return 5; } }
[Constructable]
public ColoredSmallWebs()
: base( Utility.RandomBool() ? 0x10d6 : 0x10d7 )
{
Hue = Utility.RandomBool() ? 0x455 : 0x4E9;
}
public ColoredSmallWebs( 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();
}
}
}

View file

@ -0,0 +1,35 @@
using System;
using Server;
namespace Server.Items
{
public class ExcellentIronMaiden : Item
{
public override double DefaultWeight { get { return 5; } }
[Constructable]
public ExcellentIronMaiden()
: this( 0x3f15 )
{
}
public ExcellentIronMaiden( 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();
}
}
}

View file

@ -0,0 +1,34 @@
using System;
using Server;
namespace Server.Items
{
public class HalloweenGuillotine : Item
{
public override double DefaultWeight { get { return 5; } }
[Constructable]
public HalloweenGuillotine() : base( 0x3F27 )
{
}
public HalloweenGuillotine( 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();
}
}
}

View file

@ -0,0 +1,36 @@
using System;
using Server;
using Server.Misc;
namespace Server.Items
{
public class ClownMask : Item
{
public override string DefaultName { get { return "Clown Mask"; } }
[Constructable]
public ClownMask()
: base( Utility.RandomBool() ? 0x4A8E : 0x4A8F )
{
}
public ClownMask( 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();
}
}
}

View file

@ -0,0 +1,36 @@
using System;
using Server;
using Server.Misc;
namespace Server.Items
{
public class DaemonMask : Item
{
public override string DefaultName { get { return "Daemon Mask"; } }
[Constructable]
public DaemonMask()
: base( Utility.RandomBool() ? 0x4A92: 0x4A93 )
{
}
public DaemonMask( 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();
}
}
}

View file

@ -0,0 +1,36 @@
using System;
using Server;
using Server.Misc;
namespace Server.Items
{
public class RuinedTapestry : Lantern
{
public override string DefaultName { get { return "Plague Mask"; } }
[Constructable]
public RuinedTapestry()
: base( Utility.RandomBool() ? 0x4A8E : 0x4A8F )
{
}
public RuinedTapestry( 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();
}
}
}

View file

@ -0,0 +1,120 @@
using System;
using Server;
using Server.Items;
using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a killer pumpkin corpse" )]
public class PumpkinHead : BaseCreature
{
public override bool AutoDispel { get { return true; } }
public override bool BardImmune { get { return true; } }
public override bool Unprovokable { get { return true; } }
public override bool AreaPeaceImmune { get { return true; } }
[Constructable]
public PumpkinHead()
: base( Utility.RandomBool() ? AIType.AI_Melee : AIType.AI_Mage, FightMode.Closest, 10, 1, 0.05, 0.1 )
{
Name = "a killer pumpkin";
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 void GenerateLoot()
{
if( Utility.RandomDouble() < .05 )
{
PackItem( new TwilightLantern() );
}
PackItem( new WrappedCandy() );
AddLoot( LootPack.UltraRich, 2 );
}
public virtual void Lifted_Callback( Mobile from )
{
if( from != null && !from.Deleted && 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 != null && 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 PumpkinHead( 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();
}
}
}

View file

@ -0,0 +1,41 @@
using System;
using Server;
namespace Server.Items
{
public class JellyBeans : CandyCane
{
public override int LabelNumber { get { return 1096932; } } /* jellybeans */
[Constructable]
public JellyBeans()
: this( 1 )
{
}
public JellyBeans( int amount )
: base( 0x468C )
{
Stackable = true;
}
public JellyBeans( 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();
}
}
}

View file

@ -0,0 +1,40 @@
using System;
using Server;
namespace Server.Items
{
public class Lollipops : CandyCane
{
[Constructable]
public Lollipops()
: this( 1 )
{
}
[Constructable]
public Lollipops( int amount )
: base( 0x468D + Utility.Random( 3 ))
{
Stackable = true;
}
public Lollipops( 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();
}
}
}

View file

@ -0,0 +1,42 @@
using System;
using Server;
namespace Server.Items
{
public class NougatSwirl : CandyCane
{
public override int LabelNumber { get { return 1096936; } } /* nougat swirl */
[Constructable]
public NougatSwirl() : this(1)
{
}
[Constructable]
public NougatSwirl( int amount )
: base( 0x4690 )
{
Stackable = true;
}
public NougatSwirl( 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();
}
}
}

View file

@ -0,0 +1,41 @@
using System;
using Server;
namespace Server.Items
{
public class Taffy : CandyCane
{
public override int LabelNumber { get { return 1096949; } } /* taffy */
[Constructable]
public Taffy()
: this( 1 )
{
}
public Taffy( int amount )
: base( 0x469D )
{
Stackable = true;
}
public Taffy( 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();
}
}
}

View file

@ -0,0 +1,41 @@
using System;
using Server;
namespace Server.Items
{
public class WrappedCandy : CandyCane
{
public override int LabelNumber { get { return 1096950; } } /* wrapped candy */
[Constructable]
public WrappedCandy()
: this( 1 )
{
}
public WrappedCandy( int amount )
: base( 0x469e )
{
Stackable = true;
}
public WrappedCandy( 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();
}
}
}