private void DashButtonReleased() { if (stateManager.CurrentState == State.ChargeDash) { DashInformation info = stateManager.GetStateInformationForWriting <DashInformation>(State.Dash); info.StartPosition = playerMovement.CurrentPosition; info.Velocity = (Quaternion.AngleAxis(playerMovement.CurrentRigidBodyRotation, Vector3.forward) * Vector3.right).normalized * dashSpeed * (1.0f + chargeAmount); stateManager.TransitionToState(State.Dash, info); } }
private void OnLayWallButtonPressed() { if (player.Team != null && stateManager.CurrentState == State.NormalMovement) { TronWallInformation info = stateManager.GetStateInformationForWriting <TronWallInformation>(State.LayTronWall); info.Direction = playerMovement.Forward; info.StartPosition = playerMovement.CurrentPosition; stateManager.TransitionToState(State.LayTronWall, info); } }
private void Shoot() { // Set the information Ball ball = ballCarrier.Ball.ThrowIfNull("Tried to shoot ball while [ballCarrier.Ball] is null"); NormalMovementInformation shootBallInfo = stateManager.GetStateInformationForWriting <NormalMovementInformation>(State.NormalMovement); shootBallInfo.ShotBall = true; shootBallInfo.BallStartPosition = ball.CurrentPosition; shootBallInfo.Velocity = (ball.CurrentPosition - (Vector2)transform.position).normalized * shotSpeed; // Cleanup and transition states StopShootBallCoroutines(); stateManager.TransitionToState(State.NormalMovement, shootBallInfo); }
private void HandleCollision(GameObject thing) { Ball ball = thing.GetComponent <Ball>(); if (ball == null || ball.Owner != null || !ball.Ownable || isCoolingDown || ball.Owner == player) { return; } if (stateManager.CurrentState == State.NormalMovement || stateManager.CurrentState == State.Dash || stateManager.CurrentState == State.ChargeDash || stateManager.CurrentState == State.LayTronWall) { StunNearbyPlayers(); PossessBallInformation info = stateManager.GetStateInformationForWriting <PossessBallInformation>(State.Possession); info.StoleBall = false; stateManager.TransitionToState(State.Possession, info); } }