using Milimoe.FunGame.Core.Entity; namespace Milimoe.FunGame.Core.Model { /// /// 游戏平衡常数 /// public class EquilibriumConstant { /// /// 游戏货币名称 /// public string InGameCurrency { get; set; } = "金币"; /// /// 游戏材料名称(第二货币) /// public string InGameMaterial { get; set; } = "材料"; /// /// 游戏时间名称(如技能冷却、硬直) /// public string InGameTime { get; set; } = "时间"; /// /// 晋升点数上限 /// public Dictionary PromotionsUpperLimit { get; set; } = new() { { "X", 999 }, { "S", 998 }, { "A+", 850 }, { "A", 700 }, { "B", 550 }, { "C", 400 }, { "D", 300 }, { "E", 200 }, }; /// /// 初始生命值 /// public double InitialHP { get; set; } = 60; /// /// 初始魔法值 /// public double InitialMP { get; set; } = 10; /// /// 角色最高等级 /// public int MaxLevel { get; set; } = 60; /// /// 经验值上限 /// public Dictionary EXPUpperLimit { get; set; } = new() { { 1, 1000 }, { 2, 1000 }, { 3, 1000 }, { 4, 1000 }, { 5, 1000 }, { 6, 1000 }, { 7, 1000 }, { 8, 1000 }, { 9, 1000 }, { 10, 1500 }, { 11, 1500 }, { 12, 1500 }, { 13, 1500 }, { 14, 1500 }, { 15, 1500 }, { 16, 1500 }, { 17, 1500 }, { 18, 1500 }, { 19, 1500 }, { 20, 2000 }, { 21, 2000 }, { 22, 2000 }, { 23, 2000 }, { 24, 2000 }, { 25, 2000 }, { 26, 2000 }, { 27, 2000 }, { 28, 2000 }, { 29, 2000 }, { 30, 3000 }, { 31, 3000 }, { 32, 3000 }, { 33, 3000 }, { 34, 3000 }, { 35, 3000 }, { 36, 3000 }, { 37, 3000 }, { 38, 3000 }, { 39, 3000 }, { 40, 4000 }, { 41, 4000 }, { 42, 4000 }, { 43, 4000 }, { 44, 4000 }, { 45, 4000 }, { 46, 4000 }, { 47, 4000 }, { 48, 4000 }, { 49, 4000 }, { 50, 5000 }, { 51, 5000 }, { 52, 5000 }, { 53, 5000 }, { 54, 5000 }, { 55, 5000 }, { 56, 5000 }, { 57, 5000 }, { 58, 5000 }, { 59, 5000 }, { 60, 9999999999999 } }; /// /// 使用等级突破机制 /// public bool UseLevelBreak { get; set; } = true; /// /// 使用等级突破机制后,角色处于这些等级时需要突破才能继续升级 /// public HashSet LevelBreakList { get; set; } = [10, 20, 30, 40, 50, 60]; /// /// 魔法最高等级 /// public int MaxMagicLevel { get; set; } = 8; /// /// 战技最高等级 /// public int MaxSkillLevel { get; set; } = 6; /// /// 爆发技最高等级 /// public int MaxSuperSkillLevel { get; set; } = 6; /// /// 被动最高等级 /// public int MaxPassiveSkillLevel { get; set; } = 6; /// /// 普通攻击最高等级 /// public int MaxNormalAttackLevel { get; set; } = 8; /// /// 最大能量值 /// public double MaxEP { get; set; } = 200; /// /// 初始攻击力 /// public double InitialATK { get; set; } = 15; /// /// 初始物理护甲 /// public double InitialDEF { get; set; } = 5; /// /// 初始力量 /// public double InitialSTR { get; set; } = 0; /// /// 初始敏捷 /// public double InitialAGI { get; set; } = 0; /// /// 初始智力 /// public double InitialINT { get; set; } = 0; /// /// 力量成长 /// public double STRGrowth { get; set; } = 0; /// /// 敏捷成长 /// public double AGIGrowth { get; set; } = 0; /// /// 智力成长 /// public double INTGrowth { get; set; } = 0; /// /// 初始暴击率 /// public double CritRate { get; set; } = 0.05; /// /// 初始暴击伤害 /// public double CritDMG { get; set; } = 1.25; /// /// 初始闪避率 /// public double EvadeRate { get; set; } = 0.05; /// /// 每级增加基础生命值 /// public double LevelToHPFactor { get; set; } = 17; /// /// 生命值增长因子 /// public double HPGrowthFactor { get; set; } = 0.68; /// /// 每级增加基础魔法值 /// public double LevelToMPFactor { get; set; } = 1.5; /// /// 魔法值增长因子 /// public double MPGrowthFactor { get; set; } = 0.14; /// /// 每级增加基础攻击力 /// public double LevelToATKFactor { get; set; } = 0.95; /// /// 攻击力增长因子 /// public double ATKGrowthFactor { get; set; } = 0.045; /// /// 物理伤害减免因子 /// public double DEFReductionFactor { get; set; } = 240; /// /// 行动速度上限 /// public double SPDUpperLimit { get; set; } = 1500; /// /// 每 1 点力量增加生命值 /// public double STRtoHPFactor { get; set; } = 9; /// /// 每 1 点力量增加生命回复力 /// public double STRtoHRFactor { get; set; } = 0.1; /// /// 每 1 点力量增加物理护甲 /// public double STRtoDEFFactor { get; set; } = 0.75; /// /// 每 1 点力量增加暴击伤害 /// public double STRtoCritDMGMultiplier { get; set; } = 0.00575; /// /// 每 1 点智力增加魔法值 /// public double INTtoMPFactor { get; set; } = 8; /// /// 每 1 点智力增加冷却缩减 /// public double INTtoCDRMultiplier { get; set; } = 0.0025; /// /// 每 1 点智力增加魔法回复力 /// public double INTtoMRFactor { get; set; } = 0.04; /// /// 每 1 点智力减少魔法消耗 /// public double INTtoCastMPReduce { get; set; } = 0.00125; /// /// 每 1 点智力减少能量消耗 /// public double INTtoCastEPReduce { get; set; } = 0.00075; /// /// 每 1 点智力增加加速系数 /// public double INTtoAccelerationCoefficientMultiplier { get; set; } = 0.00125; /// /// 每 1 点敏捷增加行动速度 /// public double AGItoSPDMultiplier { get; set; } = 0.65; /// /// 每 1 点敏捷增加暴击率 /// public double AGItoCritRateMultiplier { get; set; } = 0.0025; /// /// 每 1 点敏捷增加闪避率 /// public double AGItoEvadeRateMultiplier { get; set; } = 0.00175; /// /// 造成伤害获得能量值因子 /// public double DamageGetEPFactor { get; set; } = 0.03; /// /// 造成伤害获得能量值上限 /// public double DamageGetEPMax { get; set; } = 30; /// /// 受到伤害获得能量值因子 /// public double TakenDamageGetEPFactor { get; set; } = 0.015; /// /// 受到伤害获得能量值上限 /// public double TakenDamageGetEPMax { get; set; } = 15; /// /// 应用此游戏平衡常数给实体 /// /// public void SetEquilibriumConstant(params BaseEntity[] entities) { foreach (BaseEntity entity in entities) { entity.GameplayEquilibriumConstant = this; } } } }