public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
switch ( version )
{
case 9:
case 8:
case 7:
case 6:
case 5:
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 9 ); // version
SaveFlag flags = SaveFlag.None;
SetSaveFlag( ref flags, SaveFlag.DamageLevel, m_DamageLevel != WeaponDamageLevel.Regular );
SetSaveFlag( ref flags, SaveFlag.AccuracyLevel, m_AccuracyLevel != WeaponAccuracyLevel.Regular );
SetSaveFlag( ref flags, SaveFlag.DurabilityLevel, m_DurabilityLevel != WeaponDurabilityLevel.Regular );
SetSaveFlag( ref flags, SaveFlag.Quality, m_Quality != WeaponQuality.Regular );
SetSaveFlag( ref flags, SaveFlag.Hits, m_Hits != 0 );
public override bool OnEquip( Mobile from )
{
{
//Crit Droth
if ( CritRate != 0 )
{
PlayerMobile pmfrom = from as PlayerMobile;
pmfrom.Crit += m_CritRate;
return base.OnEquip( from );
}
using System;
using Server.Network;
using Server.Prompts;
using Server.Items;
using Server.Targeting;
using Server.Mobiles;
namespace Server.Items
{
public class CritTarget : Target
{
private CritDeed m_Deed;
private Mobile m_from;
public CritTarget( CritDeed deed ) : base( 1, false, TargetFlags.None )
{
m_Deed = deed;
}
protected override void OnTarget(Mobile from, object target)
{
if (m_Deed.Deleted)
return;
if (target is BaseWeapon)
{
BaseWeapon weapon = (BaseWeapon)target;
int Critadjust = weapon.Attributes.Crit;
if (Critadjust >= 50)
{
from.SendMessage(0x35, "The weapons already at 50% !!!");
}
else
{
Critadjust = Critadjust + 5;
if (Critadjust > 50)
{
Critadjust = 50;
weapon.Attributes.Crit = Critadjust;
from.SendMessage( 0x35, "The weapon gets maxed out, 50% Crit obtained.");
m_Deed.Delete();
}
else
{
weapon.Attributes.Crit = Critadjust;
from.SendMessage( 0x35, "The weapon recieves an additional 5% Crit.");
m_Deed.Delete();
}
}
}
else
{
from.SendMessage( 0x35, "This deed only works on weapons.");
}
}
}
public class CritDeed : Item // Create the item class which is derived from the base item class
{
[Constructable]
public CritDeed() : base( 0x14F0 )
{
Weight = 1.0;
Name = "Crit +5% Deed";
LootType = LootType.Blessed;
Hue = 1278;
}
public CritDeed( 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 bool DisplayLootType{ get{ return false; } }
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
{
from.SendMessage( 0x35, "The Deed Must Be In Your Bag To Use It" );
}
else
{
from.SendMessage( 0x35, "Which weapon do you want to upgrade with Crit ?" );
from.Target = new CritTarget( this );
}
}
}
}