修复bug

This commit is contained in:
milimoe 2026-02-04 01:26:06 +08:00
parent f0c930e4d9
commit 159f409ac1
Signed by: milimoe
GPG Key ID: 9554D37E4B8991D0
5 changed files with 7 additions and 7 deletions

View File

@ -68,7 +68,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
caster.Effects.Add(this); caster.Effects.Add(this);
OnEffectGained(caster); OnEffectGained(caster);
} }
if (caster.Effects.FirstOrDefault(e => e is && e.Skill == Skill) is e) if (caster.Effects.FirstOrDefault(e => e is && e.Skill.Character == Skill.Character) is e)
{ {
e.Skill.CurrentCD = 0; e.Skill.CurrentCD = 0;
e.Skill.Enable = true; e.Skill.Enable = true;

View File

@ -50,7 +50,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
{ {
IEnumerable<Effect> effects = character.Effects.Where(e => e is ); IEnumerable<Effect> effects = character.Effects.Where(e => e is );
if (effects.Any() && effects.First() is e && e.Skill == Skill) if (effects.Any() && effects.First() is e && e.Skill.Character == Skill.Character)
{ {
e. = true; e. = true;
e. = 3; e. = 3;
@ -61,7 +61,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override void OnEffectLost(Character character) public override void OnEffectLost(Character character)
{ {
IEnumerable<Effect> effects = character.Effects.Where(e => e is ); IEnumerable<Effect> effects = character.Effects.Where(e => e is );
if (effects.Any() && effects.First() is e && e.Skill == Skill) if (effects.Any() && effects.First() is e && e.Skill.Character == Skill.Character)
{ {
e. = false; e. = false;
e. = 2; e. = 2;

View File

@ -49,7 +49,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
} }
WriteLine($"[ {character} ] 发动了灵能反射!额外获得了 {实际获得能量值:0.##} 能量,并消除了 2 {GameplayEquilibriumConstant.InGameTime}冷却时间!"); WriteLine($"[ {character} ] 发动了灵能反射!额外获得了 {实际获得能量值:0.##} 能量,并消除了 2 {GameplayEquilibriumConstant.InGameTime}冷却时间!");
IEnumerable<Effect> effects = character.Effects.Where(e => e is ); IEnumerable<Effect> effects = character.Effects.Where(e => e is );
if (effects.Any() && effects.First() is e && e.Skill == Skill) if (effects.Any() && effects.First() is e && e.Skill.Character == Skill.Character)
{ {
double = * 3; double = * 3;
character.MP += ; character.MP += ;
@ -92,7 +92,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
= 0; = 0;
IEnumerable<Effect> effects = character.Effects.Where(e => e is ); IEnumerable<Effect> effects = character.Effects.Where(e => e is );
if (effects.Any() && effects.First() is e && e.Skill == Skill) if (effects.Any() && effects.First() is e && e.Skill.Character == Skill.Character)
{ {
baseHardnessTime = 0; baseHardnessTime = 0;
isCheckProtected = false; isCheckProtected = false;

View File

@ -77,7 +77,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
} }
} }
if (character == Skill.Character && (damageResult == DamageResult.Normal || damageResult == DamageResult.Critical) && enemy.Effects.FirstOrDefault(e => e is && e.Skill == Skill) is e) if (character == Skill.Character && (damageResult == DamageResult.Normal || damageResult == DamageResult.Critical) && enemy.Effects.FirstOrDefault(e => e is && e.Source == Skill.Character) is e)
{ {
(character, enemy, actualDamage, damageType, magicType); (character, enemy, actualDamage, damageType, magicType);
} }

View File

@ -54,7 +54,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override void AfterDamageCalculation(Character character, Character enemy, double damage, double actualDamage, bool isNormalAttack, DamageType damageType, MagicType magicType, DamageResult damageResult) public override void AfterDamageCalculation(Character character, Character enemy, double damage, double actualDamage, bool isNormalAttack, DamageType damageType, MagicType magicType, DamageResult damageResult)
{ {
if (character == Skill.Character && != null && (damageResult == DamageResult.Normal || damageResult == DamageResult.Critical) && enemy.Effects.FirstOrDefault(e => e is && e.Skill == Skill) is e) if (character == Skill.Character && != null && (damageResult == DamageResult.Normal || damageResult == DamageResult.Critical) && enemy.Effects.FirstOrDefault(e => e is && e.Source == Skill.Character) is e)
{ {
.(character, enemy, actualDamage, damageType, magicType); .(character, enemy, actualDamage, damageType, magicType);
} }