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); }
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); } }