Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
/* Created by Hammerhand */
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Commands;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
using Server.Items;
|
||||
using Server.Mobiles;
|
||||
namespace Server.Gumps
|
||||
{ public class GhostlyBlacksmithGump : Gump {
|
||||
public static void Initialize() {
|
||||
CommandSystem.Register( "GhostlyBlacksmithGump", AccessLevel.GameMaster, new CommandEventHandler( GhostlyBlacksmithGump_OnCommand ) );
|
||||
}
|
||||
private static void GhostlyBlacksmithGump_OnCommand( CommandEventArgs e )
|
||||
{
|
||||
e.Mobile.SendGump( new GhostlyBlacksmithGump( e.Mobile ) ); }
|
||||
public GhostlyBlacksmithGump( Mobile owner ) : base( 50,50 )
|
||||
{
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
AddPage( 0 );AddImageTiled( 54, 33, 369, 400, 2624 );AddAlphaRegion( 54, 33, 369, 400 );AddImageTiled( 416, 39, 44, 389, 203 );
|
||||
//--------------------------------------Window size bar--------------------------------------------
|
||||
AddImage( 97, 49, 9005 );AddImageTiled( 58, 39, 29, 390, 10460 );AddImageTiled( 412, 37, 31, 389, 10460 );
|
||||
AddLabel( 140, 60, 0x34, "Ghostly Blacksmith Quest" );
|
||||
//----------------------/----------------------------------------------/
|
||||
AddHtml( 107, 140, 300, 230, " < BODY > " +
|
||||
"<BASEFONT COLOR=YELLOW>'Greetings Warrior' says the spirit. <BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>'Once, long ago I crafted a special<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>sword for the battles against evil.<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>The sword was victorious, but now is <BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>broken. I feel its presence may be<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>needed yet again. I need you to go<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>and find the items needed to craft a <BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>new one.Take this Ghostly Smelting Box to combine them<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>into the Energized Sosarian Ingots<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>that are needed to make the weapon.<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW> Just double click the box when you have them all.'<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW> <BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>'The items are Star Metal Fragments,<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>Special Charcoal, Sosarian Ore and an<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>Energizer Crystal.'<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW> <BR>" +
|
||||
"<BASEFONT COLOR=YELLOW> 'The Fragments and Crystal can be found at Exodus Dungeon in Ilshenar.<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>The Charcoal will be outside of Umbra, somewhere in the corrupted forest.<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>And the Sosarian Ore in one of the <BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>Malas mines.'<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW> <BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>'Once you have the ingots, bring them<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>to me and I'll recreate the sword for<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>you. Please hurry, for I fear we havent<BR>" +
|
||||
"<BASEFONT COLOR=YELLOW>much time.'<BR>" +
|
||||
"</BODY>", false, true);
|
||||
//----------------------/----------------------------------------------/
|
||||
AddImage( 430, 9, 10441);AddImageTiled( 40, 38, 17, 391, 9263 );AddImage( 6, 25, 10421 );AddImage( 34, 12, 10420 );AddImageTiled( 94, 25, 342, 15, 10304 );AddImageTiled( 40, 427, 415, 16, 10304 );AddImage( -10, 314, 10402 );AddImage( 56, 150, 10411 );AddImage( 155, 120, 2103 );AddImage( 136, 84, 96 );AddButton( 225, 390, 0xF7, 0xF8, 0, GumpButtonType.Reply, 0 ); }
|
||||
//----------------------/----------------------------------------------/
|
||||
public override void OnResponse( NetState state, RelayInfo info ){ Mobile from = state.Mobile; switch ( info.ButtonID ) { case 0:{ break; }}}}}
|
||||
@@ -0,0 +1,124 @@
|
||||
/* This file was created with
|
||||
Ilutzio's Questmaker. Enjoy! */
|
||||
/* Created by Hammerhand */
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
using Server.ContextMenus;
|
||||
using Server.Gumps;
|
||||
using Server.Misc;
|
||||
using Server.Network;
|
||||
using Server.Spells;
|
||||
namespace Server.Mobiles
|
||||
{[CorpseName( "AGhostlyBlacksmith's Corpse" )]public class AGhostlyBlacksmith : Mobile{public virtual bool IsInvulnerable{ get{ return true; } }
|
||||
[Constructable]public AGhostlyBlacksmith(){
|
||||
|
||||
InitStats( 31, 41, 51 );
|
||||
|
||||
Name = "A Ghostly Blacksmith";
|
||||
|
||||
Title = "";
|
||||
|
||||
Body = 0x190;
|
||||
Hue = 1072;
|
||||
|
||||
|
||||
AddItem( new Server.Items.DeathShroud() );
|
||||
AddItem(new SmithHammer());
|
||||
|
||||
|
||||
|
||||
Blessed = true;
|
||||
CantWalk = true;
|
||||
|
||||
|
||||
Container pack = new Backpack();
|
||||
pack.DropItem( new Gold( 250, 300 ) );
|
||||
pack.Movable = false;
|
||||
AddItem( pack );
|
||||
}
|
||||
|
||||
public AGhostlyBlacksmith(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public override void GetContextMenuEntries(Mobile from, List<ContextMenuEntry> list)
|
||||
{
|
||||
base.GetContextMenuEntries(from, list);
|
||||
list.Add(new AGhostlyBlacksmithEntry(from, this));
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
public class AGhostlyBlacksmithEntry : ContextMenuEntry
|
||||
{
|
||||
private Mobile m_Mobile; private Mobile m_Giver;
|
||||
|
||||
public AGhostlyBlacksmithEntry(Mobile from, Mobile giver)
|
||||
: base(6146, 3)
|
||||
{
|
||||
m_Mobile = from; m_Giver = giver;
|
||||
}
|
||||
|
||||
|
||||
public override void OnClick()
|
||||
{
|
||||
|
||||
if (!(m_Mobile is PlayerMobile)) return;
|
||||
PlayerMobile mobile = (PlayerMobile)m_Mobile;
|
||||
{
|
||||
|
||||
if (!mobile.HasGump(typeof(GhostlyBlacksmithGump)))
|
||||
{
|
||||
mobile.SendGump(new GhostlyBlacksmithGump(mobile));
|
||||
mobile.AddToBackpack(new AncientSmeltingBox());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public override bool OnDragDrop(Mobile from, Item dropped)
|
||||
{
|
||||
|
||||
Mobile m = from;
|
||||
PlayerMobile mobile = m as PlayerMobile;
|
||||
|
||||
if (mobile != null)
|
||||
{
|
||||
if (dropped is EnergizedSosarianIngots)
|
||||
{
|
||||
dropped.Delete();
|
||||
mobile.AddToBackpack(new Gold(2000));
|
||||
mobile.AddToBackpack(new LegendarySwordOfAmbrose());
|
||||
this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "Thank you. May this sword server you well against Evil.", mobile.NetState);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
else
|
||||
{
|
||||
this.PrivateOverheadMessage(MessageType.Regular, 1153, false, "I have no need for this...", mobile.NetState); return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
/* Created by Hammerhand */
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Gumps;
|
||||
using Server.Network;
|
||||
using System.Collections;
|
||||
using Server.Multis;
|
||||
using Server.Mobiles;
|
||||
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
|
||||
public class AncientSmeltingBox : Item
|
||||
{
|
||||
[Constructable]
|
||||
public AncientSmeltingBox() : this( null )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public AncientSmeltingBox ( string name ) : base ( 0x9A8 )
|
||||
{
|
||||
Name = "Ancient Smelting Box";
|
||||
LootType = LootType.Blessed;
|
||||
Hue = 1259;
|
||||
}
|
||||
|
||||
public AncientSmeltingBox(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
public override void OnDoubleClick(Mobile m)
|
||||
{
|
||||
|
||||
Item e = m.Backpack.FindItemByType(typeof(AncientSmeltingBox));
|
||||
|
||||
if (e != null)
|
||||
{
|
||||
|
||||
Item a = m.Backpack.FindItemByType(typeof(SosarianOre));
|
||||
Item b = m.Backpack.FindItemByType(typeof(EnergizerCrystal));
|
||||
Item c = m.Backpack.FindItemByType(typeof(StarMetalFragments));
|
||||
Item d = m.Backpack.FindItemByType(typeof(SpecialCharcoal));
|
||||
|
||||
|
||||
if (e == null || e.Amount < 1 || a == null || a.Amount < 1 || b == null || b.Amount < 1 || c == null || c.Amount < 1 || d == null || d.Amount < 1)
|
||||
{
|
||||
m.SendMessage("You are missing something...");
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
m.AddToBackpack(new EnergizedSosarianIngots());
|
||||
a.Delete();
|
||||
b.Delete();
|
||||
c.Delete();
|
||||
d.Delete();
|
||||
m.SendMessage("You Combine the items into the Energized Sosarian Ingots");
|
||||
this.Delete();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
/* This file was created with
|
||||
Ilutzio's Questmaker. Enjoy! */
|
||||
/* Created by Hammerhand */
|
||||
using System;
|
||||
using Server;
|
||||
namespace Server.Items
|
||||
{
|
||||
public class EnergizedSosarianIngots : Item
|
||||
{
|
||||
[Constructable]
|
||||
public EnergizedSosarianIngots() : this( 1 )
|
||||
{}
|
||||
[Constructable]
|
||||
public EnergizedSosarianIngots( int amountFrom, int amountTo ) : this( Utility.RandomMinMax( amountFrom, amountTo ) )
|
||||
{}
|
||||
[Constructable]
|
||||
|
||||
|
||||
public EnergizedSosarianIngots( int amount ) : base( 7155 )
|
||||
{
|
||||
|
||||
|
||||
|
||||
Name = "Energized Sosarian Ingots";
|
||||
|
||||
|
||||
Hue = 55;
|
||||
|
||||
|
||||
Stackable = false;
|
||||
|
||||
|
||||
Weight = 0.01;
|
||||
Amount = amount;
|
||||
|
||||
}
|
||||
public EnergizedSosarianIngots(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(); }}}
|
||||
@@ -0,0 +1,46 @@
|
||||
/* This file was created with
|
||||
Ilutzio's Questmaker. Enjoy! */
|
||||
/* Created by Hammerhand */
|
||||
using System;
|
||||
using Server;
|
||||
namespace Server.Items
|
||||
{
|
||||
public class EnergizerCrystal : Item
|
||||
{
|
||||
[Constructable]
|
||||
public EnergizerCrystal() : this(1)
|
||||
{}
|
||||
[Constructable]
|
||||
public EnergizerCrystal( int amountFrom, int amountTo ) : this( Utility.RandomMinMax( amountFrom, amountTo ) )
|
||||
{}
|
||||
[Constructable]
|
||||
|
||||
///////////The hexagon value ont he line below is the ItemID
|
||||
public EnergizerCrystal( int amount ) : base( 7961 )
|
||||
{
|
||||
|
||||
|
||||
///////////Item name
|
||||
Name = "Energizer Crystal";
|
||||
|
||||
///////////Item hue
|
||||
Hue = 2953;
|
||||
|
||||
///////////Stackable
|
||||
Stackable = false;
|
||||
|
||||
///////////Weight of one item
|
||||
Weight = 0.01;
|
||||
Amount = amount;
|
||||
|
||||
}
|
||||
public EnergizerCrystal( 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(); }}}
|
||||
@@ -0,0 +1,55 @@
|
||||
// Created with UO Weapon Generator
|
||||
// Created On: 8/12/2007 10:06:14 PM
|
||||
// By: Hammerhand
|
||||
|
||||
using System;
|
||||
using Server;
|
||||
|
||||
namespace Server.Items
|
||||
{
|
||||
public class LegendarySwordOfAmbrose : Longsword
|
||||
{
|
||||
public override int ArtifactRarity{ get{ return 31; } }
|
||||
public override int InitMinHits{ get{ return 255; } }
|
||||
public override int InitMaxHits{ get{ return 255; } }
|
||||
|
||||
[Constructable]
|
||||
public LegendarySwordOfAmbrose()
|
||||
{
|
||||
Name = "Legendary Sword Of Ambrose";
|
||||
Hue = 2401;
|
||||
Slayer = SlayerName.DaemonDismissal;
|
||||
Attributes.SpellChanneling = 1;
|
||||
Attributes.BonusHits = 20;
|
||||
Attributes.RegenHits = 2;
|
||||
Attributes.RegenStam = 2;
|
||||
WeaponAttributes.UseBestSkill = 1;
|
||||
WeaponAttributes.HitLeechStam = 40;
|
||||
Attributes.AttackChance = 18;
|
||||
Attributes.DefendChance = 15;
|
||||
Attributes.WeaponDamage = 65;
|
||||
Attributes.WeaponSpeed = 35;
|
||||
Attributes.ReflectPhysical = 25;
|
||||
WeaponAttributes.ResistPhysicalBonus = 15;
|
||||
WeaponAttributes.DurabilityBonus = 15;
|
||||
WeaponAttributes.SelfRepair = 65;
|
||||
WeaponAttributes.HitLightning = 56;
|
||||
}
|
||||
|
||||
public LegendarySwordOfAmbrose(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();
|
||||
}
|
||||
} // End Class
|
||||
} // End Namespace
|
||||
@@ -0,0 +1,46 @@
|
||||
/* This file was created with
|
||||
Ilutzio's Questmaker. Enjoy! */
|
||||
/* Created by Hammerhand */
|
||||
using System;
|
||||
using Server;
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SosarianOre : Item
|
||||
{
|
||||
[Constructable]
|
||||
public SosarianOre() : this( 1 )
|
||||
{}
|
||||
[Constructable]
|
||||
public SosarianOre( int amountFrom, int amountTo ) : this( Utility.RandomMinMax( amountFrom, amountTo ) )
|
||||
{}
|
||||
[Constructable]
|
||||
|
||||
|
||||
public SosarianOre( int amount ) : base( 6584 )
|
||||
{
|
||||
|
||||
|
||||
|
||||
Name = "SosarianOre";
|
||||
|
||||
|
||||
Hue = 55;
|
||||
|
||||
|
||||
Stackable = false;
|
||||
|
||||
|
||||
Weight = 0.01;
|
||||
Amount = amount;
|
||||
|
||||
}
|
||||
public SosarianOre( 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(); }}}
|
||||
@@ -0,0 +1,46 @@
|
||||
/* This file was created with
|
||||
Ilutzio's Questmaker. Enjoy! */
|
||||
/* Created by Hammerhand */
|
||||
using System;
|
||||
using Server;
|
||||
namespace Server.Items
|
||||
{
|
||||
public class SpecialCharcoal : Item
|
||||
{
|
||||
[Constructable]
|
||||
public SpecialCharcoal(): this(1)
|
||||
{}
|
||||
[Constructable]
|
||||
public SpecialCharcoal( int amountFrom, int amountTo ) : this( Utility.RandomMinMax( amountFrom, amountTo ) )
|
||||
{}
|
||||
[Constructable]
|
||||
|
||||
|
||||
public SpecialCharcoal( int amount ) : base( 3979 )
|
||||
{
|
||||
|
||||
|
||||
|
||||
Name = "Special Charcoal";
|
||||
|
||||
|
||||
Hue = 0;
|
||||
|
||||
|
||||
Stackable = false;
|
||||
|
||||
|
||||
Weight = 0.01;
|
||||
Amount = amount;
|
||||
|
||||
}
|
||||
public SpecialCharcoal( 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(); }}}
|
||||
@@ -0,0 +1,45 @@
|
||||
/* This file was created with
|
||||
Ilutzio's Questmaker. Enjoy! */
|
||||
/* Created by Hammerhand */
|
||||
using System;
|
||||
using Server;
|
||||
namespace Server.Items
|
||||
{
|
||||
public class StarMetalFragments : Item
|
||||
{
|
||||
[Constructable]
|
||||
public StarMetalFragments(): this(1)
|
||||
{}
|
||||
[Constructable]
|
||||
public StarMetalFragments( int amountFrom, int amountTo ) : this( Utility.RandomMinMax( amountFrom, amountTo ) )
|
||||
{}
|
||||
[Constructable]
|
||||
|
||||
public StarMetalFragments( int amount ) : base( 3977 )
|
||||
{
|
||||
|
||||
|
||||
|
||||
Name = "Star Metal Fragments";
|
||||
|
||||
|
||||
Hue = 2413;
|
||||
|
||||
|
||||
Stackable = false;
|
||||
|
||||
|
||||
Weight = 0.01;
|
||||
Amount = amount;
|
||||
|
||||
}
|
||||
public StarMetalFragments( 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(); }}}
|
||||
@@ -0,0 +1,80 @@
|
||||
/* Created by Hammerhand */
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an ancient reapers corpse" )]
|
||||
public class AncientReaper : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public AncientReaper() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an ancient reaper";
|
||||
Body = 47;
|
||||
BaseSoundID = 442;
|
||||
Hue = 2411;
|
||||
|
||||
SetStr( 150, 375 );
|
||||
SetDex( 100, 175 );
|
||||
SetInt( 101, 250 );
|
||||
|
||||
SetHits( 1500, 1850 );
|
||||
SetStam( 100 );
|
||||
|
||||
SetDamage( 20, 43 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 80 );
|
||||
SetDamageType( ResistanceType.Poison, 20 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 35, 45 );
|
||||
SetResistance( ResistanceType.Fire, 15, 25 );
|
||||
SetResistance( ResistanceType.Cold, 10, 20 );
|
||||
SetResistance( ResistanceType.Poison, 40, 50 );
|
||||
SetResistance( ResistanceType.Energy, 30, 40 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 90.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 90.1, 100.0 );
|
||||
SetSkill( SkillName.MagicResist, 100.1, 125.0 );
|
||||
SetSkill( SkillName.Tactics, 45.1, 60.0 );
|
||||
SetSkill( SkillName.Wrestling, 50.1, 60.0 );
|
||||
|
||||
Fame = 3500;
|
||||
Karma = -3500;
|
||||
|
||||
VirtualArmor = 40;
|
||||
|
||||
switch (Utility.Random(5))
|
||||
{
|
||||
case 0: PackItem(new SpecialCharcoal()); break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
}
|
||||
|
||||
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
|
||||
public override int TreasureMapLevel{ get{ return 2; } }
|
||||
public override bool DisallowAllMoves{ get{ return true; } }
|
||||
|
||||
public AncientReaper( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
/* Created by Hammerhand */
|
||||
using System;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "an energized elemental corpse" )]
|
||||
public class EnergizedElemental : BaseCreature
|
||||
{
|
||||
[Constructable]
|
||||
public EnergizedElemental () : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "an energized elemental";
|
||||
Body = 159;
|
||||
BaseSoundID = 278;
|
||||
Hue = 2953;
|
||||
|
||||
SetStr( 800, 928 );
|
||||
SetDex( 166, 185 );
|
||||
SetInt( 500, 750 );
|
||||
|
||||
SetHits( 1516, 1869 );
|
||||
|
||||
SetDamage( 38, 47 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 50 );
|
||||
SetDamageType( ResistanceType.Poison, 50 );
|
||||
SetDamageType( ResistanceType.Energy, 50 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 55, 65 );
|
||||
SetResistance( ResistanceType.Fire, 20, 30 );
|
||||
SetResistance( ResistanceType.Cold, 40, 50 );
|
||||
SetResistance( ResistanceType.Poison, 50, 60 );
|
||||
SetResistance( ResistanceType.Energy, 30, 40 );
|
||||
|
||||
SetSkill( SkillName.EvalInt, 85.1, 100.0 );
|
||||
SetSkill( SkillName.Magery, 85.1, 100.0 );
|
||||
SetSkill( SkillName.Meditation, 10.4, 50.0 );
|
||||
SetSkill( SkillName.MagicResist, 80.1, 95.0 );
|
||||
SetSkill( SkillName.Tactics, 80.1, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 80.1, 100.0 );
|
||||
|
||||
Fame = 12500;
|
||||
Karma = -12500;
|
||||
|
||||
VirtualArmor = 60;
|
||||
|
||||
switch (Utility.Random(5))
|
||||
{
|
||||
case 0: PackItem(new EnergizerCrystal()); break;
|
||||
}
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.FilthyRich );
|
||||
AddLoot( LootPack.Rich );
|
||||
}
|
||||
|
||||
public override int TreasureMapLevel{ get{ return 5; } }
|
||||
|
||||
public EnergizedElemental( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
/* Created by Hammerhand */
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Server.Items;
|
||||
using Server.Targeting;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a Sosarian elemental corpse" )]
|
||||
public class SosarianElemental : BaseCreature
|
||||
{
|
||||
public override double DispelDifficulty{ get{ return 117.5; } }
|
||||
public override double DispelFocus{ get{ return 45.0; } }
|
||||
|
||||
[Constructable]
|
||||
public SosarianElemental() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
|
||||
{
|
||||
Name = "a Sorarian elemental";
|
||||
Body = 14;
|
||||
BaseSoundID = 268;
|
||||
Hue = 55;
|
||||
|
||||
SetStr( 1260, 1550 );
|
||||
SetDex( 150, 185 );
|
||||
SetInt( 1200, 1392 );
|
||||
|
||||
SetHits( 600, 930 );
|
||||
|
||||
SetDamage( 28, 37 );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, 30, 35 );
|
||||
SetResistance( ResistanceType.Fire, 10, 20 );
|
||||
SetResistance( ResistanceType.Cold, 10, 20 );
|
||||
SetResistance( ResistanceType.Poison, 15, 25 );
|
||||
SetResistance( ResistanceType.Energy, 15, 25 );
|
||||
|
||||
SetSkill( SkillName.MagicResist, 50.1, 95.0 );
|
||||
SetSkill( SkillName.Tactics, 60.1, 100.0 );
|
||||
SetSkill( SkillName.Wrestling, 60.1, 100.0 );
|
||||
|
||||
Fame = 3500;
|
||||
Karma = -3500;
|
||||
|
||||
VirtualArmor = 34;
|
||||
ControlSlots = 2;
|
||||
|
||||
switch (Utility.Random(5))
|
||||
{
|
||||
case 0: PackItem(new SosarianOre()); break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot( LootPack.Average );
|
||||
AddLoot( LootPack.Meager );
|
||||
}
|
||||
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
public override int TreasureMapLevel{ get{ return 1; } }
|
||||
|
||||
public SosarianElemental( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
/* Created by Hammerhand */
|
||||
using System;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[CorpseName( "a star metal golem corpse" )]
|
||||
public class StarMetalGolem : BaseCreature
|
||||
{
|
||||
private bool m_Stunning;
|
||||
|
||||
public override bool IsScaredOfScaryThings{ get{ return false; } }
|
||||
public override bool IsScaryToPets{ get{ return true; } }
|
||||
|
||||
[Constructable]
|
||||
public StarMetalGolem() : this( false, 1.0 )
|
||||
{
|
||||
}
|
||||
|
||||
[Constructable]
|
||||
public StarMetalGolem( bool summoned, double scalar ) : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.4, 0.8 )
|
||||
{
|
||||
Name = "a Star Metal golem";
|
||||
Body = 752;
|
||||
|
||||
if ( summoned )
|
||||
Hue = 2413;
|
||||
|
||||
SetStr( (int)(500*scalar), (int)(750*scalar) );
|
||||
SetDex( (int)(176*scalar), (int)(300*scalar) );
|
||||
SetInt( (int)(400*scalar), (int)(650*scalar) );
|
||||
|
||||
SetHits( (int)(1510*scalar), (int)(2100*scalar) );
|
||||
|
||||
SetDamage( (int)(36*scalar), (int)(50*scalar) );
|
||||
|
||||
SetDamageType( ResistanceType.Physical, 100 );
|
||||
|
||||
SetResistance( ResistanceType.Physical, (int)(50*scalar), (int)(65*scalar) );
|
||||
|
||||
if ( summoned )
|
||||
SetResistance( ResistanceType.Fire, (int)(50*scalar), (int)(60*scalar) );
|
||||
else
|
||||
SetResistance( ResistanceType.Fire, (int)(100*scalar) );
|
||||
|
||||
SetResistance( ResistanceType.Cold, (int)(10*scalar), (int)(30*scalar) );
|
||||
SetResistance( ResistanceType.Poison, (int)(10*scalar), (int)(25*scalar) );
|
||||
SetResistance( ResistanceType.Energy, (int)(30*scalar), (int)(40*scalar) );
|
||||
|
||||
SetSkill( SkillName.MagicResist, (150.1*scalar), (190.0*scalar) );
|
||||
SetSkill( SkillName.Tactics, (60.1*scalar), (100.0*scalar) );
|
||||
SetSkill( SkillName.Wrestling, (60.1*scalar), (100.0*scalar) );
|
||||
|
||||
if ( summoned )
|
||||
{
|
||||
Fame = 10;
|
||||
Karma = 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
Fame = 3500;
|
||||
Karma = -3500;
|
||||
}
|
||||
|
||||
if ( !summoned )
|
||||
{
|
||||
switch (Utility.Random(5))
|
||||
{
|
||||
case 0: PackItem(new StarMetalFragments()); break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
ControlSlots = 4;
|
||||
}
|
||||
|
||||
public override bool DeleteOnRelease{ get{ return true; } }
|
||||
|
||||
public override int GetAngerSound()
|
||||
{
|
||||
return 541;
|
||||
}
|
||||
|
||||
public override int GetIdleSound()
|
||||
{
|
||||
if ( !Controlled )
|
||||
return 542;
|
||||
|
||||
return base.GetIdleSound();
|
||||
}
|
||||
|
||||
public override int GetDeathSound()
|
||||
{
|
||||
if ( !Controlled )
|
||||
return 545;
|
||||
|
||||
return base.GetDeathSound();
|
||||
}
|
||||
|
||||
public override int GetAttackSound()
|
||||
{
|
||||
return 562;
|
||||
}
|
||||
|
||||
public override int GetHurtSound()
|
||||
{
|
||||
if ( Controlled )
|
||||
return 320;
|
||||
|
||||
return base.GetHurtSound();
|
||||
}
|
||||
|
||||
public override bool AutoDispel{ get{ return !Controlled; } }
|
||||
public override bool BleedImmune{ get{ return true; } }
|
||||
|
||||
public override void OnGaveMeleeAttack( Mobile defender )
|
||||
{
|
||||
base.OnGaveMeleeAttack( defender );
|
||||
|
||||
if ( !m_Stunning && 0.3 > Utility.RandomDouble() )
|
||||
{
|
||||
m_Stunning = true;
|
||||
|
||||
defender.Animate( 21, 6, 1, true, false, 0 );
|
||||
this.PlaySound( 0xEE );
|
||||
defender.LocalOverheadMessage( MessageType.Regular, 0x3B2, false, "You have been stunned by a colossal blow!" );
|
||||
|
||||
BaseWeapon weapon = this.Weapon as BaseWeapon;
|
||||
if ( weapon != null )
|
||||
weapon.OnHit( this, defender );
|
||||
|
||||
if ( defender.Alive )
|
||||
{
|
||||
defender.Frozen = true;
|
||||
Timer.DelayCall( TimeSpan.FromSeconds( 5.0 ), new TimerStateCallback( Recover_Callback ), defender );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Recover_Callback( object state )
|
||||
{
|
||||
Mobile defender = state as Mobile;
|
||||
|
||||
if ( defender != null )
|
||||
{
|
||||
defender.Frozen = false;
|
||||
defender.Combatant = null;
|
||||
defender.LocalOverheadMessage( MessageType.Regular, 0x3B2, false, "You recover your senses." );
|
||||
}
|
||||
|
||||
m_Stunning = false;
|
||||
}
|
||||
|
||||
public override void OnDamage( int amount, Mobile from, bool willKill )
|
||||
{
|
||||
if ( Controlled || Summoned )
|
||||
{
|
||||
Mobile master = ( this.ControlMaster );
|
||||
|
||||
if ( master == null )
|
||||
master = this.SummonMaster;
|
||||
|
||||
if ( master != null && master.Player && master.Map == this.Map && master.InRange( Location, 20 ) )
|
||||
{
|
||||
if ( master.Mana >= amount )
|
||||
{
|
||||
master.Mana -= amount;
|
||||
}
|
||||
else
|
||||
{
|
||||
amount -= master.Mana;
|
||||
master.Mana = 0;
|
||||
master.Damage( amount );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
base.OnDamage( amount, from, willKill );
|
||||
}
|
||||
|
||||
public override bool BardImmune{ get{ return !Core.AOS || Controlled; } }
|
||||
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
|
||||
|
||||
public StarMetalGolem( 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user