예제 #1
0
        //技能命中时
        private IEnumerator OnSkillDamage(BattleUnitSkillResult skillResult)
        {
            if (skillResult == null)
            {
                yield return(null);
            }

            //播放掉血特效
            EffectDamageLabel damageEffect = EffectManager.Instance.CreateEffectByName <EffectDamageLabel>(EGameConstL.Effect_DamageLabel, EffectPlayType.WorldPosition);

            if (damageEffect != null)
            {
                damageEffect.SortingLayer = EGameConstL.SortingLayer_Battle_Effect;
                damageEffect.gameObject.SetActive(true);
                damageEffect.transform.position = unitRenderer.transform.position;
                damageEffect.SetDamage(skillResult.syncAttribute.hpChanged, skillResult.battleSkill.damageType);
            }

            //更新血条
            skillResult.battleUnit.battleUnitRenderer.RefreshAttribute(skillResult.syncAttribute);

            //判断是否跪了
            if (skillResult.syncAttribute.currentHP <= 0)
            {
                yield return(EGameConstL.WaitForHalfSecond);

                //离场
                yield return(skillResult.battleUnit.battleUnitRenderer.PlayDefeatedAction());
            }
        }
예제 #2
0
        //刷新生命值显示
        private void RefreshAttribute(BattleHeroSyncAttribute attribute, bool isEnterBattleField)
        {
            if (attribute == null)
            {
                return;
            }

            battleUnitInfo.text = string.Format("BU_{0}_{1}",
                                                battleUnit.battleTeam.teamID,
                                                battleUnit.battleUnitID);

            //刷新生命值
            HealthBar.UpdateHealth(attribute.currentHP, battleUnit.maxHp);

            //刷新下显示
            if (linkedUnitInfoView != null)
            {
                linkedUnitInfoView.SetArguments(battleUnit.mapGrid, battleUnit.hp > 0 ? battleUnit : null);
            }

            //不是进入战场
            if (!isEnterBattleField)
            {
                //播放掉血特效
                EffectDamageLabel damageEffect = EffectManager.Instance.CreateEffectByName <EffectDamageLabel>(EGameConstL.Effect_DamageLabel, EffectPlayType.WorldPosition);
                if (damageEffect != null)
                {
                    damageEffect.SortingLayer = EGameConstL.SortingLayer_Battle_Effect;
                    damageEffect.gameObject.SetActive(true);
                    damageEffect.transform.position = unitRenderer.transform.position;
                    damageEffect.SetDamage(attribute.hpChanged);
                }
            }
        }
예제 #3
0
        private void PlayDamageLabel(int value, BattleSkillDamageType damageType)
        {
            //播放掉血特效
            EffectDamageLabel damageEffect = EffectManager.Instance.CreateEffectByName <EffectDamageLabel>(EGameConstL.Effect_DamageLabel, EffectPlayType.WorldPosition);

            if (damageEffect != null)
            {
                damageEffect.SortingLayer = EGameConstL.SortingLayer_Battle_Effect;
                damageEffect.gameObject.SetActive(true);
                damageEffect.transform.position = unitRenderer.transform.position;
                damageEffect.SetDamage(value, damageType);
            }
        }
예제 #4
0
        //受到技能伤害
        private void OnSkillDamage(BattleHeroSkillResult skillResult)
        {
            if (skillResult == null)
            {
                return;
            }

            //播放掉血特效
            EffectDamageLabel damageEffect = EffectManager.Instance.CreateEffectByName <EffectDamageLabel>(EGameConstL.Effect_DamageLabel, EffectPlayType.WorldPosition);

            if (damageEffect != null)
            {
                damageEffect.SortingLayer = EGameConstL.SortingLayer_Battle_Effect;
                damageEffect.gameObject.SetActive(true);
                damageEffect.transform.position = unitRenderer.transform.position;
                damageEffect.SetDamage(skillResult.syncAttribute.hpChanged, skillResult.battleSkill.damageType);
            }
        }