コード例 #1
0
        /// <summary>
        /// 工厂+依赖反转(类似面向接口编程,当然这里采用的是父类)
        /// 原理:控制反转:Inversion of Control,IoC,其中这里用到了 依赖注入(构造函数注入):Dependency injection, DI
        /// 作用:高内聚,低耦合
        /// </summary>
        public static SkillBase Create(eSkillType type, VSkillBase vSkill)
        {
            SkillBase obj = null;

            switch (type)
            {
            case eSkillType.None:
                obj = new SkillBase(m_uid, vSkill);
                break;

            case eSkillType.Near:
                obj = new SkillNear(m_uid, vSkill);
                break;

            case eSkillType.Jump:
                obj = new SkillJump(m_uid, vSkill);
                break;

            case eSkillType.Down_Up:
                obj = new SkillDownUp(m_uid, vSkill);
                break;
            }
            Add(m_uid++, obj);
            return(obj);
        }
コード例 #2
0
ファイル: CCreature_Skill.cs プロジェクト: mengtest/fs
        /// <summary>
        /// 按下开枪被打斯时调用
        /// </summary>
        public void DestoryDownUpSkill()
        {
            SkillBase dSkill = CSkillMgr.GetDownUpSkill(GetUid());

            if (dSkill != null)
            {
                if (dSkill.m_skillInfo.skillType == (int)eSkillType.Down_Up)
                {
                    //UpdateUI_ResetDownUp();
                    SkillDownUp dp = dSkill as SkillDownUp;
                    dp.OnUp();
                }
            }
        }
コード例 #3
0
ファイル: CCreature_Skill.cs プロジェクト: mengtest/fs
        public void EnterSkill()
        {
            CSkillInfo sInfo = GetSkillByIndex(m_cmdFspSendSkill.m_skillIndex);

            if (sInfo == null)
            {
                return;
            }

            // 如果存在引导技能,则不再创建
            SkillBase dSkill = CSkillMgr.GetDownUpSkill(GetUid());

            if (dSkill != null)
            {
                if (sInfo.m_skillInfo.skillType == (int)eSkillType.Down_Up)
                {
                    SkillDownUp dp = dSkill as SkillDownUp;
                    dp.SetCmd(m_cmdFspSendSkill);
                }
                return;
            }

            if (!m_logicSkillEnabled)
            {
                return;
            }


            //Debug.Log("技能流程:使用技能:" + sInfo.m_skillInfo.id + " "+ sInfo.m_skillInfo.name);
            if (!sInfo.IsCanUse())
            {
                return;
            }

            //Debug.Log("CD 正常进入技能:" + m_cmdFspSendSkill.m_skillIndex + " " + sInfo.m_skillDataInfo.name);

            SkillCsvData m_skillInfo = sInfo.m_skillInfo;

            StartSkill(m_skillInfo);
            sInfo.GetMainSkill().OnUseSkill();
        }