using System;

namespace Server.Items
{ // Melee focused +hits, +str, +1 random melee skill buff (10-20 randomized) and +plus hp regen (2-5 randomized)
// ranged focused +hits, +dex, +1 random ranged skill buff (10-20 randomized) and +plus stam regen (2-5 randomized)
// Caster focused +mana, +int, +1 random caster skill buff (10-20 randomized) and +plus int regen (2-5 randomized)
// shield focused +10 all resists +10 dci
// pain inducing talisman +ssi (5-25 random value) +hci (5-25 random value) +di (5-25 random value)
// thorns talisman reflect 100 dci +25 hci -25
// eater talisman 1 random 10% eater of any type
// regen only talisman +hp/stam/mana regen (random value between 5-20 on all three)
// stat talisman +str +int +dex (Random value on all three between 20 and 50)

public class Charmofmelee : GoldBracelet
{ // Melee focused +hits, +str, +1 random melee skill buff (10-20 randomized) and +plus hp regen (2-5 randomized)
private static readonly SkillName[] m_PossibleBonusSkills = new SkillName[]
{
SkillName.Macing,SkillName.Fencing,SkillName.Swords
};
[Constructable]
public Charmofmelee()
{
Layer = Layer.Talisman;;
ItemID = 12120;
Name = "Eye Of The Berserker";
SkillBonuses.SetValues(0, m_PossibleBonusSkills[Utility.Random(m_PossibleBonusSkills.Length)], (Utility.RandomMinMax( 10, 20 )));
Attributes.BonusHits = Utility.RandomMinMax( 10, 20 );
Attributes.BonusStr = Utility.RandomMinMax( 10, 20 );
Attributes.RegenHits = Utility.RandomMinMax( 2, 5 );
}
public Charmofmelee(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();

}

public class Charmofranged : GoldBracelet
{ // ranged focused +hits, +dex, +1 random ranged skill buff (10-20 randomized) and +plus stam regen (2-5 randomized)
private static readonly SkillName[] m_PossibleBonusSkills = new SkillName[]
{
SkillName.Archery,SkillName.Throwing
};
[Constructable]
public Charmofranged()
{
Layer = Layer.Talisman;;
ItemID = 12120;
Name = "Talisman Of Eagle Sight";
SkillBonuses.SetValues(0, m_PossibleBonusSkills[Utility.Random(m_PossibleBonusSkills.Length)], (Utility.RandomMinMax( 10, 20 )));
Attributes.BonusHits = Utility.RandomMinMax( 10, 20 );
Attributes.BonusDex = Utility.RandomMinMax( 10, 20 );
Attributes.RegenStam = Utility.RandomMinMax( 2, 5 );
}
public Charmofranged(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();
}
public class Charmofcaster : GoldBracelet
{ // Caster focused +mana, +int, +1 random caster skill buff (10-20 randomized) and +plus int regen (2-5 randomized)

private static readonly SkillName[] m_PossibleBonusSkills = new SkillName[]
{
SkillName.Magery,SkillName.Spellweaving,SkillName.Necromancy,SkillName.Chivalry,SkillName.Mysticism
};
[Constructable]
public Charmofcaster()
{
Layer = Layer.Talisman;;
ItemID = 12120;
Name = "An Ancient Sage's Rune Stone ";
SkillBonuses.SetValues(0, m_PossibleBonusSkills[Utility.Random(m_PossibleBonusSkills.Length)], (Utility.RandomMinMax( 10, 20 )));
Attributes.BonusMana = Utility.RandomMinMax( 10, 20 );
Attributes.BonusInt= Utility.RandomMinMax( 10, 20 );
Attributes.RegenMana = Utility.RandomMinMax( 2, 5 );
}
public Charmofcaster(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();
}

public class Charmofshield : GoldBracelet
{ // shield focused +10 all resists +10 dci
[Constructable]
public Charmofshield()
{
Layer = Layer.Talisman;;
ItemID = 12120;
Name = "Secrets of The Hidden Foe ";
Resistances.Physical = 10;
Resistances.Fire = 10;
Resistances.Cold = 10;
Resistances.Energy = 10;
Resistances.Poison = 10;
Attributes.DefendChance = 10;
}
public Charmofshield(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();
}

public class Charmofpain : GoldBracelet
{ // pain inducing talisman +ssi (5-25 random value) +hci (5-25 random value) +di (5-25 random value)
[Constructable]
public Charmofpain()
{
Layer = Layer.Talisman;;
ItemID = 12120;
Name = "The Warriors Edge";
Attributes.WeaponSpeed = Utility.RandomMinMax( 5, 25 );
Attributes.WeaponDamage = Utility.RandomMinMax( 5, 25 );
Attributes.AttackChance = Utility.RandomMinMax( 5, 25 );
}
public Charmofpain(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();
}

public class Charmofthorns : GoldBracelet
{ // thorns talisman reflect 100 dci +25 hci -25
[Constructable]
public Charmofthorns()
{
Layer = Layer.Talisman;;
ItemID = 12120;
Name = "Thorn Manacles Of Rage";
Attributes.ReflectPhysical = 100;
Attributes.DefendChance = 25;
Attributes.AttackChance -= 25;
}
public Charmofthorns(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();
}
// this.AbsorptionAttributes.EaterFire = 20;
public class Charmofhunger : GoldBracelet
{ // eater talisman 1 random 10% eater of any type

[Constructable]
public Charmofhunger()
{
Layer = Layer.Talisman;;
ItemID = 12120;
Name = "Charm Of Eternal Hunger";

switch ( Utility.Random(6) )
{
case 0:
this.AbsorptionAttributes.EaterCold += 10;
break;
case 1:
this.AbsorptionAttributes.EaterFire += 10;
break;
case 2:
this.AbsorptionAttributes.EaterEnergy += 10;
break;
case 3:
this.AbsorptionAttributes.EaterPoison += 10;
break;
case 4 :
this.AbsorptionAttributes.EaterKinetic += 10;
break;
case 5 :
this.AbsorptionAttributes.EaterDamage += 10;
break;
}
}
public Charmofhunger(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();

}
public class Charmofregen : GoldBracelet
{ // regen only talisman +hp/stam/mana regen (random value between 5-20 on all three)
[Constructable]
public Charmofregen()
{
Layer = Layer.Talisman;;
ItemID = 12120;
Name = "Mantle of Souls";
Attributes.RegenHits = Utility.RandomMinMax( 5, 20 );
Attributes.RegenMana = Utility.RandomMinMax( 5, 20 );
Attributes.RegenStam = Utility.RandomMinMax( 5, 20 );
}
public Charmofregen(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();
}

public class Charmofagod : GoldBracelet
{ // stat talisman +str +int +dex (Random value on all three between 20 and 50)
[Constructable]
public Charmofagod()
{
Layer = Layer.Talisman;;
ItemID = 12120;
Name = "Blessing of the Old Gods";
Attributes.BonusStr = Utility.RandomMinMax( 20, 50 );
Attributes.BonusInt = Utility.RandomMinMax( 20, 50 );
Attributes.BonusDex = Utility.RandomMinMax( 20, 50 );
}
public Charmofagod(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();
}

} } } } } } } } } }

// I was commissioned to make these when I was on a friend's shard that is sa/hs compatible hope you enjoy them adjust accordingly to suit shard levels.
 
Back