Overwrite

Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
Unstable Kitsune
2023-11-28 23:20:26 -05:00
parent 3cd54811de
commit b918192e4e
11608 changed files with 2644205 additions and 47 deletions

View File

@@ -0,0 +1,118 @@
//Ageless House Deed For RunUO SVN
//By DxMonkey - AKA - Tresdni
//Ultima Eclipse - www.ultimaeclipse.com
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server.Multis;
namespace Server.Items
{
public class AgelessHouseTarget : Target
{
private AgelessHouseDeed m_Deed;
public AgelessHouseTarget( AgelessHouseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( m_Deed.Deleted || m_Deed.RootParent != from )
return;
if ( target is HouseSign )
{
HouseSign item = (HouseSign)target;
if ( item.RestrictDecay == true )
{
from.SendMessage ( "This house is already ageless" );
}
else
{
item.RestrictDecay = true;
from.SendMessage ( "The house is now ageless for 30 Days" );
Timer m_timer = new AgelessHouseTimer( item );
m_timer.Start();
m_Deed.Delete(); // Delete the ageless house deed
}
}
else
{
from.SendMessage ( "You must target a house sign!" );
}
}
}
public class AgelessHouseTimer : Timer
{
private HouseSign sign;
public AgelessHouseTimer( HouseSign h ) : base( TimeSpan.FromDays( 30 ) )
{
sign = h;
Priority = TimerPriority.OneSecond;
}
protected override void OnTick()
{
sign.RestrictDecay = false;
}
}
public class AgelessHouseDeed : Item
{
[Constructable]
public AgelessHouseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Hue = 1159;
LootType = LootType.Blessed;
Name = "An Ageless House Deed ( 30 Days )";
}
public AgelessHouseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override void OnDoubleClick( Mobile from ) // Override double click of the deed to call our target
{
if ( !IsChildOf( from.Backpack ) ) // Make sure its in their pack
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage ( "Which house would you like to make ageless?" );
from.Target = new AgelessHouseTarget( this ); // Call our target
}
}
}
}

View File

