Example #1
0
    private void OnDamageTaken(PlayerBaseAttackLogic attackLogic, uint damage, EAttackResult attackResult, EHitNotificationType hitNotificationType)
    {
        Profiler.BeginSample("PlayerHealthComponent.OnDamageTaken");

#if DEBUG_DISPLAY || UNITY_EDITOR
        KakutoDebug.Log("Player : " + gameObject.name + " HP : " + m_HP + " damage taken : " + damage + " attack " + attackResult.ToString());
#endif
        ChronicleManager.AddChronicle(gameObject, EChronicleCategory.Health, "On damage taken : " + damage + ", current HP : " + m_HP);

        DamageTakenEventParameters damageTakenInfo = new DamageTakenEventParameters(gameObject, attackLogic, attackResult, m_StunInfoSC.IsHitStunned(), damage, (float)m_HP / (float)m_HealthConfig.m_MaxHP, hitNotificationType);
        Utils.GetPlayerEventManager(gameObject).TriggerEvent(EPlayerEvent.DamageTaken, damageTakenInfo);

        if (!IsDead() && attackLogic.CanPlayDamageTakenAnim())
        {
            PlayDamageTakenAnim(attackLogic, attackResult);
        }

        TriggerEffects(attackLogic, damage, attackResult, hitNotificationType);

        if (damage > 0 && m_InfoComponent.GetPlayerSettings().m_DisplayDamageTaken)
        {
            DisplayDamageTakenUI(damage);
        }

        if (IsDead())
        {
            OnDeath(attackLogic);
        }
        Profiler.EndSample();
    }
Example #2
0
    private void OnDamageTaken(BaseEventParameters baseParams)
    {
        DamageTakenEventParameters damageTakenInfo = (DamageTakenEventParameters)baseParams;

        if (damageTakenInfo.m_HitNotificationType != EHitNotificationType.None)
        {
            TriggerNotification_Internal(damageTakenInfo.m_HitNotificationType);
        }
    }
Example #3
0
    private void OnDamageTaken(BaseEventParameters baseParams)
    {
        DamageTakenEventParameters damageTakenInfo = (DamageTakenEventParameters)baseParams;

        StopAllCoroutines();

        StartCoroutine(UpdateHealthFill(m_HealthBar, damageTakenInfo.m_HealthRatio, m_UIConfig.m_TimeToFillHealthBar, 0.0f));
        StartCoroutine(UpdateHealthFill(m_HealthBarBackground, damageTakenInfo.m_HealthRatio, m_UIConfig.m_TimeToFillHealthBar, m_UIConfig.m_TimeBetweenHealthBar));
    }
Example #4
0
    void OnDamageTaken(BaseEventParameters baseParams)
    {
        DamageTakenEventParameters damageTakenInfo = (DamageTakenEventParameters)baseParams;

        GameObject instigator = damageTakenInfo.m_AttackLogic.GetOwner();
        GameObject victim     = damageTakenInfo.m_Victim;

        UpdateSortingOrder(instigator, ESortingOrder.Front);
        UpdateSortingOrder(victim, ESortingOrder.Back);
    }
 void OnEnemyTakesDamages(BaseEventParameters baseParams)
 {
     if (m_HurtBoxesDetected.Count > 0)
     {
         DamageTakenEventParameters damageTakenEventParameters = (DamageTakenEventParameters)baseParams;
         if (damageTakenEventParameters.m_AttackLogic == m_CurrentAttack)
         {
             Utils.GetEnemyEventManager(gameObject).TriggerEvent(EPlayerEvent.ProximityBox, new ProximityBoxParameters(false, m_Collider));
             m_CurrentAttack = null;
         }
     }
 }
 void OnEnemyTakesDamages(BaseEventParameters baseParams)
 {
     if (m_HurtBoxesDetected.Count > 0)
     {
         DamageTakenEventParameters damageTakenEventParameters = (DamageTakenEventParameters)baseParams;
         if (damageTakenEventParameters.m_AttackLogic == m_ProjectileComponent.GetLogic())
         {
             Utils.GetEnemyEventManager(m_ProjectileComponent.GetPlayerTag()).TriggerEvent(EPlayerEvent.ProximityBox, new ProximityBoxParameters(false, m_Collider));
             m_EnemyTakesDamages = true;
         }
     }
 }
Example #7
0
    protected virtual void OnEnemyTakesDamage(BaseEventParameters baseParams)
    {
        DamageTakenEventParameters damageTakenInfo = (DamageTakenEventParameters)baseParams;

        if (this == damageTakenInfo.m_AttackLogic)
        {
            m_HasTouched = true;
        }
        else if (damageTakenInfo.m_AttackLogic.GetType() != typeof(PlayerProjectileAttackLogic))
        {
            KakutoDebug.LogError("DamageTaken event has been received in " + m_Attack.m_AnimationAttackName + " but damage taken doesn't come from this attack. This attack has not been stopped correctly");
        }
    }
    private void OnEnemyTakeDamage(BaseEventParameters baseParams)
    {
        DamageTakenEventParameters damageTakenInfo = (DamageTakenEventParameters)baseParams;

        if (damageTakenInfo.m_AttackResult == EAttackResult.Hit)
        {
            if (damageTakenInfo.m_IsAlreadyHitStunned || m_ComboCounter == 0)
            {
                m_ComboCounter++;
                m_CumulatedComboDamage += damageTakenInfo.m_DamageTaken;
                OnHitCounterChanged?.Invoke();
            }
        }
    }
Example #9
0
    protected override void OnEnemyTakesDamage(BaseEventParameters baseParams)
    {
        DamageTakenEventParameters damageTakenInfo = (DamageTakenEventParameters)baseParams;

        if (this == damageTakenInfo.m_AttackLogic)
        {
            base.OnEnemyTakesDamage(damageTakenInfo);

            if (damageTakenInfo.m_AttackResult == EAttackResult.Hit)
            {
                IncreaseSuperGauge(m_Config.m_SuperGaugeHitBonus);
            }
            else if (damageTakenInfo.m_AttackResult == EAttackResult.Blocked)
            {
                IncreaseSuperGauge(m_Config.m_SuperGaugeBlockBonus);
            }
        }
    }