protected override void OnTarget(Mobile from, object o) { if (m_Item == null || m_Item.Deleted) { return; } if (o is BaseTalisman) { BaseTalisman talisman = (BaseTalisman)o; if (talisman.Charges == 0) { talisman.Charges = talisman.MaxCharges; m_Item.Delete(); from.SendLocalizedMessage(1075100); // The item has been recharged. } else { from.SendLocalizedMessage(1075099); // You cannot recharge that item until all of its current charges have been used. } } else { from.SendLocalizedMessage(1046439); // That is not a valid target. } }
public override void OnAfterDuped(Item newItem) { BaseTalisman talisman = newItem as BaseTalisman; if (talisman == null) { return; } talisman.m_Summoner = new TalismanAttribute(m_Summoner); talisman.m_Protection = new TalismanAttribute(m_Protection); talisman.m_Killer = new TalismanAttribute(m_Killer); talisman.m_AosAttributes = new AosAttributes(newItem, m_AosAttributes); talisman.m_AosSkillBonuses = new AosSkillBonuses(newItem, m_AosSkillBonuses); }
public RandomTalisman() : base(GetRandomItemID()) { Summoner = BaseTalisman.GetRandomSummoner(); if (Summoner.IsEmpty) { Removal = BaseTalisman.GetRandomRemoval(); if (Removal != TalismanRemoval.None) { MaxCharges = BaseTalisman.GetRandomCharges(); MaxChargeTime = 1200; } } else { MaxCharges = Utility.RandomMinMax(10, 50); if (Summoner.IsItem) { MaxChargeTime = 60; } else { MaxChargeTime = 1800; } } Blessed = BaseTalisman.GetRandomBlessed(); Slayer = BaseTalisman.GetRandomSlayer(); Protection = BaseTalisman.GetRandomProtection(); Killer = BaseTalisman.GetRandomKiller(); Skill = BaseTalisman.GetRandomSkill(); ExceptionalBonus = BaseTalisman.GetRandomExceptional(); SuccessBonus = BaseTalisman.GetRandomSuccessful(); Charges = MaxCharges; }
public TalismanTarget(BaseTalisman talisman) : base(12, false, TargetFlags.Beneficial) { m_Talisman = talisman; }