示例#1
0
    public override void OnAttackLaunched()
    {
        base.OnAttackLaunched();

        IncreaseSuperGauge(m_Config.m_SuperGaugeBaseBonus);

        m_ParryState = EParryState.Startup;

        Utils.GetPlayerEventManager(m_Owner).StartListening(EPlayerEvent.ParrySuccess, OnParrySuccess);
        Utils.GetPlayerEventManager(m_Owner).StartListening(EPlayerEvent.EndOfParry, OnEndOfParry);
    }
示例#2
0
    public override void OnAttackStopped()
    {
        base.OnAttackStopped();

        if (m_ParryState == EParryState.Counter)
        {
            ChronicleManager.AddChronicle(m_Owner, EChronicleCategory.Attack, "ParrySuccess: Unreeze time");
            m_TimeScaleManager.UnfreezeTime(m_Animator);
        }
        m_ParryState = EParryState.None;

        Utils.GetPlayerEventManager(m_Owner).StopListening(EPlayerEvent.ParrySuccess, OnParrySuccess);
        Utils.GetPlayerEventManager(m_Owner).StopListening(EPlayerEvent.EndOfParry, OnEndOfParry);
    }
示例#3
0
    void OnParrySuccess(BaseEventParameters baseParams)
    {
        IncreaseSuperGauge(m_Config.m_SuperGaugeParrySuccessBonus);
        m_ParryState = EParryState.Counter;
        m_HasTouched = true; // Set it to true in order to allow unblock attack and cancelling this one by another one if needed (parry success is considered as a regular attack hit)
        if (PlayerGuardCrushTriggerAttackLogic.GetTriggerPointStatus(GetPlayerIndex()) == PlayerGuardCrushTriggerAttackLogic.ETriggerPointStatus.Inactive)
        {
            PlayerGuardCrushTriggerAttackLogic.SetTriggerPointStatus(m_InfoComponent, PlayerGuardCrushTriggerAttackLogic.ETriggerPointStatus.Active); // Successfully parrying a hit activate the trigger
        }

        m_Animator.Play(K_PARRY_COUNTER_ANIM, 0, 0);

        ChronicleManager.AddChronicle(m_Owner, EChronicleCategory.Attack, "ParrySuccess: Freeze time");
        m_TimeScaleManager.FreezeTime(m_Animator);
    }
示例#4
0
 void OnEndOfParry(BaseEventParameters baseParams)
 {
     m_ParryState = EParryState.Whiff;
 }