예제 #1
0
    // Token: 0x06000FA7 RID: 4007 RVA: 0x0005F2AC File Offset: 0x0005D4AC
    public void BeginBash()
    {
        this.m_timeRemainingOfBashButtonPress = 0f;
        this.IsBashing = true;
        this.Target.OnEnterBash();
        Transform transform = this.TargetAsComponent.transform;

        Sound.Play((!this.Sein.PlayerAbilities.BashBuff.HasAbility) ? this.BashStartSound.GetSound(null) : this.UpgradedBashStartSound.GetSound(null), this.m_seinTransform.position, null);
        if (GameController.Instance)
        {
            GameController.Instance.SuspendGameplay();
        }
        if (UI.Cameras.Current != null)
        {
            SuspensionManager.GetSuspendables(this.m_bashSuspendables, UI.Cameras.Current.GameObject);
            SuspensionManager.Resume(this.m_bashSuspendables);
            this.m_bashSuspendables.Clear();
        }
        this.PlatformMovement.LocalSpeed = Vector2.zero;
        GameObject gameObject = (GameObject)InstantiateUtility.Instantiate(this.BashAttackGamePrefab);

        this.m_bashAttackGame = gameObject.GetComponent <BashAttackGame>();
        this.m_bashAttackGame.SendDirection(transform.position - this.PlatformMovement.Position);
        this.m_bashAttackGame.BashGameComplete  += this.BashGameComplete;
        this.m_bashAttackGame.transform.position = transform.position;
        Vector3 b = Vector3.ClampMagnitude(transform.position - this.PlatformMovement.Position, 2f);

        this.m_playerTargetPosition = transform.position - b;
        this.m_directionToTarget    = b.normalized;
        SeinBashAttack.OnBashBegin();
        this.Sein.PlatformBehaviour.Visuals.Animation.PlayLoop(this.BashChargeAnimation, 10, new Func <bool>(this.ShouldBashChargeAnimationKeepPlaying), false);
    }