using UnityEngine; namespace Minigames.Airplane.Data { /// /// Configuration for Jet Plane ability. /// [System.Serializable] public class JetAbilityConfig { [Header("Jet Ability")] [Tooltip("Display name")] public string abilityName = "Jet Boost"; [Tooltip("Icon for ability button")] public Sprite abilityIcon; [Tooltip("Cooldown duration in seconds")] public float cooldownDuration = 5f; [Tooltip("Speed while ability is active")] public float jetSpeed = 15f; [Tooltip("Direction angle (0 = right, 90 = up)")] public float jetAngle = 0f; } /// /// Configuration for Bobbing Plane ability. /// [System.Serializable] public class BobbingAbilityConfig { [Header("Bobbing Ability")] [Tooltip("Display name")] public string abilityName = "Air Hop"; [Tooltip("Icon for ability button")] public Sprite abilityIcon; [Tooltip("Cooldown duration in seconds")] public float cooldownDuration = 3f; [Tooltip("Force applied on activation (X = forward, Y = upward)")] public Vector2 bobForce = new Vector2(7f, 10f); } /// /// Configuration for Drop Plane ability. /// [System.Serializable] public class DropAbilityConfig { [Header("Drop Ability")] [Tooltip("Display name")] public string abilityName = "Dive Bomb"; [Tooltip("Icon for ability button")] public Sprite abilityIcon; [Tooltip("Cooldown duration in seconds")] public float cooldownDuration = 4f; [Tooltip("Downward force applied")] public float dropForce = 20f; [Tooltip("Distance to drop before returning to normal flight")] public float dropDistance = 5f; [Tooltip("Should horizontal velocity be zeroed during drop?")] public bool zeroHorizontalVelocity = true; } /// /// Configuration for an airplane type with visual and physics properties. /// [System.Serializable] public class AirplaneTypeConfig { [Header("Identity")] [Tooltip("Display name for UI")] public string displayName = "Airplane"; [Tooltip("Airplane prefab")] public GameObject prefab; [Tooltip("Preview sprite for selection UI")] public Sprite previewSprite; [Header("Ability")] [Tooltip("Which ability this airplane uses")] public AirplaneAbilityType abilityType = AirplaneAbilityType.Jet; [Header("Physics Overrides (Optional)")] [Tooltip("Override default mass")] public bool overrideMass; public float mass = 1f; [Tooltip("Override default gravity scale")] public bool overrideGravityScale; public float gravityScale = 1f; [Tooltip("Override default drag")] public bool overrideDrag; public float drag = 0f; } }