From c6167b11330d104d94dc1ebe6a091be26d8bd45c Mon Sep 17 00:00:00 2001 From: milimoe Date: Thu, 14 Nov 2024 23:05:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E4=B9=98=E7=AE=97=EF=BC=8C?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E5=8A=A0=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OshimaModules/Skills/MagicalGirl/毁灭之势.cs | 6 +++--- OshimaModules/Skills/MagicalGirl/绝对领域.cs | 6 +++--- OshimaModules/Skills/NiuNan/变幻之心.cs | 5 +++-- OshimaModules/Skills/QWQAQW/玻璃大炮.cs | 8 +++++--- OshimaModules/Skills/QWQAQW/迅捷之势.cs | 6 ++++-- OshimaModules/Skills/QuDuoduo/弱者猎手.cs | 5 +++-- OshimaModules/Skills/XinYin/天赐之力.cs | 5 +++-- OshimaModules/Skills/Yang/魔法涌流.cs | 6 +++--- OshimaModules/Skills/战技/疾风步.cs | 6 +++--- 9 files changed, 30 insertions(+), 23 deletions(-) diff --git a/OshimaModules/Skills/MagicalGirl/毁灭之势.cs b/OshimaModules/Skills/MagicalGirl/毁灭之势.cs index 459d9b3..f715348 100644 --- a/OshimaModules/Skills/MagicalGirl/毁灭之势.cs +++ b/OshimaModules/Skills/MagicalGirl/毁灭之势.cs @@ -29,7 +29,7 @@ namespace Oshima.FunGame.OshimaModules.Skills private readonly double 伤害提升 = 0.04; private double 累计伤害 = 0; - public override bool AlterActualDamageAfterCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult) + public override double AlterActualDamageAfterCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult, ref bool isEvaded, Dictionary totalDamageBonus) { if (damageResult != DamageResult.Evaded) { @@ -41,11 +41,11 @@ namespace Oshima.FunGame.OshimaModules.Skills if (character == Skill.Character) { double 实际伤害提升 = damage * 累计伤害; - damage += 实际伤害提升; if (实际伤害提升 > 0) WriteLine($"[ {character} ] 的伤害提升了 {实际伤害提升:0.##} 点!"); + return 实际伤害提升; } } - return false; + return 0; } public override void OnTimeElapsed(Character character, double eapsed) diff --git a/OshimaModules/Skills/MagicalGirl/绝对领域.cs b/OshimaModules/Skills/MagicalGirl/绝对领域.cs index b66638d..dad660f 100644 --- a/OshimaModules/Skills/MagicalGirl/绝对领域.cs +++ b/OshimaModules/Skills/MagicalGirl/绝对领域.cs @@ -45,14 +45,14 @@ namespace Oshima.FunGame.OshimaModules.Skills character.ExAGI -= 实际敏捷提升; } - public override bool AlterActualDamageAfterCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult) + public override double AlterActualDamageAfterCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult, ref bool isEvaded, Dictionary totalDamageBonus) { if (enemy == Skill.Character && damageResult != DamageResult.Evaded) { WriteLine($"[ {enemy} ] 发动了绝对领域,巧妙的化解了此伤害!"); - return true; + return 0; } - return false; + return 0; } public override void OnSkillCasting(Character caster, List targets) diff --git a/OshimaModules/Skills/NiuNan/变幻之心.cs b/OshimaModules/Skills/NiuNan/变幻之心.cs index 01c64c1..fc0f1e2 100644 --- a/OshimaModules/Skills/NiuNan/变幻之心.cs +++ b/OshimaModules/Skills/NiuNan/变幻之心.cs @@ -39,17 +39,18 @@ namespace Oshima.FunGame.OshimaModules.Skills Skill.IsInEffect = false; } - public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType) + public override double AlterExpectedDamageBeforeCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, Dictionary totalDamageBonus) { if (character == Skill.Character && isMagicDamage) { double 实际伤害提升百分比 = 伤害提升; double 实际伤害提升 = damage * 实际伤害提升百分比; - damage += 实际伤害提升; WriteLine($"[ {character} ] 发动了变幻之心!伤害提升了 {实际伤害提升:0.##} 点!"); character.Effects.Remove(this); OnEffectLost(character); + return 实际伤害提升; } + return 0; } public override void OnSkillCasted(Character caster, List targets, Dictionary others) diff --git a/OshimaModules/Skills/QWQAQW/玻璃大炮.cs b/OshimaModules/Skills/QWQAQW/玻璃大炮.cs index dd07765..04c8839 100644 --- a/OshimaModules/Skills/QWQAQW/玻璃大炮.cs +++ b/OshimaModules/Skills/QWQAQW/玻璃大炮.cs @@ -58,14 +58,14 @@ namespace Oshima.FunGame.OshimaModules.Skills return 系数 * damage; } - public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType) + public override double AlterExpectedDamageBeforeCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, Dictionary totalDamageBonus) { if (character == Skill.Character) { 这次的伤害加成 = 伤害加成(damage); - damage += 这次的伤害加成; WriteLine($"[ {character} ] 发动了玻璃大炮,获得了 {这次的伤害加成:0.##} 点伤害加成!"); 累计受到的伤害 = 0; + return 这次的伤害加成; } if (enemy == Skill.Character) @@ -76,11 +76,13 @@ namespace Oshima.FunGame.OshimaModules.Skills // 额外受到伤害 double 系数 = (Random.Shared.Next(高于30额外伤害下限, 高于30额外伤害上限) + 0.0) / 100; 这次受到的额外伤害 = damage * 系数; - damage += 这次受到的额外伤害; WriteLine($"[ {enemy} ] 的玻璃大炮触发,将额外受到 {这次受到的额外伤害:0.##} 点伤害!"); } else 这次受到的额外伤害 = 0; + return 这次受到的额外伤害; } + + return 0; } public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult) diff --git a/OshimaModules/Skills/QWQAQW/迅捷之势.cs b/OshimaModules/Skills/QWQAQW/迅捷之势.cs index ec73d51..e02fab4 100644 --- a/OshimaModules/Skills/QWQAQW/迅捷之势.cs +++ b/OshimaModules/Skills/QWQAQW/迅捷之势.cs @@ -54,12 +54,14 @@ namespace Oshima.FunGame.OshimaModules.Skills 实际魔法抗性 = 0; } - public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType) + public override double AlterExpectedDamageBeforeCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, Dictionary totalDamageBonus) { if (character == Skill.Character && isNormalAttack) { - damage += 智力加成; + WriteLine($"[ {character} ] 发动了迅捷之势!伤害提升了 {智力加成:0.##} 点!"); + return 智力加成; } + return 0; } public override void AlterHardnessTimeAfterNormalAttack(Character character, ref double baseHardnessTime, ref bool isCheckProtected) diff --git a/OshimaModules/Skills/QuDuoduo/弱者猎手.cs b/OshimaModules/Skills/QuDuoduo/弱者猎手.cs index a0a8974..e7dc872 100644 --- a/OshimaModules/Skills/QuDuoduo/弱者猎手.cs +++ b/OshimaModules/Skills/QuDuoduo/弱者猎手.cs @@ -26,13 +26,14 @@ namespace Oshima.FunGame.OshimaModules.Skills public override string Name => Skill.Name; public override string Description => $"优先攻击血量更低的角色,对生命值百分比低于自己的角色造成 150% 伤害。"; - public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType) + public override double AlterExpectedDamageBeforeCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, Dictionary totalDamageBonus) { if (character == Skill.Character && (enemy.HP / enemy.MaxHP) <= (character.HP / character.MaxHP)) { double 额外伤害 = damage * 0.5; - damage += 额外伤害; + return 额外伤害; } + return 0; } public override bool AlterEnemyListBeforeAction(Character character, List enemys, List teammates, List skills, Dictionary continuousKilling, Dictionary earnedMoney) diff --git a/OshimaModules/Skills/XinYin/天赐之力.cs b/OshimaModules/Skills/XinYin/天赐之力.cs index 11de31e..1fb076d 100644 --- a/OshimaModules/Skills/XinYin/天赐之力.cs +++ b/OshimaModules/Skills/XinYin/天赐之力.cs @@ -63,12 +63,13 @@ namespace Oshima.FunGame.OshimaModules.Skills return CharacterActionType.None; } - public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType) + public override double AlterExpectedDamageBeforeCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, Dictionary totalDamageBonus) { if (character == Skill.Character && isNormalAttack) { - damage += 伤害加成; + return 伤害加成; } + return 0; } public override void AlterHardnessTimeAfterNormalAttack(Character character, ref double baseHardnessTime, ref bool isCheckProtected) diff --git a/OshimaModules/Skills/Yang/魔法涌流.cs b/OshimaModules/Skills/Yang/魔法涌流.cs index a8b5345..27223a5 100644 --- a/OshimaModules/Skills/Yang/魔法涌流.cs +++ b/OshimaModules/Skills/Yang/魔法涌流.cs @@ -42,13 +42,13 @@ namespace Oshima.FunGame.OshimaModules.Skills character.NormalAttack.SetMagicType(false, character.MagicType); } - public override bool AlterActualDamageAfterCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult) + public override double AlterActualDamageAfterCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult, ref bool isEvaded, Dictionary totalDamageBonus) { if (enemy == Skill.Character) { - damage *= 1 - 实际比例; + return damage * (1 - 实际比例); } - return false; + return 0; } public override void OnSkillCasted(Character caster, List targets, Dictionary others) diff --git a/OshimaModules/Skills/战技/疾风步.cs b/OshimaModules/Skills/战技/疾风步.cs index 6e97d79..785ec0a 100644 --- a/OshimaModules/Skills/战技/疾风步.cs +++ b/OshimaModules/Skills/战技/疾风步.cs @@ -55,7 +55,7 @@ namespace Oshima.FunGame.OshimaModules.Skills character.ExCritRate -= 0.08; } - public override bool AlterActualDamageAfterCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult) + public override double AlterActualDamageAfterCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult, ref bool isEvaded, Dictionary totalDamageBonus) { if (character == Skill.Character && 首次伤害) { @@ -64,10 +64,10 @@ namespace Oshima.FunGame.OshimaModules.Skills character.CharacterEffectTypes.Remove(this); character.UpdateCharacterState(); double d = 伤害加成; - damage += d; WriteLine($"[ {character} ] 触发了疾风步破隐一击,获得了 [ {d:0.##} ] 点伤害加成!"); + return d; } - return false; + return 0; } public override void OnSkillCasted(Character caster, List targets, Dictionary others)