42 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|