void castBuff_Skill(RtBufData rtbf, BuffPhase phase) { container.Clear(); RtSkData skill = null; switch (phase) { case BuffPhase.Start: skill = rtbf.OnStartSkill; break; case BuffPhase.End: skill = rtbf.OnEndSkill; break; case BuffPhase.Cycle: skill = rtbf.onCycleskill; break; } if (skill != null) { ServerNPC castor = BFSelector.locateCastor(rtbf); ServerNPC target = BFSelector.locateTarget(rtbf); List <ServerNPC> Targets = new List <ServerNPC>(); Targets.Add(target); IEnumerable <ServerNPC> itor = Targets.AsEnumerable <ServerNPC>(); EfCastor.Cast(castor, itor, skill, container, false); dispatchMsg(container, skill); } }
public void RegisterFunc(Action <RtBufData> func, BuffPhase phase) { if (func != null) { switch (phase) { case BuffPhase.Cycle: CycleFunc.Add(func); break; case BuffPhase.Start: BeginFunc.Add(func); break; case BuffPhase.End: EndFunc.Add(func); break; case BuffPhase.Trigger: TriFunc.Add(func); break; } } }