diff --git a/OshimaModules/Characters/QWQAQW.cs b/OshimaModules/Characters/QWQAQW.cs index e251ca1..27e876b 100644 --- a/OshimaModules/Characters/QWQAQW.cs +++ b/OshimaModules/Characters/QWQAQW.cs @@ -13,7 +13,7 @@ namespace Oshima.FunGame.OshimaModules.Characters NickName = "LUOLI66"; PrimaryAttribute = PrimaryAttribute.INT; InitialATK = 18; - InitialHP = 95; + InitialHP = 100; InitialMP = 45; InitialSTR = 0; STRGrowth = 0; diff --git a/OshimaModules/Effects/SkillEffects/造成气绝.cs b/OshimaModules/Effects/SkillEffects/造成气绝.cs index d2081bf..04a1a99 100644 --- a/OshimaModules/Effects/SkillEffects/造成气绝.cs +++ b/OshimaModules/Effects/SkillEffects/造成气绝.cs @@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成气绝 {气绝时间}。气绝期间,目标行动受限且持续流失生命值。"; + public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成气绝 {气绝时间}。气绝期间,目标行动受限且持续{DamageString}。"; public override DispelledType DispelledType => DispelledType.Strong; private string 气绝时间 => _durative && _duration > 0 ? 实际气绝时间 + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? 实际气绝时间 + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}"); @@ -20,6 +20,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects private readonly bool _isPercentage; private readonly double _durationDamage; private readonly double _durationDamagePercent; + private double Damage => _isPercentage ? _durationDamagePercent : _durationDamage; + private string DamageString => _isPercentage ? $"流失 {Damage * 100:0.##}% 当前生命值" : $"流失 {Damage:0.##} 点生命值"; public 造成气绝(Skill skill, bool durative = false, double duration = 0, int durationTurn = 1, double levelGrowth = 0, bool isPercentage = true, double durationDamage = 100, double durationDamagePercent = 0.02) : base(skill) diff --git a/OshimaModules/Effects/SkillEffects/造成虚弱.cs b/OshimaModules/Effects/SkillEffects/造成虚弱.cs index 4af0cbb..344c944 100644 --- a/OshimaModules/Effects/SkillEffects/造成虚弱.cs +++ b/OshimaModules/Effects/SkillEffects/造成虚弱.cs @@ -8,8 +8,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects { public override long Id => Skill.Id; public override string Name => Skill.Name; - public override string Description => $"对{TargetDescription}造成虚弱 {虚弱时间},伤害降低 {_damageReductionPercent * 100:0.##}%," + - $"物理护甲降低 {_DEFReductionPercent * 100:0.##}%,魔法抗性降低 {_MDFReductionPercent * 100:0.##}%,治疗效果降低 {_healingReductionPercent * 100:0.##}%。"; + public override string Description => $"对{TargetDescription}造成虚弱 {虚弱时间},伤害降低 {ActualDamageReductionPercent * 100:0.##}%," + + $"物理护甲降低 {ActualDEFReductionPercent * 100:0.##}%,魔法抗性降低 {ActualMDFReductionPercent * 100:0.##}%,治疗效果降低 {ActualHealingReductionPercent * 100:0.##}%。"; public override DispelledType DispelledType => DispelledType.Weak; public string TargetDescription => Skill.SelectAllEnemies ? "敌方全体角色" : $"目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人"; @@ -23,9 +23,18 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects private readonly double _DEFReductionPercent; private readonly double _MDFReductionPercent; private readonly double _healingReductionPercent; + private readonly double _damageReductionPercentLevelGrowth; + private readonly double _DEFReductionPercentLevelGrowth; + private readonly double _MDFReductionPercentLevelGrowth; + private readonly double _healingReductionPercentLevelGrowth; + private double ActualDamageReductionPercent => Level > 0 ? _damageReductionPercent + _damageReductionPercentLevelGrowth * (Level - 1) : _damageReductionPercent; + private double ActualDEFReductionPercent => Level > 0 ? _DEFReductionPercent + _DEFReductionPercentLevelGrowth * (Level - 1) : _DEFReductionPercent; + private double ActualMDFReductionPercent => Level > 0 ? _MDFReductionPercent + _MDFReductionPercentLevelGrowth * (Level - 1) : _MDFReductionPercent; + private double ActualHealingReductionPercent => Level > 0 ? _healingReductionPercent + _healingReductionPercentLevelGrowth * (Level - 1) : _healingReductionPercent; public 造成虚弱(Skill skill, bool durative = false, double duration = 0, int durationTurn = 1, double levelGrowth = 0, - double damageReductionPercent = 0, double DEFReductionPercent = 0, double MDFReductionPercent = 0, double healingReductionPercent = 0) : base(skill) + double damageReductionPercent = 0, double DEFReductionPercent = 0, double MDFReductionPercent = 0, double healingReductionPercent = 0, + double damageReductionPercentLevelGrowth = 0, double DEFReductionPercentLevelGrowth = 0, double MDFReductionPercentLevelGrowth = 0, double healingReductionPercentLevelGrowth = 0) : base(skill) { GamingQueue = skill.GamingQueue; _durative = durative; @@ -36,16 +45,20 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects _DEFReductionPercent = DEFReductionPercent; _MDFReductionPercent = MDFReductionPercent; _healingReductionPercent = healingReductionPercent; + _damageReductionPercentLevelGrowth = damageReductionPercentLevelGrowth; + _DEFReductionPercentLevelGrowth = DEFReductionPercentLevelGrowth; + _MDFReductionPercentLevelGrowth = MDFReductionPercentLevelGrowth; + _healingReductionPercentLevelGrowth = healingReductionPercentLevelGrowth; } public override void OnSkillCasted(Character caster, List targets, Dictionary others) { foreach (Character enemy in targets) { - WriteLine($"[ {caster} ] 对 [ {enemy} ] 造成了虚弱!伤害降低 {_damageReductionPercent * 100:0.##}%," + - $"物理护甲降低 {_DEFReductionPercent * 100:0.##}%,魔法抗性降低 {_MDFReductionPercent * 100:0.##}%," + - $"治疗效果降低 {_healingReductionPercent * 100:0.##}%!持续时间:{虚弱时间}!"); - 虚弱 e = new(Skill, enemy, caster, _durative, _duration, _durationTurn, _damageReductionPercent, _DEFReductionPercent, _MDFReductionPercent, _healingReductionPercent); + WriteLine($"[ {caster} ] 对 [ {enemy} ] 造成了虚弱!伤害降低 {ActualDamageReductionPercent * 100:0.##}%," + + $"物理护甲降低 {ActualDEFReductionPercent * 100:0.##}%,魔法抗性降低 {ActualMDFReductionPercent * 100:0.##}%," + + $"治疗效果降低 {ActualHealingReductionPercent * 100:0.##}%!持续时间:{虚弱时间}!"); + 虚弱 e = new(Skill, enemy, caster, _durative, _duration, _durationTurn, ActualDamageReductionPercent, ActualDEFReductionPercent, ActualMDFReductionPercent, ActualHealingReductionPercent); enemy.Effects.Add(e); e.OnEffectGained(enemy); GamingQueue?.LastRound.ApplyEffects.TryAdd(enemy, [e.EffectType]); diff --git a/OshimaModules/Skills/QWQAQW/破釜沉舟.cs b/OshimaModules/Skills/QWQAQW/破釜沉舟.cs index 3baecbc..3429388 100644 --- a/OshimaModules/Skills/QWQAQW/破釜沉舟.cs +++ b/OshimaModules/Skills/QWQAQW/破釜沉舟.cs @@ -55,11 +55,11 @@ namespace Oshima.FunGame.OshimaModules.Skills { if (character.HP > character.MaxHP * 0.3) { - 系数 = 1.0 + ((Random.Shared.Next(高于30的加成下限, 高于30的加成上限) + 0.0) / 100); + 系数 = (Random.Shared.Next(高于30的加成下限, 高于30的加成上限) + 0.0) / 100; } else { - 系数 = 1.0 + ((Random.Shared.Next(低于30的加成下限, 低于30的加成上限) + 0.0) / 100); + 系数 = (Random.Shared.Next(低于30的加成下限, 低于30的加成上限) + 0.0) / 100; } return 系数 * 累计受到的伤害; } diff --git a/OshimaModules/Skills/SkillID.cs b/OshimaModules/Skills/SkillID.cs index 5806508..530d5ca 100644 --- a/OshimaModules/Skills/SkillID.cs +++ b/OshimaModules/Skills/SkillID.cs @@ -18,7 +18,7 @@ * 时间减速 = 单体速度减少(时间型), * 反魔法领域 = 多目标封技(技能受限,时间型)+施法解除, * 沉默十字 = 多目标封技(技能受限,回合型)+施法解除, - * 虚弱领域 = 全体虚弱(伤害降低+护甲魔抗降低+重伤,回合型), + * 虚弱领域 = 全体虚弱(伤害降低+护甲魔抗降低+重伤,时间型), * 混沌烙印 = 单体气绝(行动受限+持续伤害,时间型), * 凝胶稠絮 = 单体虚弱(伤害降低+护甲魔抗降低+重伤,回合型), * diff --git a/OshimaModules/Skills/魔法/凝胶稠絮.cs b/OshimaModules/Skills/魔法/凝胶稠絮.cs index 412963f..e9327e1 100644 --- a/OshimaModules/Skills/魔法/凝胶稠絮.cs +++ b/OshimaModules/Skills/魔法/凝胶稠絮.cs @@ -11,14 +11,15 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 造成虚弱).DispelDescription : ""; public override double MPCost => Level > 0 ? 100 + (100 * (Level - 1)) : 100; - public override double CD => Level > 0 ? 75 - (1 * (Level - 1)) : 75; + public override double CD => Level > 0 ? 75 - (1.5 * (Level - 1)) : 75; public override double CastTime => 11; public override double HardnessTime { get; set; } = 4; public override int CanSelectTargetCount => 1; public 凝胶稠絮(Character? character = null) : base(SkillType.Magic, character) { - Effects.Add(new 造成虚弱(this, false, 0, 3, 0, 0.25, 1.2, 0.15, 0.3)); + Effects.Add(new 造成虚弱(this, false, 0, 3, 0, 0.08, 0.5, 0.05, 0.1, + 0.025, 0.1, 0.015, 0.03)); } } } diff --git a/OshimaModules/Skills/魔法/混沌烙印.cs b/OshimaModules/Skills/魔法/混沌烙印.cs index 61fcf2d..4c86af7 100644 --- a/OshimaModules/Skills/魔法/混沌烙印.cs +++ b/OshimaModules/Skills/魔法/混沌烙印.cs @@ -18,7 +18,7 @@ namespace Oshima.FunGame.OshimaModules.Skills public 混沌烙印(Character? character = null) : base(SkillType.Magic, character) { - Effects.Add(new 造成气绝(this, true, 15, 0, 0, true, 0, 0.3)); + Effects.Add(new 造成气绝(this, true, 6, 0, 1.5, true, 0, 0.3)); } } } diff --git a/OshimaModules/Skills/魔法/虚弱领域.cs b/OshimaModules/Skills/魔法/虚弱领域.cs index 1de25af..44b0be4 100644 --- a/OshimaModules/Skills/魔法/虚弱领域.cs +++ b/OshimaModules/Skills/魔法/虚弱领域.cs @@ -11,14 +11,14 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Description => Effects.Count > 0 ? string.Join("\r\n", Effects.Select(e => e.Description)) : ""; public override string DispelDescription => Effects.Count > 0 ? Effects.First(e => e is 造成虚弱).DispelDescription : ""; public override double MPCost => Level > 0 ? 95 + (95 * (Level - 1)) : 90; - public override double CD => Level > 0 ? 85 - (1 * (Level - 1)) : 85; + public override double CD => Level > 0 ? 85 - (2 * (Level - 1)) : 85; public override double CastTime => 8; public override double HardnessTime { get; set; } = 3; public override bool SelectAllEnemies => true; public 虚弱领域(Character? character = null) : base(SkillType.Magic, character) { - Effects.Add(new 造成虚弱(this, false, 0, 3, 0, 0.1, 1, 0.1, 0.25)); + Effects.Add(new 造成虚弱(this, true, 7, 0, 2, 0.1, 1, 0.1, 0.25)); } } }