using System; using UnityEngine; namespace Minigames.FortFight.Data { /// /// Configuration data for AI difficulty levels. /// Defines how accurate and fast the AI behaves at each difficulty tier. /// [Serializable] public struct AIDifficultyData { [Tooltip("Angle deviation in degrees (±)")] public float angleDeviation; [Tooltip("Force/speed deviation as percentage (0.2 = ±20%)")] public float forceDeviation; [Tooltip("Minimum thinking time in seconds")] public float thinkTimeMin; [Tooltip("Maximum thinking time in seconds")] public float thinkTimeMax; /// /// Create AI difficulty data with specified parameters /// public AIDifficultyData(float angleDeviation, float forceDeviation, float thinkTimeMin, float thinkTimeMax) { this.angleDeviation = angleDeviation; this.forceDeviation = forceDeviation; this.thinkTimeMin = thinkTimeMin; this.thinkTimeMax = thinkTimeMax; } } /// /// Wrapper class to serialize AI difficulty configuration in Unity inspector. /// Maps difficulty level to its configuration data. /// [Serializable] public class AIDifficultyConfig { [Tooltip("Difficulty level")] public AIDifficulty difficulty; [Tooltip("Configuration data for this difficulty")] public AIDifficultyData data; } }