Ejemplo n.º 1
0
        // 执行普通受伤
        public void execHurt(ImmeComHurtItem item)
        {
            Ctx.m_instance.m_logSys.fightLog("[Fight] 执行普通受伤 execHurt");

            LinkEffect effect = null;

            if (item.bDamage)              // 如果受伤
            {
                if (item.hurtEffectId > 0) // 如果有特效需要播放,并且被击结束以特效为标准
                {
                    Ctx.m_instance.m_logSys.fightLog("[Fight] 执行普通播放受伤特效");

                    effect = m_being.effectControl.addLinkEffect(item.hurtEffectId);       // 被击特效
                    m_being.effectControl.addLinkEffect(ImmeHurtItemBase.DAMAGE_EFFECTID); // 掉血特效必然播放
                    effect.addEffectPlayEndHandle(item.onHurtExecEnd);
                }

                // 播放伤害数字
                m_being.playFlyNum(-item.damage);
            }
            else if (item.bAddHp)       // 回血
            {
                // 仅仅改变属性
                //if (!item.bStateChange())   // 如果没有状态变化,直接结束,如果有,会释放特效结束
                //{
                m_being.playFlyNum(item.addHp);
                item.onHurtExecEnd(null);
                //}
            }
            else    // 不伤血也不加血,直接结束
            {
                item.onHurtExecEnd(null);
            }
        }
Ejemplo n.º 2
0
        public ImmeHurtItemBase createItem(EImmeHurtType type)
        {
            ImmeHurtItemBase ret = null;

            if (EImmeHurtType.eCommon == type)
            {
                ret           = new ImmeComHurtItem(type);
                ret.delayTime = ImmeAttackItemBase.ComAttMoveTime;
            }
            else if (EImmeHurtType.eSkill == type)
            {
                ret           = new ImmeSkillHurtItem(type);
                ret.delayTime = 1;  // 技能攻击延迟时间有技能攻击飞行特效的时间决定,这里赋值一个默认的值
            }
            else if (EImmeHurtType.eDie == type)
            {
                ret = new ImmeDieItem(type);
            }

            m_hurtList.Add(ret);
            ret.hurtExecEndDisp.addEventHandle(onOneHurtExecEnd);

            return(ret);
        }
Ejemplo n.º 3
0
        // 执行普通受伤
        public void execHurt(ImmeComHurtItem item)
        {
            Ctx.m_instance.m_logSys.fightLog("[Fight] 执行普通受伤 execHurt");

            LinkEffect effect = null;

            if (item.bDamage)        // 如果受伤
            {
                if (item.hurtEffectId > 0)       // 如果有特效需要播放,并且被击结束以特效为标准
                {
                    Ctx.m_instance.m_logSys.fightLog("[Fight] 执行普通播放受伤特效");

                    effect = m_being.effectControl.addLinkEffect(item.hurtEffectId);     // 被击特效
                    m_being.effectControl.addLinkEffect(ImmeHurtItemBase.DAMAGE_EFFECTID);   // 掉血特效必然播放
                    effect.addEffectPlayEndHandle(item.onHurtExecEnd);
                }

                // 播放伤害数字
                m_being.playFlyNum(-item.damage);
            }
            else if (item.bAddHp)       // 回血
            {
                // 仅仅改变属性
                //if (!item.bStateChange())   // 如果没有状态变化,直接结束,如果有,会释放特效结束
                //{
                    m_being.playFlyNum(item.addHp);
                    item.onHurtExecEnd(null);
                //}
            }
            else    // 不伤血也不加血,直接结束
            {
                item.onHurtExecEnd(null);
            }
        }
Ejemplo n.º 4
0
        public ImmeHurtItemBase createItem(EImmeHurtType type)
        {
            ImmeHurtItemBase ret = null;
            if (EImmeHurtType.eCommon == type)
            {
                ret = new ImmeComHurtItem(type);
                ret.delayTime = ImmeAttackItemBase.ComAttMoveTime;
            }
            else if (EImmeHurtType.eSkill == type)
            {
                ret = new ImmeSkillHurtItem(type);
                ret.delayTime = 1;  // 技能攻击延迟时间有技能攻击飞行特效的时间决定,这里赋值一个默认的值
            }
            else if (EImmeHurtType.eDie == type)
            {
                ret = new ImmeDieItem(type);
            }

            m_hurtList.Add(ret);
            ret.hurtExecEndDisp.addEventHandle(onOneHurtExecEnd);

            return ret;
        }