public override void Drink(Mobile from) { if (this != null && ParentEntity != from.Backpack) { from.SendMessage("The potion must be in your pack to drink it."); } else { if (!from.CanBeginAction(typeof(UOACZLesserTruestrikePotion))) { from.SendMessage("You must wait before drinking another potion of that type."); return; } SpecialAbilities.ExpertiseSpecialAbility(1.0, from, null, .05, 120, -1, true, "You begin to strike with increased accuracy.", "", "-1"); from.BeginAction(typeof(UOACZLesserTruestrikePotion)); Timer.DelayCall(TimeSpan.FromSeconds(120), delegate { from.EndAction(typeof(UOACZLesserTruestrikePotion)); }); Consume(); } }
public override void OnGaveMeleeAttack(Mobile defender) { base.OnGaveMeleeAttack(defender); if (Utility.RandomDouble() < .1 && DateTime.UtcNow >= m_NextAssaultAllowed) { SpecialAbilities.ExpertiseSpecialAbility(1.0, this, defender, .25, 20, -1, true, "", "", "*begins to strike with fury*"); SpecialAbilities.EnrageSpecialAbility(1.0, null, this, .5, 20, 0, false, "", "", "-1"); m_NextAssaultAllowed = DateTime.UtcNow + NextAssaultDelay; } }
public override void OnGaveMeleeAttack(Mobile defender) { base.OnGaveMeleeAttack(defender); double effectChance = .25; if (Controlled && ControlMaster != null) { if (ControlMaster is PlayerMobile) { if (defender is PlayerMobile) { effectChance = .10; } else { effectChance = .25; } } } SpecialAbilities.ExpertiseSpecialAbility(effectChance, this, defender, .05, 10, -1, true, "", "", "draws upon expertise*"); }