public CanBeHarmful ( Server.Mobile target, bool message, bool ignoreOurBlessedness ) : bool | ||
target | Server.Mobile | |
message | bool | |
ignoreOurBlessedness | bool | |
return | bool |
public override bool CanBeHarmful( Mobile target, bool message, bool ignoreOurBlessedness )
{
if ( target is BaseFactionGuard )
return false;
if ( (target is BaseVendor && ((BaseVendor)target).IsInvulnerable) || target is PlayerVendor || target is TownCrier )
{
if ( message )
{
if ( target.Title == null )
SendMessage( "{0} the vendor cannot be harmed.", target.Name );
else
SendMessage( "{0} {1} cannot be harmed.", target.Name, target.Title );
}
return false;
}
return base.CanBeHarmful( target, message, ignoreOurBlessedness );
}
public void Provoke(Mobile target) { if (target == null || Deleted || !Alive || m_NextProvoke > DateTime.UtcNow || 0.05 < Utility.RandomDouble()) { return; } foreach (Mobile m in GetMobilesInRange(RangePerception)) { if (m is BaseCreature) { BaseCreature c = (BaseCreature)m; if (c == this || c == target || c.Unprovokable || c.IsParagon || c.BardProvoked || c.AccessLevel != AccessLevel.Player || !c.CanBeHarmful(target)) { continue; } c.Provoke(this, target, true); if (target.Player) { target.SendLocalizedMessage(1072062); // You hear angry music, and start to fight. } PlaySound(0x58A); break; } } m_NextProvoke = DateTime.UtcNow + TimeSpan.FromSeconds(10); }