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(); }
private void OnDamageTaken(BaseEventParameters baseParams) { DamageTakenEventParameters damageTakenInfo = (DamageTakenEventParameters)baseParams; if (damageTakenInfo.m_HitNotificationType != EHitNotificationType.None) { TriggerNotification_Internal(damageTakenInfo.m_HitNotificationType); } }
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)); }
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; } } }
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(); } } }
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); } } }