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,70 @@
using System;
using Server;
namespace Server.Items
{
public class DarkAgeOfEvoShroud : HoodedShroudOfShadows
{
public override int ArtifactRarity{ get{ return 13; } }
public override int BasePhysicalResistance{ get{ return 15; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
private Mobile m_Owner;
[Constructable]
public DarkAgeOfEvoShroud()
{
Name = "<BASEFONT COLOR=#2E9AFE>Evo Shroud";
Hue = 1910;
Attributes.LowerManaCost = 10;
Attributes.LowerRegCost = 15;
Attributes.BonusHits = 10;
Attributes.BonusMana = 10;
Attributes.BonusStam = 10;
Attributes.Luck = 150;
Attributes.ReflectPhysical = 15;
}
public override bool OnEquip(Mobile from)
{
// set owner if not already set -- this is only done the first time.
if (m_Owner == null)
{
m_Owner = from;
this.Name = m_Owner.Name.ToString() + "'s Shroud";
from.SendMessage("You feel the robe grow fond of you.");
return base.OnEquip(from);
}
else
{
if (m_Owner != from)
{
from.SendMessage("Sorry but this robe does not belong to you.");
return false;
}
return base.OnEquip(from);
}
}
public DarkAgeOfEvoShroud( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 1 );
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,102 @@
using System;
using Server;
using Server.Items;
namespace Server.Mobiles
{
[CorpseName( "Corpse Of An Evo Guardian" )]
public class EvoArmorGuardian : BaseCreature
{
public override bool ShowFameTitle{ get{ return false; } }
[Constructable]
public EvoArmorGuardian() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "Evo Guardian";
Body = 311;
Hue = 0;
BaseSoundID = 1072;
SetStr( 700, 700 );
SetDex( 600, 600 );
SetInt( 400, 450 );
SetHits( 6500, 8000 );
SetDamage( 20, 25 );
SetDamageType( ResistanceType.Physical, 45 );
SetDamageType( ResistanceType.Cold, 45 );
SetDamageType( ResistanceType.Fire, 45 );
SetResistance( ResistanceType.Physical, 50, 60 );
SetResistance( ResistanceType.Energy, 50, 60 );
SetResistance( ResistanceType.Poison, 50, 60 );
SetResistance( ResistanceType.Cold, 50, 60 );
SetResistance( ResistanceType.Fire, 50, 60 );
SetSkill( SkillName.Wrestling, 95.1, 100.0 );
SetSkill( SkillName.Anatomy, 95.1, 100.0 );
SetSkill( SkillName.MagicResist, 95.1, 100.0 );
SetSkill( SkillName.Swords, 95.1, 100.0 );
SetSkill( SkillName.Tactics, 95.1, 100.0 );
SetSkill( SkillName.Parry, 95.1, 100.0 );
SetSkill( SkillName.Focus, 95.1, 100.0 );
Fame = 25000;
Karma = -25000;
VirtualArmor = 60;
//PackGold( 8000, 10000 );
}
public override bool AlwaysAttackable{ get{ return true; } }
public override void GenerateLoot()
{
AddLoot( LootPack.Rich, 2 );
}
public override void OnKilledBy(Mobile mob)
{
PlayerMobile p = mob as PlayerMobile;
if (p == null || p.Map == Map.Internal || p.Map == null || p.Deleted || p.Blessed)
return;
else if (mob is PlayerMobile)
{
switch (Utility.Random(50))
{
case 0: p.AddToBackpack(new armsofevolution()); break;
case 1: p.AddToBackpack(new chestofevolution()); break;
case 2: p.AddToBackpack(new glovesofevolution()); break;
case 3: p.AddToBackpack(new helmofevolution()); break;
case 4: p.AddToBackpack(new legsofevolution()); break;
case 5: p.AddToBackpack(new femalechestofevolution()); break;
case 6: p.AddToBackpack(new gorgetofevolution()); break;
}
}
base.OnKilledBy(mob);
}
public EvoArmorGuardian( 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,185 @@
using System;
using Server;
namespace Server.Items
{
public class armsofevolution: PlateArms
{
private int mEvolutionPoints = 0;
private int mBoundToSoul = 0;// Start binding value as zero.
[CommandProperty( AccessLevel.GameMaster )]
public int EvolutionPoints { get { return mEvolutionPoints; } set { mEvolutionPoints = value; } }
[CommandProperty(AccessLevel.GameMaster)]
public int BoundToSoul { get { return mBoundToSoul; } set { mBoundToSoul = value; } }
public override int ArtifactRarity{ get{ return 13; } }
public override int BasePhysicalResistance { get { return 10; } }
public override int BaseFireResistance { get { return 10; } }
public override int BaseColdResistance { get { return 10; } }
public override int BasePoisonResistance { get { return 10; } }
public override int BaseEnergyResistance { get { return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
private Mobile m_Owner;
[Constructable]
public armsofevolution()
{
Name = "<BASEFONT COLOR=#2E9AFE>Evo Arms";
Hue = 1910;
ArmorAttributes.SelfRepair = 10;
ArmorAttributes.MageArmor = 1;
Attributes.LowerManaCost = 8;
Attributes.LowerRegCost = 16;
BoundToSoul = 0;
}
public armsofevolution(Serial serial)
: base(serial)
{
}
public override int OnHit( BaseWeapon weapon, int damageTaken )
{
if (Utility.Random(5) == 1)
{
//Console.WriteLine("should be applying gain");
ApplyGain();
}
return base.OnHit(weapon, damageTaken);
}
public void ApplyGain()
{
int expr;
if (mEvolutionPoints < 500) // edit this to change how high you wish the Attributes to go 10000 means max attributes will be 100
{
mEvolutionPoints++;
//this.Name = "Evo Arms (" + mEvolutionPoints.ToString() + ")";
if ((mEvolutionPoints / 1) > 0)
{
expr = mEvolutionPoints / 2;//100Max
this.Attributes.BonusHits = expr;
this.Attributes.BonusMana = expr;
this.Attributes.BonusStam = expr;
}
if ((mEvolutionPoints / 4) > 0)
{
expr = mEvolutionPoints / 4;//50Max
//this.Attributes.Luck = expr;
this.Attributes.SpellDamage = expr;
this.Attributes.DefendChance = expr;
this.Attributes.ReflectPhysical = expr;
}
if ((mEvolutionPoints / 20) > 0)
{
expr = mEvolutionPoints / 10;//20Max
this.Attributes.BonusStr = expr;
this.Attributes.BonusDex = expr;
this.Attributes.BonusInt = expr;
}
InvalidateProperties();
}
}
public override bool OnDragLift(Mobile from)
{
if (from.AccessLevel >= AccessLevel.Seer)
{
return true;
}
else if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Arms";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
return base.OnDragLift(from);
}
public override bool OnEquip(Mobile from)
{
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Arms";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
base.OnEquip(from);
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
else if (BoundToSoul == from.Serial) //Check to see if sword is bound to who is equiping it.
{
base.OnEquip(from);
return true; //Allow player who had bound to sword to equip it.
}
else
{
from.SendMessage("Sorry but this armor does not belong to you.");
return false; //Disallow any one else from equiping the sword.
}
}
public override void AddNameProperty(ObjectPropertyList list)
{
base.AddNameProperty(list);
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Un-Bound]" + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
else if (BoundToSoul > 0)//Once the sword is bound it will show the Evolution Points.
{// \n puts the stuff after it on a new line
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Soulbound]\n" + "<BASEFONT COLOR=#669966>"+"Evolution Points: " + mEvolutionPoints.ToString() + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1);
writer.Write(mBoundToSoul);//Serialize who it is bound to.
writer.Write(mEvolutionPoints);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch (version)
{
case 1:
{
mBoundToSoul = reader.ReadInt();
goto case 0;
}
case 0:
{
mEvolutionPoints = reader.ReadInt();
break;
}
}
}
}
}

View File

@@ -0,0 +1,180 @@
using System;
using Server;
namespace Server.Items
{
public class chestofevolution: PlateChest
{
private int mEvolutionPoints = 0;
private int mBoundToSoul = 0;// Start binding value as zero.
[CommandProperty( AccessLevel.GameMaster )]
public int EvolutionPoints { get { return mEvolutionPoints; } set { mEvolutionPoints = value; } }
[CommandProperty(AccessLevel.GameMaster)]
public int BoundToSoul { get { return mBoundToSoul; } set { mBoundToSoul = value; } }
public override int ArtifactRarity{ get{ return 13; } }
public override int BasePhysicalResistance { get { return 10; } }
public override int BaseFireResistance { get { return 10; } }
public override int BaseColdResistance { get { return 10; } }
public override int BasePoisonResistance { get { return 10; } }
public override int BaseEnergyResistance { get { return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
private Mobile m_Owner;
[Constructable]
public chestofevolution()
{
Name = "<BASEFONT COLOR=#2E9AFE>Evo Chest";
Hue = 1910;
ArmorAttributes.SelfRepair = 10;
ArmorAttributes.MageArmor = 1;
Attributes.LowerManaCost = 8;
Attributes.LowerRegCost = 16;
BoundToSoul = 0;
}
public chestofevolution(Serial serial)
: base(serial)
{
}
public override int OnHit( BaseWeapon weapon, int damageTaken )
{
if (Utility.Random(5) == 1)
{
//Console.WriteLine("should be applying gain");
ApplyGain();
}
return base.OnHit(weapon, damageTaken);
}
public void ApplyGain()
{
int expr;
if (mEvolutionPoints < 500) // edit this to change how high you wish the Attributes to go 10000 means max attributes will be 100
{
mEvolutionPoints++;
//this.Name = "dark age evo chest (" + mEvolutionPoints.ToString() + ")";
if ((mEvolutionPoints / 1) > 0)
{
expr = mEvolutionPoints / 2;//100Max
this.Attributes.BonusHits = expr;
this.Attributes.BonusMana = expr;
this.Attributes.BonusStam = expr;
}
if ((mEvolutionPoints / 4) > 0)
{
expr = mEvolutionPoints / 4;//50Max
//this.Attributes.Luck = expr;
this.Attributes.SpellDamage = expr;
this.Attributes.DefendChance = expr;
this.Attributes.ReflectPhysical = expr;
}
if ((mEvolutionPoints / 20) > 0)
{
expr = mEvolutionPoints / 10;//20Max
this.Attributes.BonusStr = expr;
this.Attributes.BonusDex = expr;
this.Attributes.BonusInt = expr;
}
InvalidateProperties();
}
}
public override bool OnDragLift(Mobile from)
{
if (from.AccessLevel >= AccessLevel.Seer)
{
return true;
}
else if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Chest";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
return base.OnDragLift(from);
}
public override bool OnEquip(Mobile from)
{
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Chest";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
base.OnEquip(from);
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
else if (BoundToSoul == from.Serial) //Check to see if sword is bound to who is equiping it.
{
base.OnEquip(from);
return true; //Allow player who had bound to sword to equip it.
}
else
{
from.SendMessage("Sorry but this armor does not belong to you.");
return false; //Disallow any one else from equiping the sword.
}
}
public override void AddNameProperty(ObjectPropertyList list)
{
base.AddNameProperty(list);
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Un-Bound]" + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
else if (BoundToSoul > 0)//Once the sword is bound it will show the Evolution Points.
{// \n puts the stuff after it on a new line
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Soulbound]\n" + "<BASEFONT COLOR=#669966>" + "Evolution Points: " + mEvolutionPoints.ToString() + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1);
writer.Write(mBoundToSoul);//Serialize who it is bound to.
writer.Write(mEvolutionPoints);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch (version)
{
case 1:
{
mBoundToSoul = reader.ReadInt();
goto case 0;
}
case 0:
{
mEvolutionPoints = reader.ReadInt();
break;
}
}
}
}
}

View File

@@ -0,0 +1,180 @@
using System;
using Server;
namespace Server.Items
{
public class femalechestofevolution: LeatherBustierArms
{
private int mEvolutionPoints = 0;
private int mBoundToSoul = 0;// Start binding value as zero.
[CommandProperty( AccessLevel.GameMaster )]
public int EvolutionPoints { get { return mEvolutionPoints; } set { mEvolutionPoints = value; } }
[CommandProperty(AccessLevel.GameMaster)]
public int BoundToSoul { get { return mBoundToSoul; } set { mBoundToSoul = value; } }
public override int ArtifactRarity{ get{ return 13; } }
public override int BasePhysicalResistance { get { return 10; } }
public override int BaseFireResistance { get { return 10; } }
public override int BaseColdResistance { get { return 10; } }
public override int BasePoisonResistance { get { return 10; } }
public override int BaseEnergyResistance { get { return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
private Mobile m_Owner;
[Constructable]
public femalechestofevolution()
{
Name = "<BASEFONT COLOR=#2E9AFE>Evo Female Chest";
Hue = 1910;
ArmorAttributes.SelfRepair = 10;
ArmorAttributes.MageArmor = 1;
Attributes.LowerManaCost = 8;
Attributes.LowerRegCost = 16;
BoundToSoul = 0;
}
public femalechestofevolution(Serial serial)
: base(serial)
{
}
public override int OnHit( BaseWeapon weapon, int damageTaken )
{
if (Utility.Random(5) == 1)
{
//Console.WriteLine("should be applying gain");
ApplyGain();
}
return base.OnHit(weapon, damageTaken);
}
public void ApplyGain()
{
int expr;
if (mEvolutionPoints < 500) // edit this to change how high you wish the Attributes to go 10000 means max attributes will be 100
{
mEvolutionPoints++;
//this.Name = "Evo Female Chest (" + mEvolutionPoints.ToString() + ")";
if ((mEvolutionPoints / 1) > 0)
{
expr = mEvolutionPoints / 2;//100Max
this.Attributes.BonusHits = expr;
this.Attributes.BonusMana = expr;
this.Attributes.BonusStam = expr;
}
if ((mEvolutionPoints / 4) > 0)
{
expr = mEvolutionPoints / 4;//50Max
//this.Attributes.Luck = expr;
this.Attributes.SpellDamage = expr;
this.Attributes.DefendChance = expr;
this.Attributes.ReflectPhysical = expr;
}
if ((mEvolutionPoints / 20) > 0)
{
expr = mEvolutionPoints / 10;//20Max
this.Attributes.BonusStr = expr;
this.Attributes.BonusDex = expr;
this.Attributes.BonusInt = expr;
}
InvalidateProperties();
}
}
public override bool OnDragLift(Mobile from)
{
if (from.AccessLevel >= AccessLevel.Seer)
{
return true;
}
else if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Female Chest";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
return base.OnDragLift(from);
}
public override bool OnEquip(Mobile from)
{
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Female Chest";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
base.OnEquip(from);
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
else if (BoundToSoul == from.Serial) //Check to see if sword is bound to who is equiping it.
{
base.OnEquip(from);
return true; //Allow player who had bound to sword to equip it.
}
else
{
from.SendMessage("Sorry but this armor does not belong to you.");
return false; //Disallow any one else from equiping the sword.
}
}
public override void AddNameProperty(ObjectPropertyList list)
{
base.AddNameProperty(list);
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Un-Bound]" + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
else if (BoundToSoul > 0)//Once the sword is bound it will show the Evolution Points.
{// \n puts the stuff after it on a new line
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Soulbound]\n" + "<BASEFONT COLOR=#669966>" + "Evolution Points: " + mEvolutionPoints.ToString() + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1);
writer.Write(mBoundToSoul);//Serialize who it is bound to.
writer.Write(mEvolutionPoints);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch (version)
{
case 1:
{
mBoundToSoul = reader.ReadInt();
goto case 0;
}
case 0:
{
mEvolutionPoints = reader.ReadInt();
break;
}
}
}
}
}

View File

@@ -0,0 +1,180 @@
using System;
using Server;
namespace Server.Items
{
public class glovesofevolution: PlateGloves
{
private int mEvolutionPoints = 0;
private int mBoundToSoul = 0;// Start binding value as zero.
[CommandProperty( AccessLevel.GameMaster )]
public int EvolutionPoints { get { return mEvolutionPoints; } set { mEvolutionPoints = value; } }
[CommandProperty(AccessLevel.GameMaster)]
public int BoundToSoul { get { return mBoundToSoul; } set { mBoundToSoul = value; } }
public override int ArtifactRarity{ get{ return 13; } }
public override int BasePhysicalResistance { get { return 10; } }
public override int BaseFireResistance { get { return 10; } }
public override int BaseColdResistance { get { return 10; } }
public override int BasePoisonResistance { get { return 10; } }
public override int BaseEnergyResistance { get { return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
private Mobile m_Owner;
[Constructable]
public glovesofevolution()
{
Name = "<BASEFONT COLOR=#2E9AFE>Evo Gloves";
Hue = 1910;
ArmorAttributes.SelfRepair = 10;
ArmorAttributes.MageArmor = 1;
Attributes.LowerManaCost = 8;
Attributes.LowerRegCost = 16;
BoundToSoul = 0;
}
public glovesofevolution(Serial serial)
: base(serial)
{
}
public override int OnHit( BaseWeapon weapon, int damageTaken )
{
if (Utility.Random(5) == 1)
{
//Console.WriteLine("should be applying gain");
ApplyGain();
}
return base.OnHit(weapon, damageTaken);
}
public void ApplyGain()
{
int expr;
if (mEvolutionPoints < 500) // edit this to change how high you wish the Attributes to go 10000 means max attributes will be 100
{
mEvolutionPoints++;
//this.Name = "Evo Gloves (" + mEvolutionPoints.ToString() + ")";
if ((mEvolutionPoints / 1) > 0)
{
expr = mEvolutionPoints / 2;//100Max
this.Attributes.BonusHits = expr;
this.Attributes.BonusMana = expr;
this.Attributes.BonusStam = expr;
}
if ((mEvolutionPoints / 4) > 0)
{
expr = mEvolutionPoints / 4;//50Max
//this.Attributes.Luck = expr;
this.Attributes.SpellDamage = expr;
this.Attributes.DefendChance = expr;
this.Attributes.ReflectPhysical = expr;
}
if ((mEvolutionPoints / 20) > 0)
{
expr = mEvolutionPoints / 10;//20Max
this.Attributes.BonusStr = expr;
this.Attributes.BonusDex = expr;
this.Attributes.BonusInt = expr;
}
InvalidateProperties();
}
}
public override bool OnDragLift(Mobile from)
{
if (from.AccessLevel >= AccessLevel.Seer)
{
return true;
}
else if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Gloves";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
return base.OnDragLift(from);
}
public override bool OnEquip(Mobile from)
{
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Gloves";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
base.OnEquip(from);
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
else if (BoundToSoul == from.Serial) //Check to see if sword is bound to who is equiping it.
{
base.OnEquip(from);
return true; //Allow player who had bound to sword to equip it.
}
else
{
from.SendMessage("Sorry but this armor does not belong to you.");
return false; //Disallow any one else from equiping the sword.
}
}
public override void AddNameProperty(ObjectPropertyList list)
{
base.AddNameProperty(list);
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Un-Bound]" + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
else if (BoundToSoul > 0)//Once the sword is bound it will show the Evolution Points.
{// \n puts the stuff after it on a new line
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Soulbound]\n" + "<BASEFONT COLOR=#669966>" + "Evolution Points: " + mEvolutionPoints.ToString() + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1);
writer.Write(mBoundToSoul);//Serialize who it is bound to.
writer.Write(mEvolutionPoints);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch (version)
{
case 1:
{
mBoundToSoul = reader.ReadInt();
goto case 0;
}
case 0:
{
mEvolutionPoints = reader.ReadInt();
break;
}
}
}
}
}

View File

@@ -0,0 +1,180 @@
using System;
using Server;
namespace Server.Items
{
public class gorgetofevolution: PlateGorget
{
private int mEvolutionPoints = 0;
private int mBoundToSoul = 0;// Start binding value as zero.
[CommandProperty( AccessLevel.GameMaster )]
public int EvolutionPoints { get { return mEvolutionPoints; } set { mEvolutionPoints = value; } }
[CommandProperty(AccessLevel.GameMaster)]
public int BoundToSoul { get { return mBoundToSoul; } set { mBoundToSoul = value; } }
public override int ArtifactRarity{ get{ return 13; } }
public override int BasePhysicalResistance { get { return 10; } }
public override int BaseFireResistance { get { return 10; } }
public override int BaseColdResistance { get { return 10; } }
public override int BasePoisonResistance { get { return 10; } }
public override int BaseEnergyResistance { get { return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
private Mobile m_Owner;
[Constructable]
public gorgetofevolution()
{
Name = "<BASEFONT COLOR=#2E9AFE>Evo Gorget";
Hue = 1910;
ArmorAttributes.SelfRepair = 10;
ArmorAttributes.MageArmor = 1;
Attributes.LowerManaCost = 8;
Attributes.LowerRegCost = 16;
BoundToSoul = 0;
}
public gorgetofevolution(Serial serial)
: base(serial)
{
}
public override int OnHit( BaseWeapon weapon, int damageTaken )
{
if (Utility.Random(5) == 1)
{
//Console.WriteLine("should be applying gain");
ApplyGain();
}
return base.OnHit(weapon, damageTaken);
}
public void ApplyGain()
{
int expr;
if (mEvolutionPoints < 500) // edit this to change how high you wish the Attributes to go 10000 means max attributes will be 100
{
mEvolutionPoints++;
//this.Name = "Evo Gorget (" + mEvolutionPoints.ToString() + ")";
if ((mEvolutionPoints / 1) > 0)
{
expr = mEvolutionPoints / 2;//100Max
this.Attributes.BonusHits = expr;
this.Attributes.BonusMana = expr;
this.Attributes.BonusStam = expr;
}
if ((mEvolutionPoints / 4) > 0)
{
expr = mEvolutionPoints / 4;//50Max
//this.Attributes.Luck = expr;
this.Attributes.SpellDamage = expr;
this.Attributes.DefendChance = expr;
this.Attributes.ReflectPhysical = expr;
}
if ((mEvolutionPoints / 20) > 0)
{
expr = mEvolutionPoints / 10;//20Max
this.Attributes.BonusStr = expr;
this.Attributes.BonusDex = expr;
this.Attributes.BonusInt = expr;
}
InvalidateProperties();
}
}
public override bool OnDragLift(Mobile from)
{
if (from.AccessLevel >= AccessLevel.Seer)
{
return true;
}
else if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Gorget";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
return base.OnDragLift(from);
}
public override bool OnEquip(Mobile from)
{
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Gorget";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
base.OnEquip(from);
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
else if (BoundToSoul == from.Serial) //Check to see if sword is bound to who is equiping it.
{
base.OnEquip(from);
return true; //Allow player who had bound to sword to equip it.
}
else
{
from.SendMessage("Sorry but this armor does not belong to you.");
return false; //Disallow any one else from equiping the sword.
}
}
public override void AddNameProperty(ObjectPropertyList list)
{
base.AddNameProperty(list);
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Un-Bound]" + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
else if (BoundToSoul > 0)//Once the sword is bound it will show the Evolution Points.
{// \n puts the stuff after it on a new line
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Soulbound]\n" + "<BASEFONT COLOR=#669966>" + "Evolution Points: " + mEvolutionPoints.ToString() + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1);
writer.Write(mBoundToSoul);//Serialize who it is bound to.
writer.Write(mEvolutionPoints);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch (version)
{
case 1:
{
mBoundToSoul = reader.ReadInt();
goto case 0;
}
case 0:
{
mEvolutionPoints = reader.ReadInt();
break;
}
}
}
}
}

View File

@@ -0,0 +1,181 @@
using System;
using Server;
namespace Server.Items
{
public class helmofevolution: CloseHelm
{
private int mEvolutionPoints = 0;
private int mBoundToSoul = 0;// Start binding value as zero.
[CommandProperty( AccessLevel.GameMaster )]
public int EvolutionPoints { get { return mEvolutionPoints; } set { mEvolutionPoints = value; } }
[CommandProperty(AccessLevel.GameMaster)]
public int BoundToSoul { get { return mBoundToSoul; } set { mBoundToSoul = value; } }
public override int ArtifactRarity{ get{ return 13; } }
public override int BasePhysicalResistance { get { return 10; } }
public override int BaseFireResistance { get { return 10; } }
public override int BaseColdResistance { get { return 10; } }
public override int BasePoisonResistance { get { return 10; } }
public override int BaseEnergyResistance { get { return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
private Mobile m_Owner;
[Constructable]
public helmofevolution()
{
Name = "<BASEFONT COLOR=#2E9AFE>Evo Helm";
Hue = 1910;
ArmorAttributes.SelfRepair = 10;
ArmorAttributes.MageArmor = 1;
Attributes.LowerManaCost = 8;
Attributes.LowerRegCost = 16;
BoundToSoul = 0;
}
public helmofevolution(Serial serial)
: base(serial)
{
}
public override int OnHit( BaseWeapon weapon, int damageTaken )
{
if (Utility.Random(5) == 1)
{
//Console.WriteLine("should be applying gain");
ApplyGain();
}
return base.OnHit(weapon, damageTaken);
}
public void ApplyGain()
{
int expr;
if (mEvolutionPoints < 500) // edit this to change how high you wish the Attributes to go 10000 means max attributes will be 100
{
mEvolutionPoints++;
//this.Name = "Evo Helm (" + mEvolutionPoints.ToString() + ")";
if ((mEvolutionPoints / 1) > 0)
{
expr = mEvolutionPoints / 2;//100Max
this.Attributes.BonusHits = expr;
this.Attributes.BonusMana = expr;
this.Attributes.BonusStam = expr;
}
if ((mEvolutionPoints / 4) > 0)
{
expr = mEvolutionPoints / 4;//50Max
//this.Attributes.Luck = expr;
this.Attributes.SpellDamage = expr;
this.Attributes.DefendChance = expr;
this.Attributes.ReflectPhysical = expr;
}
if ((mEvolutionPoints / 20) > 0)
{
expr = mEvolutionPoints / 10;//20Max
this.Attributes.BonusStr = expr;
this.Attributes.BonusDex = expr;
this.Attributes.BonusInt = expr;
}
InvalidateProperties();
}
}
public override bool OnDragLift(Mobile from)
{
if (from.AccessLevel >= AccessLevel.Seer)
{
return true;
}
else if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Helm";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
return base.OnDragLift(from);
}
public override bool OnEquip(Mobile from)
{
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Helm";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
base.OnEquip(from);
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
else if (BoundToSoul == from.Serial) //Check to see if sword is bound to who is equiping it.
{
base.OnEquip(from);
return true; //Allow player who had bound to sword to equip it.
}
else
{
from.SendMessage("Sorry but this armor does not belong to you.");
return false; //Disallow any one else from equiping the sword.
}
}
public override void AddNameProperty(ObjectPropertyList list)
{
base.AddNameProperty(list);
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Un-Bound]" + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
else if (BoundToSoul > 0)//Once the sword is bound it will show the Evolution Points.
{// \n puts the stuff after it on a new line
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Soulbound]\n" + "<BASEFONT COLOR=#669966>" + "Evolution Points: " + mEvolutionPoints.ToString() + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1);
writer.Write(mBoundToSoul);//Serialize who it is bound to.
writer.Write(mEvolutionPoints);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch (version)
{
case 1:
{
mBoundToSoul = reader.ReadInt();
goto case 0;
}
case 0:
{
mEvolutionPoints = reader.ReadInt();
break;
}
}
}
}
}

View File

@@ -0,0 +1,180 @@
using System;
using Server;
namespace Server.Items
{
public class legsofevolution: PlateLegs
{
private int mEvolutionPoints = 0;
private int mBoundToSoul = 0;// Start binding value as zero.
[CommandProperty( AccessLevel.GameMaster )]
public int EvolutionPoints { get { return mEvolutionPoints; } set { mEvolutionPoints = value; } }
[CommandProperty(AccessLevel.GameMaster)]
public int BoundToSoul { get { return mBoundToSoul; } set { mBoundToSoul = value; } }
public override int ArtifactRarity{ get{ return 13; } }
public override int BasePhysicalResistance { get { return 10; } }
public override int BaseFireResistance { get { return 10; } }
public override int BaseColdResistance { get { return 10; } }
public override int BasePoisonResistance { get { return 10; } }
public override int BaseEnergyResistance { get { return 10; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
private Mobile m_Owner;
[Constructable]
public legsofevolution()
{
Name = "<BASEFONT COLOR=#2E9AFE>Evo Legs";
Hue = 1910;
ArmorAttributes.SelfRepair = 10;
ArmorAttributes.MageArmor = 1;
Attributes.LowerManaCost = 8;
Attributes.LowerRegCost = 16;
BoundToSoul = 0;
}
public legsofevolution(Serial serial)
: base(serial)
{
}
public override int OnHit( BaseWeapon weapon, int damageTaken )
{
if (Utility.Random(5) == 1)
{
//Console.WriteLine("should be applying gain if all is well");
ApplyGain();
}
return base.OnHit(weapon, damageTaken);
}
public void ApplyGain()
{
int expr;
if (mEvolutionPoints < 500) // edit this to change how high you wish the Attributes to go 10000 means max attributes will be 100
{
mEvolutionPoints++;
//this.Name = "Evo Legs (" + mEvolutionPoints.ToString() + ")";
if ((mEvolutionPoints / 1) > 0)
{
expr = mEvolutionPoints / 2;//100Max
this.Attributes.BonusHits = expr;
this.Attributes.BonusMana = expr;
this.Attributes.BonusStam = expr;
}
if ((mEvolutionPoints / 4) > 0)
{
expr = mEvolutionPoints / 4;//50Max
//this.Attributes.Luck = expr;
this.Attributes.SpellDamage = expr;
this.Attributes.DefendChance = expr;
this.Attributes.ReflectPhysical = expr;
}
if ((mEvolutionPoints / 20) > 0)
{
expr = mEvolutionPoints / 10;//20Max
this.Attributes.BonusStr = expr;
this.Attributes.BonusDex = expr;
this.Attributes.BonusInt = expr;
}
InvalidateProperties();
}
}
public override bool OnDragLift(Mobile from)
{
if (from.AccessLevel >= AccessLevel.Seer)
{
return true;
}
else if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Legs";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
return base.OnDragLift(from);
}
public override bool OnEquip(Mobile from)
{
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
BoundToSoul = from.Serial; //Bind to a serial on first time equiped.
this.Name = "<BASEFONT COLOR=#2E9AFE>" + from.Name.ToString() + "'s Evo Legs";//Change item name and add who it is bound to. "Player's Soul Sword"
from.Emote("*" + from.Name + " feels a weird energy overwhelming their body*");
base.OnEquip(from);
return true;//Allow it to bind to the first player to equip it after creation.
//Will show in [props as ParentEntity and RootParentEntitty as [m] Serial, "Player Name"
}
else if (BoundToSoul == from.Serial) //Check to see if sword is bound to who is equiping it.
{
base.OnEquip(from);
return true; //Allow player who had bound to sword to equip it.
}
else
{
from.SendMessage("Sorry but this armor does not belong to you.");
return false; //Disallow any one else from equiping the sword.
}
}
public override void AddNameProperty(ObjectPropertyList list)
{
base.AddNameProperty(list);
if (BoundToSoul == 0) //Check to see if bound to a serial.
{
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Un-Bound]" + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
else if (BoundToSoul > 0)//Once the sword is bound it will show the Evolution Points.
{// \n puts the stuff after it on a new line
list.Add("<BASEFONT COLOR=#666699>"/*Green*/ + "[Soulbound]\n" + "<BASEFONT COLOR=#669966>" + "Evolution Points: " + mEvolutionPoints.ToString() + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
}
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)1);
writer.Write(mBoundToSoul);//Serialize who it is bound to.
writer.Write(mEvolutionPoints);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
switch (version)
{
case 1:
{
mBoundToSoul = reader.ReadInt();
goto case 0;
}
case 0:
{
mEvolutionPoints = reader.ReadInt();
break;
}
}
}
}
}