コード例 #1
0
ファイル: BuffCastor.cs プロジェクト: wxl-007/ShadowDota
        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);
            }
        }
コード例 #2
0
ファイル: RtBufData.cs プロジェクト: wxl-007/ShadowDota
        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;
                }
            }
        }