using UnityEngine; using BaseGames.Core.Events; namespace BaseGames.Core { /// /// 难度缩放配置 ScriptableObject。每个难度档位对应一个实例。 /// [CreateAssetMenu(menuName = "Core/DifficultyScaler")] public class DifficultyScalerSO : ScriptableObject { [Header("标识")] public DifficultyLevel Level; [Header("玩家")] public float PlayerMaxHPMultiplier = 1.0f; public float PlayerDamageMultiplier = 1.0f; public float InvincibilityFrameScale = 1.0f; [Header("敌人")] public float EnemyDamageMultiplier = 1.0f; public float EnemyHPMultiplier = 1.0f; public float BossDamageMultiplier = 1.0f; public float BossHPMultiplier = 1.0f; [Header("经济")] public float ShopPriceMultiplier = 1.0f; public float GeoDropMultiplier = 1.0f; [Header("机制")] public bool CanReviveWithGeoLoss = true; public bool InstantDeathOnZeroHP = false; public bool GeoPenaltyOnDeath = true; [Header("AI")] public float EnemyAttackIntervalScale = 1.0f; public float EnemyAggroRangeScale = 1.0f; public float EnemyReactionTimeScale = 1.0f; public int EnemyAggressionLevel = 2; } }