Ejemplo n.º 1
0
        // 执行普通死亡
        public void execHurt(DieItem item)
        {
            LinkEffect effect = null;

            effect = m_card.effectControl.addLinkEffect(item.dieEffectId);  // 死亡特效
            effect.addEffectPlayEndHandle(item.onHurtExecEnd);
        }
Ejemplo n.º 2
0
        // 执行技能受伤
        public void execHurt(SkillHurtItem item)
        {
            Ctx.m_instance.m_logSys.fightLog("[Fight] 开始执行技能被击 execHurt");

            LinkEffect effect = null;

            if (item.bDamage)                                                              // 检查是否是伤血
            {
                effect = m_card.effectControl.addLinkEffect(HurtItemBase.DAMAGE_EFFECTID); // 掉血特效必然播放
                effect.addEffectPlayEndHandle(item.onHurtExecEnd);

                // 播放伤害数字
                if (item.svrCard.popDamValue > 0)
                {
                    m_card.playFlyNum((int)-item.svrCard.popDamValue);
                }
            }
            else if ((int)item.svrCard.popHpValue > 0)       // 回血
            {
                //if (!item.bStateChange())
                //{
                m_card.playFlyNum((int)item.svrCard.popHpValue);
                item.onHurtExecEnd(null);           // 直接结束当前技能被击 Item
                //}
            }
            else                          // 不伤血也不加血,直接结束
            {
                item.onHurtExecEnd(null); // 直接结束当前技能被击 Item
            }

            m_card.sceneCardBaseData.m_effectControl.updateAttHurtStateEffect(item);

            // 更新自己的属性显示
            m_card.updateCardDataChangeBySvr(item.svrCard);
        }
Ejemplo n.º 3
0
 public void showResult()
 {
     if (m_firstEffect == null)
     {
         m_firstEffect = Ctx.m_instance.m_sceneEffectMgr.addLinkEffect(m_firstEffectId, gameObject(), true, false) as LinkEffect;
     }
     m_firstEffect.addEffectPlayEndHandle(onFirstEffectPlayEndHandle);
 }
Ejemplo n.º 4
0
        // 添加连接特效,固定不动,连接特效在关联的实体释放的时候,需要释放资源
        public LinkEffect addLinkEffect(int id, bool bAutoRemove = true, bool bLoop = false, bool bPlay = true)
        {
            addFrameSpriteGO();

            LinkEffect effect = Ctx.m_instance.m_sceneEffectMgr.addLinkEffect(id, m_effectRootGO, bAutoRemove, bLoop, bPlay) as LinkEffect;

            m_linkEffectList.Add(effect);
            effect.addEffectPlayEndHandle(onLinkEffectPlayEnd);
            effect.linkedEntity = this.m_card;
            return(effect);
        }
Ejemplo n.º 5
0
        // 执行普通受伤
        public void execHurt(ComHurtItem 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_card.effectControl.addLinkEffect(item.hurtEffectId);     // 被击特效
                    m_card.effectControl.addLinkEffect(HurtItemBase.DAMAGE_EFFECTID);   // 掉血特效必然播放
                    effect.addEffectPlayEndHandle(item.onHurtExecEnd);
                }

                // 播放伤害数字
                m_card.playFlyNum(-item.damage);
            }
            else if (item.bAddHp)       // 回血
            {
                // 仅仅改变属性
                //if (!item.bStateChange())   // 如果没有状态变化,直接结束,如果有,会释放特效结束
                //{
                m_card.playFlyNum(item.addHp);
                item.onHurtExecEnd(null);
                //}
            }
            else    // 不伤血也不加血,直接结束
            {
                item.onHurtExecEnd(null);
            }

            m_card.sceneCardBaseData.m_effectControl.updateAttHurtStateEffect(item);

            // 更新自己的属性显示
            m_card.updateCardDataChangeBySvr(item.svrCard);
        }