Macro 1: "PHFOCUS":
/tar focus
/dump c=CastSpellByName;_,_,_,_,_,_,_,b,_=UnitBuff("target","Beacon of Light");if b~="player" then c("Beacon of Light") end;_,_,_,_,_,_,_,s,_=UnitBuff("target","Sacred Shield");if s~="player" then c("Sacred Shield") end; RunMacro("H1")
Macro 2 (10 Man Raid): "PHRAID":
/dump m=0;w=0;t="raid";for n="1","10" do a=UnitHealthMax(t..n)-UnitHealth(t..n);if a>m and UnitInRange(t..n)==1 and UnitIsDeadOrGhost(t..n)~=1 then m=a w=n end end;TargetUnit(t..w) RunMacro("H1")
Macro 2 (25 Man Raid): "PHRAID":
/dump m=0;w=0;t="raid";for n="1","25" do a=UnitHealthMax(t..n)-UnitHealth(t..n);if a>m and UnitInRange(t..n)==1 and UnitIsDeadOrGhost(t..n)~=1 then m=a w=n end end;TargetUnit(t..w) RunMacro("H1")
Macro 3: "H1":
/dump _,d,_=GetSpellCooldown("Holy Shock");c=CastSpellByName;a=UnitHealthMax("target")-UnitHealth("target");if a>7000 and d==0 then c("Holy Shock") else c("Flash of Light") end