Files
zeling_v2/Assets/Scripts/Core/Difficulty/DifficultyScalerSO.cs
2026-05-12 15:34:08 +08:00

42 lines
1.3 KiB
C#

using UnityEngine;
using BaseGames.Core.Events;
namespace BaseGames.Core
{
/// <summary>
/// 难度缩放配置 ScriptableObject。每个难度档位对应一个实例。
/// </summary>
[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;
}
}