using System; using System.Collections.Generic; using System.Text; using Server.Spells; namespace Server.Ethics.Hero { public sealed class Bless : Power { public Bless() { m_Definition = new PowerDefinition( 15, "Bless", "Erstok Ontawl", "" ); } public override void BeginInvoke( Player from ) { from.Mobile.BeginTarget( 12, true, Targeting.TargetFlags.None, new TargetStateCallback( Power_OnTarget ), from ); from.Mobile.SendMessage( "Where do you wish to bless?" ); } private void Power_OnTarget( Mobile fromMobile, object obj, object state ) { Player from = state as Player; IPoint3D p = obj as IPoint3D; if ( p == null ) return; if ( !CheckInvoke( from ) ) return; bool powerFunctioned = false; SpellHelper.GetSurfaceTop( ref p ); foreach ( Mobile mob in from.Mobile.GetMobilesInRange( 6 ) ) { if ( mob != from.Mobile && SpellHelper.ValidIndirectTarget( from.Mobile, mob ) ) continue; if ( mob.GetStatMod( "Holy Bless" ) != null ) continue; if ( !from.Mobile.CanBeBeneficial( mob, false ) ) continue; from.Mobile.DoBeneficial( mob ); mob.AddStatMod( new StatMod( StatType.All, "Holy Bless", 10, TimeSpan.FromMinutes( 30.0 ) ) ); mob.FixedParticles( 0x373A, 10, 15, 5018, EffectLayer.Waist ); mob.PlaySound( 0x1EA ); powerFunctioned = true; } if ( powerFunctioned ) { SpellHelper.Turn( from.Mobile, p ); Effects.PlaySound( p, from.Mobile.Map, 0x299 ); from.Mobile.LocalOverheadMessage( Server.Network.MessageType.Regular, 0x3B2, false, "You consecrate the area." ); FinishInvoke( from ); } else { from.Mobile.FixedEffect( 0x3735, 6, 30 ); from.Mobile.PlaySound( 0x5C ); } } } }