void OnEndOfGrab(BaseEventParameters baseParams) { ChronicleManager.AddChronicle(m_Owner, EChronicleCategory.Attack, "End of grab phase"); if (m_GrabPhase == EGrabPhase.Startup) { ChronicleManager.AddChronicle(m_Owner, EChronicleCategory.Attack, "Grab touched enemy : " + m_GrabTouchedEnemy + ", Last grab touched frame count : " + m_LastGrabTouchedFrameCount); if (!m_GrabTouchedEnemy || (Time.frameCount - m_LastGrabTouchedFrameCount) > K_MAX_LAST_FRAME_TO_GRAB) { ChronicleManager.AddChronicle(m_Owner, EChronicleCategory.Attack, "On grab missed"); m_GrabPhase = EGrabPhase.Missed; m_Animator.Play(K_GRAB_MISS_ANIM, 0, 0); } else { ChronicleManager.AddChronicle(m_Owner, EChronicleCategory.Attack, "On grab enemy"); m_GrabPhase = EGrabPhase.Grabbed; Utils.IgnorePushBoxLayerCollision(); OnSyncGrabPosition(); //Launch grabbed event Utils.GetEnemyEventManager(m_Owner).TriggerEvent(EPlayerEvent.Grabbed, new GrabbedEventParameters(this)); } } }
void OnGrabBlocked(BaseEventParameters baseParams) { GrabBlockedEventParameters grabBlockedParams = (GrabBlockedEventParameters)baseParams; if (this == grabBlockedParams.m_AttackLogic && m_GrabPhase == EGrabPhase.Startup) { ChronicleManager.AddChronicle(m_Owner, EChronicleCategory.Attack, "On grab blocked"); m_GrabPhase = EGrabPhase.Blocked; IncreaseSuperGauge(m_Config.m_SuperGaugeBlockBonus); m_Animator.Play(K_GRAB_CANCEL_ANIM, 0, 0); } }
public override void OnAttackLaunched() { base.OnAttackLaunched(); m_GrabTouchedEnemy = false; m_LastGrabTouchedFrameCount = 0; m_GrabPhase = EGrabPhase.Startup; IncreaseSuperGauge(m_Config.m_SuperGaugeBaseBonus); Utils.GetPlayerEventManager(m_Owner).StartListening(EPlayerEvent.GrabTouched, OnGrabTouched); Utils.GetPlayerEventManager(m_Owner).StartListening(EPlayerEvent.GrabBlocked, OnGrabBlocked); Utils.GetPlayerEventManager(m_Owner).StartListening(EPlayerEvent.EndOfGrab, OnEndOfGrab); Utils.GetPlayerEventManager(m_Owner).StartListening(EPlayerEvent.ApplyGrabDamages, OnApplyGrabDamages); Utils.GetPlayerEventManager(m_Owner).StartListening(EPlayerEvent.SyncGrabAttackerPosition, OnSyncGrabPosition); }