Exemplo n.º 1
0
    private void OnReceiveDamage(ActionExecution combatAction)
    {
        AnimationComponent.Speed = 1f;
        if (CombatEntity.CheckDead() == false)
        {
            PlayThenIdleAsync(AnimationComponent.DamageAnimation).Coroutine();
        }

        var damageAction = combatAction as DamageAction;

        CombatObjectData.HealthBarImage.fillAmount = CombatEntity.CurrentHealth.Percent();
        var damageText = GameObject.Instantiate(CombatObjectData.DamageText);

        damageText.transform.SetParent(CombatObjectData.CanvasTrm);
        damageText.transform.localPosition    = Vector3.up * 120;
        damageText.transform.localScale       = Vector3.one;
        damageText.transform.localEulerAngles = Vector3.zero;
        damageText.text = $"-{damageAction.DamageValue.ToString()}";
        damageText.GetComponent <DOTweenAnimation>().DORestart();
        GameObject.Destroy(damageText.gameObject, 0.5f);
    }