Ejemplo n.º 1
0
    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));
            }
        }
    }
Ejemplo n.º 2
0
    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);
        }
    }
Ejemplo n.º 3
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);
    }