71 lines
2.7 KiB
C#
71 lines
2.7 KiB
C#
|
|
using AppleHills.Core.Settings;
|
||
|
|
using Common.Input;
|
||
|
|
using UnityEngine;
|
||
|
|
|
||
|
|
namespace Minigames.Airplane.Settings
|
||
|
|
{
|
||
|
|
/// <summary>
|
||
|
|
/// Settings for the airplane minigame.
|
||
|
|
/// Create via Assets > Create > AppleHills > Settings > Airplane
|
||
|
|
/// </summary>
|
||
|
|
[CreateAssetMenu(fileName = "AirplaneSettings", menuName = "AppleHills/Settings/Airplane", order = 9)]
|
||
|
|
public class AirplaneSettings : BaseSettings, IAirplaneSettings
|
||
|
|
{
|
||
|
|
[Header("Slingshot Configuration")]
|
||
|
|
[SerializeField] private SlingshotConfig slingshotSettings = new SlingshotConfig
|
||
|
|
{
|
||
|
|
maxDragDistance = 5f,
|
||
|
|
baseLaunchForce = 20f,
|
||
|
|
minForceMultiplier = 0.1f,
|
||
|
|
maxForceMultiplier = 1f,
|
||
|
|
trajectoryPoints = 20,
|
||
|
|
trajectoryTimeStep = 0.1f,
|
||
|
|
trajectoryLockDuration = 0f, // No locking for airplane
|
||
|
|
autoRegisterInput = true // Direct registration
|
||
|
|
};
|
||
|
|
|
||
|
|
[Header("Flight Settings")]
|
||
|
|
[Tooltip("Mass of the airplane")]
|
||
|
|
[SerializeField] private float airplaneMass = 1f;
|
||
|
|
|
||
|
|
[Tooltip("Maximum flight time before timeout (seconds)")]
|
||
|
|
[SerializeField] private float maxFlightTime = 10f;
|
||
|
|
|
||
|
|
[Header("Camera Settings")]
|
||
|
|
[Tooltip("Camera follow smoothness (higher = smoother but more lag)")]
|
||
|
|
[SerializeField] private float cameraFollowSmoothing = 5f;
|
||
|
|
|
||
|
|
[Tooltip("Camera zoom level during flight")]
|
||
|
|
[SerializeField] private float flightCameraZoom = 5f;
|
||
|
|
|
||
|
|
[Header("Timing")]
|
||
|
|
[Tooltip("Duration of intro sequence (seconds)")]
|
||
|
|
[SerializeField] private float introDuration = 1f;
|
||
|
|
|
||
|
|
[Tooltip("Duration of person introduction (seconds)")]
|
||
|
|
[SerializeField] private float personIntroDuration = 1f;
|
||
|
|
|
||
|
|
[Tooltip("Duration of result evaluation (seconds)")]
|
||
|
|
[SerializeField] private float evaluationDuration = 1f;
|
||
|
|
|
||
|
|
[Header("Debug")]
|
||
|
|
[Tooltip("Show debug logs in console")]
|
||
|
|
[SerializeField] private bool showDebugLogs;
|
||
|
|
|
||
|
|
#region IAirplaneSettings Implementation
|
||
|
|
|
||
|
|
public SlingshotConfig SlingshotSettings => slingshotSettings;
|
||
|
|
public float AirplaneMass => airplaneMass;
|
||
|
|
public float MaxFlightTime => maxFlightTime;
|
||
|
|
public float CameraFollowSmoothing => cameraFollowSmoothing;
|
||
|
|
public float FlightCameraZoom => flightCameraZoom;
|
||
|
|
public float IntroDuration => introDuration;
|
||
|
|
public float PersonIntroDuration => personIntroDuration;
|
||
|
|
public float EvaluationDuration => evaluationDuration;
|
||
|
|
public bool ShowDebugLogs => showDebugLogs;
|
||
|
|
|
||
|
|
#endregion
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|