@@ -0,0 +1,600 @@
///////////////////
// By Nerun //
// Avatar System //
// v.0.9.3 //
///////////////////
using System;
using System.Net;
using Server;
using Server.Accounting;
using Server.Gumps;
using Server.Items;
using Server.Mobiles;
using Server.Network;
namespace Server.Items
{
public class ArtifactDeed : Item
{
[Constructable]
public ArtifactDeed() : this( null )
{
}
[Constructable]
public ArtifactDeed ( string name ) : base ( 0x14F0 )
{
Name = "Artifact Deed";
LootType = LootType.Blessed;
Hue = 1172;
}
public ArtifactDeed ( Serial serial ) : base ( serial )
{
}
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendGump( new ArtifactGump( 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();
}
}
}
namespace Server.Gumps
{
public class ArtifactGump : Gump
{
private Mobile m_Mobile;
private Item m_Deed;
public ArtifactGump( Mobile from, Item deed ) : base( 30, 20 )
{
m_Mobile = from;
m_Deed = deed;
AddPage( 1 );
AddBackground( 0, 0, 300, 400, 3000 );
AddBackground( 8, 8, 284, 384, 5120 );
AddLabel( 40, 12, 37, "Artifact List" );
Account a = from.Account as Account;
AddLabel( 52, 40, 37, "Weapons" );
AddButton( 12, 40, 4005, 4007, 0, GumpButtonType.Page, 2 );
AddLabel( 52, 60, 37, "Armor" );
AddButton( 12, 60, 4005, 4007, 0, GumpButtonType.Page, 3 );
AddLabel( 52, 80, 37, "Jewelery" );
AddButton( 12, 80, 4005, 4007, 10, GumpButtonType.Page, 4 );
AddLabel( 52, 100, 37, "Shields" );
AddButton( 12, 100, 4005, 4007, 0, GumpButtonType.Page, 5 );
AddLabel( 52, 120, 37, "Hats & Masks" );
AddButton( 12, 120, 4005, 4007, 0, GumpButtonType.Page, 6 );
AddLabel( 52, 360, 37, "Close" );
AddButton( 12, 360, 4005, 4007, 0, GumpButtonType.Reply, 0 );
AddPage( 2 );
AddBackground( 0, 0, 300, 400, 3000 );
AddBackground( 8, 8, 284, 384, 5120 );
AddLabel( 40, 12, 37, "Weapons List" );
AddLabel( 52, 40, 37, "Axe of the Heavens" );
AddButton( 12, 40, 4005, 4007, 1, GumpButtonType.Reply, 1 );
AddLabel( 52, 60, 37, "Blade of Insanity" );
AddButton( 12, 60, 4005, 4007, 2, GumpButtonType.Reply, 2 );
AddLabel( 52, 80, 37, "Blade of the Righteous" );
AddButton( 12, 80, 4005, 4007, 3, GumpButtonType.Reply, 3 );
AddLabel( 52, 100, 37, "Bone Crusher" );
AddButton( 12, 100, 4005, 4007, 4, GumpButtonType.Reply, 4 );
AddLabel( 52, 120, 37, "Breath of the Dead" );
AddButton( 12, 120, 4005, 4007, 5, GumpButtonType.Reply, 5 );
AddLabel( 52, 140, 37, "Frostbringer" );
AddButton( 12, 140, 4005, 4007, 6, GumpButtonType.Reply, 6 );
AddLabel( 52, 160, 37, "Legacy of the Dread Lord" );
AddButton( 12, 160, 4005, 4007, 7, GumpButtonType.Reply, 7 );
AddLabel( 52, 180, 37, "Serpent's Fang" );
AddButton( 12, 180, 4005, 4007, 8, GumpButtonType.Reply, 8 );
AddLabel( 52, 200, 37, "Staff of the Magi" );
AddButton( 12, 200, 4005, 4007, 9, GumpButtonType.Reply, 9 );
AddLabel( 52, 220, 37, "The Beserker's Maul" );
AddButton( 12, 220, 4005, 4007, 10, GumpButtonType.Reply, 10 );
AddLabel( 52, 240, 37, "The Dragon Slayer" );
AddButton( 12, 240, 4005, 4007, 11, GumpButtonType.Reply, 11 );
AddLabel( 52, 260, 37, "Titans Hammer" );
AddButton( 12, 260, 4005, 4007, 12, GumpButtonType.Reply, 12 );
AddLabel( 52, 280, 37, "The Taskmaster" );
AddButton( 12, 280, 4005, 4007, 13, GumpButtonType.Reply, 13 );
AddLabel( 52, 300, 37, "Zyronic Claw" );
AddButton( 12, 300, 4005, 4007, 14, GumpButtonType.Reply, 14 );
AddLabel( 52, 320, 37, "The Dryad Bow" );
AddButton( 12, 320, 4005, 4007, 15, GumpButtonType.Reply, 15 );
AddLabel( 52, 360, 37, "Main Menu" );
AddButton( 12, 360, 4005, 4007, 0, GumpButtonType.Page, 1 );
AddPage( 3 );
AddBackground( 0, 0, 300, 400, 3000 );
AddBackground( 8, 8, 284, 384, 5120 );
AddLabel( 40, 12, 37, "Armor List" );
AddLabel( 52, 40, 37, "Armor of Fortune" );
AddButton( 12, 40, 4005, 4007, 16, GumpButtonType.Reply, 1 );
AddLabel( 52, 60, 37, "Gauntlets of Nobility" );
AddButton( 12, 60, 4005, 4007, 17, GumpButtonType.Reply, 2 );
AddLabel( 52, 80, 37, "Helm of Insight" );
AddButton( 12, 80, 4005, 4007, 18, GumpButtonType.Reply, 3 );
AddLabel( 52, 100, 37, "Holy Knight's Breastplate" );
AddButton( 12, 100, 4005, 4007, 19, GumpButtonType.Reply, 4 );
AddLabel( 52, 120, 37, "Jackal's Collar" );
AddButton( 12, 120, 4005, 4007, 20, GumpButtonType.Reply, 5 );
AddLabel( 52, 140, 37, "Leggings of Bane" );
AddButton( 12, 140, 4005, 4007, 21, GumpButtonType.Reply, 6 );
AddLabel( 52, 160, 37, "Midnight Bracers" );
AddButton( 12, 160, 4005, 4007, 22, GumpButtonType.Reply, 7 );
AddLabel( 52, 180, 37, "Ornate Crown of the Harrower" );
AddButton( 12, 180, 4005, 4007, 23, GumpButtonType.Reply, 8 );
AddLabel( 52, 200, 37, "Shadow Dancer Leggings" );
AddButton( 12, 200, 4005, 4007, 24, GumpButtonType.Reply, 9 );
AddLabel( 52, 220, 37, "The Inquisitor's Resolution" );
AddButton( 12, 220, 4005, 4007, 25, GumpButtonType.Reply, 10 );
AddLabel( 52, 240, 37, "Tunic of Fire" );
AddButton( 12, 240, 4005, 4007, 26, GumpButtonType.Reply, 11 );
AddLabel( 52, 260, 37, "Voice of the Fallen King" );
AddButton( 12, 260, 4005, 4007, 27, GumpButtonType.Reply, 12 );
AddLabel( 52, 360, 37, "Main Menu" );
AddButton( 12, 360, 4005, 4007, 0, GumpButtonType.Page, 1 );
AddPage( 4 );
AddBackground( 0, 0, 300, 400, 3000 );
AddBackground( 8, 8, 284, 384, 5120 );
AddLabel( 40, 12, 37, "Jewelery List" );
AddLabel( 52, 40, 37, "Bracelet of Health" );
AddButton( 12, 40, 4005, 4007, 29, GumpButtonType.Reply, 1 );
AddLabel( 52, 60, 37, "Ornament of the Magician" );
AddButton( 12, 60, 4005, 4007, 30, GumpButtonType.Reply, 2 );
AddLabel( 52, 80, 37, "Ring of the Elements" );
AddButton( 12, 80, 4005, 4007, 31, GumpButtonType.Reply, 3 );
AddLabel( 52, 100, 37, "Ring of the Vile" );
AddButton( 12, 100, 4005, 4007, 32, GumpButtonType.Reply, 4 );
AddLabel( 52, 360, 37, "Main Menu" );
AddButton( 12, 360, 4005, 4007, 0, GumpButtonType.Page, 1 );
AddPage( 5 );
AddBackground( 0, 0, 300, 400, 3000 );
AddBackground( 8, 8, 284, 384, 5120 );
AddLabel( 40, 12, 37, "Shields List" );
AddLabel( 52, 40, 37, "<22>gis" );
AddButton( 12, 40, 4005, 4007, 34, GumpButtonType.Reply, 1 );
AddLabel( 52, 60, 37, "Arcane Shield" );
AddButton( 12, 60, 4005, 4007, 35, GumpButtonType.Reply, 2 );
AddLabel( 52, 360, 37, "Main Menu" );
AddButton( 12, 360, 4005, 4007, 0, GumpButtonType.Page, 1 );
AddPage( 6 );
AddBackground( 0, 0, 300, 400, 3000 );
AddBackground( 8, 8, 284, 384, 5120 );
AddLabel( 40, 12, 37, "Hats & Masks List" );
AddLabel( 52, 40, 37, "Divine Countenance" );
AddButton( 12, 40, 4005, 4007, 36, GumpButtonType.Reply, 1 );
AddLabel( 52, 60, 37, "Hat of the Magi" );
AddButton( 12, 60, 4005, 4007, 37, GumpButtonType.Reply, 2 );
AddLabel( 52, 80, 37, "Hunters Headdress" );
AddButton( 12, 80, 4005, 4007, 38, GumpButtonType.Reply, 3 );
AddLabel( 52, 100, 37, "Spirit of the Totem" );
AddButton( 12, 100, 4005, 4007, 39, GumpButtonType.Reply, 4 );
AddLabel( 52, 360, 37, "Main Menu" );
AddButton( 12, 360, 4005, 4007, 0, GumpButtonType.Page, 1 );
}
public override void OnResponse( NetState state, RelayInfo info )
{
Mobile from = state.Mobile;
switch ( info.ButtonID )
{
case 0: //Close Gump
{
from.CloseGump( typeof( ArtifactGump ) );
break;
}
case 1: // Axe of the Heavens
{
Item item = new AxeOfTheHeavens();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 2: // Blade of insanity
{
Item item = new BladeOfInsanity();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 3: //Blade of the Righteous
{
Item item = new BladeOfTheRighteous();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 4: //Bone Crusher
{
Item item = new BoneCrusher();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 5: //Breath of the Dead
{
Item item = new BreathOfTheDead();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 6: //Frostbringer
{
Item item = new Frostbringer();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 7: //Legacy of the Dread Lord
{
Item item = new LegacyOfTheDreadLord();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 8: //Serpent's Fang
{
Item item = new SerpentsFang();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 9: //Staff of the Magi
{
Item item = new StaffOfTheMagi();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 10: //The Beserker's Maul
{
Item item = new TheBeserkersMaul();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 11: //The Dragon Slayer
{
Item item = new TheDragonSlayer();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 12: //Titans Hammer
{
Item item = new TitansHammer();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 13: //The Taskmaster
{
Item item = new TheTaskmaster();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 14: //Zyronic Claw
{
Item item = new ZyronicClaw();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 15: //The Dryad Bow
{
Item item = new TheDryadBow();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 16: //Armor of Fortune
{
Item item = new ArmorOfFortune();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 17: //Gauntlets of Nobility
{
Item item = new GauntletsOfNobility();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 18: //Helm of Insight
{
Item item = new HelmOfInsight();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 19: //Holy Knights Breastplate
{
Item item = new HolyKnightsBreastplate();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 20: //Jackal's Collar
{
Item item = new JackalsCollar();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 21: //Leggings of Bane
{
Item item = new LeggingsOfBane();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 22: //Midnight Bracers
{
Item item = new MidnightBracers();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 23: //Ornate Crown of the Harrower
{
Item item = new OrnateCrownOfTheHarrower();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 24: //Shadow Dancer Leggings
{
Item item = new ShadowDancerLeggings();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 25: //Inquisitor's Resolution
{
Item item = new InquisitorsResolution();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 26: //Tunic of Fire
{
Item item = new TunicOfFire();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 27: //Voice of the Fallen King
{
Item item = new VoiceOfTheFallenKing();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 29: //Bracelet of Health
{
Item item = new BraceletOfHealth();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 30: //Ornament of the Magician
{
Item item = new OrnamentOfTheMagician();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 31: //Ring of the Elements
{
Item item = new RingOfTheElements();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 32: //Ring of the Vile
{
Item item = new RingOfTheVile();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 34: //Aegis
{
Item item = new Aegis();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 35: //Arcane Shield
{
Item item = new ArcaneShield();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 36: //Divine Countenance
{
Item item = new DivineCountenance();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 37: //Hat of the Magi
{
Item item = new HatOfTheMagi();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 38: //Hunters Headdress
{
Item item = new HuntersHeaddress();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
case 39: //Spirit of the Totem
{
Item item = new SpiritOfTheTotem();
item.LootType = LootType.Blessed;
from.AddToBackpack( item );
from.CloseGump( typeof( ArtifactGump ) );
m_Deed.Delete();
break;
}
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add AttackChance to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class AttackChanceIncreaseTarget : Target
{
private AttackChanceIncreaseDeed m_Deed;
public AttackChanceIncreaseTarget( AttackChanceIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int AttackChanceAdd = 1; //Amount of Attack Chance to be added
int AttackChanceCap = 100; //Limit of Attack Chance that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Attack Chance to that item there!" );
}
else
{
AttackChanceAdd = AttackChanceToAdd(((BaseWeapon)item).Attributes.AttackChance, AttackChanceAdd, AttackChanceCap, from);
if( AttackChanceAdd > 0 )
{
((BaseWeapon)item).Attributes.AttackChance += AttackChanceAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Attack Chance to that item there!" );
}
else
{
AttackChanceAdd = AttackChanceToAdd(((BaseArmor)item).Attributes.AttackChance, AttackChanceAdd, AttackChanceCap, from);
if( AttackChanceAdd > 0 )
{
((BaseArmor)item).Attributes.AttackChance += AttackChanceAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Attack Chance to that item there!" );
}
else
{
AttackChanceAdd = AttackChanceToAdd(((BaseClothing)item).Attributes.AttackChance, AttackChanceAdd, AttackChanceCap, from);
if( AttackChanceAdd > 0 )
{
((BaseClothing)item).Attributes.AttackChance += AttackChanceAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Attack Chance to that item there!" );
}
else
{
AttackChanceAdd = AttackChanceToAdd(((BaseTalisman)item).Attributes.AttackChance, AttackChanceAdd, AttackChanceCap, from);
if( AttackChanceAdd > 0 )
{
((BaseTalisman)item).Attributes.AttackChance += AttackChanceAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Attack Chance to that item there!" );
}
else
{
AttackChanceAdd = AttackChanceToAdd(((BaseJewel)item).Attributes.AttackChance, AttackChanceAdd, AttackChanceCap, from);
if( AttackChanceAdd > 0 )
{
((BaseJewel)item).Attributes.AttackChance += AttackChanceAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Attack Chance to that item there!" );
}
else
{
AttackChanceAdd = AttackChanceToAdd(((Spellbook)item).Attributes.AttackChance, AttackChanceAdd, AttackChanceCap, from);
if( AttackChanceAdd > 0 )
{
((Spellbook)item).Attributes.AttackChance += AttackChanceAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Attack Chance to that item there!" );
}
else
{
AttackChanceAdd = AttackChanceToAdd(((BaseQuiver)item).Attributes.AttackChance, AttackChanceAdd, AttackChanceCap, from);
if( AttackChanceAdd > 0 )
{
((BaseQuiver)item).Attributes.AttackChance += AttackChanceAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int AttackChanceToAdd(int itemAttackChance, int AttackChanceAdd ,int AttackChanceCap, Mobile from)
{
int ret = 0;
if(itemAttackChance < AttackChanceCap)
{
if( (itemAttackChance + AttackChanceAdd ) > AttackChanceCap )
{
ret = AttackChanceAdd - ( (itemAttackChance + AttackChanceAdd ) - AttackChanceCap );
from.SendMessage("You increase the Attack Chance on the item and it has now reached it's max. +"+ret+" Attack Chance has been added.");
}
else{
from.SendMessage( "You increase the Attack Chance on the item. +"+AttackChanceAdd+" Attack Chance has been added." );
ret = AttackChanceAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Attack Chance." );
}
return ret;
}
}
public class AttackChanceIncreaseDeed : Item
{
[Constructable]
public AttackChanceIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Attack Chance Increase Deed";
LootType = LootType.Blessed;
}
public AttackChanceIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Attack Chance?" );
from.Target = new AttackChanceIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,67 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class BalancingTarget : Target
{
private BalancingDeed m_Deed;
public BalancingTarget( BalancingDeed Deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = Deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseRanged )
{
Item item = (Item)target;
if ( ((BaseRanged)item).Balanced == true ) from.SendMessage( "That is already balanced!");
else if( item.RootParent != from ) from.SendMessage( "You must have the weapon in your backpack!" );
else
{
((BaseRanged)item).Balanced = true;
from.SendMessage( "You successfully make your weapon balanced." );
m_Deed.Delete();
}
}
else from.SendMessage( "You can only balance archery weapons!" );
}
// else from.SendMessage( "You can not balance that item!" );
}
}
public class BalancingDeed : Item
{
[Constructable]
public BalancingDeed() : base( 0x14F0 )
{
Weight = 0;
LootType = LootType.Blessed;
Name = "A Weapon Balancing Deed";
Hue = 1266;
}
public BalancingDeed(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();}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What item would you like to balance?" );
from.Target = new BalancingTarget( this );
}
}
}
// }

View File

@@ -0,0 +1,125 @@
//Add BattleLust to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class BattleLustIncreaseTarget : Target
{
private BattleLustIncreaseDeed m_Deed;
public BattleLustIncreaseTarget( BattleLustIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int BattleLustAdd = 1; //Amount of BattleLust to be added
int BattleLustCap = 1; //Limit of BattleLust that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = false;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add BattleLust to that item there!" );
}
else
{
BattleLustAdd = BattleLustToAdd(((BaseWeapon)item).WeaponAttributes.BattleLust, BattleLustAdd, BattleLustCap, from);
if( BattleLustAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.BattleLust += BattleLustAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int BattleLustToAdd(int itemBattleLust, int BattleLustAdd ,int BattleLustCap, Mobile from)
{
int ret = 0;
if(itemBattleLust < BattleLustCap)
{
if( (itemBattleLust + BattleLustAdd ) > BattleLustCap )
{
ret = BattleLustAdd - ( (itemBattleLust + BattleLustAdd ) - BattleLustCap );
from.SendMessage("You increase the BattleLust on the item and it has now reached it's max. +"+ret+" BattleLust has been added.");
}
else{
from.SendMessage( "You increase the BattleLust on the item. +"+BattleLustAdd+" BattleLust has been added." );
ret = BattleLustAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of BattleLust." );
}
return ret;
}
}
public class BattleLustIncreaseDeed : Item
{
[Constructable]
public BattleLustIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "BattleLust Increase Deed";
LootType = LootType.Blessed;
}
public BattleLustIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase BattleLust?" );
from.Target = new BattleLustIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,64 @@
using System;
namespace Server.Items
{
public class BlackMarketDeed : Item
{
[Constructable]
public BlackMarketDeed()
: this(1)
{
}
[Constructable]
public BlackMarketDeed(int amountFrom, int amountTo)
: this(Utility.RandomMinMax(amountFrom, amountTo))
{
}
[Constructable]
public BlackMarketDeed(int amount)
: base(0x46af) // get the itemid for this. we are using the calculation scroll item id 0x46af
{
this.Name = "Black Market Deed"; // Add this
this.Stackable = true;
this.Amount = amount;
}
public BlackMarketDeed(Serial serial)
: base(serial)
{
}
public override double DefaultWeight
{
get
{
return 0.02;
}
}
public override int GetDropSound()
{
if (this.Amount <= 1)
return 0x2E4;
else if (this.Amount <= 5)
return 0x2E5;
else
return 0x2E6;
}
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,125 @@
//Add BloodDrinker to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class BloodDrinkerIncreaseTarget : Target
{
private BloodDrinkerIncreaseDeed m_Deed;
public BloodDrinkerIncreaseTarget( BloodDrinkerIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int BloodDrinkerAdd = 1; //Amount of BloodDrinker to be added
int BloodDrinkerCap = 1; //Limit of BloodDrinker that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = false;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add BloodDrinker to that item there!" );
}
else
{
BloodDrinkerAdd = BloodDrinkerToAdd(((BaseWeapon)item).WeaponAttributes.BloodDrinker, BloodDrinkerAdd, BloodDrinkerCap, from);
if( BloodDrinkerAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.BloodDrinker += BloodDrinkerAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int BloodDrinkerToAdd(int itemBloodDrinker, int BloodDrinkerAdd ,int BloodDrinkerCap, Mobile from)
{
int ret = 0;
if(itemBloodDrinker < BloodDrinkerCap)
{
if( (itemBloodDrinker + BloodDrinkerAdd ) > BloodDrinkerCap )
{
ret = BloodDrinkerAdd - ( (itemBloodDrinker + BloodDrinkerAdd ) - BloodDrinkerCap );
from.SendMessage("You increase the BloodDrinker on the item and it has now reached it's max. +"+ret+" BloodDrinker has been added.");
}
else{
from.SendMessage( "You increase the BloodDrinker on the item. +"+BloodDrinkerAdd+" BloodDrinker has been added." );
ret = BloodDrinkerAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of BloodDrinker." );
}
return ret;
}
}
public class BloodDrinkerIncreaseDeed : Item
{
[Constructable]
public BloodDrinkerIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "BloodDrinker Increase Deed";
LootType = LootType.Blessed;
}
public BloodDrinkerIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase BloodDrinker?" );
from.Target = new BloodDrinkerIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,319 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class BonusDexTarget : Target
{
private BonusDexDeed m_Deed;
public BonusDexTarget( BonusDexDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon || target is BaseShield || target is BaseJewel || target is BaseArmor )
{
int augment = ( ( Utility.Random( 2 ) ) /* scalar*/ ) + 1;
int augmentper = ( ( Utility.Random( 4 ) ) /* scalar*/ ) + 8;
Item item = (Item)target;
if (item is BaseWeapon)
{
if ( ((BaseWeapon)item).Attributes.BonusDex == 15 ) from.SendMessage( "That already has bonus dex!");
else
{
if( item.RootParent != from ) from.SendMessage( "You can not put bonus dex on that there!" );
else
{
((BaseWeapon)item).Attributes.BonusDex += augmentper;
from.SendMessage( "You magically add bonus dex to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseShield)
{
if ( ((BaseShield)item).Attributes.BonusDex == 15 ) from.SendMessage( "That already has bonus dex!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put bonus dex on that there!" );
else
{
((BaseShield)item).Attributes.BonusDex += augmentper;
from.SendMessage( "You magically add bonus dex to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseArmor)
{
if ( ((BaseArmor)item).Attributes.BonusDex == 15 ) from.SendMessage( "That already has bonus dex!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put bonus dex on that there!" );
else
{
((BaseArmor)item).Attributes.BonusDex += augmentper;
from.SendMessage( "You magically add bonus dex to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseJewel)
{
if ( ((BaseJewel)item).Attributes.BonusDex == 15 ) from.SendMessage( "That already has bonus dex!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put bonus dex on that there!" );
else
{
((BaseJewel)item).Attributes.BonusDex += augmentper;
from.SendMessage( "You magically add bonus dex to your item...." );
m_Deed.Delete();
}
}
}
}
else from.SendMessage( "You can not put bonus dex on that" );
}
}
public class BonusDexDeed : Item
{
[Constructable]
public BonusDexDeed() : base(0x14F0)
{
Name = "a Bonus Dex deed";
Hue = 0x492;
}
public BonusDexDeed(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();}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What item would you like to add bonus dex to?" );
from.Target = new BonusDexTarget( this );
}
}
}
public class BonusIntTarget : Target
{
private BonusIntDeed m_Deed;
public BonusIntTarget( BonusIntDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon || target is BaseShield || target is BaseJewel || target is BaseArmor )
{
int augment = ( ( Utility.Random( 2 ) ) /* scalar*/ ) + 1;
int augmentper = ( ( Utility.Random( 4 ) ) /* scalar*/ ) + 8;
Item item = (Item)target;
if (item is BaseWeapon)
{
if ( ((BaseWeapon)item).Attributes.BonusInt == 15 ) from.SendMessage( "That already has bonus int!");
else
{
if( item.RootParent != from ) from.SendMessage( "You can not put bonus int on that there!" );
else
{
((BaseWeapon)item).Attributes.BonusInt += augmentper;
from.SendMessage( "You magically add bonus int to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseShield)
{
if ( ((BaseShield)item).Attributes.BonusInt == 15 ) from.SendMessage( "That already has bonus int!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put bonus int on that there!" );
else
{
((BaseShield)item).Attributes.BonusInt += augmentper;
from.SendMessage( "You magically add bonus int to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseArmor)
{
if ( ((BaseArmor)item).Attributes.BonusInt == 15 ) from.SendMessage( "That already has bonus int!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put bonus int on that there!" );
else
{
((BaseArmor)item).Attributes.BonusInt += augmentper;
from.SendMessage( "You magically add bonus int to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseJewel)
{
if ( ((BaseJewel)item).Attributes.BonusInt == 15 ) from.SendMessage( "That already has bonus int!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put bonus int on that there!" );
else
{
((BaseJewel)item).Attributes.BonusInt += augmentper;
from.SendMessage( "You magically add bonus int to your item...." );
m_Deed.Delete();
}
}
}
}
else from.SendMessage( "You can not put bonus int on that" );
}
}
public class BonusIntDeed : Item
{
[Constructable]
public BonusIntDeed() : base( 0x14F0 )
{
Name = "a Bonus Int deed";
Hue = 0x492;
}
public BonusIntDeed(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();}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What item would you like to add bonus int to?" );
from.Target = new BonusIntTarget( this );
}
}
}
public class BonusHitsTarget : Target
{
private BonusHitsDeed m_Deed;
public BonusHitsTarget( BonusHitsDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon || target is BaseShield || target is BaseJewel || target is BaseArmor )
{
int augment = ( ( Utility.Random( 2 ) ) /* scalar*/ ) + 1;
int augmentper = ( ( Utility.Random( 4 ) ) /* scalar*/ ) + 8;
Item item = (Item)target;
if (item is BaseWeapon)
{
if ( ((BaseWeapon)item).Attributes.BonusHits == 15 ) from.SendMessage( "That already has bonus hits!");
else
{
if( item.RootParent != from ) from.SendMessage( "You can not put bonus hits on that there!" );
else
{
((BaseWeapon)item).Attributes.BonusHits += augmentper;
from.SendMessage( "You magically add bonus hits to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseShield)
{
if ( ((BaseShield)item).Attributes.BonusHits == 15 ) from.SendMessage( "That already has bonus hits!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put bonus hits on that there!" );
else
{
((BaseShield)item).Attributes.BonusHits += augmentper;
from.SendMessage( "You magically add bonus hits to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseArmor)
{
if ( ((BaseArmor)item).Attributes.BonusHits == 15 ) from.SendMessage( "That already has bonus hits!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put bonus hits on that there!" );
else
{
((BaseArmor)item).Attributes.BonusHits += augmentper;
from.SendMessage( "You magically add bonus hits to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseJewel)
{
if ( ((BaseJewel)item).Attributes.BonusHits == 15 ) from.SendMessage( "That already has bonus hits!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put bonus hits on that there!" );
else
{
((BaseJewel)item).Attributes.BonusHits += augmentper;
from.SendMessage( "You magically add bonus hits to your item...." );
m_Deed.Delete();
}
}
}
}
else from.SendMessage( "You can not put bonus hits on that" );
}
}
public class BonusHitsDeed : Item
{
[Constructable]
public BonusHitsDeed() : base( 0x14F0 )
{
Name = "a Bonus Hits deed";
Hue = 0x492;
}
public BonusHitsDeed(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();}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What item would you like to add bonus hits to?" );
from.Target = new BonusHitsTarget( this );
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add BonusDex to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class BonusDexIncreaseTarget : Target
{
private BonusDexIncreaseDeed m_Deed;
public BonusDexIncreaseTarget( BonusDexIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int BonusDexAdd = 1; //Amount of Bonus Dex to be added
int BonusDexCap = 100; //Limit of Bonus Dex that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Dex to that item there!" );
}
else
{
BonusDexAdd = BonusDexToAdd(((BaseWeapon)item).Attributes.BonusDex, BonusDexAdd, BonusDexCap, from);
if( BonusDexAdd > 0 )
{
((BaseWeapon)item).Attributes.BonusDex += BonusDexAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Dex to that item there!" );
}
else
{
BonusDexAdd = BonusDexToAdd(((BaseArmor)item).Attributes.BonusDex, BonusDexAdd, BonusDexCap, from);
if( BonusDexAdd > 0 )
{
((BaseArmor)item).Attributes.BonusDex += BonusDexAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Dex to that item there!" );
}
else
{
BonusDexAdd = BonusDexToAdd(((BaseClothing)item).Attributes.BonusDex, BonusDexAdd, BonusDexCap, from);
if( BonusDexAdd > 0 )
{
((BaseClothing)item).Attributes.BonusDex += BonusDexAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Dex to that item there!" );
}
else
{
BonusDexAdd = BonusDexToAdd(((BaseTalisman)item).Attributes.BonusDex, BonusDexAdd, BonusDexCap, from);
if( BonusDexAdd > 0 )
{
((BaseTalisman)item).Attributes.BonusDex += BonusDexAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Dex to that item there!" );
}
else
{
BonusDexAdd = BonusDexToAdd(((BaseJewel)item).Attributes.BonusDex, BonusDexAdd, BonusDexCap, from);
if( BonusDexAdd > 0 )
{
((BaseJewel)item).Attributes.BonusDex += BonusDexAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Dex to that item there!" );
}
else
{
BonusDexAdd = BonusDexToAdd(((Spellbook)item).Attributes.BonusDex, BonusDexAdd, BonusDexCap, from);
if( BonusDexAdd > 0 )
{
((Spellbook)item).Attributes.BonusDex += BonusDexAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Dex to that item there!" );
}
else
{
BonusDexAdd = BonusDexToAdd(((BaseQuiver)item).Attributes.BonusDex, BonusDexAdd, BonusDexCap, from);
if( BonusDexAdd > 0 )
{
((BaseQuiver)item).Attributes.BonusDex += BonusDexAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int BonusDexToAdd(int itemBonusDex, int BonusDexAdd ,int BonusDexCap, Mobile from)
{
int ret = 0;
if(itemBonusDex < BonusDexCap)
{
if( (itemBonusDex + BonusDexAdd ) > BonusDexCap )
{
ret = BonusDexAdd - ( (itemBonusDex + BonusDexAdd ) - BonusDexCap );
from.SendMessage("You increase the Bonus Dex on the item and it has now reached it's max. +"+ret+" Bonus Dex has been added.");
}
else{
from.SendMessage( "You increase the Bonus Dex on the item. +"+BonusDexAdd+" Bonus Dex has been added." );
ret = BonusDexAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Bonus Dex." );
}
return ret;
}
}
public class BonusDexIncreaseDeed : Item
{
[Constructable]
public BonusDexIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Bonus Dex Increase Deed";
LootType = LootType.Blessed;
}
public BonusDexIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Bonus Dex?" );
from.Target = new BonusDexIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add BonusHits to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class BonusHitsIncreaseTarget : Target
{
private BonusHitsIncreaseDeed m_Deed;
public BonusHitsIncreaseTarget( BonusHitsIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int BonusHitsAdd = 1; //Amount of Bonus Hits to be added
int BonusHitsCap = 100; //Limit of Bonus Hits that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Hits to that item there!" );
}
else
{
BonusHitsAdd = BonusHitsToAdd(((BaseWeapon)item).Attributes.BonusHits, BonusHitsAdd, BonusHitsCap, from);
if( BonusHitsAdd > 0 )
{
((BaseWeapon)item).Attributes.BonusHits += BonusHitsAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Hits to that item there!" );
}
else
{
BonusHitsAdd = BonusHitsToAdd(((BaseArmor)item).Attributes.BonusHits, BonusHitsAdd, BonusHitsCap, from);
if( BonusHitsAdd > 0 )
{
((BaseArmor)item).Attributes.BonusHits += BonusHitsAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Hits to that item there!" );
}
else
{
BonusHitsAdd = BonusHitsToAdd(((BaseClothing)item).Attributes.BonusHits, BonusHitsAdd, BonusHitsCap, from);
if( BonusHitsAdd > 0 )
{
((BaseClothing)item).Attributes.BonusHits += BonusHitsAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Hits to that item there!" );
}
else
{
BonusHitsAdd = BonusHitsToAdd(((BaseTalisman)item).Attributes.BonusHits, BonusHitsAdd, BonusHitsCap, from);
if( BonusHitsAdd > 0 )
{
((BaseTalisman)item).Attributes.BonusHits += BonusHitsAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Hits to that item there!" );
}
else
{
BonusHitsAdd = BonusHitsToAdd(((BaseJewel)item).Attributes.BonusHits, BonusHitsAdd, BonusHitsCap, from);
if( BonusHitsAdd > 0 )
{
((BaseJewel)item).Attributes.BonusHits += BonusHitsAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Hits to that item there!" );
}
else
{
BonusHitsAdd = BonusHitsToAdd(((Spellbook)item).Attributes.BonusHits, BonusHitsAdd, BonusHitsCap, from);
if( BonusHitsAdd > 0 )
{
((Spellbook)item).Attributes.BonusHits += BonusHitsAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Hits to that item there!" );
}
else
{
BonusHitsAdd = BonusHitsToAdd(((BaseQuiver)item).Attributes.BonusHits, BonusHitsAdd, BonusHitsCap, from);
if( BonusHitsAdd > 0 )
{
((BaseQuiver)item).Attributes.BonusHits += BonusHitsAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int BonusHitsToAdd(int itemBonusHits, int BonusHitsAdd ,int BonusHitsCap, Mobile from)
{
int ret = 0;
if(itemBonusHits < BonusHitsCap)
{
if( (itemBonusHits + BonusHitsAdd ) > BonusHitsCap )
{
ret = BonusHitsAdd - ( (itemBonusHits + BonusHitsAdd ) - BonusHitsCap );
from.SendMessage("You increase theBonus Hits on the item and it has now reached it's max. +"+ret+"Bonus Hits has been added.");
}
else{
from.SendMessage( "You increase theBonus Hits on the item. +"+BonusHitsAdd+"Bonus Hits has been added." );
ret = BonusHitsAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Bonus Hits." );
}
return ret;
}
}
public class BonusHitsIncreaseDeed : Item
{
[Constructable]
public BonusHitsIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1Bonus Hits Increase Deed";
LootType = LootType.Blessed;
}
public BonusHitsIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increaseBonus Hits?" );
from.Target = new BonusHitsIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add BonusInt to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class BonusIntIncreaseTarget : Target
{
private BonusIntIncreaseDeed m_Deed;
public BonusIntIncreaseTarget( BonusIntIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int BonusIntAdd = 1; //Amount of Bonus Int to be added
int BonusIntCap = 100; //Limit of Bonus Int that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Int to that item there!" );
}
else
{
BonusIntAdd = BonusIntToAdd(((BaseWeapon)item).Attributes.BonusInt, BonusIntAdd, BonusIntCap, from);
if( BonusIntAdd > 0 )
{
((BaseWeapon)item).Attributes.BonusInt += BonusIntAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Int to that item there!" );
}
else
{
BonusIntAdd = BonusIntToAdd(((BaseArmor)item).Attributes.BonusInt, BonusIntAdd, BonusIntCap, from);
if( BonusIntAdd > 0 )
{
((BaseArmor)item).Attributes.BonusInt += BonusIntAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Int to that item there!" );
}
else
{
BonusIntAdd = BonusIntToAdd(((BaseClothing)item).Attributes.BonusInt, BonusIntAdd, BonusIntCap, from);
if( BonusIntAdd > 0 )
{
((BaseClothing)item).Attributes.BonusInt += BonusIntAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Int to that item there!" );
}
else
{
BonusIntAdd = BonusIntToAdd(((BaseTalisman)item).Attributes.BonusInt, BonusIntAdd, BonusIntCap, from);
if( BonusIntAdd > 0 )
{
((BaseTalisman)item).Attributes.BonusInt += BonusIntAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Int to that item there!" );
}
else
{
BonusIntAdd = BonusIntToAdd(((BaseJewel)item).Attributes.BonusInt, BonusIntAdd, BonusIntCap, from);
if( BonusIntAdd > 0 )
{
((BaseJewel)item).Attributes.BonusInt += BonusIntAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Int to that item there!" );
}
else
{
BonusIntAdd = BonusIntToAdd(((Spellbook)item).Attributes.BonusInt, BonusIntAdd, BonusIntCap, from);
if( BonusIntAdd > 0 )
{
((Spellbook)item).Attributes.BonusInt += BonusIntAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Int to that item there!" );
}
else
{
BonusIntAdd = BonusIntToAdd(((BaseQuiver)item).Attributes.BonusInt, BonusIntAdd, BonusIntCap, from);
if( BonusIntAdd > 0 )
{
((BaseQuiver)item).Attributes.BonusInt += BonusIntAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int BonusIntToAdd(int itemBonusInt, int BonusIntAdd ,int BonusIntCap, Mobile from)
{
int ret = 0;
if(itemBonusInt < BonusIntCap)
{
if( (itemBonusInt + BonusIntAdd ) > BonusIntCap )
{
ret = BonusIntAdd - ( (itemBonusInt + BonusIntAdd ) - BonusIntCap );
from.SendMessage("You increase the Bonus Int on the item and it has now reached it's max. +"+ret+" Bonus Int has been added.");
}
else{
from.SendMessage( "You increase the Bonus Int on the item. +"+BonusIntAdd+" Bonus Int has been added." );
ret = BonusIntAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Bonus Int." );
}
return ret;
}
}
public class BonusIntIncreaseDeed : Item
{
[Constructable]
public BonusIntIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Bonus Int Increase Deed";
LootType = LootType.Blessed;
}
public BonusIntIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Bonus Int?" );
from.Target = new BonusIntIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add BonusMana to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class BonusManaIncreaseTarget : Target
{
private BonusManaIncreaseDeed m_Deed;
public BonusManaIncreaseTarget( BonusManaIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int BonusManaAdd = 1; //Amount ofBonus Mana to be added
int BonusManaCap = 100; //Limit ofBonus Mana that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Mana to that item there!" );
}
else
{
BonusManaAdd = BonusManaToAdd(((BaseWeapon)item).Attributes.BonusMana, BonusManaAdd, BonusManaCap, from);
if( BonusManaAdd > 0 )
{
((BaseWeapon)item).Attributes.BonusMana += BonusManaAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Mana to that item there!" );
}
else
{
BonusManaAdd = BonusManaToAdd(((BaseArmor)item).Attributes.BonusMana, BonusManaAdd, BonusManaCap, from);
if( BonusManaAdd > 0 )
{
((BaseArmor)item).Attributes.BonusMana += BonusManaAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Mana to that item there!" );
}
else
{
BonusManaAdd = BonusManaToAdd(((BaseClothing)item).Attributes.BonusMana, BonusManaAdd, BonusManaCap, from);
if( BonusManaAdd > 0 )
{
((BaseClothing)item).Attributes.BonusMana += BonusManaAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Mana to that item there!" );
}
else
{
BonusManaAdd = BonusManaToAdd(((BaseTalisman)item).Attributes.BonusMana, BonusManaAdd, BonusManaCap, from);
if( BonusManaAdd > 0 )
{
((BaseTalisman)item).Attributes.BonusMana += BonusManaAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Mana to that item there!" );
}
else
{
BonusManaAdd = BonusManaToAdd(((BaseJewel)item).Attributes.BonusMana, BonusManaAdd, BonusManaCap, from);
if( BonusManaAdd > 0 )
{
((BaseJewel)item).Attributes.BonusMana += BonusManaAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Mana to that item there!" );
}
else
{
BonusManaAdd = BonusManaToAdd(((Spellbook)item).Attributes.BonusMana, BonusManaAdd, BonusManaCap, from);
if( BonusManaAdd > 0 )
{
((Spellbook)item).Attributes.BonusMana += BonusManaAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Mana to that item there!" );
}
else
{
BonusManaAdd = BonusManaToAdd(((BaseQuiver)item).Attributes.BonusMana, BonusManaAdd, BonusManaCap, from);
if( BonusManaAdd > 0 )
{
((BaseQuiver)item).Attributes.BonusMana += BonusManaAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int BonusManaToAdd(int itemBonusMana, int BonusManaAdd ,int BonusManaCap, Mobile from)
{
int ret = 0;
if(itemBonusMana < BonusManaCap)
{
if( (itemBonusMana + BonusManaAdd ) > BonusManaCap )
{
ret = BonusManaAdd - ( (itemBonusMana + BonusManaAdd ) - BonusManaCap );
from.SendMessage("You increase theBonus Mana on the item and it has now reached it's max. +"+ret+"Bonus Mana has been added.");
}
else{
from.SendMessage( "You increase theBonus Mana on the item. +"+BonusManaAdd+"Bonus Mana has been added." );
ret = BonusManaAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount ofBonus Mana." );
}
return ret;
}
}
public class BonusManaIncreaseDeed : Item
{
[Constructable]
public BonusManaIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Bonus Mana Increase Deed";
LootType = LootType.Blessed;
}
public BonusManaIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increaseBonus Mana?" );
from.Target = new BonusManaIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add BonusStam to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class BonusStamIncreaseTarget : Target
{
private BonusStamIncreaseDeed m_Deed;
public BonusStamIncreaseTarget( BonusStamIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int BonusStamAdd = 1; //Amount ofBonus Stam to be added
int BonusStamCap = 100; //Limit ofBonus Stam that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Stam to that item there!" );
}
else
{
BonusStamAdd = BonusStamToAdd(((BaseWeapon)item).Attributes.BonusStam, BonusStamAdd, BonusStamCap, from);
if( BonusStamAdd > 0 )
{
((BaseWeapon)item).Attributes.BonusStam += BonusStamAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Stam to that item there!" );
}
else
{
BonusStamAdd = BonusStamToAdd(((BaseArmor)item).Attributes.BonusStam, BonusStamAdd, BonusStamCap, from);
if( BonusStamAdd > 0 )
{
((BaseArmor)item).Attributes.BonusStam += BonusStamAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Stam to that item there!" );
}
else
{
BonusStamAdd = BonusStamToAdd(((BaseClothing)item).Attributes.BonusStam, BonusStamAdd, BonusStamCap, from);
if( BonusStamAdd > 0 )
{
((BaseClothing)item).Attributes.BonusStam += BonusStamAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Stam to that item there!" );
}
else
{
BonusStamAdd = BonusStamToAdd(((BaseTalisman)item).Attributes.BonusStam, BonusStamAdd, BonusStamCap, from);
if( BonusStamAdd > 0 )
{
((BaseTalisman)item).Attributes.BonusStam += BonusStamAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Stam to that item there!" );
}
else
{
BonusStamAdd = BonusStamToAdd(((BaseJewel)item).Attributes.BonusStam, BonusStamAdd, BonusStamCap, from);
if( BonusStamAdd > 0 )
{
((BaseJewel)item).Attributes.BonusStam += BonusStamAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Stam to that item there!" );
}
else
{
BonusStamAdd = BonusStamToAdd(((Spellbook)item).Attributes.BonusStam, BonusStamAdd, BonusStamCap, from);
if( BonusStamAdd > 0 )
{
((Spellbook)item).Attributes.BonusStam += BonusStamAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addBonus Stam to that item there!" );
}
else
{
BonusStamAdd = BonusStamToAdd(((BaseQuiver)item).Attributes.BonusStam, BonusStamAdd, BonusStamCap, from);
if( BonusStamAdd > 0 )
{
((BaseQuiver)item).Attributes.BonusStam += BonusStamAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int BonusStamToAdd(int itemBonusStam, int BonusStamAdd ,int BonusStamCap, Mobile from)
{
int ret = 0;
if(itemBonusStam < BonusStamCap)
{
if( (itemBonusStam + BonusStamAdd ) > BonusStamCap )
{
ret = BonusStamAdd - ( (itemBonusStam + BonusStamAdd ) - BonusStamCap );
from.SendMessage("You increase theBonus Stam on the item and it has now reached it's max. +"+ret+"Bonus Stam has been added.");
}
else{
from.SendMessage( "You increase theBonus Stam on the item. +"+BonusStamAdd+"Bonus Stam has been added." );
ret = BonusStamAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount ofBonus Stam." );
}
return ret;
}
}
public class BonusStamIncreaseDeed : Item
{
[Constructable]
public BonusStamIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Bonus Stam Increase Deed";
LootType = LootType.Blessed;
}
public BonusStamIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increaseBonus Stam?" );
from.Target = new BonusStamIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add BonusStr to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class BonusStrIncreaseTarget : Target
{
private BonusStrIncreaseDeed m_Deed;
public BonusStrIncreaseTarget( BonusStrIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int BonusStrAdd = 1; //Amount of Bonus Str to be added
int BonusStrCap = 100; //Limit of Bonus Str that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Str to that item there!" );
}
else
{
BonusStrAdd = BonusStrToAdd(((BaseWeapon)item).Attributes.BonusStr, BonusStrAdd, BonusStrCap, from);
if( BonusStrAdd > 0 )
{
((BaseWeapon)item).Attributes.BonusStr += BonusStrAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Str to that item there!" );
}
else
{
BonusStrAdd = BonusStrToAdd(((BaseArmor)item).Attributes.BonusStr, BonusStrAdd, BonusStrCap, from);
if( BonusStrAdd > 0 )
{
((BaseArmor)item).Attributes.BonusStr += BonusStrAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Str to that item there!" );
}
else
{
BonusStrAdd = BonusStrToAdd(((BaseClothing)item).Attributes.BonusStr, BonusStrAdd, BonusStrCap, from);
if( BonusStrAdd > 0 )
{
((BaseClothing)item).Attributes.BonusStr += BonusStrAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Str to that item there!" );
}
else
{
BonusStrAdd = BonusStrToAdd(((BaseTalisman)item).Attributes.BonusStr, BonusStrAdd, BonusStrCap, from);
if( BonusStrAdd > 0 )
{
((BaseTalisman)item).Attributes.BonusStr += BonusStrAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Str to that item there!" );
}
else
{
BonusStrAdd = BonusStrToAdd(((BaseJewel)item).Attributes.BonusStr, BonusStrAdd, BonusStrCap, from);
if( BonusStrAdd > 0 )
{
((BaseJewel)item).Attributes.BonusStr += BonusStrAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Str to that item there!" );
}
else
{
BonusStrAdd = BonusStrToAdd(((Spellbook)item).Attributes.BonusStr, BonusStrAdd, BonusStrCap, from);
if( BonusStrAdd > 0 )
{
((Spellbook)item).Attributes.BonusStr += BonusStrAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Bonus Str to that item there!" );
}
else
{
BonusStrAdd = BonusStrToAdd(((BaseQuiver)item).Attributes.BonusStr, BonusStrAdd, BonusStrCap, from);
if( BonusStrAdd > 0 )
{
((BaseQuiver)item).Attributes.BonusStr += BonusStrAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int BonusStrToAdd(int itemBonusStr, int BonusStrAdd ,int BonusStrCap, Mobile from)
{
int ret = 0;
if(itemBonusStr < BonusStrCap)
{
if( (itemBonusStr + BonusStrAdd ) > BonusStrCap )
{
ret = BonusStrAdd - ( (itemBonusStr + BonusStrAdd ) - BonusStrCap );
from.SendMessage("You increase the Bonus Str on the item and it has now reached it's max. +"+ret+" Bonus Str has been added.");
}
else{
from.SendMessage( "You increase the Bonus Str on the item. +"+BonusStrAdd+" Bonus Str has been added." );
ret = BonusStrAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Bonus Str." );
}
return ret;
}
}
public class BonusStrIncreaseDeed : Item
{
[Constructable]
public BonusStrIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Bonus Str Increase Deed";
LootType = LootType.Blessed;
}
public BonusStrIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Bonus Str?" );
from.Target = new BonusStrIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,109 @@
//BY: SHAMBAMPOW
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class CandleToShieldTarget : Target
{
private CandleToShieldDeed m_Deed;
public CandleToShieldTarget( CandleToShieldDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is Candle )
{
Item candle = (Item)target;
if( candle.RootParent != from )
{
from.SendMessage( "You cannot convert that there!" );
}
else
{
BaseArmor shield = new Buckler();
shield.ItemID = candle.ItemID;
shield.Name = candle.Name;
shield.Hue = candle.Hue;
shield.LootType = candle.LootType;
shield.Attributes.SpellChanneling = 1;
shield.PoisonBonus = -1;
shield.MaxHitPoints = 255;
shield.HitPoints = 255;
if( candle.Insured )
shield.Insured = true;
from.AddToBackpack( shield );
candle.Delete();
from.SendMessage( "You magically convert the candle into a candle-shield...." );
m_Deed.Delete();
}
}
else
{
from.SendMessage( "That is not a candle." );
}
}
}
public class CandleToShieldDeed : Item
{
[Constructable]
public CandleToShieldDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Candle to Shield Deed";
LootType = LootType.Blessed;
Hue = 1177;
}
public CandleToShieldDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) // Make sure its in their pack
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("What candle would you like to convert into a candle-shield?" );
from.Target = new CandleToShieldTarget( this ); // Call our target
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add CastSpeed to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class CastSpeedIncreaseTarget : Target
{
private CastSpeedIncreaseDeed m_Deed;
public CastSpeedIncreaseTarget( CastSpeedIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int CastSpeedAdd = 1; //Amount of Cast Speed to be added
int CastSpeedCap = 100; //Limit of Cast Speed that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Cast Speed to that item there!" );
}
else
{
CastSpeedAdd = CastSpeedToAdd(((BaseWeapon)item).Attributes.CastSpeed, CastSpeedAdd, CastSpeedCap, from);
if( CastSpeedAdd > 0 )
{
((BaseWeapon)item).Attributes.CastSpeed += CastSpeedAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Cast Speed to that item there!" );
}
else
{
CastSpeedAdd = CastSpeedToAdd(((BaseArmor)item).Attributes.CastSpeed, CastSpeedAdd, CastSpeedCap, from);
if( CastSpeedAdd > 0 )
{
((BaseArmor)item).Attributes.CastSpeed += CastSpeedAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Cast Speed to that item there!" );
}
else
{
CastSpeedAdd = CastSpeedToAdd(((BaseClothing)item).Attributes.CastSpeed, CastSpeedAdd, CastSpeedCap, from);
if( CastSpeedAdd > 0 )
{
((BaseClothing)item).Attributes.CastSpeed += CastSpeedAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Cast Speed to that item there!" );
}
else
{
CastSpeedAdd = CastSpeedToAdd(((BaseTalisman)item).Attributes.CastSpeed, CastSpeedAdd, CastSpeedCap, from);
if( CastSpeedAdd > 0 )
{
((BaseTalisman)item).Attributes.CastSpeed += CastSpeedAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Cast Speed to that item there!" );
}
else
{
CastSpeedAdd = CastSpeedToAdd(((BaseJewel)item).Attributes.CastSpeed, CastSpeedAdd, CastSpeedCap, from);
if( CastSpeedAdd > 0 )
{
((BaseJewel)item).Attributes.CastSpeed += CastSpeedAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Cast Speed to that item there!" );
}
else
{
CastSpeedAdd = CastSpeedToAdd(((Spellbook)item).Attributes.CastSpeed, CastSpeedAdd, CastSpeedCap, from);
if( CastSpeedAdd > 0 )
{
((Spellbook)item).Attributes.CastSpeed += CastSpeedAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Cast Speed to that item there!" );
}
else
{
CastSpeedAdd = CastSpeedToAdd(((BaseQuiver)item).Attributes.CastSpeed, CastSpeedAdd, CastSpeedCap, from);
if( CastSpeedAdd > 0 )
{
((BaseQuiver)item).Attributes.CastSpeed += CastSpeedAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int CastSpeedToAdd(int itemCastSpeed, int CastSpeedAdd ,int CastSpeedCap, Mobile from)
{
int ret = 0;
if(itemCastSpeed < CastSpeedCap)
{
if( (itemCastSpeed + CastSpeedAdd ) > CastSpeedCap )
{
ret = CastSpeedAdd - ( (itemCastSpeed + CastSpeedAdd ) - CastSpeedCap );
from.SendMessage("You increase the Cast Speed on the item and it has now reached it's max. +"+ret+" Cast Speed has been added.");
}
else{
from.SendMessage( "You increase the Cast Speed on the item. +"+CastSpeedAdd+" Cast Speed has been added." );
ret = CastSpeedAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Cast Speed." );
}
return ret;
}
}
public class CastSpeedIncreaseDeed : Item
{
[Constructable]
public CastSpeedIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Cast Speed Increase Deed";
LootType = LootType.Blessed;
}
public CastSpeedIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Cast Speed?" );
from.Target = new CastSpeedIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,184 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
//Faster Cast Recovery Deed
public class CastRecoveryTarget : Target
{
private CastRecoveryDeed m_Deed;
public CastRecoveryTarget( CastRecoveryDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon || target is BaseShield || target is BaseJewel )
{
Item item = (Item)target;
if (item is BaseWeapon)
{
if ( ((BaseWeapon)item).Attributes.CastRecovery == 3 ) from.SendMessage( "That already has 2 faster cast recovery!");
else
{
if( item.RootParent != from ) from.SendMessage( "You can not put faster cast recovery on that there!" );
else
{
((BaseWeapon)item).Attributes.CastRecovery = 1;
from.SendMessage( "You magically add faster cast recovery to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseShield)
{
if ( ((BaseShield)item).Attributes.CastRecovery == 3 ) from.SendMessage( "That already has faster cast recovery!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put faster cast recovery on that there!" );
else
{
((BaseShield)item).Attributes.CastRecovery = 1;
from.SendMessage( "You magically add faster cast recovery to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseJewel)
{
if ( ((BaseJewel)item).Attributes.CastRecovery == 3 ) from.SendMessage( "That already has faster cast recovery!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put faster cast recovery on that there!" );
else
{
((BaseJewel)item).Attributes.CastRecovery = 1;
from.SendMessage( "You magically add faster cast recovery to your item...." );
m_Deed.Delete();
}
}
}
}
else from.SendMessage( "You can not put faster cast recovery on that" );
}
}
public class CastRecoveryDeed : Item
{
[Constructable]
public CastRecoveryDeed() : base( 0x14F0 )
{
Name = "a Faster Cast Recovery deed";
Hue = 0x492;
}
public CastRecoveryDeed(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();}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What item would you like to add faster cast recovery to?" );
from.Target = new CastRecoveryTarget( this );
}
}
}
//Faster Casting Deed
public class CastSpeedTarget : Target
{
private CastSpeedDeed m_Deed;
public CastSpeedTarget( CastSpeedDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon || target is BaseShield || target is BaseJewel )
{
Item item = (Item)target;
if (item is BaseWeapon)
{
if ( ((BaseWeapon)item).Attributes.CastSpeed == 2 ) from.SendMessage( "That already has 2 faster casting!");
else
{
if( item.RootParent != from ) from.SendMessage( "You can not put faster casting on that there!" );
else
{
((BaseWeapon)item).Attributes.CastSpeed = 1;
from.SendMessage( "You magically add faster casting to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseShield)
{
if ( ((BaseShield)item).Attributes.CastSpeed == 2 ) from.SendMessage( "That already has faster casting!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put faster casting on that there!" );
else
{
((BaseShield)item).Attributes.CastSpeed = 1;
from.SendMessage( "You magically add faster casting to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseJewel)
{
if ( ((BaseJewel)item).Attributes.CastSpeed == 2 ) from.SendMessage( "That already has faster casting!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put faster casting on that there!" );
else
{
((BaseJewel)item).Attributes.CastSpeed = 1;
from.SendMessage( "You magically add faster casting to your item...." );
m_Deed.Delete();
}
}
}
}
else from.SendMessage( "You can not put faster casting on that" );
}
}
public class CastSpeedDeed : Item
{
[Constructable]
public CastSpeedDeed() : base( 0x14F0 )
{
Name = "a Faster Casting deed";
Hue = 0x492;
}
public CastSpeedDeed(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();}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What item would you like to add faster casting to?" );
from.Target = new CastSpeedTarget( this );
}
}
}
}

View File

@@ -0,0 +1,50 @@
using System;
using Server.Mobiles;
namespace Server.Items
{
public class CustomRewardTitleDeed : BaseRewardTitleDeed
{
private TextDefinition _Title;
public override TextDefinition Title { get { return _Title; } }
[Constructable]
public CustomRewardTitleDeed(string title)
: this(new TextDefinition(title))
{
}
[Constructable]
public CustomRewardTitleDeed(int title)
: this(new TextDefinition(title))
{
}
public CustomRewardTitleDeed(TextDefinition title)
{
_Title = title;
}
public CustomRewardTitleDeed(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0);
TextDefinition.Serialize(writer, _Title);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int v = reader.ReadInt();
_Title = TextDefinition.Deserialize(reader);
}
}
}

View File

@@ -0,0 +1,229 @@
//Add DefendChance to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class DefendChanceIncreaseTarget : Target
{
private DefendChanceIncreaseDeed m_Deed;
public DefendChanceIncreaseTarget( DefendChanceIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int DefendChanceAdd = 1; //Amount of Defend Chance to be added
int DefendChanceCap = 100; //Limit of Defend Chance that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Defend Chance to that item there!" );
}
else
{
DefendChanceAdd = DefendChanceToAdd(((BaseWeapon)item).Attributes.DefendChance, DefendChanceAdd, DefendChanceCap, from);
if( DefendChanceAdd > 0 )
{
((BaseWeapon)item).Attributes.DefendChance += DefendChanceAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Defend Chance to that item there!" );
}
else
{
DefendChanceAdd = DefendChanceToAdd(((BaseArmor)item).Attributes.DefendChance, DefendChanceAdd, DefendChanceCap, from);
if( DefendChanceAdd > 0 )
{
((BaseArmor)item).Attributes.DefendChance += DefendChanceAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Defend Chance to that item there!" );
}
else
{
DefendChanceAdd = DefendChanceToAdd(((BaseClothing)item).Attributes.DefendChance, DefendChanceAdd, DefendChanceCap, from);
if( DefendChanceAdd > 0 )
{
((BaseClothing)item).Attributes.DefendChance += DefendChanceAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Defend Chance to that item there!" );
}
else
{
DefendChanceAdd = DefendChanceToAdd(((BaseTalisman)item).Attributes.DefendChance, DefendChanceAdd, DefendChanceCap, from);
if( DefendChanceAdd > 0 )
{
((BaseTalisman)item).Attributes.DefendChance += DefendChanceAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Defend Chance to that item there!" );
}
else
{
DefendChanceAdd = DefendChanceToAdd(((BaseJewel)item).Attributes.DefendChance, DefendChanceAdd, DefendChanceCap, from);
if( DefendChanceAdd > 0 )
{
((BaseJewel)item).Attributes.DefendChance += DefendChanceAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Defend Chance to that item there!" );
}
else
{
DefendChanceAdd = DefendChanceToAdd(((Spellbook)item).Attributes.DefendChance, DefendChanceAdd, DefendChanceCap, from);
if( DefendChanceAdd > 0 )
{
((Spellbook)item).Attributes.DefendChance += DefendChanceAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Defend Chance to that item there!" );
}
else
{
DefendChanceAdd = DefendChanceToAdd(((BaseQuiver)item).Attributes.DefendChance, DefendChanceAdd, DefendChanceCap, from);
if( DefendChanceAdd > 0 )
{
((BaseQuiver)item).Attributes.DefendChance += DefendChanceAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int DefendChanceToAdd(int itemDefendChance, int DefendChanceAdd ,int DefendChanceCap, Mobile from)
{
int ret = 0;
if(itemDefendChance < DefendChanceCap)
{
if( (itemDefendChance + DefendChanceAdd ) > DefendChanceCap )
{
ret = DefendChanceAdd - ( (itemDefendChance + DefendChanceAdd ) - DefendChanceCap );
from.SendMessage("You increase the Defend Chance on the item and it has now reached it's max. +"+ret+" Defend Chance has been added.");
}
else{
from.SendMessage( "You increase the Defend Chance on the item. +"+DefendChanceAdd+" Defend Chance has been added." );
ret = DefendChanceAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Defend Chance." );
}
return ret;
}
}
public class DefendChanceIncreaseDeed : Item
{
[Constructable]
public DefendChanceIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Defend Chance Increase Deed";
LootType = LootType.Blessed;
}
public DefendChanceIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Defend Chance?" );
from.Target = new DefendChanceIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add EnhancePotions to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class EnhancePotionsIncreaseTarget : Target
{
private EnhancePotionsIncreaseDeed m_Deed;
public EnhancePotionsIncreaseTarget( EnhancePotionsIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int EnhancePotionsAdd = 1; //Amount of Enhance Potions to be added
int EnhancePotionsCap = 100; //Limit of Enhance Potions that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Enhance Potions to that item there!" );
}
else
{
EnhancePotionsAdd = EnhancePotionsToAdd(((BaseWeapon)item).Attributes.EnhancePotions, EnhancePotionsAdd, EnhancePotionsCap, from);
if( EnhancePotionsAdd > 0 )
{
((BaseWeapon)item).Attributes.EnhancePotions += EnhancePotionsAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Enhance Potions to that item there!" );
}
else
{
EnhancePotionsAdd = EnhancePotionsToAdd(((BaseArmor)item).Attributes.EnhancePotions, EnhancePotionsAdd, EnhancePotionsCap, from);
if( EnhancePotionsAdd > 0 )
{
((BaseArmor)item).Attributes.EnhancePotions += EnhancePotionsAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Enhance Potions to that item there!" );
}
else
{
EnhancePotionsAdd = EnhancePotionsToAdd(((BaseClothing)item).Attributes.EnhancePotions, EnhancePotionsAdd, EnhancePotionsCap, from);
if( EnhancePotionsAdd > 0 )
{
((BaseClothing)item).Attributes.EnhancePotions += EnhancePotionsAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Enhance Potions to that item there!" );
}
else
{
EnhancePotionsAdd = EnhancePotionsToAdd(((BaseTalisman)item).Attributes.EnhancePotions, EnhancePotionsAdd, EnhancePotionsCap, from);
if( EnhancePotionsAdd > 0 )
{
((BaseTalisman)item).Attributes.EnhancePotions += EnhancePotionsAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Enhance Potions to that item there!" );
}
else
{
EnhancePotionsAdd = EnhancePotionsToAdd(((BaseJewel)item).Attributes.EnhancePotions, EnhancePotionsAdd, EnhancePotionsCap, from);
if( EnhancePotionsAdd > 0 )
{
((BaseJewel)item).Attributes.EnhancePotions += EnhancePotionsAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Enhance Potions to that item there!" );
}
else
{
EnhancePotionsAdd = EnhancePotionsToAdd(((Spellbook)item).Attributes.EnhancePotions, EnhancePotionsAdd, EnhancePotionsCap, from);
if( EnhancePotionsAdd > 0 )
{
((Spellbook)item).Attributes.EnhancePotions += EnhancePotionsAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Enhance Potions to that item there!" );
}
else
{
EnhancePotionsAdd = EnhancePotionsToAdd(((BaseQuiver)item).Attributes.EnhancePotions, EnhancePotionsAdd, EnhancePotionsCap, from);
if( EnhancePotionsAdd > 0 )
{
((BaseQuiver)item).Attributes.EnhancePotions += EnhancePotionsAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int EnhancePotionsToAdd(int itemEnhancePotions, int EnhancePotionsAdd ,int EnhancePotionsCap, Mobile from)
{
int ret = 0;
if(itemEnhancePotions < EnhancePotionsCap)
{
if( (itemEnhancePotions + EnhancePotionsAdd ) > EnhancePotionsCap )
{
ret = EnhancePotionsAdd - ( (itemEnhancePotions + EnhancePotionsAdd ) - EnhancePotionsCap );
from.SendMessage("You increase the Enhance Potions on the item and it has now reached it's max. +"+ret+" Enhance Potions has been added.");
}
else{
from.SendMessage( "You increase the Enhance Potions on the item. +"+EnhancePotionsAdd+" Enhance Potions has been added." );
ret = EnhancePotionsAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Enhance Potions." );
}
return ret;
}
}
public class EnhancePotionsIncreaseDeed : Item
{
[Constructable]
public EnhancePotionsIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Enhance Potions Increase Deed";
LootType = LootType.Blessed;
}
public EnhancePotionsIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Enhance Potions?" );
from.Target = new EnhancePotionsIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,99 @@
// By Celisuis
// D.O.S
using System;
using Server;
using Server.Mobiles;
using Server.Network;
using Server.Multis;
namespace Server.Items
{
public class GenderChangeDeed : Item
{
[Constructable]
public GenderChangeDeed() : base( 0x14F0 )
{
Name = "Gender Change Deed";
Weight = 1.0;
//LootType = LootType.Blessed;
Hue = 2067;
}
public GenderChangeDeed( 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();
}
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
if ( from.Body == 0x190 )
{
from.Body = 0x191;
from.SendMessage("You change your gender to female!");
World.Broadcast( 0x35, true, "{0} has had a sex change!", from.Name );
this.Delete();
}
else if ( from.Body == 0x191 )
{
from.Body = 0x190;
from.SendMessage("You change your gender to male!");
World.Broadcast( 0x35, true, "{0} has had a sex change!", from.Name );
this.Delete();
}
else if ( from.Body == 0x25D )
{
from.Body = 0x25E;
from.SendMessage("You change your gender to female!");
World.Broadcast( 0x35, true, "{0} has had a sex change!", from.Name );
this.Delete();
}
else if ( from.Body == 0x25E)
{
from.Body = 0x25D;
from.SendMessage("You change your gender to male!");
World.Broadcast( 0x35, true, "{0} has had a sex change!", from.Name );
this.Delete();
}
else if ( from.Body == 0x29A)
{
from.Body = 0x29B;
from.SendMessage("You change your gender to female!");
World.Broadcast( 0x35, true, "{0} has had a sex change!", from.Name );
this.Delete();
}
else if ( from.Body == 0x29B)
{
from.Body = 0x29A;
from.SendMessage("You change your gender to male!");
World.Broadcast( 0x35, true, "{0} has had a sex change!", from.Name );
this.Delete();
}
else
{
from.SendMessage( "You can't use this deed with your current race." );
}
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitColdArea to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitColdAreaIncreaseTarget : Target
{
private HitColdAreaIncreaseDeed m_Deed;
public HitColdAreaIncreaseTarget( HitColdAreaIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitColdAreaAdd = 1; //Amount of Hit Cold Area to be added
int HitColdAreaCap = 100; //Limit of Hit Cold Area that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Cold Area to that item there!" );
}
else
{
HitColdAreaAdd = HitColdAreaToAdd(((BaseWeapon)item).WeaponAttributes.HitColdArea, HitColdAreaAdd, HitColdAreaCap, from);
if( HitColdAreaAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitColdArea += HitColdAreaAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitColdAreaToAdd(int itemHitColdArea, int HitColdAreaAdd ,int HitColdAreaCap, Mobile from)
{
int ret = 0;
if(itemHitColdArea < HitColdAreaCap)
{
if( (itemHitColdArea + HitColdAreaAdd ) > HitColdAreaCap )
{
ret = HitColdAreaAdd - ( (itemHitColdArea + HitColdAreaAdd ) - HitColdAreaCap );
from.SendMessage("You increase the Hit Cold Area on the item and it has now reached it's max. +"+ret+" Hit Cold Area has been added.");
}
else{
from.SendMessage( "You increase the Hit Cold Area on the item. +"+HitColdAreaAdd+" Hit Cold Area has been added." );
ret = HitColdAreaAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Cold Area." );
}
return ret;
}
}
public class HitColdAreaIncreaseDeed : Item
{
[Constructable]
public HitColdAreaIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Cold Area Increase Deed";
LootType = LootType.Blessed;
}
public HitColdAreaIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Cold Area?" );
from.Target = new HitColdAreaIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitDispel to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitDispelIncreaseTarget : Target
{
private HitDispelIncreaseDeed m_Deed;
public HitDispelIncreaseTarget( HitDispelIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitDispelAdd = 5; //Amount of Hit Dispel to be added
int HitDispelCap = 100; //Limit of Hit Dispel that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Dispel to that item there!" );
}
else
{
HitDispelAdd = HitDispelToAdd(((BaseWeapon)item).WeaponAttributes.HitDispel, HitDispelAdd, HitDispelCap, from);
if( HitDispelAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitDispel += HitDispelAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitDispelToAdd(int itemHitDispel, int HitDispelAdd ,int HitDispelCap, Mobile from)
{
int ret = 0;
if(itemHitDispel < HitDispelCap)
{
if( (itemHitDispel + HitDispelAdd ) > HitDispelCap )
{
ret = HitDispelAdd - ( (itemHitDispel + HitDispelAdd ) - HitDispelCap );
from.SendMessage("You increase the Hit Dispel on the item and it has now reached it's max. +"+ret+" Hit Dispel has been added.");
}
else{
from.SendMessage( "You increase the Hit Dispel on the item. +"+HitDispelAdd+" Hit Dispel has been added." );
ret = HitDispelAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Dispel." );
}
return ret;
}
}
public class HitDispelIncreaseDeed : Item
{
[Constructable]
public HitDispelIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+5 Hit Dispel Increase Deed";
LootType = LootType.Blessed;
}
public HitDispelIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Dispel?" );
from.Target = new HitDispelIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitEnergyArea to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitEnergyAreaIncreaseTarget : Target
{
private HitEnergyAreaIncreaseDeed m_Deed;
public HitEnergyAreaIncreaseTarget( HitEnergyAreaIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitEnergyAreaAdd = 1; //Amount of Hit Energy Area to be added
int HitEnergyAreaCap = 100; //Limit of Hit Energy Area that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Energy Area to that item there!" );
}
else
{
HitEnergyAreaAdd = HitEnergyAreaToAdd(((BaseWeapon)item).WeaponAttributes.HitEnergyArea, HitEnergyAreaAdd, HitEnergyAreaCap, from);
if( HitEnergyAreaAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitEnergyArea += HitEnergyAreaAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitEnergyAreaToAdd(int itemHitEnergyArea, int HitEnergyAreaAdd ,int HitEnergyAreaCap, Mobile from)
{
int ret = 0;
if(itemHitEnergyArea < HitEnergyAreaCap)
{
if( (itemHitEnergyArea + HitEnergyAreaAdd ) > HitEnergyAreaCap )
{
ret = HitEnergyAreaAdd - ( (itemHitEnergyArea + HitEnergyAreaAdd ) - HitEnergyAreaCap );
from.SendMessage("You increase the Hit Energy Area on the item and it has now reached it's max. +"+ret+" Hit Energy Area has been added.");
}
else{
from.SendMessage( "You increase the Hit Energy Area on the item. +"+HitEnergyAreaAdd+" Hit Energy Area has been added." );
ret = HitEnergyAreaAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Energy Area." );
}
return ret;
}
}
public class HitEnergyAreaIncreaseDeed : Item
{
[Constructable]
public HitEnergyAreaIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Energy Area Increase Deed";
LootType = LootType.Blessed;
}
public HitEnergyAreaIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Energy Area?" );
from.Target = new HitEnergyAreaIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitFireArea to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitFireAreaIncreaseTarget : Target
{
private HitFireAreaIncreaseDeed m_Deed;
public HitFireAreaIncreaseTarget( HitFireAreaIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitFireAreaAdd = 1; //Amount of Hit Fire Area to be added
int HitFireAreaCap = 100; //Limit of Hit Fire Area that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Fire Area to that item there!" );
}
else
{
HitFireAreaAdd = HitFireAreaToAdd(((BaseWeapon)item).WeaponAttributes.HitFireArea, HitFireAreaAdd, HitFireAreaCap, from);
if( HitFireAreaAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitFireArea += HitFireAreaAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitFireAreaToAdd(int itemHitFireArea, int HitFireAreaAdd ,int HitFireAreaCap, Mobile from)
{
int ret = 0;
if(itemHitFireArea < HitFireAreaCap)
{
if( (itemHitFireArea + HitFireAreaAdd ) > HitFireAreaCap )
{
ret = HitFireAreaAdd - ( (itemHitFireArea + HitFireAreaAdd ) - HitFireAreaCap );
from.SendMessage("You increase the Hit Fire Area on the item and it has now reached it's max. +"+ret+" Hit Fire Area has been added.");
}
else{
from.SendMessage( "You increase the Hit Fire Area on the item. +"+HitFireAreaAdd+" Hit Fire Area has been added." );
ret = HitFireAreaAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Fire Area." );
}
return ret;
}
}
public class HitFireAreaIncreaseDeed : Item
{
[Constructable]
public HitFireAreaIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Fire Area Increase Deed";
LootType = LootType.Blessed;
}
public HitFireAreaIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Fire Area?" );
from.Target = new HitFireAreaIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitFireball to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitFireballIncreaseTarget : Target
{
private HitFireballIncreaseDeed m_Deed;
public HitFireballIncreaseTarget( HitFireballIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitFireballAdd = 1; //Amount of Hit Fireball to be added
int HitFireballCap = 100; //Limit of Hit Fireball that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Fireball to that item there!" );
}
else
{
HitFireballAdd = HitFireballToAdd(((BaseWeapon)item).WeaponAttributes.HitFireball, HitFireballAdd, HitFireballCap, from);
if( HitFireballAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitFireball += HitFireballAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitFireballToAdd(int itemHitFireball, int HitFireballAdd ,int HitFireballCap, Mobile from)
{
int ret = 0;
if(itemHitFireball < HitFireballCap)
{
if( (itemHitFireball + HitFireballAdd ) > HitFireballCap )
{
ret = HitFireballAdd - ( (itemHitFireball + HitFireballAdd ) - HitFireballCap );
from.SendMessage("You increase the Hit Fireball on the item and it has now reached it's max. +"+ret+" Hit Fireball has been added.");
}
else{
from.SendMessage( "You increase the Hit Fireball on the item. +"+HitFireballAdd+" Hit Fireball has been added." );
ret = HitFireballAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Fireball." );
}
return ret;
}
}
public class HitFireballIncreaseDeed : Item
{
[Constructable]
public HitFireballIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Fireball Increase Deed";
LootType = LootType.Blessed;
}
public HitFireballIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Fireball?" );
from.Target = new HitFireballIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitHarm to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitHarmIncreaseTarget : Target
{
private HitHarmIncreaseDeed m_Deed;
public HitHarmIncreaseTarget( HitHarmIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitHarmAdd = 1; //Amount of Hit Harm to be added
int HitHarmCap = 100; //Limit of Hit Harm that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Harm to that item there!" );
}
else
{
HitHarmAdd = HitHarmToAdd(((BaseWeapon)item).WeaponAttributes.HitHarm, HitHarmAdd, HitHarmCap, from);
if( HitHarmAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitHarm += HitHarmAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitHarmToAdd(int itemHitHarm, int HitHarmAdd ,int HitHarmCap, Mobile from)
{
int ret = 0;
if(itemHitHarm < HitHarmCap)
{
if( (itemHitHarm + HitHarmAdd ) > HitHarmCap )
{
ret = HitHarmAdd - ( (itemHitHarm + HitHarmAdd ) - HitHarmCap );
from.SendMessage("You increase the Hit Harm on the item and it has now reached it's max. +"+ret+" Hit Harm has been added.");
}
else{
from.SendMessage( "You increase the Hit Harm on the item. +"+HitHarmAdd+" Hit Harm has been added." );
ret = HitHarmAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Harm." );
}
return ret;
}
}
public class HitHarmIncreaseDeed : Item
{
[Constructable]
public HitHarmIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Harm Increase Deed";
LootType = LootType.Blessed;
}
public HitHarmIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Harm?" );
from.Target = new HitHarmIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitLeechHits to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitLeechHitsIncreaseTarget : Target
{
private HitLeechHitsIncreaseDeed m_Deed;
public HitLeechHitsIncreaseTarget( HitLeechHitsIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitLeechHitsAdd = 1; //Amount of Hit Leech Hits to be added
int HitLeechHitsCap = 100; //Limit of Hit Leech Hits that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Leech Hits to that item there!" );
}
else
{
HitLeechHitsAdd = HitLeechHitsToAdd(((BaseWeapon)item).WeaponAttributes.HitLeechHits, HitLeechHitsAdd, HitLeechHitsCap, from);
if( HitLeechHitsAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitLeechHits += HitLeechHitsAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitLeechHitsToAdd(int itemHitLeechHits, int HitLeechHitsAdd ,int HitLeechHitsCap, Mobile from)
{
int ret = 0;
if(itemHitLeechHits < HitLeechHitsCap)
{
if( (itemHitLeechHits + HitLeechHitsAdd ) > HitLeechHitsCap )
{
ret = HitLeechHitsAdd - ( (itemHitLeechHits + HitLeechHitsAdd ) - HitLeechHitsCap );
from.SendMessage("You increase the Hit Leech Hits on the item and it has now reached it's max. +"+ret+" Hit Leech Hits has been added.");
}
else{
from.SendMessage( "You increase the Hit Leech Hits on the item. +"+HitLeechHitsAdd+" Hit Leech Hits has been added." );
ret = HitLeechHitsAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Leech Hits." );
}
return ret;
}
}
public class HitLeechHitsIncreaseDeed : Item
{
[Constructable]
public HitLeechHitsIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Leech Hits Increase Deed";
LootType = LootType.Blessed;
}
public HitLeechHitsIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Leech Hits?" );
from.Target = new HitLeechHitsIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitLeechMana to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitLeechManaIncreaseTarget : Target
{
private HitLeechManaIncreaseDeed m_Deed;
public HitLeechManaIncreaseTarget( HitLeechManaIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitLeechManaAdd = 1; //Amount of Hit Leech Mana to be added
int HitLeechManaCap = 100; //Limit of Hit Leech Mana that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Leech Mana to that item there!" );
}
else
{
HitLeechManaAdd = HitLeechManaToAdd(((BaseWeapon)item).WeaponAttributes.HitLeechMana, HitLeechManaAdd, HitLeechManaCap, from);
if( HitLeechManaAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitLeechMana += HitLeechManaAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitLeechManaToAdd(int itemHitLeechMana, int HitLeechManaAdd ,int HitLeechManaCap, Mobile from)
{
int ret = 0;
if(itemHitLeechMana < HitLeechManaCap)
{
if( (itemHitLeechMana + HitLeechManaAdd ) > HitLeechManaCap )
{
ret = HitLeechManaAdd - ( (itemHitLeechMana + HitLeechManaAdd ) - HitLeechManaCap );
from.SendMessage("You increase the Hit Leech Mana on the item and it has now reached it's max. +"+ret+" Hit Leech Mana has been added.");
}
else{
from.SendMessage( "You increase the Hit Leech Mana on the item. +"+HitLeechManaAdd+" Hit Leech Mana has been added." );
ret = HitLeechManaAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Leech Mana." );
}
return ret;
}
}
public class HitLeechManaIncreaseDeed : Item
{
[Constructable]
public HitLeechManaIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Leech Mana Increase Deed";
LootType = LootType.Blessed;
}
public HitLeechManaIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Leech Mana?" );
from.Target = new HitLeechManaIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitLeechStam to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitLeechStamIncreaseTarget : Target
{
private HitLeechStamIncreaseDeed m_Deed;
public HitLeechStamIncreaseTarget( HitLeechStamIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitLeechStamAdd = 1; //Amount of Hit Leech Stam to be added
int HitLeechStamCap = 100; //Limit of Hit Leech Stam that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Leech Stam to that item there!" );
}
else
{
HitLeechStamAdd = HitLeechStamToAdd(((BaseWeapon)item).WeaponAttributes.HitLeechStam, HitLeechStamAdd, HitLeechStamCap, from);
if( HitLeechStamAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitLeechStam += HitLeechStamAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitLeechStamToAdd(int itemHitLeechStam, int HitLeechStamAdd ,int HitLeechStamCap, Mobile from)
{
int ret = 0;
if(itemHitLeechStam < HitLeechStamCap)
{
if( (itemHitLeechStam + HitLeechStamAdd ) > HitLeechStamCap )
{
ret = HitLeechStamAdd - ( (itemHitLeechStam + HitLeechStamAdd ) - HitLeechStamCap );
from.SendMessage("You increase the Hit Leech Stam on the item and it has now reached it's max. +"+ret+" Hit Leech Stam has been added.");
}
else{
from.SendMessage( "You increase the Hit Leech Stam on the item. +"+HitLeechStamAdd+" Hit Leech Stam has been added." );
ret = HitLeechStamAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Leech Stam." );
}
return ret;
}
}
public class HitLeechStamIncreaseDeed : Item
{
[Constructable]
public HitLeechStamIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Leech Stam Increase Deed";
LootType = LootType.Blessed;
}
public HitLeechStamIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Leech Stam?" );
from.Target = new HitLeechStamIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitLightning to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitLightningIncreaseTarget : Target
{
private HitLightningIncreaseDeed m_Deed;
public HitLightningIncreaseTarget( HitLightningIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitLightningAdd = 1; //Amount of Hit Lightning to be added
int HitLightningCap = 100; //Limit of Hit Lightning that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Lightning to that item there!" );
}
else
{
HitLightningAdd = HitLightningToAdd(((BaseWeapon)item).WeaponAttributes.HitLightning, HitLightningAdd, HitLightningCap, from);
if( HitLightningAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitLightning += HitLightningAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitLightningToAdd(int itemHitLightning, int HitLightningAdd ,int HitLightningCap, Mobile from)
{
int ret = 0;
if(itemHitLightning < HitLightningCap)
{
if( (itemHitLightning + HitLightningAdd ) > HitLightningCap )
{
ret = HitLightningAdd - ( (itemHitLightning + HitLightningAdd ) - HitLightningCap );
from.SendMessage("You increase the Hit Lightning on the item and it has now reached it's max. +"+ret+" Hit Lightning has been added.");
}
else{
from.SendMessage( "You increase the Hit Lightning on the item. +"+HitLightningAdd+" Hit Lightning has been added." );
ret = HitLightningAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Lightning." );
}
return ret;
}
}
public class HitLightningIncreaseDeed : Item
{
[Constructable]
public HitLightningIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Lightning Increase Deed";
LootType = LootType.Blessed;
}
public HitLightningIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Lightning?" );
from.Target = new HitLightningIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitLowerAttack to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitLowerAttackIncreaseTarget : Target
{
private HitLowerAttackIncreaseDeed m_Deed;
public HitLowerAttackIncreaseTarget( HitLowerAttackIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitLowerAttackAdd = 1; //Amount of Hit Lower Attack to be added
int HitLowerAttackCap = 100; //Limit of Hit Lower Attack that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Lower Attack to that item there!" );
}
else
{
HitLowerAttackAdd = HitLowerAttackToAdd(((BaseWeapon)item).WeaponAttributes.HitLowerAttack, HitLowerAttackAdd, HitLowerAttackCap, from);
if( HitLowerAttackAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitLowerAttack += HitLowerAttackAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitLowerAttackToAdd(int itemHitLowerAttack, int HitLowerAttackAdd ,int HitLowerAttackCap, Mobile from)
{
int ret = 0;
if(itemHitLowerAttack < HitLowerAttackCap)
{
if( (itemHitLowerAttack + HitLowerAttackAdd ) > HitLowerAttackCap )
{
ret = HitLowerAttackAdd - ( (itemHitLowerAttack + HitLowerAttackAdd ) - HitLowerAttackCap );
from.SendMessage("You increase the Hit Lower Attack on the item and it has now reached it's max. +"+ret+" Hit Lower Attack has been added.");
}
else{
from.SendMessage( "You increase the Hit Lower Attack on the item. +"+HitLowerAttackAdd+" Hit Lower Attack has been added." );
ret = HitLowerAttackAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Lower Attack." );
}
return ret;
}
}
public class HitLowerAttackIncreaseDeed : Item
{
[Constructable]
public HitLowerAttackIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Lower Attack Increase Deed";
LootType = LootType.Blessed;
}
public HitLowerAttackIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Lower Attack?" );
from.Target = new HitLowerAttackIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitLowerDefend to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitLowerDefendIncreaseTarget : Target
{
private HitLowerDefendIncreaseDeed m_Deed;
public HitLowerDefendIncreaseTarget( HitLowerDefendIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitLowerDefendAdd = 1; //Amount of Hit Lower Defend to be added
int HitLowerDefendCap = 100; //Limit of Hit Lower Defend that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Lower Defend to that item there!" );
}
else
{
HitLowerDefendAdd = HitLowerDefendToAdd(((BaseWeapon)item).WeaponAttributes.HitLowerDefend, HitLowerDefendAdd, HitLowerDefendCap, from);
if( HitLowerDefendAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitLowerDefend += HitLowerDefendAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitLowerDefendToAdd(int itemHitLowerDefend, int HitLowerDefendAdd ,int HitLowerDefendCap, Mobile from)
{
int ret = 0;
if(itemHitLowerDefend < HitLowerDefendCap)
{
if( (itemHitLowerDefend + HitLowerDefendAdd ) > HitLowerDefendCap )
{
ret = HitLowerDefendAdd - ( (itemHitLowerDefend + HitLowerDefendAdd ) - HitLowerDefendCap );
from.SendMessage("You increase the Hit Lower Defend on the item and it has now reached it's max. +"+ret+" Hit Lower Defend has been added.");
}
else{
from.SendMessage( "You increase the Hit Lower Defend on the item. +"+HitLowerDefendAdd+" Hit Lower Defend has been added." );
ret = HitLowerDefendAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Lower Defend." );
}
return ret;
}
}
public class HitLowerDefendIncreaseDeed : Item
{
[Constructable]
public HitLowerDefendIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Lower Defend Increase Deed";
LootType = LootType.Blessed;
}
public HitLowerDefendIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Lower Defend?" );
from.Target = new HitLowerDefendIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitMagicArrow to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitMagicArrowIncreaseTarget : Target
{
private HitMagicArrowIncreaseDeed m_Deed;
public HitMagicArrowIncreaseTarget( HitMagicArrowIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitMagicArrowAdd = 1; //Amount of Hit Magic Arrow to be added
int HitMagicArrowCap = 100; //Limit of Hit Magic Arrow that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Magic Arrow to that item there!" );
}
else
{
HitMagicArrowAdd = HitMagicArrowToAdd(((BaseWeapon)item).WeaponAttributes.HitMagicArrow, HitMagicArrowAdd, HitMagicArrowCap, from);
if( HitMagicArrowAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitMagicArrow += HitMagicArrowAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitMagicArrowToAdd(int itemHitMagicArrow, int HitMagicArrowAdd ,int HitMagicArrowCap, Mobile from)
{
int ret = 0;
if(itemHitMagicArrow < HitMagicArrowCap)
{
if( (itemHitMagicArrow + HitMagicArrowAdd ) > HitMagicArrowCap )
{
ret = HitMagicArrowAdd - ( (itemHitMagicArrow + HitMagicArrowAdd ) - HitMagicArrowCap );
from.SendMessage("You increase the Hit Magic Arrow on the item and it has now reached it's max. +"+ret+" Hit Magic Arrow has been added.");
}
else{
from.SendMessage( "You increase the Hit Magic Arrow on the item. +"+HitMagicArrowAdd+" Hit Magic Arrow has been added." );
ret = HitMagicArrowAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Magic Arrow." );
}
return ret;
}
}
public class HitMagicArrowIncreaseDeed : Item
{
[Constructable]
public HitMagicArrowIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Magic Arrow Increase Deed";
LootType = LootType.Blessed;
}
public HitMagicArrowIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Magic Arrow?" );
from.Target = new HitMagicArrowIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitPhysicalArea to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitPhysicalAreaIncreaseTarget : Target
{
private HitPhysicalAreaIncreaseDeed m_Deed;
public HitPhysicalAreaIncreaseTarget( HitPhysicalAreaIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitPhysicalAreaAdd = 1; //Amount of Hit Physical Area to be added
int HitPhysicalAreaCap = 100; //Limit of Hit Physical Area that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Physical Area to that item there!" );
}
else
{
HitPhysicalAreaAdd = HitPhysicalAreaToAdd(((BaseWeapon)item).WeaponAttributes.HitPhysicalArea, HitPhysicalAreaAdd, HitPhysicalAreaCap, from);
if( HitPhysicalAreaAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitPhysicalArea += HitPhysicalAreaAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitPhysicalAreaToAdd(int itemHitPhysicalArea, int HitPhysicalAreaAdd ,int HitPhysicalAreaCap, Mobile from)
{
int ret = 0;
if(itemHitPhysicalArea < HitPhysicalAreaCap)
{
if( (itemHitPhysicalArea + HitPhysicalAreaAdd ) > HitPhysicalAreaCap )
{
ret = HitPhysicalAreaAdd - ( (itemHitPhysicalArea + HitPhysicalAreaAdd ) - HitPhysicalAreaCap );
from.SendMessage("You increase the Hit Physical Area on the item and it has now reached it's max. +"+ret+" Hit Physical Area has been added.");
}
else{
from.SendMessage( "You increase the Hit Physical Area on the item. +"+HitPhysicalAreaAdd+" Hit Physical Area has been added." );
ret = HitPhysicalAreaAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Physical Area." );
}
return ret;
}
}
public class HitPhysicalAreaIncreaseDeed : Item
{
[Constructable]
public HitPhysicalAreaIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Physical Area Increase Deed";
LootType = LootType.Blessed;
}
public HitPhysicalAreaIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Physical Area?" );
from.Target = new HitPhysicalAreaIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add HitPoisonArea to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class HitPoisonAreaIncreaseTarget : Target
{
private HitPoisonAreaIncreaseDeed m_Deed;
public HitPoisonAreaIncreaseTarget( HitPoisonAreaIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int HitPoisonAreaAdd = 1; //Amount of Hit Poison Area to be added
int HitPoisonAreaCap = 100; //Limit of Hit Poison Area that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Hit Poison Area to that item there!" );
}
else
{
HitPoisonAreaAdd = HitPoisonAreaToAdd(((BaseWeapon)item).WeaponAttributes.HitPoisonArea, HitPoisonAreaAdd, HitPoisonAreaCap, from);
if( HitPoisonAreaAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.HitPoisonArea += HitPoisonAreaAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int HitPoisonAreaToAdd(int itemHitPoisonArea, int HitPoisonAreaAdd ,int HitPoisonAreaCap, Mobile from)
{
int ret = 0;
if(itemHitPoisonArea < HitPoisonAreaCap)
{
if( (itemHitPoisonArea + HitPoisonAreaAdd ) > HitPoisonAreaCap )
{
ret = HitPoisonAreaAdd - ( (itemHitPoisonArea + HitPoisonAreaAdd ) - HitPoisonAreaCap );
from.SendMessage("You increase the Hit Poison Area on the item and it has now reached it's max. +"+ret+" Hit Poison Area has been added.");
}
else{
from.SendMessage( "You increase the Hit Poison Area on the item. +"+HitPoisonAreaAdd+" Hit Poison Area has been added." );
ret = HitPoisonAreaAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Hit Poison Area." );
}
return ret;
}
}
public class HitPoisonAreaIncreaseDeed : Item
{
[Constructable]
public HitPoisonAreaIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Hit Poison Area Increase Deed";
LootType = LootType.Blessed;
}
public HitPoisonAreaIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Hit Poison Area?" );
from.Target = new HitPoisonAreaIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,109 @@
//BY: SHAMBAMPOW
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class LanternToShieldTarget : Target
{
private LanternToShieldDeed m_Deed;
public LanternToShieldTarget( LanternToShieldDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is Lantern )
{
Item lantern = (Item)target;
if( lantern.RootParent != from )
{
from.SendMessage( "The lantern must be with you!" );
}
else
{
BaseArmor shield = new Buckler();
shield.ItemID = lantern.ItemID;
shield.Name = lantern.Name;
shield.Hue = lantern.Hue;
shield.LootType = lantern.LootType;
shield.Attributes.SpellChanneling = 1;
shield.PoisonBonus = -1;
shield.MaxHitPoints = 255;
shield.HitPoints = 255;
if( lantern.Insured )
shield.Insured = true;
from.AddToBackpack( shield );
lantern.Delete();
from.SendMessage( "You magically convert the lantern into a lantern-shield..." );
m_Deed.Delete();
}
}
else
{
from.SendMessage( "That is not a lantern." );
}
}
}
public class LanternToShieldDeed : Item
{
[Constructable]
public LanternToShieldDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Lantern To Shield deed";
LootType = LootType.Blessed;
Hue = 1177;
}
public LanternToShieldDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) // Make sure its in their pack
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("What lantern would you like to convert into a lantern-shield?" );
from.Target = new LanternToShieldTarget( this ); // Call our target
}
}
}
}

View File

@@ -0,0 +1,218 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
//Lower Reg Cost Deed
public class LowerRegCostTarget : Target
{
private LowerRegCostDeed m_Deed;
public LowerRegCostTarget( LowerRegCostDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon || target is BaseShield || target is BaseJewel || target is BaseArmor )
{
int augment = ( ( Utility.Random( 2 ) ) /* scalar*/ ) + 4;
int augmentper = ( ( Utility.Random( 4 ) ) /* scalar*/ ) + 10;
Item item = (Item)target;
if (item is BaseWeapon)
{
if ( ((BaseWeapon)item).Attributes.LowerRegCost == 20 ) from.SendMessage( "That already has lower reg cost!");
else
{
if( item.RootParent != from ) from.SendMessage( "You can not put lower reg cost on that there!" );
else
{
((BaseWeapon)item).Attributes.LowerRegCost += augmentper;
from.SendMessage( "You magically add lower reg cost to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseShield)
{
if ( ((BaseShield)item).Attributes.LowerRegCost == 20 ) from.SendMessage( "That already has lower reg cost!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put lower reg cost on that there!" );
else
{
((BaseShield)item).Attributes.LowerRegCost += augmentper;
from.SendMessage( "You magically add lower reg cost to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseArmor)
{
if ( ((BaseArmor)item).Attributes.LowerRegCost == 20 ) from.SendMessage( "That already has lower reg cost!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put lower reg cost on that there!" );
else
{
((BaseArmor)item).Attributes.LowerRegCost += augmentper;
from.SendMessage( "You magically add lower reg cost to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseJewel)
{
if ( ((BaseJewel)item).Attributes.LowerRegCost == 20 ) from.SendMessage( "That already has lower reg cost!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put lower reg cost on that there!" );
else
{
((BaseJewel)item).Attributes.LowerRegCost += augmentper;
from.SendMessage( "You magically add lower reg cost to your item...." );
m_Deed.Delete();
}
}
}
}
else from.SendMessage( "You can not put lower reg cost on that" );
}
}
public class LowerRegCostDeed : Item
{
[Constructable]
public LowerRegCostDeed() : base( 0x14F0 )
{
Name = "a Lower Reg Cost deed";
Hue = 0x84A;
}
public LowerRegCostDeed(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();}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What item would you like to add lower reg cost to?" );
from.Target = new LowerRegCostTarget( this );
}
}
}
//Lower Mana Cost Deed
public class LowerManaCostTarget : Target
{
private LowerManaCostDeed m_Deed;
public LowerManaCostTarget( LowerManaCostDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon || target is BaseShield || target is BaseJewel || target is BaseArmor )
{
int augment = ( ( Utility.Random( 2 ) ) /* scalar*/ ) + 2;
int augmentper = ( ( Utility.Random( 4 ) ) /* scalar*/ ) + 6;
Item item = (Item)target;
if (item is BaseWeapon)
{
if ( ((BaseWeapon)item).Attributes.LowerManaCost == 8 ) from.SendMessage( "That already has lower mana cost!");
else
{
if( item.RootParent != from ) from.SendMessage( "You can not put lower mana cost on that there!" );
else
{
((BaseWeapon)item).Attributes.LowerManaCost += augmentper;
from.SendMessage( "You magically add lower mana cost to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseShield)
{
if ( ((BaseShield)item).Attributes.LowerManaCost == 8 ) from.SendMessage( "That already has lower mana cost!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put lower mana cost on that there!" );
else
{
((BaseShield)item).Attributes.LowerManaCost += augmentper;
from.SendMessage( "You magically add lower mana cost to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseArmor)
{
if ( ((BaseArmor)item).Attributes.LowerManaCost == 8 ) from.SendMessage( "That already has lower mana cost!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put lower mana cost on that there!" );
else
{
((BaseArmor)item).Attributes.LowerManaCost += augmentper;
from.SendMessage( "You magically add lower mana cost to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseJewel)
{
if ( ((BaseJewel)item).Attributes.LowerManaCost == 8 ) from.SendMessage( "That already has lower mana cost!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put lower mana cost on that there!" );
else
{
((BaseJewel)item).Attributes.LowerManaCost += augmentper;
from.SendMessage( "You magically add lower mana cost to your item...." );
m_Deed.Delete();
}
}
}
}
else from.SendMessage( "You can not put lower mana cost on that" );
}
}
public class LowerManaCostDeed : Item
{
[Constructable]
public LowerManaCostDeed() : base( 0x14F0 )
{
Name = "a Lower Mana Cost deed";
Hue = 0x7D3;
}
public LowerManaCostDeed(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();}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What item would you like to add lower mana cost to?" );
from.Target = new LowerManaCostTarget( this );
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add LowerManaCost to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class LowerManaCostIncreaseTarget : Target
{
private LowerManaCostIncreaseDeed m_Deed;
public LowerManaCostIncreaseTarget( LowerManaCostIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int LowerManaCostAdd = 1; //Amount of Lower Mana Cost to be added
int LowerManaCostCap = 95; //Limit of Lower Mana Cost that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Mana Cost to that item there!" );
}
else
{
LowerManaCostAdd = LowerManaCostToAdd(((BaseWeapon)item).Attributes.LowerManaCost, LowerManaCostAdd, LowerManaCostCap, from);
if( LowerManaCostAdd > 0 )
{
((BaseWeapon)item).Attributes.LowerManaCost += LowerManaCostAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Mana Cost to that item there!" );
}
else
{
LowerManaCostAdd = LowerManaCostToAdd(((BaseArmor)item).Attributes.LowerManaCost, LowerManaCostAdd, LowerManaCostCap, from);
if( LowerManaCostAdd > 0 )
{
((BaseArmor)item).Attributes.LowerManaCost += LowerManaCostAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Mana Cost to that item there!" );
}
else
{
LowerManaCostAdd = LowerManaCostToAdd(((BaseClothing)item).Attributes.LowerManaCost, LowerManaCostAdd, LowerManaCostCap, from);
if( LowerManaCostAdd > 0 )
{
((BaseClothing)item).Attributes.LowerManaCost += LowerManaCostAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Mana Cost to that item there!" );
}
else
{
LowerManaCostAdd = LowerManaCostToAdd(((BaseTalisman)item).Attributes.LowerManaCost, LowerManaCostAdd, LowerManaCostCap, from);
if( LowerManaCostAdd > 0 )
{
((BaseTalisman)item).Attributes.LowerManaCost += LowerManaCostAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Mana Cost to that item there!" );
}
else
{
LowerManaCostAdd = LowerManaCostToAdd(((BaseJewel)item).Attributes.LowerManaCost, LowerManaCostAdd, LowerManaCostCap, from);
if( LowerManaCostAdd > 0 )
{
((BaseJewel)item).Attributes.LowerManaCost += LowerManaCostAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Mana Cost to that item there!" );
}
else
{
LowerManaCostAdd = LowerManaCostToAdd(((Spellbook)item).Attributes.LowerManaCost, LowerManaCostAdd, LowerManaCostCap, from);
if( LowerManaCostAdd > 0 )
{
((Spellbook)item).Attributes.LowerManaCost += LowerManaCostAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Mana Cost to that item there!" );
}
else
{
LowerManaCostAdd = LowerManaCostToAdd(((BaseQuiver)item).Attributes.LowerManaCost, LowerManaCostAdd, LowerManaCostCap, from);
if( LowerManaCostAdd > 0 )
{
((BaseQuiver)item).Attributes.LowerManaCost += LowerManaCostAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int LowerManaCostToAdd(int itemLowerManaCost, int LowerManaCostAdd ,int LowerManaCostCap, Mobile from)
{
int ret = 0;
if(itemLowerManaCost < LowerManaCostCap)
{
if( (itemLowerManaCost + LowerManaCostAdd ) > LowerManaCostCap )
{
ret = LowerManaCostAdd - ( (itemLowerManaCost + LowerManaCostAdd ) - LowerManaCostCap );
from.SendMessage("You increase theLower Mana Cost on the item and it has now reached it's max. +"+ret+"Lower Mana Cost has been added.");
}
else{
from.SendMessage( "You increase theLower Mana Cost on the item. +"+LowerManaCostAdd+"Lower Mana Cost has been added." );
ret = LowerManaCostAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Lower Mana Cost." );
}
return ret;
}
}
public class LowerManaCostIncreaseDeed : Item
{
[Constructable]
public LowerManaCostIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1Lower Mana Cost Increase Deed";
LootType = LootType.Blessed;
}
public LowerManaCostIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increaseLower Mana Cost?" );
from.Target = new LowerManaCostIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add LowerRegCost to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class LowerRegCostIncreaseTarget : Target
{
private LowerRegCostIncreaseDeed m_Deed;
public LowerRegCostIncreaseTarget( LowerRegCostIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int LowerRegCostAdd = 1; //Amount of Lower Reg Cost to be added
int LowerRegCostCap = 100; //Limit of Lower Reg Cost that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = true;
bool allowJewel = true;
bool allowClothing = true;
bool allowSpellbook = true;
bool allowTalisman = true;
bool allowQuiver = true;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Reg Cost to that item there!" );
}
else
{
LowerRegCostAdd = LowerRegCostToAdd(((BaseWeapon)item).Attributes.LowerRegCost, LowerRegCostAdd, LowerRegCostCap, from);
if( LowerRegCostAdd > 0 )
{
((BaseWeapon)item).Attributes.LowerRegCost += LowerRegCostAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Reg Cost to that item there!" );
}
else
{
LowerRegCostAdd = LowerRegCostToAdd(((BaseArmor)item).Attributes.LowerRegCost, LowerRegCostAdd, LowerRegCostCap, from);
if( LowerRegCostAdd > 0 )
{
((BaseArmor)item).Attributes.LowerRegCost += LowerRegCostAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Reg Cost to that item there!" );
}
else
{
LowerRegCostAdd = LowerRegCostToAdd(((BaseClothing)item).Attributes.LowerRegCost, LowerRegCostAdd, LowerRegCostCap, from);
if( LowerRegCostAdd > 0 )
{
((BaseClothing)item).Attributes.LowerRegCost += LowerRegCostAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Reg Cost to that item there!" );
}
else
{
LowerRegCostAdd = LowerRegCostToAdd(((BaseTalisman)item).Attributes.LowerRegCost, LowerRegCostAdd, LowerRegCostCap, from);
if( LowerRegCostAdd > 0 )
{
((BaseTalisman)item).Attributes.LowerRegCost += LowerRegCostAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Reg Cost to that item there!" );
}
else
{
LowerRegCostAdd = LowerRegCostToAdd(((BaseJewel)item).Attributes.LowerRegCost, LowerRegCostAdd, LowerRegCostCap, from);
if( LowerRegCostAdd > 0 )
{
((BaseJewel)item).Attributes.LowerRegCost += LowerRegCostAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Reg Cost to that item there!" );
}
else
{
LowerRegCostAdd = LowerRegCostToAdd(((Spellbook)item).Attributes.LowerRegCost, LowerRegCostAdd, LowerRegCostCap, from);
if( LowerRegCostAdd > 0 )
{
((Spellbook)item).Attributes.LowerRegCost += LowerRegCostAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addLower Reg Cost to that item there!" );
}
else
{
LowerRegCostAdd = LowerRegCostToAdd(((BaseQuiver)item).Attributes.LowerRegCost, LowerRegCostAdd, LowerRegCostCap, from);
if( LowerRegCostAdd > 0 )
{
((BaseQuiver)item).Attributes.LowerRegCost += LowerRegCostAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int LowerRegCostToAdd(int itemLowerRegCost, int LowerRegCostAdd ,int LowerRegCostCap, Mobile from)
{
int ret = 0;
if(itemLowerRegCost < LowerRegCostCap)
{
if( (itemLowerRegCost + LowerRegCostAdd ) > LowerRegCostCap )
{
ret = LowerRegCostAdd - ( (itemLowerRegCost + LowerRegCostAdd ) - LowerRegCostCap );
from.SendMessage("You increase theLower Reg Cost on the item and it has now reached it's max. +"+ret+"Lower Reg Cost has been added.");
}
else{
from.SendMessage( "You increase theLower Reg Cost on the item. +"+LowerRegCostAdd+"Lower Reg Cost has been added." );
ret = LowerRegCostAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Lower Reg Cost." );
}
return ret;
}
}
public class LowerRegCostIncreaseDeed : Item
{
[Constructable]
public LowerRegCostIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Lower Reg Cost Increase Deed";
LootType = LootType.Blessed;
}
public LowerRegCostIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increaseLower Reg Cost?" );
from.Target = new LowerRegCostIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,113 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class LuckTarget : Target
{
private LuckDeed m_Deed;
public LuckTarget( LuckDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon || target is BaseShield || target is BaseJewel || target is BaseArmor )
{
int augment = ( ( Utility.Random( 2 ) ) /* scalar*/ ) + 25;
int augmentper = ( ( Utility.Random( 4 ) ) /* scalar*/ ) + 50;
Item item = (Item)target;
if (item is BaseWeapon)
{
if ( ((BaseWeapon)item).Attributes.Luck == 150 ) from.SendMessage( "That already has luck!");
else
{
if( item.RootParent != from ) from.SendMessage( "You can not put luck on that there!" );
else
{
((BaseWeapon)item).Attributes.Luck += augmentper;
from.SendMessage( "You magically add luck to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseShield)
{
if ( ((BaseShield)item).Attributes.Luck == 150 ) from.SendMessage( "That already has luck!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put luck on that there!" );
else
{
((BaseShield)item).Attributes.Luck += augmentper;
from.SendMessage( "You magically add luck to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseArmor)
{
if ( ((BaseArmor)item).Attributes.Luck == 150 ) from.SendMessage( "That already has luck!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put luck on that there!" );
else
{
((BaseArmor)item).Attributes.Luck += augmentper;
from.SendMessage( "You magically add luck to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseJewel)
{
if ( ((BaseJewel)item).Attributes.Luck == 150 ) from.SendMessage( "That already has luck!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put luck on that there!" );
else
{
((BaseJewel)item).Attributes.Luck += augmentper;
from.SendMessage( "You magically add luck to your item...." );
m_Deed.Delete();
}
}
}
}
else from.SendMessage( "You can not put luck on that" );
}
}
public class LuckDeed : Item
{
[Constructable]
public LuckDeed() : base( 0x14F0 )
{
Name = "a Luck deed";
Hue = 0x492;
}
public LuckDeed(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();}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What item would you like to add luck to?" );
from.Target = new LuckTarget( this );
}
}
}
}

View File

@@ -0,0 +1,230 @@
//Add luck to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class LuckIncreaseTarget : Target
{
private LuckIncreaseDeed m_Deed;
public LuckIncreaseTarget( LuckIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int luckAdd = 10; //Amount of luck to be added
int luckCap = 2000; //Limit of luck that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = true;
bool allowJewel = true;
bool allowClothing = true;
bool allowSpellbook = true;
bool allowTalisman = true;
bool allowQuiver = true;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Luck to that item there!" );
}
else
{
luckAdd = luckToAdd(((BaseWeapon)item).Attributes.Luck, luckAdd, luckCap, from);
if( luckAdd > 0 )
{
((BaseWeapon)item).Attributes.Luck += luckAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Luck to that item there!" );
}
else
{
luckAdd = luckToAdd(((BaseArmor)item).Attributes.Luck, luckAdd, luckCap, from);
if( luckAdd > 0 )
{
((BaseArmor)item).Attributes.Luck += luckAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Luck to that item there!" );
}
else
{
luckAdd = luckToAdd(((BaseClothing)item).Attributes.Luck, luckAdd, luckCap, from);
if( luckAdd > 0 )
{
((BaseClothing)item).Attributes.Luck += luckAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Luck to that item there!" );
}
else
{
luckAdd = luckToAdd(((BaseTalisman)item).Attributes.Luck, luckAdd, luckCap, from);
if( luckAdd > 0 )
{
((BaseTalisman)item).Attributes.Luck += luckAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Luck to that item there!" );
}
else
{
luckAdd = luckToAdd(((BaseJewel)item).Attributes.Luck, luckAdd, luckCap, from);
if( luckAdd > 0 )
{
((BaseJewel)item).Attributes.Luck += luckAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Luck to that item there!" );
}
else
{
luckAdd = luckToAdd(((Spellbook)item).Attributes.Luck, luckAdd, luckCap, from);
if( luckAdd > 0 )
{
((Spellbook)item).Attributes.Luck += luckAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Luck to that item there!" );
}
else
{
luckAdd = luckToAdd(((BaseQuiver)item).Attributes.Luck, luckAdd, luckCap, from);
if( luckAdd > 0 )
{
((BaseQuiver)item).Attributes.Luck += luckAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int luckToAdd(int itemLuck, int luckAdd ,int luckCap, Mobile from)
{
int ret = 0;
if(itemLuck < luckCap)
{
if( (itemLuck + luckAdd ) > luckCap )
{
ret = luckAdd - ( (itemLuck + luckAdd ) - luckCap );
from.SendMessage("You increase the Luck on the item and it has now reached it's max. +"+ret+" Luck has been added.");
}
else{
from.SendMessage( "You increase the Luck on the item. +"+luckAdd+" Luck has been added." );
ret = luckAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Luck." );
}
return ret;
}
}
public class LuckIncreaseDeed : Item
{
[Constructable]
public LuckIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+10 Luck Increase Deed";
LootType = LootType.Blessed;
Hue = 1174;
}
public LuckIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase luck?" );
from.Target = new LuckIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add MageWeapon to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class MageWeaponIncreaseTarget : Target
{
private MageWeaponIncreaseDeed m_Deed;
public MageWeaponIncreaseTarget( MageWeaponIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int MageWeaponAdd = 1; //Amount of Mage Weapon to be added
int MageWeaponCap = 100; //Limit of Mage Weapon that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = false;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add Mage Weapon to that item there!" );
}
else
{
MageWeaponAdd = MageWeaponToAdd(((BaseWeapon)item).WeaponAttributes.MageWeapon, MageWeaponAdd, MageWeaponCap, from);
if( MageWeaponAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.MageWeapon += MageWeaponAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int MageWeaponToAdd(int itemMageWeapon, int MageWeaponAdd ,int MageWeaponCap, Mobile from)
{
int ret = 0;
if(itemMageWeapon < MageWeaponCap)
{
if( (itemMageWeapon + MageWeaponAdd ) > MageWeaponCap )
{
ret = MageWeaponAdd - ( (itemMageWeapon + MageWeaponAdd ) - MageWeaponCap );
from.SendMessage("You increase the Mage Weapon on the item and it has now reached it's max. +"+ret+" Mage Weapon has been added.");
}
else{
from.SendMessage( "You increase the Mage Weapon on the item. +"+MageWeaponAdd+" Mage Weapon has been added." );
ret = MageWeaponAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Mage Weapon." );
}
return ret;
}
}
public class MageWeaponIncreaseDeed : Item
{
[Constructable]
public MageWeaponIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Mage Weapon Increase Deed";
LootType = LootType.Blessed;
}
public MageWeaponIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase Mage Weapon?" );
from.Target = new MageWeaponIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,65 @@
using System;
using Server;
using Server.Mobiles;
using Server.Multis;
using Server.Regions;
namespace Server.Items
{
public class MaginciaContractOfEmployment : Item
{
public override int LabelNumber{ get{ return 1150636; } } // Commodity Broker
[Constructable]
public MaginciaContractOfEmployment() : base( 0x14F0 )
{
Weight = 1.0;
//LootType = LootType.Blessed;
}
public MaginciaContractOfEmployment( 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();
}
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else if ( from.Region.Name == "Magincia" )
{
//from.SendLocalizedMessage( 503248 ); // Your godly powers allow you to place this vendor whereever you wish.
Mobile v = new PlayerVendor( from, BaseHouse.FindHouseAt( from ) );
v.Direction = from.Direction & Direction.Mask;
v.MoveToWorld( from.Location, from.Map );
v.SayTo( from, 503246 ); // Ah! it feels good to be working again.
this.Delete();
}
else
{
from.SendLocalizedMessage( 1062677 ); // You cannot place a vendor or barkeep at this location.
}
}
}
}

View File

@@ -0,0 +1,111 @@
// This Script was Scripted by Espcevan
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class NightSightTarget : Target
{
private NightSightDeed m_Deed;
public NightSightTarget( NightSightDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon || target is BaseShield || target is BaseJewel || target is BaseArmor )
{
Item item = (Item)target;
if (item is BaseWeapon)
{
if ( ((BaseWeapon)item).Attributes.NightSight == 1 ) from.SendMessage( "That already has night sight!");
else
{
if( item.RootParent != from ) from.SendMessage( "You can not put night sight on that there!" );
else
{
((BaseWeapon)item).Attributes.NightSight = 1;
from.SendMessage( "You magically add night sight to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseShield)
{
if ( ((BaseShield)item).Attributes.NightSight == 1 ) from.SendMessage( "That already has night sight!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put night sight on that there!" );
else
{
((BaseShield)item).Attributes.NightSight = 1;
from.SendMessage( "You magically add night sight to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseArmor)
{
if ( ((BaseArmor)item).Attributes.NightSight == 1 ) from.SendMessage( "That already has night sight!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put night sight on that there!" );
else
{
((BaseArmor)item).Attributes.NightSight = 1;
from.SendMessage( "You magically add night sight to your item...." );
m_Deed.Delete();
}
}
}
if (item is BaseJewel)
{
if ( ((BaseJewel)item).Attributes.NightSight == 1 ) from.SendMessage( "That already has night sight!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put night sight on that there!" );
else
{
((BaseJewel)item).Attributes.NightSight = 1;
from.SendMessage( "You magically add night sight to your item...." );
m_Deed.Delete();
}
}
}
}
else from.SendMessage( "You can not put night sight on that" );
}
}
public class NightSightDeed : Item
{
[Constructable]
public NightSightDeed() : base( 0x14F0 )
{
Name = "a Night Sight deed";
Hue = 0x492;
}
public NightSightDeed(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();}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What item would you like to add night sight to?" );
from.Target = new NightSightTarget( this );
}
}
}
}

View File

@@ -0,0 +1,95 @@
using System;
using Server;
using Server.Items;
using System.Collections;
using Server.Network;
using Server.Mobiles;
using Server.Targeting;
using System.Net;
using System.Net.Sockets;
namespace Server.Items
{
public class OneHandedWeaponDeed : Item
{
[Constructable]
public OneHandedWeaponDeed() : this( 1 )
{
}
[Constructable]
public OneHandedWeaponDeed( int amount ) : base( 8792 )
{
Weight = 1.0;
Name = "One Handed Weapon Deed";
}
public override void OnDoubleClick( Mobile from )
{
if ( IsChildOf( from.Backpack ) )
{
from.BeginTarget( -1, false, TargetFlags.None, new TargetCallback( OnTarget ) );
from.SendMessage("What weapon will you make one handed?");
}
else
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
}
public void OnTarget( Mobile from, object obj )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else if ( obj is BaseWeapon )
{
Item weapon = (Item)obj;
if ( weapon.RootParent != from )
{
from.SendMessage("The weapon must be in your back.");
}
else if(weapon.Layer == Layer.TwoHanded)
{
weapon.Layer = Layer.FirstValid;
weapon.LootType = LootType.Blessed;
from.SendMessage("Your weapon is now one handed!" );
this.Delete();
}
else if(weapon.Layer == Layer.FirstValid)
{
from.SendMessage("That is already one handed");
}
else
{
from.SendMessage("That is not a weapon!");
}
}
else
{
from.SendMessage("The dyes will not work on that.");
}
}
public OneHandedWeaponDeed( 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,99 @@
//Make a weapon One-HAnded, based on the Self Repair deed by SHAMBAMPOW
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class OneHandedTarget : Target
{
private OneHandedDeed m_Deed;
public OneHandedTarget( OneHandedDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot use this deed on that item there!" );
}
else
{
if(((BaseWeapon)item).Layer == Layer.OneHanded)
{
from.SendMessage( "That weapon is already One-Handed!");
return;
}
else
{
((BaseWeapon)item).Layer = Layer.OneHanded;
from.SendMessage( "This weapon is now One-Handed.");
m_Deed.Delete();
}
}
return;
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
}
public class OneHandedDeed : Item
{
[Constructable]
public OneHandedDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Make a weapon One-Handed deed";
LootType = LootType.Blessed;
Hue = 1150;
}
public OneHandedDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which weapon would you like to make One-Handed?" );
from.Target = new OneHandedTarget( this );
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetColdDamageBonusPotion : Item
{
[Constructable]
public PetColdDamageBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Cold Damage Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new ColdDamage(this);
}
}
public PetColdDamageBonusPotion(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();
}
}
public class ColdDamage : Target
{
private PetColdDamageBonusPotion m_Potion;
public ColdDamage(PetColdDamageBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.ColdDamage < 95)
{
t.ColdDamage += 1;
from.SendMessage("You have reinforced your pet by 1 point of cold damage. Total: [{0}]", t.ColdDamage);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum cold damage.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetColdlResistanceBonusPotion : Item
{
[Constructable]
public PetColdlResistanceBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Cold Resistance Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new ColdResistSeed(this);
}
}
public PetColdlResistanceBonusPotion(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();
}
}
public class ColdResistSeed : Target
{
private PetColdlResistanceBonusPotion m_Potion;
public ColdResistSeed(PetColdlResistanceBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.ColdResistSeed < 95)
{
t.ColdResistSeed += 1;
from.SendMessage("You have reinforced your pet by 1 point of cold resistance. Total: [{0}]", t.ColdResistSeed);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum cold resistance.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetControlSlotsBonusPotion : Item
{
[Constructable]
public PetControlSlotsBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Control Slots Reduce Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new ControlSlots(this);
}
}
public PetControlSlotsBonusPotion(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();
}
}
public class ControlSlots : Target
{
private PetControlSlotsBonusPotion m_Potion;
public ControlSlots(PetControlSlotsBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.ControlSlots > 10)
{
t.ControlSlots -= 1;
from.SendMessage("You have reduce your pet by 1 point of Control Slots . Total: [{0}]", t.ControlSlots);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet slots can't get any lower.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetDamageMaxBonusPotion : Item
{
[Constructable]
public PetDamageMaxBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Damage Max Point Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new DamageMax(this);
}
}
public PetDamageMaxBonusPotion(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();
}
}
public class DamageMax : Target
{
private PetDamageMaxBonusPotion m_Potion;
public DamageMax(PetDamageMaxBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if(t.DamageMax < t.DamageMin && t.DamageMax < 95)
{
t.DamageMax += 1;
from.SendMessage("You have reinforced your pet by 1 point of Damage Max. Total: [{0}]", t.DamageMax);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum Damage Max.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetDamageMinBonusPotion : Item
{
[Constructable]
public PetDamageMinBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Damage Min Point Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new DamageMin(this);
}
}
public PetDamageMinBonusPotion(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();
}
}
public class DamageMin : Target
{
private PetDamageMinBonusPotion m_Potion;
public DamageMin(PetDamageMinBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if(t.DamageMin < t.DamageMax && t.DamageMin < 95)
{
t.DamageMin += 1;
from.SendMessage("You have reinforced your pet by 1 point of DamageMin. Total: [{0}]", t.DamageMin);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum DamageMin.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetEnergyDamageBonusPotion : Item
{
[Constructable]
public PetEnergyDamageBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Energy Damage Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new EnergyDamage(this);
}
}
public PetEnergyDamageBonusPotion(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();
}
}
public class EnergyDamage : Target
{
private PetEnergyDamageBonusPotion m_Potion;
public EnergyDamage(PetEnergyDamageBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.EnergyDamage < 95)
{
t.EnergyDamage += 1;
from.SendMessage("You have reinforced your pet by 1 point of energy damage. Total: [{0}]", t.EnergyDamage);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum energy damage.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetEnergyResistanceBonusPotion : Item
{
[Constructable]
public PetEnergyResistanceBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Energy Resistance Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new EnergyResistSeed(this);
}
}
public PetEnergyResistanceBonusPotion(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();
}
}
public class EnergyResistSeed : Target
{
private PetEnergyResistanceBonusPotion m_Potion;
public EnergyResistSeed(PetEnergyResistanceBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.EnergyResistSeed < 95)
{
t.EnergyResistSeed += 1;
from.SendMessage("You have reinforced your pet by 1 point of energy resistance. Total: [{0}]", t.EnergyResistSeed);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum energy resistance.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetFireDamageBonusPotion : Item
{
[Constructable]
public PetFireDamageBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Fire Damage Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new FireDamage(this);
}
}
public PetFireDamageBonusPotion(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();
}
}
public class FireDamage : Target
{
private PetFireDamageBonusPotion m_Potion;
public FireDamage(PetFireDamageBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.FireDamage < 95)
{
t.FireDamage += 1;
from.SendMessage("You have reinforced your pet by 1 point of fire damage. Total: [{0}]", t.FireDamage);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum fire damage.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetFireResistanceBonusPotion : Item
{
[Constructable]
public PetFireResistanceBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Physical Resistance Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new FireResistSeed(this);
}
}
public PetFireResistanceBonusPotion(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();
}
}
public class FireResistSeed : Target
{
private PetFireResistanceBonusPotion m_Potion;
public FireResistSeed(PetFireResistanceBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.FireResistSeed < 95)
{
t.FireResistSeed += 1;
from.SendMessage("You have reinforced your pet by 1 point of fire resistance. Total: [{0}]", t.FireResistSeed);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum fire resistance.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetHitsPointBonusPotion : Item
{
[Constructable]
public PetHitsPointBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Hits Point Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new HitsMaxSeed(this);
}
}
public PetHitsPointBonusPotion(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();
}
}
public class HitsMaxSeed : Target
{
private PetHitsPointBonusPotion m_Potion;
public HitsMaxSeed(PetHitsPointBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.HitsMaxSeed < 5000)
{
t.HitsMaxSeed += 1;
from.SendMessage("You have reinforced your pet by 1 point of hits point. Total: [{0}]", t.HitsMaxSeed);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum hits point.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetManaPointBonusPotion : Item
{
[Constructable]
public PetManaPointBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Mana Point Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new ManaMaxSeed(this);
}
}
public PetManaPointBonusPotion(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();
}
}
public class ManaMaxSeed : Target
{
private PetManaPointBonusPotion m_Potion;
public ManaMaxSeed(PetManaPointBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.ManaMaxSeed < 95)
{
t.ManaMaxSeed += 1;
from.SendMessage("You have reinforced your pet by 1 point of mana point. Total: [{0}]", t.ManaMaxSeed);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum mana point.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetPhysicalDamageBonusPotion : Item
{
[Constructable]
public PetPhysicalDamageBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Physical Damage Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new PhysicalDamage(this);
}
}
public PetPhysicalDamageBonusPotion(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();
}
}
public class PhysicalDamage : Target
{
private PetPhysicalDamageBonusPotion m_Potion;
public PhysicalDamage(PetPhysicalDamageBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.PhysicalDamage < 95)
{
t.PhysicalDamage += 1;
from.SendMessage("You have reinforced your pet by 1 point of physical damage. Total: [{0}]", t.PhysicalDamage);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum physical damage.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetPhysicalResistanceBonusPotion : Item
{
[Constructable]
public PetPhysicalResistanceBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Physical Resistance Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new PhysicalResistanceSeed(this);
}
}
public PetPhysicalResistanceBonusPotion(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();
}
}
public class PhysicalResistanceSeed : Target
{
private PetPhysicalResistanceBonusPotion m_Potion;
public PhysicalResistanceSeed(PetPhysicalResistanceBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.PhysicalResistanceSeed < 95)
{
t.PhysicalResistanceSeed += 1;
from.SendMessage("You have reinforced your pet by 1 point of physical resistance. Total: [{0}]", t.PhysicalResistanceSeed);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum physical resistance.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetPoisonDamagBonusPotion : Item
{
[Constructable]
public PetPoisonDamagBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Poison Damage Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new PoisonDamage(this);
}
}
public PetPoisonDamagBonusPotion(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();
}
}
public class PoisonDamage : Target
{
private PetPoisonDamagBonusPotion m_Potion;
public PoisonDamage(PetPoisonDamagBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.PoisonDamage < 95)
{
t.PoisonDamage += 1;
from.SendMessage("You have reinforced your pet by 1 point of poison damage. Total: [{0}]", t.PoisonDamage);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum poison damage.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetPoisonResistanceBonusPotion : Item
{
[Constructable]
public PetPoisonResistanceBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Poison Resistance Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new PoisonResistSeed(this);
}
}
public PetPoisonResistanceBonusPotion(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();
}
}
public class PoisonResistSeed : Target
{
private PetPoisonResistanceBonusPotion m_Potion;
public PoisonResistSeed(PetPoisonResistanceBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.PoisonResistSeed < 95)
{
t.PoisonResistSeed += 1;
from.SendMessage("You have reinforced your pet by 1 point of fire resistance. Total: [{0}]", t.PoisonResistSeed);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum fire resistance.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Items
{
public class PetStamPointBonusPotion : Item
{
[Constructable]
public PetStamPointBonusPotion() : base(0x0F04)
{
Weight = 1.0;
Name = "Pet Stam Point Bonus Potion";
LootType = LootType.Blessed;
Hue = 2629;
}
public override void OnDoubleClick(Mobile from) // Override double click of the deed to call our target
{
if (!IsChildOf(from.Backpack))
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Target the pet you with to upgrate");
from.Target = new StamMaxSeed(this);
}
}
public PetStamPointBonusPotion(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();
}
}
public class StamMaxSeed : Target
{
private PetStamPointBonusPotion m_Potion;
public StamMaxSeed(PetStamPointBonusPotion potion) : base(1, false, TargetFlags.None)
{
m_Potion = potion;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Potion == null || m_Potion.Deleted || !m_Potion.IsChildOf(from.Backpack))
return;
if (target is BaseCreature)
{
BaseCreature t = (BaseCreature)target;
if (t.ControlMaster != from)
{
from.SendLocalizedMessage(1114368); // This is not your pet!
}
else
{
if (t.StamMaxSeed < 1000)
{
t.StamMaxSeed = t.Stam + 1;
from.SendMessage("You have reinforced your pet by 1 point of stamina point. Total: [{0}]", t.StamMaxSeed);
m_Potion.Delete();
}
else
{
from.SendMessage("Your pet have a maximum stamina point.");
return;
}
}
}
else
{
from.SendLocalizedMessage(1152924); // That is not a valid pet.
}
}
}
}

View File

@@ -0,0 +1,102 @@
using System;
using Server.Network;
using Server;
using Server.Targets;
using Server.Targeting;
using Server.Mobiles;
using Server.Gumps;
namespace Server.Items
{
public class PetResurrectDeed : Item
{
private BaseCreature pet;
[Constructable]
public PetResurrectDeed(): base(0x14F0)
{
Weight = 1.0;
Movable = true;
Name = "Pet Resurrection Deed";
}
public PetResurrectDeed( 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();
}
public override void OnDoubleClick(Mobile m)
{
if ( !IsChildOf( m.Backpack ) )
{
m.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else if( m.InRange( this.GetWorldLocation(), 1 ) )
{
m.Target = new PetResTarget( this );
m.SendMessage( "What would you like to use this on." );
}
else
{
m.SendLocalizedMessage( 500446 ); // That is too far away.
}
}
private class PetResTarget : Target
{
private Mobile m_Owner;
private PetResurrectDeed m_Powder;
public PetResTarget( PetResurrectDeed charge ) : base ( 10, false, TargetFlags.None )
{
m_Powder=charge;
}
protected override void OnTarget( Mobile from, object target )
{
if( target == from )
from.SendMessage( "You cant do that." );
else if( target is BaseCreature )
{
BaseCreature c = (BaseCreature)target;
Mobile master = c.ControlMaster;
if( c.Controlled == false )
{
from.SendMessage( "That creature is not tamed." );
}
else if( !c.IsDeadPet )
{
from.SendMessage( "That creature is alive." );
}
else if ( c != null && c.IsDeadPet )
{
master.SendGump( new PetResurrectGump( from, c ) );
from.PlaySound( 0x214 );
from.FixedEffect( 0x376A, 10, 16 );
m_Powder.Delete();
}
}
}
}
}
}

View File

@@ -0,0 +1,81 @@
// ****************************************************
// Written For Radio Ultimate By Lichking
// ****************************************************
/*
updated for RunUO 2.0 Final by:
/\
____/_ \____ ### ### ### ### # ### ### # ## ## ###
\ ___\ \ / # # # # # # # # # # # # # # # # #
\/ / \/ / ### ## ### # # # ### # # # # # ## ##
/ /\__/_/\ # # # # # # # # # # # # # # # # #
/__\ \_____\ ### ### # # # ### # # # ### ## # # ###
\ / http://www.wftpradio.net/
\/
*/
using System;
using Server;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Misc;
using Server.Mobiles;
namespace Server.Items
{
public class PetSlotDeed : Item
{
[Constructable]
public PetSlotDeed() : base( 5360 )
{
base.Weight = 1.0;
base.Name = "A Pet Slot Deed +1";
base.Hue = 0x481;
LootType = LootType.Blessed;
}
public PetSlotDeed( 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();
}
public override void OnDoubleClick( Mobile from )
{
PlayerMobile mobile = from as PlayerMobile;
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else if ( mobile.FollowersMax >= 10 )
{
mobile.SendMessage( "You are not allowed more than 10 pet slots." );
}
else
{
mobile.FollowersMax += 1;
mobile.SendMessage( "You have gained +1 to your maximum pet slots." );
Effects.SendLocationParticles( EffectItem.Create( from.Location, from.Map, EffectItem.DefaultDuration ), 0, 0, 0, 0, 0, 5060, 0 );
Effects.PlaySound( from.Location, from.Map, 0x243 );
Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( from.X - 6, from.Y - 6, from.Z + 15 ), from.Map ), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100 );
Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( from.X - 4, from.Y - 6, from.Z + 15 ), from.Map ), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100 );
Effects.SendMovingParticles( new Entity( Serial.Zero, new Point3D( from.X - 6, from.Y - 4, from.Z + 15 ), from.Map ), from, 0x36D4, 7, 0, false, true, 0x497, 0, 9502, 1, 0, (EffectLayer)255, 0x100 );
Delete();
}
}
}
}

View File

@@ -0,0 +1,85 @@
// By DxMonkey
// Ultima Eclipse 2010.
using System;
using Server;
using Server.Mobiles;
using Server.Network;
using Server.Multis;
namespace Server.Items
{
public class RaceChangeDeed : Item
{
[Constructable]
public RaceChangeDeed() : base( 0x14F0 )
{
Name = "Race Change Deed";
Weight = 1.0;
//LootType = LootType.Blessed;
Hue = 2067;
}
public RaceChangeDeed( 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();
}
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
if ( from.Race == Race.Elf && from.BodyValue == 605 )
{
from.Race = Race.Human;
from.BodyValue = 400;
from.SendMessage( 0x32, "You change from a male elf to a male human!" );
this.Delete();
}
else if ( from.Race == Race.Elf && from.BodyValue == 606 )
{
from.Race = Race.Human;
from.BodyValue = 401;
from.SendMessage( 0x32, "You change from a female elf to a female human!" );
this.Delete();
}
else if (from.Race == Race.Human && from.BodyValue == 400 )
{
from.Race = Race.Elf;
from.BodyValue = 605;
from.SendMessage( 0x32, "You change from a male human to a male elf!" );
this.Delete();
}
else if (from.Race == Race.Human && from.BodyValue == 401 )
{
from.Race = Race.Elf;
from.BodyValue = 606;
from.SendMessage( 0x32, "You change from a female human to a female elf!" );
this.Delete();
}
else
{
from.SendMessage( "You can't use this deed with your current race." );
}
}
}
}
}

View File

@@ -0,0 +1,93 @@
// Scripted by Jumpnjahosofat //
using System;
using Server;
using Server.Gumps;
using Server.Network;
namespace Server.Items
{
public class RandomArtifactDeed : Item
{
[Constructable]
public RandomArtifactDeed() : this( null )
{
}
[Constructable]
public RandomArtifactDeed ( string name ) : base ( 0x14F0 )
{
Name = "Random Artifact Deed";
Hue = 1172;
}
public RandomArtifactDeed ( Serial serial ) : base ( serial )
{
}
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage(1042001);
}
else
{
switch (Utility.Random(33))
{
case 0: from.AddToBackpack(new ArmorOfFortune()); break;
case 1: from.AddToBackpack(new GauntletsOfNobility()); break;
case 2: from.AddToBackpack(new HelmOfInsight()); break;
case 3: from.AddToBackpack(new HolyKnightsBreastplate()); break;
case 4: from.AddToBackpack(new InquisitorsResolution()); break;
case 5: from.AddToBackpack(new JackalsCollar()); break;
case 6: from.AddToBackpack(new LeggingsOfBane()); break;
case 7: from.AddToBackpack(new MidnightBracers()); break;
case 8: from.AddToBackpack(new OrnateCrownOfTheHarrower()); break;
case 9: from.AddToBackpack(new ShadowDancerLeggings()); break;
case 10: from.AddToBackpack(new TunicOfFire()); break;
case 11: from.AddToBackpack(new VoiceOfTheFallenKing()); break;
case 12: from.AddToBackpack(new BraceletOfHealth()); break;
case 13: from.AddToBackpack(new OrnamentOfTheMagician()); break;
case 14: from.AddToBackpack(new RingOfTheElements()); break;
case 15: from.AddToBackpack(new RingOfTheVile()); break;
case 16: from.AddToBackpack(new Aegis()); break;
case 17: from.AddToBackpack(new ArcaneShield()); break;
case 18: from.AddToBackpack(new AxeOfTheHeavens()); break;
case 19: from.AddToBackpack(new BladeOfInsanity()); break;
case 20: from.AddToBackpack(new BladeOfTheRighteous()); break;
case 21: from.AddToBackpack(new BoneCrusher()); break;
case 22: from.AddToBackpack(new BreathOfTheDead()); break;
case 23: from.AddToBackpack(new Frostbringer()); break;
case 24: from.AddToBackpack(new LegacyOfTheDreadLord()); break;
case 25: from.AddToBackpack(new SerpentsFang()); break;
case 26: from.AddToBackpack(new StaffOfTheMagi()); break;
case 27: from.AddToBackpack(new TheBeserkersMaul()); break;
case 28: from.AddToBackpack(new TheDragonSlayer()); break;
case 29: from.AddToBackpack(new TheDryadBow()); break;
case 30: from.AddToBackpack(new TheTaskmaster()); break;
case 31: from.AddToBackpack(new TitansHammer()); break;
case 32: from.AddToBackpack(new ZyronicClaw()); break;
}
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();
}
}
}

View File

@@ -0,0 +1,125 @@
//Add ReactiveParalyzeArmor to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class ReactiveParalyzeArmorIncreaseTarget : Target
{
private ReactiveParalyzeArmorIncreaseDeed m_Deed;
public ReactiveParalyzeArmorIncreaseTarget( ReactiveParalyzeArmorIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int ReactiveParalyzeArmorAdd = 1; //Amount of ReactiveParalyzeArmor to be added
int ReactiveParalyzeArmorCap = 1; //Limit of ReactiveParalyzeArmor that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = false;
bool allowArmor = true;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = false;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseArmor && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add ReactiveParalyzeArmor to that item there!" );
}
else
{
ReactiveParalyzeArmorAdd = ReactiveParalyzeArmorToAdd(((BaseArmor)item).ArmorAttributes.ReactiveParalyze, ReactiveParalyzeArmorAdd, ReactiveParalyzeArmorCap, from);
if( ReactiveParalyzeArmorAdd > 0 )
{
((BaseArmor)item).ArmorAttributes.ReactiveParalyze += ReactiveParalyzeArmorAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int ReactiveParalyzeArmorToAdd(int itemReactiveParalyzeArmor, int ReactiveParalyzeArmorAdd ,int ReactiveParalyzeArmorCap, Mobile from)
{
int ret = 0;
if(itemReactiveParalyzeArmor < ReactiveParalyzeArmorCap)
{
if( (itemReactiveParalyzeArmor + ReactiveParalyzeArmorAdd ) > ReactiveParalyzeArmorCap )
{
ret = ReactiveParalyzeArmorAdd - ( (itemReactiveParalyzeArmor + ReactiveParalyzeArmorAdd ) - ReactiveParalyzeArmorCap );
from.SendMessage("You increase the ReactiveParalyzeArmor on the item and it has now reached it's max. +"+ret+" ReactiveParalyzeArmor has been added.");
}
else{
from.SendMessage( "You increase the ReactiveParalyzeArmor on the item. +"+ReactiveParalyzeArmorAdd+" ReactiveParalyzeArmor has been added." );
ret = ReactiveParalyzeArmorAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of ReactiveParalyzeArmor." );
}
return ret;
}
}
public class ReactiveParalyzeArmorIncreaseDeed : Item
{
[Constructable]
public ReactiveParalyzeArmorIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "ReactiveParalyzeArmor Increase Deed";
LootType = LootType.Blessed;
}
public ReactiveParalyzeArmorIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase ReactiveParalyzeArmor?" );
from.Target = new ReactiveParalyzeArmorIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,125 @@
//Add ReactiveParalyze to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class ReactiveParalyzeIncreaseTarget : Target
{
private ReactiveParalyzeIncreaseDeed m_Deed;
public ReactiveParalyzeIncreaseTarget( ReactiveParalyzeIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int ReactiveParalyzeAdd = 1; //Amount of ReactiveParalyze to be added
int ReactiveParalyzeCap = 1; //Limit of ReactiveParalyze that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = false;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot add ReactiveParalyze to that item there!" );
}
else
{
ReactiveParalyzeAdd = ReactiveParalyzeToAdd(((BaseWeapon)item).WeaponAttributes.ReactiveParalyze, ReactiveParalyzeAdd, ReactiveParalyzeCap, from);
if( ReactiveParalyzeAdd > 0 )
{
((BaseWeapon)item).WeaponAttributes.ReactiveParalyze += ReactiveParalyzeAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int ReactiveParalyzeToAdd(int itemReactiveParalyze, int ReactiveParalyzeAdd ,int ReactiveParalyzeCap, Mobile from)
{
int ret = 0;
if(itemReactiveParalyze < ReactiveParalyzeCap)
{
if( (itemReactiveParalyze + ReactiveParalyzeAdd ) > ReactiveParalyzeCap )
{
ret = ReactiveParalyzeAdd - ( (itemReactiveParalyze + ReactiveParalyzeAdd ) - ReactiveParalyzeCap );
from.SendMessage("You increase the ReactiveParalyze on the item and it has now reached it's max. +"+ret+" ReactiveParalyze has been added.");
}
else{
from.SendMessage( "You increase the ReactiveParalyze on the item. +"+ReactiveParalyzeAdd+" ReactiveParalyze has been added." );
ret = ReactiveParalyzeAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of ReactiveParalyze." );
}
return ret;
}
}
public class ReactiveParalyzeIncreaseDeed : Item
{
[Constructable]
public ReactiveParalyzeIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "ReactiveParalyze Increase Deed";
LootType = LootType.Blessed;
}
public ReactiveParalyzeIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increase ReactiveParalyze?" );
from.Target = new ReactiveParalyzeIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add ReflectPhysical to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class ReflectPhysicalIncreaseTarget : Target
{
private ReflectPhysicalIncreaseDeed m_Deed;
public ReflectPhysicalIncreaseTarget( ReflectPhysicalIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int ReflectPhysicalAdd = 1; //Amount of Reflect Physical to be added
int ReflectPhysicalCap = 100; //Limit of Reflect Physical that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addReflect Physical to that item there!" );
}
else
{
ReflectPhysicalAdd = ReflectPhysicalToAdd(((BaseWeapon)item).Attributes.ReflectPhysical, ReflectPhysicalAdd, ReflectPhysicalCap, from);
if( ReflectPhysicalAdd > 0 )
{
((BaseWeapon)item).Attributes.ReflectPhysical += ReflectPhysicalAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addReflect Physical to that item there!" );
}
else
{
ReflectPhysicalAdd = ReflectPhysicalToAdd(((BaseArmor)item).Attributes.ReflectPhysical, ReflectPhysicalAdd, ReflectPhysicalCap, from);
if( ReflectPhysicalAdd > 0 )
{
((BaseArmor)item).Attributes.ReflectPhysical += ReflectPhysicalAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addReflect Physical to that item there!" );
}
else
{
ReflectPhysicalAdd = ReflectPhysicalToAdd(((BaseClothing)item).Attributes.ReflectPhysical, ReflectPhysicalAdd, ReflectPhysicalCap, from);
if( ReflectPhysicalAdd > 0 )
{
((BaseClothing)item).Attributes.ReflectPhysical += ReflectPhysicalAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addReflect Physical to that item there!" );
}
else
{
ReflectPhysicalAdd = ReflectPhysicalToAdd(((BaseTalisman)item).Attributes.ReflectPhysical, ReflectPhysicalAdd, ReflectPhysicalCap, from);
if( ReflectPhysicalAdd > 0 )
{
((BaseTalisman)item).Attributes.ReflectPhysical += ReflectPhysicalAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addReflect Physical to that item there!" );
}
else
{
ReflectPhysicalAdd = ReflectPhysicalToAdd(((BaseJewel)item).Attributes.ReflectPhysical, ReflectPhysicalAdd, ReflectPhysicalCap, from);
if( ReflectPhysicalAdd > 0 )
{
((BaseJewel)item).Attributes.ReflectPhysical += ReflectPhysicalAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addReflect Physical to that item there!" );
}
else
{
ReflectPhysicalAdd = ReflectPhysicalToAdd(((Spellbook)item).Attributes.ReflectPhysical, ReflectPhysicalAdd, ReflectPhysicalCap, from);
if( ReflectPhysicalAdd > 0 )
{
((Spellbook)item).Attributes.ReflectPhysical += ReflectPhysicalAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addReflect Physical to that item there!" );
}
else
{
ReflectPhysicalAdd = ReflectPhysicalToAdd(((BaseQuiver)item).Attributes.ReflectPhysical, ReflectPhysicalAdd, ReflectPhysicalCap, from);
if( ReflectPhysicalAdd > 0 )
{
((BaseQuiver)item).Attributes.ReflectPhysical += ReflectPhysicalAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int ReflectPhysicalToAdd(int itemReflectPhysical, int ReflectPhysicalAdd ,int ReflectPhysicalCap, Mobile from)
{
int ret = 0;
if(itemReflectPhysical < ReflectPhysicalCap)
{
if( (itemReflectPhysical + ReflectPhysicalAdd ) > ReflectPhysicalCap )
{
ret = ReflectPhysicalAdd - ( (itemReflectPhysical + ReflectPhysicalAdd ) - ReflectPhysicalCap );
from.SendMessage("You increase theReflect Physical on the item and it has now reached it's max. +"+ret+"Reflect Physical has been added.");
}
else{
from.SendMessage( "You increase theReflect Physical on the item. +"+ReflectPhysicalAdd+"Reflect Physical has been added." );
ret = ReflectPhysicalAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Reflect Physical." );
}
return ret;
}
}
public class ReflectPhysicalIncreaseDeed : Item
{
[Constructable]
public ReflectPhysicalIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Reflect Physical Increase Deed";
LootType = LootType.Blessed;
}
public ReflectPhysicalIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increaseReflect Physical?" );
from.Target = new ReflectPhysicalIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,107 @@
// This Script was Scripted by Espcevan
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class RegenHitsTarget : Target
{
private RegenHitsDeed m_Deed;
public RegenHitsTarget( RegenHitsDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon || target is BaseShield || target is BaseJewel || target is BaseArmor )
{
Item item = (Item)target;
if (item is BaseWeapon)
{
if ( ((BaseWeapon)item).Attributes.RegenHits == 1 ) from.SendMessage( "That already has regen hits!");
else
{
if( item.RootParent != from ) from.SendMessage( "You can not put regen hits on that there!" );
else
{
((BaseWeapon)item).Attributes.RegenHits = 1;
from.SendMessage( "You magically add regen hits to your item...." );
}
}
}
if (item is BaseShield)
{
if ( ((BaseShield)item).Attributes.RegenHits == 1 ) from.SendMessage( "That already has regen hits!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put regen hits on that there!" );
else
{
((BaseShield)item).Attributes.RegenHits = 1;
from.SendMessage( "You magically add regen hits to your item...." );
}
}
}
if (item is BaseArmor)
{
if ( ((BaseArmor)item).Attributes.RegenHits == 1 ) from.SendMessage( "That already has regen hits!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put regen hits on that there!" );
else
{
((BaseArmor)item).Attributes.RegenHits = 1;
from.SendMessage( "You magically add regen hits to your item...." );
}
}
}
if (item is BaseJewel)
{
if ( ((BaseJewel)item).Attributes.RegenHits == 1 ) from.SendMessage( "That already has regen hits!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put regen hits on that there!" );
else
{
((BaseJewel)item).Attributes.RegenHits = 1;
from.SendMessage( "You magically add regen hits to your item...." );
}
}
}
}
else from.SendMessage( "You can not put regen hits on that" );
}
}
public class RegenHitsDeed : Item
{
[Constructable]
public RegenHitsDeed() : base( 0x14F0 )
{
Name = "a Regen Hits deed";
Hue = 0x492;
}
public RegenHitsDeed(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();}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What item would you like to add regen hits to?" );
from.Target = new RegenHitsTarget( this );
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add RegenHits to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class RegenHitsIncreaseTarget : Target
{
private RegenHitsIncreaseDeed m_Deed;
public RegenHitsIncreaseTarget( RegenHitsIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int RegenHitsAdd = 1; //Amount of Regen Hits to be added
int RegenHitsCap = 100; //Limit of Regen Hits that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Hits to that item there!" );
}
else
{
RegenHitsAdd = RegenHitsToAdd(((BaseWeapon)item).Attributes.RegenHits, RegenHitsAdd, RegenHitsCap, from);
if( RegenHitsAdd > 0 )
{
((BaseWeapon)item).Attributes.RegenHits += RegenHitsAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Hits to that item there!" );
}
else
{
RegenHitsAdd = RegenHitsToAdd(((BaseArmor)item).Attributes.RegenHits, RegenHitsAdd, RegenHitsCap, from);
if( RegenHitsAdd > 0 )
{
((BaseArmor)item).Attributes.RegenHits += RegenHitsAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Hits to that item there!" );
}
else
{
RegenHitsAdd = RegenHitsToAdd(((BaseClothing)item).Attributes.RegenHits, RegenHitsAdd, RegenHitsCap, from);
if( RegenHitsAdd > 0 )
{
((BaseClothing)item).Attributes.RegenHits += RegenHitsAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Hits to that item there!" );
}
else
{
RegenHitsAdd = RegenHitsToAdd(((BaseTalisman)item).Attributes.RegenHits, RegenHitsAdd, RegenHitsCap, from);
if( RegenHitsAdd > 0 )
{
((BaseTalisman)item).Attributes.RegenHits += RegenHitsAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Hits to that item there!" );
}
else
{
RegenHitsAdd = RegenHitsToAdd(((BaseJewel)item).Attributes.RegenHits, RegenHitsAdd, RegenHitsCap, from);
if( RegenHitsAdd > 0 )
{
((BaseJewel)item).Attributes.RegenHits += RegenHitsAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Hits to that item there!" );
}
else
{
RegenHitsAdd = RegenHitsToAdd(((Spellbook)item).Attributes.RegenHits, RegenHitsAdd, RegenHitsCap, from);
if( RegenHitsAdd > 0 )
{
((Spellbook)item).Attributes.RegenHits += RegenHitsAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Hits to that item there!" );
}
else
{
RegenHitsAdd = RegenHitsToAdd(((BaseQuiver)item).Attributes.RegenHits, RegenHitsAdd, RegenHitsCap, from);
if( RegenHitsAdd > 0 )
{
((BaseQuiver)item).Attributes.RegenHits += RegenHitsAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int RegenHitsToAdd(int itemRegenHits, int RegenHitsAdd ,int RegenHitsCap, Mobile from)
{
int ret = 0;
if(itemRegenHits < RegenHitsCap)
{
if( (itemRegenHits + RegenHitsAdd ) > RegenHitsCap )
{
ret = RegenHitsAdd - ( (itemRegenHits + RegenHitsAdd ) - RegenHitsCap );
from.SendMessage("You increase theRegen Hits on the item and it has now reached it's max. +"+ret+"Regen Hits has been added.");
}
else{
from.SendMessage( "You increase theRegen Hits on the item. +"+RegenHitsAdd+"Regen Hits has been added." );
ret = RegenHitsAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Regen Hits." );
}
return ret;
}
}
public class RegenHitsIncreaseDeed : Item
{
[Constructable]
public RegenHitsIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1Regen Hits Increase Deed";
LootType = LootType.Blessed;
}
public RegenHitsIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increaseRegen Hits?" );
from.Target = new RegenHitsIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,107 @@
// This Script was Scripted by Espcevan
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class RegenManaTarget : Target
{
private RegenManaDeed m_Deed;
public RegenManaTarget( RegenManaDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon || target is BaseShield || target is BaseJewel || target is BaseArmor )
{
Item item = (Item)target;
if (item is BaseWeapon)
{
if ( ((BaseWeapon)item).Attributes.RegenMana == 1 ) from.SendMessage( "That already has regen mana!");
else
{
if( item.RootParent != from ) from.SendMessage( "You can not put regen mana on that there!" );
else
{
((BaseWeapon)item).Attributes.RegenMana = 1;
from.SendMessage( "You magically add regen mana to your item...." );
}
}
}
if (item is BaseShield)
{
if ( ((BaseShield)item).Attributes.RegenMana == 1 ) from.SendMessage( "That already has regen mana!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put regen mana on that there!" );
else
{
((BaseShield)item).Attributes.RegenMana = 1;
from.SendMessage( "You magically add regen mana to your item...." );
}
}
}
if (item is BaseArmor)
{
if ( ((BaseArmor)item).Attributes.RegenMana == 1 ) from.SendMessage( "That already has regen mana!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put regen mana on that there!" );
else
{
((BaseArmor)item).Attributes.RegenMana = 1;
from.SendMessage( "You magically add regen mana to your item...." );
}
}
}
if (item is BaseJewel)
{
if ( ((BaseJewel)item).Attributes.RegenMana == 1 ) from.SendMessage( "That already has regen mana!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put regen mana on that there!" );
else
{
((BaseJewel)item).Attributes.RegenMana = 1;
from.SendMessage( "You magically add regen mana to your item...." );
}
}
}
}
else from.SendMessage( "You can not put regen mana on that" );
}
}
public class RegenManaDeed : Item
{
[Constructable]
public RegenManaDeed() : base( 0x14F0 )
{
Name = "a Regen Mana deed";
Hue = 0x492;
}
public RegenManaDeed(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();}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What item would you like to add regen mana to?" );
from.Target = new RegenManaTarget( this );
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add RegenMana to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class RegenManaIncreaseTarget : Target
{
private RegenManaIncreaseDeed m_Deed;
public RegenManaIncreaseTarget( RegenManaIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int RegenManaAdd = 1; //Amount of Regen Mana to be added
int RegenManaCap = 100; //Limit of Regen Mana that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Mana to that item there!" );
}
else
{
RegenManaAdd = RegenManaToAdd(((BaseWeapon)item).Attributes.RegenMana, RegenManaAdd, RegenManaCap, from);
if( RegenManaAdd > 0 )
{
((BaseWeapon)item).Attributes.RegenMana += RegenManaAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Mana to that item there!" );
}
else
{
RegenManaAdd = RegenManaToAdd(((BaseArmor)item).Attributes.RegenMana, RegenManaAdd, RegenManaCap, from);
if( RegenManaAdd > 0 )
{
((BaseArmor)item).Attributes.RegenMana += RegenManaAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Mana to that item there!" );
}
else
{
RegenManaAdd = RegenManaToAdd(((BaseClothing)item).Attributes.RegenMana, RegenManaAdd, RegenManaCap, from);
if( RegenManaAdd > 0 )
{
((BaseClothing)item).Attributes.RegenMana += RegenManaAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Mana to that item there!" );
}
else
{
RegenManaAdd = RegenManaToAdd(((BaseTalisman)item).Attributes.RegenMana, RegenManaAdd, RegenManaCap, from);
if( RegenManaAdd > 0 )
{
((BaseTalisman)item).Attributes.RegenMana += RegenManaAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Mana to that item there!" );
}
else
{
RegenManaAdd = RegenManaToAdd(((BaseJewel)item).Attributes.RegenMana, RegenManaAdd, RegenManaCap, from);
if( RegenManaAdd > 0 )
{
((BaseJewel)item).Attributes.RegenMana += RegenManaAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Mana to that item there!" );
}
else
{
RegenManaAdd = RegenManaToAdd(((Spellbook)item).Attributes.RegenMana, RegenManaAdd, RegenManaCap, from);
if( RegenManaAdd > 0 )
{
((Spellbook)item).Attributes.RegenMana += RegenManaAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Mana to that item there!" );
}
else
{
RegenManaAdd = RegenManaToAdd(((BaseQuiver)item).Attributes.RegenMana, RegenManaAdd, RegenManaCap, from);
if( RegenManaAdd > 0 )
{
((BaseQuiver)item).Attributes.RegenMana += RegenManaAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int RegenManaToAdd(int itemRegenMana, int RegenManaAdd ,int RegenManaCap, Mobile from)
{
int ret = 0;
if(itemRegenMana < RegenManaCap)
{
if( (itemRegenMana + RegenManaAdd ) > RegenManaCap )
{
ret = RegenManaAdd - ( (itemRegenMana + RegenManaAdd ) - RegenManaCap );
from.SendMessage("You increase theRegen Mana on the item and it has now reached it's max. +"+ret+"Regen Mana has been added.");
}
else{
from.SendMessage( "You increase theRegen Mana on the item. +"+RegenManaAdd+"Regen Mana has been added." );
ret = RegenManaAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Regen Mana." );
}
return ret;
}
}
public class RegenManaIncreaseDeed : Item
{
[Constructable]
public RegenManaIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Regen Mana Increase Deed";
LootType = LootType.Blessed;
}
public RegenManaIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increaseRegen Mana?" );
from.Target = new RegenManaIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,107 @@
// This Script was Scripted by Espcevan
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class RegenStamTarget : Target
{
private RegenStamDeed m_Deed;
public RegenStamTarget( RegenStamDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon || target is BaseShield || target is BaseJewel || target is BaseArmor )
{
Item item = (Item)target;
if (item is BaseWeapon)
{
if ( ((BaseWeapon)item).Attributes.RegenStam == 1 ) from.SendMessage( "That already has regen stam!");
else
{
if( item.RootParent != from ) from.SendMessage( "You can not put regen stam on that there!" );
else
{
((BaseWeapon)item).Attributes.RegenStam = 1;
from.SendMessage( "You magically add regen stam to your item...." );
}
}
}
if (item is BaseShield)
{
if ( ((BaseShield)item).Attributes.RegenStam == 1 ) from.SendMessage( "That already has regen stam!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put regen stam on that there!" );
else
{
((BaseShield)item).Attributes.RegenStam = 1;
from.SendMessage( "You magically add regen stam to your item...." );
}
}
}
if (item is BaseArmor)
{
if ( ((BaseArmor)item).Attributes.RegenStam == 1 ) from.SendMessage( "That already has regen stam!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put regen stam on that there!" );
else
{
((BaseArmor)item).Attributes.RegenStam = 1;
from.SendMessage( "You magically add regen stam to your item...." );
}
}
}
if (item is BaseJewel)
{
if ( ((BaseJewel)item).Attributes.RegenStam == 1 ) from.SendMessage( "That already has regen stam!");
else
{
if( item.RootParent != from ) from.SendMessage( "You cannot put regen stam on that there!" );
else
{
((BaseJewel)item).Attributes.RegenStam = 1;
from.SendMessage( "You magically add regen stam to your item...." );
}
}
}
}
else from.SendMessage( "You can not put regen stam on that" );
}
}
public class RegenStamDeed : Item
{
[Constructable]
public RegenStamDeed() : base( 0x14F0 )
{
Name = "a Regen Stam deed";
Hue = 0x492;
}
public RegenStamDeed(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();}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What item would you like to add regen stam to?" );
from.Target = new RegenStamTarget( this );
}
}
}
}

View File

@@ -0,0 +1,229 @@
//Add RegenStam to an item
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class RegenStamIncreaseTarget : Target
{
private RegenStamIncreaseDeed m_Deed;
public RegenStamIncreaseTarget( RegenStamIncreaseDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
int RegenStamAdd = 1; //Amount of Regen Stam to be added
int RegenStamCap = 100; //Limit of Regen Stam that an item can have
//Change to false if you don't want it to be used on any of these items
bool allowWeapon = true;
bool allowArmor = false;
bool allowJewel = false;
bool allowClothing = false;
bool allowSpellbook = true;
bool allowTalisman = false;
bool allowQuiver = false;
if ( target is BaseWeapon && allowWeapon)
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Stam to that item there!" );
}
else
{
RegenStamAdd = RegenStamToAdd(((BaseWeapon)item).Attributes.RegenStam, RegenStamAdd, RegenStamCap, from);
if( RegenStamAdd > 0 )
{
((BaseWeapon)item).Attributes.RegenStam += RegenStamAdd;
m_Deed.Delete();
}
}
return;
}
else if ( target is BaseArmor && allowArmor )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Stam to that item there!" );
}
else
{
RegenStamAdd = RegenStamToAdd(((BaseArmor)item).Attributes.RegenStam, RegenStamAdd, RegenStamCap, from);
if( RegenStamAdd > 0 )
{
((BaseArmor)item).Attributes.RegenStam += RegenStamAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseClothing && allowClothing )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Stam to that item there!" );
}
else
{
RegenStamAdd = RegenStamToAdd(((BaseClothing)item).Attributes.RegenStam, RegenStamAdd, RegenStamCap, from);
if( RegenStamAdd > 0 )
{
((BaseClothing)item).Attributes.RegenStam += RegenStamAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseTalisman && allowTalisman )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Stam to that item there!" );
}
else
{
RegenStamAdd = RegenStamToAdd(((BaseTalisman)item).Attributes.RegenStam, RegenStamAdd, RegenStamCap, from);
if( RegenStamAdd > 0 )
{
((BaseTalisman)item).Attributes.RegenStam += RegenStamAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseJewel && allowJewel )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Stam to that item there!" );
}
else
{
RegenStamAdd = RegenStamToAdd(((BaseJewel)item).Attributes.RegenStam, RegenStamAdd, RegenStamCap, from);
if( RegenStamAdd > 0 )
{
((BaseJewel)item).Attributes.RegenStam += RegenStamAdd;
m_Deed.Delete();
}
}
}
else if ( target is Spellbook && allowSpellbook )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Stam to that item there!" );
}
else
{
RegenStamAdd = RegenStamToAdd(((Spellbook)item).Attributes.RegenStam, RegenStamAdd, RegenStamCap, from);
if( RegenStamAdd > 0 )
{
((Spellbook)item).Attributes.RegenStam += RegenStamAdd;
m_Deed.Delete();
}
}
}
else if ( target is BaseQuiver && allowQuiver )
{
Item item = (Item)target;
if( item.RootParent != from )
{
from.SendMessage( "You cannot addRegen Stam to that item there!" );
}
else
{
RegenStamAdd = RegenStamToAdd(((BaseQuiver)item).Attributes.RegenStam, RegenStamAdd, RegenStamCap, from);
if( RegenStamAdd > 0 )
{
((BaseQuiver)item).Attributes.RegenStam += RegenStamAdd;
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot use this deed on that!" );
}
}
public int RegenStamToAdd(int itemRegenStam, int RegenStamAdd ,int RegenStamCap, Mobile from)
{
int ret = 0;
if(itemRegenStam < RegenStamCap)
{
if( (itemRegenStam + RegenStamAdd ) > RegenStamCap )
{
ret = RegenStamAdd - ( (itemRegenStam + RegenStamAdd ) - RegenStamCap );
from.SendMessage("You increase theRegen Stam on the item and it has now reached it's max. +"+ret+"Regen Stam has been added.");
}
else{
from.SendMessage( "You increase theRegen Stam on the item. +"+RegenStamAdd+"Regen Stam has been added." );
ret = RegenStamAdd;
}
}
else
{
from.SendMessage( "That item has reached the maximum amount of Regen Stam." );
}
return ret;
}
}
public class RegenStamIncreaseDeed : Item
{
[Constructable]
public RegenStamIncreaseDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "+1 Regen Stam Increase Deed";
LootType = LootType.Blessed;
}
public RegenStamIncreaseDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("Which item would you like to increaseRegen Stam?" );
from.Target = new RegenStamIncreaseTarget( this );
}
}
}
}

View File

@@ -0,0 +1,33 @@
using System;
using Server;
using Server.Items;
namespace Server.Items
{
public class LumyrianRaiderRewardTitleDeed : BaseRewardTitleDeed
{
public override TextDefinition Title { get { return new TextDefinition("Lumyrian Raider"); } }
[Constructable]
public LumyrianRaiderRewardTitleDeed()
{
}
public LumyrianRaiderRewardTitleDeed(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 v = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,80 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
using Server.Engines.Plants;
namespace Server.Items
{
public class SeedTypeTarget : Target
{
private SeedTypeBook m_Deed;
public SeedTypeTarget( SeedTypeBook Deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = Deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is Seed )
{
Seed seed = (Seed)target;
if ( (seed).ShowType == true )
{
from.SendMessage( "That seed is already discovered!");
}
else if( seed.RootParent != from )
{
from.SendMessage( "You must have the seed in your backpack!" );
}
else
{
(seed).ShowType = true;
from.SendMessage( "You successfully discover the seed." );
m_Deed.Delete();
}
}
else from.SendMessage( "You can only discover seeds!" );
}
}
}
public class SeedTypeBook : Item
{
[Constructable]
public SeedTypeBook()
: base(0xFBE)
{
Weight = 0;
LootType = LootType.Blessed;
Name = "A Seed Discoverey Book";
//Hue = 1266;
}
public SeedTypeBook(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();
}
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) ) from.SendLocalizedMessage( 1042001 );
else
{
from.SendMessage("What seed would you like to discover?" );
from.Target = new SeedTypeTarget( this );
}
}
}

View File

@@ -0,0 +1,171 @@
//By: SHAMBAMPOW
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class SelfRepairTarget : Target
{
private SelfRepairDeed m_Deed;
public SelfRepairTarget( SelfRepairDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseArmor )
{
Item item = (Item)target;
if ( ((BaseArmor)item).ArmorAttributes.SelfRepair >= 10 )
{
from.SendMessage( "That item has reached the maximum self repair!" );
return;
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot add self repair to that item there!" );
}
else
{
((BaseArmor)item).ArmorAttributes.SelfRepair += 1;
if( ((BaseArmor)item).ArmorAttributes.SelfRepair >= 10 )
{
((BaseArmor)item).ArmorAttributes.SelfRepair = 10;
from.SendMessage( "You increase the self repair on the item... it has now reached it's max." );
}
else
from.SendMessage( "You increase the self repair on the item..." );
m_Deed.Delete();
}
}
}
else if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).WeaponAttributes.SelfRepair >= 10 )
{
from.SendMessage( "That item has reached the maximum self repair!" );
return;
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot add self repair to that item there!" );
}
else
{
((BaseWeapon)item).WeaponAttributes.SelfRepair += 1;
if( ((BaseWeapon)item).WeaponAttributes.SelfRepair >= 10 )
{
((BaseWeapon)item).WeaponAttributes.SelfRepair = 10;
from.SendMessage( "You increase the self repair on the item... it has now reached it's max." );
}
else
from.SendMessage( "You increase the self repair on the item..." );
m_Deed.Delete();
}
}
}
else if ( target is BaseHat )
{
Item item = (Item)target;
if ( ((BaseHat)item).ClothingAttributes.SelfRepair >= 10 )
{
from.SendMessage( "That item has reached the maximum self repair!" );
return;
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot add self repair to that item there!" );
}
else
{
((BaseHat)item).ClothingAttributes.SelfRepair += 1;
if( ((BaseHat)item).ClothingAttributes.SelfRepair >= 10 )
{
((BaseHat)item).ClothingAttributes.SelfRepair = 10;
from.SendMessage( "You increase the self repair on the item... it has now reached it's max." );
}
else
from.SendMessage( "You increase the self repair on the item..." );
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( "You cannot put self repair on that!" );
}
}
}
public class SelfRepairDeed : Item
{
[Constructable]
public SelfRepairDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Self Repair +1 Deed";
LootType = LootType.Blessed;
Hue = 1289;
}
public SelfRepairDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
else
{
from.SendMessage("What item would you like to increase the self repair on?" );
from.Target = new SelfRepairTarget( this );
}
}
}
}

View File

@@ -0,0 +1,117 @@
using Server.Mobiles;
using Server.Gumps;
using Server.Network;
namespace Server.Items
{
public class SexChangeDeed : Item
{
[Constructable]
public SexChangeDeed() : base( 0x14F0 )
{
Name = "a sex change deed";
}
public SexChangeDeed( 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();
}
public override void OnDoubleClick( Mobile from )
{
if ( from == null || from.Deleted || from.Backpack == null )
return;
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
return;
}
from.SendGump( new SexChangeConfirmGump( from, this ) );
}
protected void Use( Mobile from )
{
from.SendMessage( "You feel your body proportions change." );
from.BodyValue = (from.BodyValue == 400 ? 401 : 400 );
from.Female = !from.Female;
if ( from.Female )
{
if (from.FacialHairItemID > 0)
{
from.SendMessage( "You feel a sharp pain as your beard is torn off by invisible forces." );
from.FacialHairItemID = 0;
}
}
Delete();
}
private class SexChangeConfirmGump : Gump
{
Mobile m_Mobile;
SexChangeDeed m_Deed;
public SexChangeConfirmGump( Mobile from, SexChangeDeed deed ) : base( 200, 200 )
{
m_Deed = deed;
m_Mobile = from;
//this.Closable=false;
//this.Disposable=true;
//this.Dragable=true;
this.Resizable=false;
this.AddPage(0);
this.AddBackground(0, 0, 300, 120, 9270);
//this.AddAlphaRegion(11, 14, 332, 95);
//this.AddItem(297, 38, 4168);
this.AddLabel( 28, 15, 255, "Changing sex involves intense magic." );
this.AddLabel( 28, 31, 255, "Your facial hair, if any, will dissapear." );
this.AddLabel( 28, 47, 255, "Are you sure you want to proceed?" );
AddButton( 28, 70, 4005, 4007, 1, GumpButtonType.Reply, 0 );
AddLabel( 80, 70, 255, "Yes" );
AddButton( 130, 70, 4005, 4007, 0, GumpButtonType.Reply, 0 );
AddLabel( 182, 70, 255, "No" );
//this.AddItem(12, 38, 4171);
}
public override void OnResponse( NetState state, RelayInfo info )
{
switch ( info.ButtonID )
{
case 1: // Yes
{
if ( m_Mobile == null || m_Mobile.Deleted || m_Mobile.Backpack == null || m_Deed == null || m_Deed.Deleted )
return;
if ( !m_Deed.IsChildOf( m_Mobile.Backpack ) )
{
m_Mobile.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
return;
}
m_Deed.Use( m_Mobile );
break;
}
}
}
}
}
}

View File

@@ -0,0 +1,348 @@
using System;
using Server;
using Server.Gumps;
using Server.Network;
using Server.Items;
using Server.Mobiles;
using Server.Commands;
namespace Server.Items
{
public class LesserSlayerDeed : Item
{
[Constructable]
public LesserSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
LootType = LootType.Blessed;
Name = "Lesser Slayer Deeds Picker";
}
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
else
{
from.SendGump( new LesserSlayerDeedGump( from ) );
this.Delete();
}
}
public LesserSlayerDeed( 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();
}
}
}
namespace Server.Gumps
{
public class LesserSlayerDeedGump : Gump
{
public static void Initialize()
{
CommandSystem.Register( "LesserSlayerDeedGump", AccessLevel.GameMaster, new CommandEventHandler( LesserSlayerDeedGump_OnCommand ) );
}
private static void LesserSlayerDeedGump_OnCommand( CommandEventArgs e )
{
e.Mobile.SendGump( new LesserSlayerDeedGump( e.Mobile ) );
}
public LesserSlayerDeedGump( Mobile Owner ) : base( 0,0 )
{
AddPage(0);
AddBackground(85, 30, 600, 500, 3500);
AddImage(136, 57, 10440); // Dragon - Left Side
AddImage(526, 58, 10441); // Dragon - Right Side
AddImage(199, 112, 5504); // UO Circle - Left
AddImage(480, 111, 5504); // UO Circle - Right
// AddHtml(270, 115, 200, 16, @"<CENTER><BASEFONT COLOR=YELLOW>Server Name Here If You Want</CENTER>", (bool)false, (bool)false);
AddHtml(270, 147, 200, 16, @"<CENTER><BASEFONT COLOR=YELLOW>Lesser Slayer Deeds</Center>", (bool)false, (bool)false);
AddPage(1);
//Side One
AddLabel(246, 198, 4030, @"Balron Slayer");
AddButton(206, 194, 9721, 9724, 1, GumpButtonType.Reply, 0);
AddLabel(246, 238, 4030, @"Blood Drinker");
AddButton(206, 234, 9721, 9724, 2, GumpButtonType.Reply, 0);
AddLabel(246, 278, 4030, @"Daemon Slayer");
AddButton(206, 274, 9721, 9724, 3, GumpButtonType.Reply, 0);
AddLabel(246, 318, 4030, @"Dragon Slayer");
AddButton(206, 314, 9721, 9724, 4, GumpButtonType.Reply, 0);
AddLabel(246, 358, 4030, @"Earth Shattering");
AddButton(206, 354, 9721, 9724, 5, GumpButtonType.Reply, 0);
AddLabel(246, 398, 4030, @"Elemental Health");
AddButton(206, 394, 9721, 9724, 6, GumpButtonType.Reply, 0);
AddLabel(265, 438, 4030, @"Back");
AddButton(206, 424, 4508, 4508, 0, GumpButtonType.Page, 2);
//Side Two
AddLabel(430, 198, 4030, @"Flame Dousing");
AddButton(390, 194, 9721, 9724, 7, GumpButtonType.Reply, 0);
AddLabel(430, 238, 4030, @"Gargoyle Slayer");
AddButton(390, 234, 9721, 9724, 8, GumpButtonType.Reply, 0);
AddLabel(430, 278, 4030, @"Lizardman Slayer");
AddButton(390, 274, 9721, 9724, 9, GumpButtonType.Reply, 0);
AddLabel(430, 318, 4030, @"Ogre Slayer");
AddButton(390, 314, 9721, 9724, 10, GumpButtonType.Reply, 0);
AddLabel(430, 358, 4030, @"Ophidian Slayer");
AddButton(390, 354, 9721, 9724, 11, GumpButtonType.Reply, 0);
AddLabel(430, 398, 4030, @"Orc Slayer");
AddButton(390, 394, 9721, 9724, 12, GumpButtonType.Reply, 0);
AddLabel(456, 438, 4030, @"Next");
AddButton(491, 424, 4502, 4502, 0, GumpButtonType.Page, 2);
AddPage(2);
//Side One
AddLabel(246, 198, 4030, @"Scorpion Slayer");
AddButton(206, 194, 9721, 9724, 13, GumpButtonType.Reply, 0);
AddLabel(246, 238, 4030, @"Snake Slayer");
AddButton(206, 234, 9721, 9724, 14, GumpButtonType.Reply, 0);
AddLabel(246, 278, 4030, @"Spider Slayer");
AddButton(206, 274, 9721, 9724, 15, GumpButtonType.Reply, 0);
AddLabel(246, 318, 4030, @"Summer Wind");
AddButton(206, 314, 9721, 9724, 16, GumpButtonType.Reply, 0);
AddLabel(246, 358, 4030, @"Terathon Slayer");
AddButton(206, 354, 9721, 9724, 17, GumpButtonType.Reply, 0);
AddLabel(246, 398, 4030, @"Troll Slayer");
AddButton(206, 394, 9721, 9724, 18, GumpButtonType.Reply, 0);
AddLabel(265, 438, 4030, @"Back");
AddButton(206, 424, 4508, 4508, 0, GumpButtonType.Page, 1);
//Side Two
AddLabel(430, 198, 4030, @"Vacuum Slayer");
AddButton(390, 194, 9721, 9724, 19, GumpButtonType.Reply, 0);
AddLabel(430, 238, 4030, @"Water Dissipation");
AddButton(390, 234, 9721, 9724, 20, GumpButtonType.Reply, 0);
/*AddLabel(430, 278, 4030, @"Monster Statuette");
AddButton(390, 274, 9721, 9724, 21, GumpButtonType.Reply, 0);
AddLabel(430, 318, 4030, @"Skin");
AddButton(390, 314, 9721, 9724, 11, GumpButtonType.Reply, 0);
AddLabel(430, 358, 4030, @"Weapon - Ranged");
AddButton(390, 354, 9721, 9724, 12, GumpButtonType.Reply, 0);
AddLabel(430, 398, 4030, @"Weapon - Slashing");
AddButton(390, 394, 9721, 9724, 13, GumpButtonType.Reply, 0);
AddLabel(456, 438, 4030, @"Next");
AddButton(491, 424, 4502, 4502, 0, GumpButtonType.Page, 1);
*/
}
public override void OnResponse( NetState state, RelayInfo info )
{
Mobile from = state.Mobile;
switch ( info.ButtonID )
{
case 0:
{
//Cancel
from.SendMessage( "You decide not to choose a Dye Tub." );
LesserSlayerDeed LesserSlayerDeed = new LesserSlayerDeed();
from.AddToBackpack( LesserSlayerDeed );
}
break;
case 1:
{
BalronSlayerDeed BalronSlayerDeedX = new BalronSlayerDeed();
from.AddToBackpack( BalronSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 2:
{
BloodDrinkingSlayerDeed BloodDrinkingSlayerDeedX = new BloodDrinkingSlayerDeed();
from.AddToBackpack( BloodDrinkingSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 3:
{
DaemonSlayerDeed DaemonSlayerDeedX = new DaemonSlayerDeed();
from.AddToBackpack( DaemonSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 4:
{
DragonSlayerDeed DragonSlayerDeedX = new DragonSlayerDeed();
from.AddToBackpack(DragonSlayerDeedX);
from.SendMessage("Your choice has been added to your backpack!");
}
break;
case 5:
{
EarthShatterSlayerDeed EarthShatterSlayerDeedX = new EarthShatterSlayerDeed();
from.AddToBackpack( EarthShatterSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 6:
{
ElementalHealthSlayerDeed ElementalHealthSlayerDeedX = new ElementalHealthSlayerDeed();
from.AddToBackpack( ElementalHealthSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 7:
{
FlameDousingSlayerDeed FlameDousingSlayerDeedX = new FlameDousingSlayerDeed();
from.AddToBackpack( FlameDousingSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 8:
{
GargoyleSlayerDeed GargoyleSlayerDeedX = new GargoyleSlayerDeed();
from.AddToBackpack( GargoyleSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 9:
{
LizardmanSlayerDeed LizardmanSlayerDeedX = new LizardmanSlayerDeed();
from.AddToBackpack( LizardmanSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 10:
{
OgreSlayerDeed OgreSlayerDeedX = new OgreSlayerDeed();
from.AddToBackpack( OgreSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 11:
{
OphidianSlayerDeed OphidianSlayerDeedX = new OphidianSlayerDeed();
from.AddToBackpack( OphidianSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 12:
{
OrcSlayerDeed OrcSlayerDeedX = new OrcSlayerDeed();
from.AddToBackpack( OrcSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 13:
{
ScorpionSlayerDeed ScorpionSlayerDeedX = new ScorpionSlayerDeed();
from.AddToBackpack( ScorpionSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 14:
{
SnakeSlayerDeed SnakeSlayerDeedX = new SnakeSlayerDeed();
from.AddToBackpack( SnakeSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 15:
{
SpidersDeathSlayerDeed SpidersDeathSlayerDeedX = new SpidersDeathSlayerDeed();
from.AddToBackpack( SpidersDeathSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 16:
{
SummerWindSlayerDeed SummerWindSlayerDeedX = new SummerWindSlayerDeed();
from.AddToBackpack( SummerWindSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 17:
{
TerathanSlayerDeed TerathanSlayerDeedX = new TerathanSlayerDeed();
from.AddToBackpack( TerathanSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 18:
{
TrollSlayerDeed TrollSlayerDeedX = new TrollSlayerDeed();
from.AddToBackpack( TrollSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 19:
{
VacuumSlayerDeed VacuumSlayerDeedX = new VacuumSlayerDeed();
from.AddToBackpack( VacuumSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 20:
{
WaterDissipationSlayerDeed WaterDissipationSlayerDeedX = new WaterDissipationSlayerDeed();
from.AddToBackpack( WaterDissipationSlayerDeedX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
/* case 21:
{
AllDyeTubsStatuetteMonster AllDyeTubsStatuetteMonsterX = new AllDyeTubsStatuetteMonster();
AllDyeTubsStatuetteMonsterX.Charged = false;
from.AddToBackpack( AllDyeTubsStatuetteMonsterX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
case 22:
{
AllDyeTubsSkin AllDyeTubsSkinX = new AllDyeTubsSkin();
AllDyeTubsSkinX.Charged = false;
from.AddToBackpack( AllDyeTubsSkinX );
from.SendMessage( "Your choice has been added to your backpack!" );
}
break;
*/
}
}
}
}

View File

@@ -0,0 +1,242 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
using Server.Mobiles;
using System.Collections.Generic;
using Server.ContextMenus;
namespace Server.Items
{
public class SlayerRemovalTarget : Target
{
private SlayerRemovalDeed m_Deed;
public SlayerRemovalTarget( SlayerRemovalDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( !m_Deed.SlayerOne && !m_Deed.SlayerTwo )
{
from.SendMessage( "Your deed is not set to remove any slayers!" );
}
else if ( ((BaseWeapon)item).Slayer == SlayerName.None && ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
from.SendMessage( "That has no slayers to remove!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot remove any slayers there!" );
}
else
{
if( m_Deed.SlayerOne && m_Deed.SlayerTwo && ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.None;
((BaseWeapon)item).Slayer2 = SlayerName.None;
from.SendMessage( "You remove both slayers from the weapon." );
m_Deed.Delete();
}
else if( m_Deed.SlayerOne && ((BaseWeapon)item).Slayer != SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.None;
from.SendMessage( "You remove the slayer from the weapon." );
m_Deed.Delete();
}
else if( m_Deed.SlayerTwo && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.None;
from.SendMessage( "You remove the slayer from the weapon." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( !m_Deed.SlayerOne && !m_Deed.SlayerTwo )
{
from.SendMessage( "Your deed is not set to remove any slayers!" );
}
else if ( ((Spellbook)item).Slayer == SlayerName.None && ((Spellbook)item).Slayer2 == SlayerName.None )
{
from.SendMessage( "That has no slayers to remove!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot remove any slayers there!" );
}
else
{
if( m_Deed.SlayerOne && m_Deed.SlayerTwo && ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.None;
((Spellbook)item).Slayer2 = SlayerName.None;
from.SendMessage( "You remove both slayers from the spellbook." );
m_Deed.Delete();
}
else if( m_Deed.SlayerOne && ((Spellbook)item).Slayer != SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.None;
from.SendMessage( "You remove the slayer from the spellbook." );
m_Deed.Delete();
}
else if( m_Deed.SlayerTwo && ((Spellbook)item).Slayer2 != SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.None;
from.SendMessage( "You remove the slayer from the spellbook." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "The deed cannot be used on this." );
}
}
}
public class SlayerRemovalDeed : Item
{
public bool SlayerOne;
public bool SlayerTwo;
[Constructable]
public SlayerRemovalDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Slayer Removal Deed";
LootType = LootType.Blessed;
Hue = 1175;
SlayerOne = true;
SlayerTwo = false;
}
public SlayerRemovalDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to remove slayer from?");
from.Target = new SlayerRemovalTarget( this );
}
}
public override void GetProperties( ObjectPropertyList list )
{
base.GetProperties( list );
if( this.SlayerOne && this.SlayerTwo )
list.Add(String.Format("Removing: Top and Bottom Slayer"));
else if( this.SlayerOne && !this.SlayerTwo )
list.Add(String.Format("Removing: Top Slayer"));
else if( !this.SlayerOne && this.SlayerTwo )
list.Add(String.Format("Removing: Bottom Slayer"));
else if( this.SlayerOne && this.SlayerTwo )
list.Add(String.Format("Removing: none"));
}
#region ContextMenu
private class PropsEntry : ContextMenuEntry
{
private SlayerRemovalDeed m_Item;
private Mobile m_Mobile;
public PropsEntry( Mobile from, Item item )
: base( 5109 ) // "Switch"
{
m_Item = ( SlayerRemovalDeed )item;
m_Mobile = from;
}
public override void OnClick()
{
if ( m_Item.IsChildOf( m_Mobile.Backpack ) )
{ //When this menu entry is clicked by the player.. Do the following:
if ( m_Item.SlayerOne && m_Item.SlayerTwo )
{
m_Item.SlayerOne = true;
m_Item.SlayerTwo = false;
m_Mobile.SendMessage( "The deed is set to remove only the top slayer.");
m_Item.InvalidateProperties();
}
else if ( m_Item.SlayerOne && !m_Item.SlayerTwo )
{
m_Item.SlayerOne = false;
m_Item.SlayerTwo = true;
m_Mobile.SendMessage( "The deed is set to remove only the bottom slayer.");
m_Item.InvalidateProperties();
}
else if ( !m_Item.SlayerOne && m_Item.SlayerTwo )
{
m_Item.SlayerOne = true;
m_Item.SlayerTwo = true;
m_Mobile.SendMessage( "The deed is set to remove both slayers.");
m_Item.InvalidateProperties();
}
}
else m_Mobile.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
}
public override void GetContextMenuEntries( Mobile from, List<ContextMenuEntry> list )
{ //We are overriding GetContextMenuEntries because we want to do something to it.
base.GetContextMenuEntries( from, list ); //Items and Mobiles may already have context menus on them..
SlayerRemovalDeed.GetContextMenuEntries( from, this, list ); //We want to add another menu entry to what already exists, so call our function that makes the addition
}
public static void GetContextMenuEntries( Mobile from, Item item, List<ContextMenuEntry> list )
{
list.Add( new PropsEntry( from, item ) ); //Add the context menu we just created to the list of context menus that go with this item
}
#endregion
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class BalronSlayerTarget : Target
{
private BalronSlayerDeed m_Deed;
public BalronSlayerTarget( BalronSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.BalronDamnation || ((BaseWeapon)item).Slayer2 == SlayerName.BalronDamnation )
{
from.SendMessage( "That already is a balron slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put balron slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.BalronDamnation;
from.SendMessage( "Your weapon magically becomes a balron slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.BalronDamnation;
from.SendMessage( "Your weapon magically becomes a balron slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.BalronDamnation || ((Spellbook)item).Slayer2 == SlayerName.BalronDamnation )
{
from.SendMessage( "That already is a balron slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put balron slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.BalronDamnation;
from.SendMessage( "Your spellbook magically becomes a balron slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.BalronDamnation;
from.SendMessage( "Your spellbook magically becomes a balron slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into a balron slayer." );
}
}
}
public class BalronSlayerDeed : Item
{
[Constructable]
public BalronSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Balron Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public BalronSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into a balron slayer?");
from.Target = new BalronSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class BloodDrinkingSlayerTarget : Target
{
private BloodDrinkingSlayerDeed m_Deed;
public BloodDrinkingSlayerTarget( BloodDrinkingSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.BloodDrinking || ((BaseWeapon)item).Slayer2 == SlayerName.BloodDrinking )
{
from.SendMessage( "That already is a blood elemental slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put blood elemental slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.BloodDrinking;
from.SendMessage( "Your weapon magically becomes a blood elemental slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.BloodDrinking;
from.SendMessage( "Your weapon magically becomes a blood elemental slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.BloodDrinking || ((Spellbook)item).Slayer2 == SlayerName.BloodDrinking )
{
from.SendMessage( "That already is a blood elemental slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put blood elemental slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.BloodDrinking;
from.SendMessage( "Your spellbook magically becomes a blood elemental slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.BloodDrinking;
from.SendMessage( "Your spellbook magically becomes a blood elemental slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into a blood elemental slayer." );
}
}
}
public class BloodDrinkingSlayerDeed : Item
{
[Constructable]
public BloodDrinkingSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Blood Elemental Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public BloodDrinkingSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into a blood elemental slayer?");
from.Target = new BloodDrinkingSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class DaemonSlayerTarget : Target
{
private DaemonSlayerDeed m_Deed;
public DaemonSlayerTarget( DaemonSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.DaemonDismissal || ((BaseWeapon)item).Slayer2 == SlayerName.DaemonDismissal )
{
from.SendMessage( "That already is a daemon slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put daemon slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.DaemonDismissal;
from.SendMessage( "Your weapon magically becomes a daemon slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.DaemonDismissal;
from.SendMessage( "Your weapon magically becomes a daemon slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.DaemonDismissal || ((Spellbook)item).Slayer2 == SlayerName.DaemonDismissal )
{
from.SendMessage( "That already is a daemon slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put daemon slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.DaemonDismissal;
from.SendMessage( "Your spellbook magically becomes a daemon slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.DaemonDismissal;
from.SendMessage( "Your spellbook magically becomes a daemon slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into a daemon slayer." );
}
}
}
public class DaemonSlayerDeed : Item
{
[Constructable]
public DaemonSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Daemon Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public DaemonSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into a daemon slayer?");
from.Target = new DaemonSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class DragonSlayerTarget : Target
{
private DragonSlayerDeed m_Deed;
public DragonSlayerTarget( DragonSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.DragonSlaying || ((BaseWeapon)item).Slayer2 == SlayerName.DragonSlaying )
{
from.SendMessage( "That already is a dragon slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put dragon slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.DragonSlaying;
from.SendMessage( "Your weapon magically becomes a dragon slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.DragonSlaying;
from.SendMessage( "Your weapon magically becomes a dragon slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.DragonSlaying || ((Spellbook)item).Slayer2 == SlayerName.DragonSlaying )
{
from.SendMessage( "That already is a dragon slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put dragon slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.DragonSlaying;
from.SendMessage( "Your spellbook magically becomes a dragon slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.DragonSlaying;
from.SendMessage( "Your spellbook magically becomes a dragon slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into a dragon slayer." );
}
}
}
public class DragonSlayerDeed : Item
{
[Constructable]
public DragonSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Dragon Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public DragonSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into a dragon slayer?");
from.Target = new DragonSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class EarthShatterSlayerTarget : Target
{
private EarthShatterSlayerDeed m_Deed;
public EarthShatterSlayerTarget( EarthShatterSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.EarthShatter || ((BaseWeapon)item).Slayer2 == SlayerName.EarthShatter )
{
from.SendMessage( "That already is an ore elemental slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put ore elemental slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.EarthShatter;
from.SendMessage( "Your weapon magically becomes an ore elemental slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.EarthShatter;
from.SendMessage( "Your weapon magically becomes an ore elemental slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.EarthShatter || ((Spellbook)item).Slayer2 == SlayerName.EarthShatter )
{
from.SendMessage( "That already is an ore elemental slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put ore elemental slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.EarthShatter;
from.SendMessage( "Your spellbook magically becomes an ore elemental slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.EarthShatter;
from.SendMessage( "Your spellbook magically becomes an ore elemental slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into an ore elemental slayer." );
}
}
}
public class EarthShatterSlayerDeed : Item
{
[Constructable]
public EarthShatterSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Ore Elemental Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public EarthShatterSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into an ore elemental slayer?");
from.Target = new EarthShatterSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class ElementalHealthSlayerTarget : Target
{
private ElementalHealthSlayerDeed m_Deed;
public ElementalHealthSlayerTarget( ElementalHealthSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.ElementalHealth || ((BaseWeapon)item).Slayer2 == SlayerName.ElementalHealth )
{
from.SendMessage( "That already is a poison elemental slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put poison elemental slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.ElementalHealth;
from.SendMessage( "Your weapon magically becomes a poison elemental slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.ElementalHealth;
from.SendMessage( "Your weapon magically becomes a poison elemental slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.ElementalHealth || ((Spellbook)item).Slayer2 == SlayerName.ElementalHealth )
{
from.SendMessage( "That already is a poison elemental slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put poison elemental slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.ElementalHealth;
from.SendMessage( "Your spellbook magically becomes a poison elemental slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.ElementalHealth;
from.SendMessage( "Your spellbook magically becomes a poison elemental slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into a poison elemental slayer." );
}
}
}
public class ElementalHealthSlayerDeed : Item
{
[Constructable]
public ElementalHealthSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Poison Elemental Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public ElementalHealthSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into a poison elemental slayer?");
from.Target = new ElementalHealthSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class FlameDousingSlayerTarget : Target
{
private FlameDousingSlayerDeed m_Deed;
public FlameDousingSlayerTarget( FlameDousingSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.FlameDousing || ((BaseWeapon)item).Slayer2 == SlayerName.FlameDousing )
{
from.SendMessage( "That already is a fire elemental slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put fire elemental slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.FlameDousing;
from.SendMessage( "Your weapon magically becomes a fire elemental slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.FlameDousing;
from.SendMessage( "Your weapon magically becomes a fire elemental slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.FlameDousing || ((Spellbook)item).Slayer2 == SlayerName.FlameDousing )
{
from.SendMessage( "That already is a fire elemental slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put fire elemental slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.FlameDousing;
from.SendMessage( "Your spellbook magically becomes a fire elemental slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.FlameDousing;
from.SendMessage( "Your spellbook magically becomes a fire elemental slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into a fire elemental slayer." );
}
}
}
public class FlameDousingSlayerDeed : Item
{
[Constructable]
public FlameDousingSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Fire Elemental Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public FlameDousingSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into a fire elemental slayer?");
from.Target = new FlameDousingSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class GargoyleSlayerTarget : Target
{
private GargoyleSlayerDeed m_Deed;
public GargoyleSlayerTarget( GargoyleSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.GargoylesFoe || ((BaseWeapon)item).Slayer2 == SlayerName.GargoylesFoe )
{
from.SendMessage( "That already is a gargoyle slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put gargoyle slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.GargoylesFoe;
from.SendMessage( "Your weapon magically becomes a gargoyle slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.GargoylesFoe;
from.SendMessage( "Your weapon magically becomes a gargoyle slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.GargoylesFoe || ((Spellbook)item).Slayer2 == SlayerName.GargoylesFoe )
{
from.SendMessage( "That already is a gargoyle slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put gargoyle slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.GargoylesFoe;
from.SendMessage( "Your spellbook magically becomes a gargoyle slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.GargoylesFoe;
from.SendMessage( "Your spellbook magically becomes a gargoyle slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into a gargoyle slayer." );
}
}
}
public class GargoyleSlayerDeed : Item
{
[Constructable]
public GargoyleSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Gargoyle Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public GargoyleSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into a gargoyle slayer?");
from.Target = new GargoyleSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class LizardmanSlayerTarget : Target
{
private LizardmanSlayerDeed m_Deed;
public LizardmanSlayerTarget( LizardmanSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.LizardmanSlaughter || ((BaseWeapon)item).Slayer2 == SlayerName.LizardmanSlaughter )
{
from.SendMessage( "That already is a lizardman slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put lizardman slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.LizardmanSlaughter;
from.SendMessage( "Your weapon magically becomes a lizardman slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.LizardmanSlaughter;
from.SendMessage( "Your weapon magically becomes a lizardman slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.LizardmanSlaughter || ((Spellbook)item).Slayer2 == SlayerName.LizardmanSlaughter )
{
from.SendMessage( "That already is a lizardman slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put lizardman slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.LizardmanSlaughter;
from.SendMessage( "Your spellbook magically becomes a lizardman slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.LizardmanSlaughter;
from.SendMessage( "Your spellbook magically becomes a lizardman slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into a lizardman slayer." );
}
}
}
public class LizardmanSlayerDeed : Item
{
[Constructable]
public LizardmanSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Lizardman Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public LizardmanSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into a lizardman slayer?");
from.Target = new LizardmanSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class OgreSlayerTarget : Target
{
private OgreSlayerDeed m_Deed;
public OgreSlayerTarget( OgreSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.OgreTrashing || ((BaseWeapon)item).Slayer2 == SlayerName.OgreTrashing )
{
from.SendMessage( "That already is an ogre slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put ogre slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.OgreTrashing;
from.SendMessage( "Your weapon magically becomes an ogre slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.OgreTrashing;
from.SendMessage( "Your weapon magically becomes an ogre slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.OgreTrashing || ((Spellbook)item).Slayer2 == SlayerName.OgreTrashing )
{
from.SendMessage( "That already is an ogre slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put ogre slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.OgreTrashing;
from.SendMessage( "Your spellbook magically becomes an ogre slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.OgreTrashing;
from.SendMessage( "Your spellbook magically becomes an ogre slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into an ogre slayer." );
}
}
}
public class OgreSlayerDeed : Item
{
[Constructable]
public OgreSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Ogre Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public OgreSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into an ogre slayer?");
from.Target = new OgreSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class OphidianSlayerTarget : Target
{
private OphidianSlayerDeed m_Deed;
public OphidianSlayerTarget( OphidianSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.Ophidian || ((BaseWeapon)item).Slayer2 == SlayerName.Ophidian )
{
from.SendMessage( "That already is an ophidian slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put ophidian elemental slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.Ophidian;
from.SendMessage( "Your weapon magically becomes an ophidian slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.Ophidian;
from.SendMessage( "Your weapon magically becomes an ophidian slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.Ophidian || ((Spellbook)item).Slayer2 == SlayerName.Ophidian )
{
from.SendMessage( "That already is an ophidian slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put ophidian slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.Ophidian;
from.SendMessage( "Your spellbook magically becomes an ophidian slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.Ophidian;
from.SendMessage( "Your spellbook magically becomes an ophidian slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into an ophidian slayer." );
}
}
}
public class OphidianSlayerDeed : Item
{
[Constructable]
public OphidianSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Ophidian Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public OphidianSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into an ophidian slayer?");
from.Target = new OphidianSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class OrcSlayerTarget : Target
{
private OrcSlayerDeed m_Deed;
public OrcSlayerTarget( OrcSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.OrcSlaying || ((BaseWeapon)item).Slayer2 == SlayerName.OrcSlaying )
{
from.SendMessage( "That already is an orc slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put orc slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.OrcSlaying;
from.SendMessage( "Your weapon magically becomes an orc slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.OrcSlaying;
from.SendMessage( "Your weapon magically becomes an orc slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.OrcSlaying || ((Spellbook)item).Slayer2 == SlayerName.OrcSlaying )
{
from.SendMessage( "That already is an orc slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put orc slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.OrcSlaying;
from.SendMessage( "Your spellbook magically becomes an orc slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.OrcSlaying;
from.SendMessage( "Your spellbook magically becomes an orc slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into an orc slayer." );
}
}
}
public class OrcSlayerDeed : Item
{
[Constructable]
public OrcSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Orc Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public OrcSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into an orc slayer?");
from.Target = new OrcSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class ScorpionSlayerTarget : Target
{
private ScorpionSlayerDeed m_Deed;
public ScorpionSlayerTarget( ScorpionSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.ScorpionsBane || ((BaseWeapon)item).Slayer2 == SlayerName.ScorpionsBane )
{
from.SendMessage( "That already is a scorpion slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put scorpion slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.ScorpionsBane;
from.SendMessage( "Your weapon magically becomes a scorpion slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.ScorpionsBane;
from.SendMessage( "Your weapon magically becomes a scorpion slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.ScorpionsBane || ((Spellbook)item).Slayer2 == SlayerName.ScorpionsBane )
{
from.SendMessage( "That already is a scorpion slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put scorpion slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.ScorpionsBane;
from.SendMessage( "Your spellbook magically becomes a scorpion slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.ScorpionsBane;
from.SendMessage( "Your spellbook magically becomes a scorpion slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into a scorpion slayer." );
}
}
}
public class ScorpionSlayerDeed : Item
{
[Constructable]
public ScorpionSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Scorpion Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public ScorpionSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into a scorpion slayer?");
from.Target = new ScorpionSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class SnakeSlayerTarget : Target
{
private SnakeSlayerDeed m_Deed;
public SnakeSlayerTarget( SnakeSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.SnakesBane || ((BaseWeapon)item).Slayer2 == SlayerName.SnakesBane )
{
from.SendMessage( "That already is a snake slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put snake slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.SnakesBane;
from.SendMessage( "Your weapon magically becomes a snake slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.SnakesBane;
from.SendMessage( "Your weapon magically becomes a snake slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.SnakesBane || ((Spellbook)item).Slayer2 == SlayerName.SnakesBane )
{
from.SendMessage( "That already is a snake slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put snake slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.SnakesBane;
from.SendMessage( "Your spellbook magically becomes a snake slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.SnakesBane;
from.SendMessage( "Your spellbook magically becomes a snake slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into a snake slayer." );
}
}
}
public class SnakeSlayerDeed : Item
{
[Constructable]
public SnakeSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Snake Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public SnakeSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into a snake slayer?");
from.Target = new SnakeSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class SpidersDeathSlayerTarget : Target
{
private SpidersDeathSlayerDeed m_Deed;
public SpidersDeathSlayerTarget( SpidersDeathSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.SpidersDeath || ((BaseWeapon)item).Slayer2 == SlayerName.SpidersDeath )
{
from.SendMessage( "That already is a spider slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put spider slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.SpidersDeath;
from.SendMessage( "Your weapon magically becomes a spider slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.SpidersDeath;
from.SendMessage( "Your weapon magically becomes a spider slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.SpidersDeath || ((Spellbook)item).Slayer2 == SlayerName.SpidersDeath )
{
from.SendMessage( "That already is a spider slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put spider slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.SpidersDeath;
from.SendMessage( "Your spellbook magically becomes a spider slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.SpidersDeath;
from.SendMessage( "Your spellbook magically becomes a spider slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into a spider slayer." );
}
}
}
public class SpidersDeathSlayerDeed : Item
{
[Constructable]
public SpidersDeathSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Spider Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public SpidersDeathSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into a spider slayer?");
from.Target = new SpidersDeathSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class SummerWindSlayerTarget : Target
{
private SummerWindSlayerDeed m_Deed;
public SummerWindSlayerTarget( SummerWindSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.SummerWind || ((BaseWeapon)item).Slayer2 == SlayerName.SummerWind )
{
from.SendMessage( "That already is a snow elemental slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put snow elemental slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.SummerWind;
from.SendMessage( "Your weapon magically becomes a snow elemental slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.SummerWind;
from.SendMessage( "Your weapon magically becomes a snow elemental slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.SummerWind || ((Spellbook)item).Slayer2 == SlayerName.SummerWind )
{
from.SendMessage( "That already is a snow elemental slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put snow elemental slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.SummerWind;
from.SendMessage( "Your spellbook magically becomes a snow elemental slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.SummerWind;
from.SendMessage( "Your spellbook magically becomes a snow elemental slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into a snow elemental slayer." );
}
}
}
public class SummerWindSlayerDeed : Item
{
[Constructable]
public SummerWindSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Snow Elemental Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public SummerWindSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into a snow elemental slayer?");
from.Target = new SummerWindSlayerTarget( this );
}
}
}
}

View File

@@ -0,0 +1,147 @@
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server;
namespace Server.Items
{
public class TerathanSlayerTarget : Target
{
private TerathanSlayerDeed m_Deed;
public TerathanSlayerTarget( TerathanSlayerDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget( Mobile from, object target )
{
if ( target is BaseWeapon )
{
Item item = (Item)target;
if ( ((BaseWeapon)item).Slayer == SlayerName.Terathan || ((BaseWeapon)item).Slayer2 == SlayerName.Terathan )
{
from.SendMessage( "That already is a terathan slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put terathan slayer on that there!" );
}
else
{
if( ((BaseWeapon)item).Slayer != SlayerName.None && ((BaseWeapon)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your weapon already has two slayers! One must be removed first." );
}
if( ((BaseWeapon)item).Slayer == SlayerName.None )
{
((BaseWeapon)item).Slayer = SlayerName.Terathan;
from.SendMessage( "Your weapon magically becomes a terathan slayer..." );
m_Deed.Delete();
}
else if( ((BaseWeapon)item).Slayer2 == SlayerName.None )
{
((BaseWeapon)item).Slayer2 = SlayerName.Terathan;
from.SendMessage( "Your weapon magically becomes a terathan slayer..." );
m_Deed.Delete();
}
}
}
}
else if ( target is Spellbook )
{
Item item = (Item)target;
if ( ((Spellbook)item).Slayer == SlayerName.Terathan || ((Spellbook)item).Slayer2 == SlayerName.Terathan )
{
from.SendMessage( "That already is a terathan slayer!");
}
else
{
if( item.RootParent != from )
{
from.SendMessage( "You cannot put terathan slayer on that there!" );
}
else
{
if( ((Spellbook)item).Slayer != SlayerName.None && ((Spellbook)item).Slayer2 != SlayerName.None )
{
from.SendMessage( "Your spellbook already has two slayers! One must be removed first." );
}
if( ((Spellbook)item).Slayer == SlayerName.None )
{
((Spellbook)item).Slayer = SlayerName.Terathan;
from.SendMessage( "Your spellbook magically becomes a terathan slayer..." );
m_Deed.Delete();
}
else if( ((Spellbook)item).Slayer2 == SlayerName.None )
{
((Spellbook)item).Slayer2 = SlayerName.Terathan;
from.SendMessage( "Your spellbook magically becomes a terathan slayer..." );
m_Deed.Delete();
}
}
}
}
else
{
from.SendMessage( "That cannot be made into a terathan slayer." );
}
}
}
public class TerathanSlayerDeed : Item
{
[Constructable]
public TerathanSlayerDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Terathan Slayer deed";
LootType = LootType.Blessed;
Hue = 1175;
}
public TerathanSlayerDeed( 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 );
LootType = LootType.Blessed;
int version = reader.ReadInt();
}
public override bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendLocalizedMessage( 1042001 );
}
else
{
from.SendMessage("What item would you like to change into a terathan slayer?");
from.Target = new TerathanSlayerTarget( this );
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More