public float GetDamageTypeModulus(BattleUnit target)
        {
            float result = 1.0f;
            BattleSkillDamageType selfType   = battleSkills[0] ? battleSkills[0].damageType : BattleSkillDamageType.None;
            BattleSkillDamageType targetType = target.battleUnitAttribute.battleSkills[0] ? target.battleUnitAttribute.battleSkills[0].damageType : BattleSkillDamageType.None;

            if (selfType == BattleSkillDamageType.Physical && targetType == BattleSkillDamageType.Skill)
            {
                result += EGameConstL.DamageTypeModulus;
            }
            else if (selfType == BattleSkillDamageType.Physical && targetType == BattleSkillDamageType.Move)
            {
                result -= EGameConstL.DamageTypeModulus;
            }
            else if (selfType == BattleSkillDamageType.Move && targetType == BattleSkillDamageType.Physical)
            {
                result += EGameConstL.DamageTypeModulus;
            }
            else if (selfType == BattleSkillDamageType.Move && targetType == BattleSkillDamageType.Skill)
            {
                result -= EGameConstL.DamageTypeModulus;
            }
            else if (selfType == BattleSkillDamageType.Skill && targetType == BattleSkillDamageType.Move)
            {
                result += EGameConstL.DamageTypeModulus;
            }
            else if (selfType == BattleSkillDamageType.Skill && targetType == BattleSkillDamageType.Physical)
            {
                result -= EGameConstL.DamageTypeModulus;
            }
            return(result);
        }
示例#2
0
        public void SetDamage(int value, BattleSkillDamageType damageType)
        {
            //设置数字
            tmpDamage.text = value.ToString();

            //目前设置为 播放普通伤害动画
            switch (damageType)
            {
            case BattleSkillDamageType.Physical:
            case BattleSkillDamageType.Skill:
                animator.SetTrigger(EGameConstL.HashACKey_NormalDamage);
                break;

            case BattleSkillDamageType.Move:
                animator.SetTrigger(EGameConstL.HashACKey_NormalMagicDamage);
                break;

            case BattleSkillDamageType.Heal:
                animator.SetTrigger(EGameConstL.HashACKey_NormalHeal);
                break;

            default:
                break;
            }

            //根据动画长度开启自动回收
            Play();
        }
        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);
            }
        }