Files
abysmal-isle/Scripts/Mobiles/NPCs/Mannequin/Property/AosArmorAttributeProperty.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

91 lines
3.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using Server;
using Server.Items;
using System.Collections.Generic;
namespace Server.Mobiles.MannequinProperty
{
public abstract class AosArmorAttr : ValuedProperty
{
public abstract AosArmorAttribute Attribute { get; }
public double GetPropertyValue(Item item)
{
if (item is BaseArmor)
{
return ((BaseArmor)item).ArmorAttributes[Attribute];
}
if (item is BaseClothing)
{
return ((BaseClothing)item).ClothingAttributes[Attribute];
}
return 0;
}
public override bool Matches(Item item)
{
double total = GetPropertyValue(item);
if (!IsBoolen)
Value = GetPropertyValue(item);
if (total != 0)
return true;
return false;
}
public override bool Matches(List<Item> items)
{
double total = 0;
items.ForEach(x => total += GetPropertyValue(x));
if (!IsBoolen)
Value = total;
if (total != 0)
{
return true;
}
return false;
}
}
public class ArmorSelfRepairProperty : AosArmorAttr
{
public override Catalog Catalog { get { return Catalog.None; } }
public override int LabelNumber { get { return 1079709; } } // Self Repair
public override bool IsSpriteGraph { get { return true; } }
public override int SpriteW { get { return 0; } }
public override int SpriteH { get { return 300; } }
public override AosArmorAttribute Attribute { get { return AosArmorAttribute.SelfRepair; } }
}
public class ArmorReactiveParalyzeProperty : AosArmorAttr
{
public override Catalog Catalog { get { return Catalog.Combat1; } }
public override bool IsBoolen { get { return true; } }
public override int LabelNumber { get { return 1154660; } } // Reactive Paralyze
public override int Description { get { return 1152400; } } // This property provides a chance to cast a paralyze spell on an opponent. The paralyze effect is similar to the magery fifth circle spell paralyze. When the wielder effectively parries an attackers blow there is a chance that the attacker will be affected by the paralyze effect. This property can be found on two handed weapons and shields.
public override AosArmorAttribute Attribute { get { return AosArmorAttribute.ReactiveParalyze; } }
public override int Hue { get { return 0x5E5D; } }
public override int SpriteW { get { return 270; } }
public override int SpriteH { get { return 120; } }
}
public class SoulChargeProperty : AosArmorAttr
{
public override Catalog Catalog { get { return Catalog.Casting; } }
public override int LabelNumber { get { return 1116536; } } // Soul Charge
public override int Description { get { return 1152382; } } // This property converts a percentage of the damage inflicted to a player into mana replenishment. This effect can only be triggered once every 40 seconds. This property is only found on shields.
public override AosArmorAttribute Attribute { get { return AosArmorAttribute.SoulCharge; } }
public override int Hue { get { return 0x1FF; } }
public override int SpriteW { get { return 240; } }
public override int SpriteH { get { return 60; } }
}
}