mirror of
https://github.com/oshima-studios/OshimaGameModule.git
synced 2025-04-21 11:29:34 +08:00
取消乘算,改为加算
This commit is contained in:
parent
e0be8706d5
commit
c6167b1133
@ -29,7 +29,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
|||||||
private readonly double 伤害提升 = 0.04;
|
private readonly double 伤害提升 = 0.04;
|
||||||
private double 累计伤害 = 0;
|
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<Effect, double> totalDamageBonus)
|
||||||
{
|
{
|
||||||
if (damageResult != DamageResult.Evaded)
|
if (damageResult != DamageResult.Evaded)
|
||||||
{
|
{
|
||||||
@ -41,11 +41,11 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
|||||||
if (character == Skill.Character)
|
if (character == Skill.Character)
|
||||||
{
|
{
|
||||||
double 实际伤害提升 = damage * 累计伤害;
|
double 实际伤害提升 = damage * 累计伤害;
|
||||||
damage += 实际伤害提升;
|
|
||||||
if (实际伤害提升 > 0) WriteLine($"[ {character} ] 的伤害提升了 {实际伤害提升:0.##} 点!");
|
if (实际伤害提升 > 0) WriteLine($"[ {character} ] 的伤害提升了 {实际伤害提升:0.##} 点!");
|
||||||
|
return 实际伤害提升;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnTimeElapsed(Character character, double eapsed)
|
public override void OnTimeElapsed(Character character, double eapsed)
|
||||||
|
@ -45,14 +45,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
|||||||
character.ExAGI -= 实际敏捷提升;
|
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<Effect, double> totalDamageBonus)
|
||||||
{
|
{
|
||||||
if (enemy == Skill.Character && damageResult != DamageResult.Evaded)
|
if (enemy == Skill.Character && damageResult != DamageResult.Evaded)
|
||||||
{
|
{
|
||||||
WriteLine($"[ {enemy} ] 发动了绝对领域,巧妙的化解了此伤害!");
|
WriteLine($"[ {enemy} ] 发动了绝对领域,巧妙的化解了此伤害!");
|
||||||
return true;
|
return 0;
|
||||||
}
|
}
|
||||||
return false;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnSkillCasting(Character caster, List<Character> targets)
|
public override void OnSkillCasting(Character caster, List<Character> targets)
|
||||||
|
@ -39,17 +39,18 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
|||||||
Skill.IsInEffect = false;
|
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<Effect, double> totalDamageBonus)
|
||||||
{
|
{
|
||||||
if (character == Skill.Character && isMagicDamage)
|
if (character == Skill.Character && isMagicDamage)
|
||||||
{
|
{
|
||||||
double 实际伤害提升百分比 = 伤害提升;
|
double 实际伤害提升百分比 = 伤害提升;
|
||||||
double 实际伤害提升 = damage * 实际伤害提升百分比;
|
double 实际伤害提升 = damage * 实际伤害提升百分比;
|
||||||
damage += 实际伤害提升;
|
|
||||||
WriteLine($"[ {character} ] 发动了变幻之心!伤害提升了 {实际伤害提升:0.##} 点!");
|
WriteLine($"[ {character} ] 发动了变幻之心!伤害提升了 {实际伤害提升:0.##} 点!");
|
||||||
character.Effects.Remove(this);
|
character.Effects.Remove(this);
|
||||||
OnEffectLost(character);
|
OnEffectLost(character);
|
||||||
|
return 实际伤害提升;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
||||||
|
@ -58,14 +58,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
|||||||
return 系数 * damage;
|
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<Effect, double> totalDamageBonus)
|
||||||
{
|
{
|
||||||
if (character == Skill.Character)
|
if (character == Skill.Character)
|
||||||
{
|
{
|
||||||
这次的伤害加成 = 伤害加成(damage);
|
这次的伤害加成 = 伤害加成(damage);
|
||||||
damage += 这次的伤害加成;
|
|
||||||
WriteLine($"[ {character} ] 发动了玻璃大炮,获得了 {这次的伤害加成:0.##} 点伤害加成!");
|
WriteLine($"[ {character} ] 发动了玻璃大炮,获得了 {这次的伤害加成:0.##} 点伤害加成!");
|
||||||
累计受到的伤害 = 0;
|
累计受到的伤害 = 0;
|
||||||
|
return 这次的伤害加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enemy == Skill.Character)
|
if (enemy == Skill.Character)
|
||||||
@ -76,11 +76,13 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
|||||||
// 额外受到伤害
|
// 额外受到伤害
|
||||||
double 系数 = (Random.Shared.Next(高于30额外伤害下限, 高于30额外伤害上限) + 0.0) / 100;
|
double 系数 = (Random.Shared.Next(高于30额外伤害下限, 高于30额外伤害上限) + 0.0) / 100;
|
||||||
这次受到的额外伤害 = damage * 系数;
|
这次受到的额外伤害 = damage * 系数;
|
||||||
damage += 这次受到的额外伤害;
|
|
||||||
WriteLine($"[ {enemy} ] 的玻璃大炮触发,将额外受到 {这次受到的额外伤害:0.##} 点伤害!");
|
WriteLine($"[ {enemy} ] 的玻璃大炮触发,将额外受到 {这次受到的额外伤害:0.##} 点伤害!");
|
||||||
}
|
}
|
||||||
else 这次受到的额外伤害 = 0;
|
else 这次受到的额外伤害 = 0;
|
||||||
|
return 这次受到的额外伤害;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
||||||
|
@ -54,12 +54,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
|||||||
实际魔法抗性 = 0;
|
实际魔法抗性 = 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<Effect, double> totalDamageBonus)
|
||||||
{
|
{
|
||||||
if (character == Skill.Character && isNormalAttack)
|
if (character == Skill.Character && isNormalAttack)
|
||||||
{
|
{
|
||||||
damage += 智力加成;
|
WriteLine($"[ {character} ] 发动了迅捷之势!伤害提升了 {智力加成:0.##} 点!");
|
||||||
|
return 智力加成;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void AlterHardnessTimeAfterNormalAttack(Character character, ref double baseHardnessTime, ref bool isCheckProtected)
|
public override void AlterHardnessTimeAfterNormalAttack(Character character, ref double baseHardnessTime, ref bool isCheckProtected)
|
||||||
|
@ -26,13 +26,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
|||||||
public override string Name => Skill.Name;
|
public override string Name => Skill.Name;
|
||||||
public override string Description => $"优先攻击血量更低的角色,对生命值百分比低于自己的角色造成 150% 伤害。";
|
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<Effect, double> totalDamageBonus)
|
||||||
{
|
{
|
||||||
if (character == Skill.Character && (enemy.HP / enemy.MaxHP) <= (character.HP / character.MaxHP))
|
if (character == Skill.Character && (enemy.HP / enemy.MaxHP) <= (character.HP / character.MaxHP))
|
||||||
{
|
{
|
||||||
double 额外伤害 = damage * 0.5;
|
double 额外伤害 = damage * 0.5;
|
||||||
damage += 额外伤害;
|
return 额外伤害;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool AlterEnemyListBeforeAction(Character character, List<Character> enemys, List<Character> teammates, List<Skill> skills, Dictionary<Character, int> continuousKilling, Dictionary<Character, int> earnedMoney)
|
public override bool AlterEnemyListBeforeAction(Character character, List<Character> enemys, List<Character> teammates, List<Skill> skills, Dictionary<Character, int> continuousKilling, Dictionary<Character, int> earnedMoney)
|
||||||
|
@ -63,12 +63,13 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
|||||||
return CharacterActionType.None;
|
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<Effect, double> totalDamageBonus)
|
||||||
{
|
{
|
||||||
if (character == Skill.Character && isNormalAttack)
|
if (character == Skill.Character && isNormalAttack)
|
||||||
{
|
{
|
||||||
damage += 伤害加成;
|
return 伤害加成;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void AlterHardnessTimeAfterNormalAttack(Character character, ref double baseHardnessTime, ref bool isCheckProtected)
|
public override void AlterHardnessTimeAfterNormalAttack(Character character, ref double baseHardnessTime, ref bool isCheckProtected)
|
||||||
|
@ -42,13 +42,13 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
|||||||
character.NormalAttack.SetMagicType(false, character.MagicType);
|
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<Effect, double> totalDamageBonus)
|
||||||
{
|
{
|
||||||
if (enemy == Skill.Character)
|
if (enemy == Skill.Character)
|
||||||
{
|
{
|
||||||
damage *= 1 - 实际比例;
|
return damage * (1 - 实际比例);
|
||||||
}
|
}
|
||||||
return false;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
||||||
|
@ -55,7 +55,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
|||||||
character.ExCritRate -= 0.08;
|
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<Effect, double> totalDamageBonus)
|
||||||
{
|
{
|
||||||
if (character == Skill.Character && 首次伤害)
|
if (character == Skill.Character && 首次伤害)
|
||||||
{
|
{
|
||||||
@ -64,10 +64,10 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
|||||||
character.CharacterEffectTypes.Remove(this);
|
character.CharacterEffectTypes.Remove(this);
|
||||||
character.UpdateCharacterState();
|
character.UpdateCharacterState();
|
||||||
double d = 伤害加成;
|
double d = 伤害加成;
|
||||||
damage += d;
|
|
||||||
WriteLine($"[ {character} ] 触发了疾风步破隐一击,获得了 [ {d:0.##} ] 点伤害加成!");
|
WriteLine($"[ {character} ] 触发了疾风步破隐一击,获得了 [ {d:0.##} ] 点伤害加成!");
|
||||||
|
return d;
|
||||||
}
|
}
|
||||||
return false;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user