技能修改

This commit is contained in:
milimoe 2026-01-13 01:31:06 +08:00
parent 77dd1a4720
commit 6dfa7ccb4a
Signed by: milimoe
GPG Key ID: 9554D37E4B8991D0
7 changed files with 37 additions and 32 deletions

View File

@ -39,10 +39,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override MagicType MagicType => Skill.Character?.MagicType ?? MagicType.None;
public override ImmuneType IgnoreImmune => ImmuneType.All;
public string => $"对受到标记的目标造成伤害,有 {概率 * 100:0.##}% 概率产生爆炸,爆炸将产生 {分裂伤害系数 * 100:0.##}% 分裂伤害。分裂伤害为全图索敌,会优先分裂至两个在持续时间内对{Skill.SkillOwner()}造成伤害最多的敌人,若没有符合条件的敌人或敌人数量不足,则将分裂至至多两个随机的敌人。";
public string => $"对受到标记的目标造成伤害时将产生爆炸,爆炸将产生 {分裂伤害系数 * 100:0.##}% 分裂伤害。分裂伤害为全图索敌,会优先分裂至两个在持续时间内对{Skill.SkillOwner()}造成伤害最多的敌人,若没有符合条件的敌人或敌人数量不足,则将分裂至被标记的敌人,或至多两个随机的敌人。";
public double => 180 + 240 * (Skill.Level - 1);
public double => 25 + 2 * (Skill.Level - 1);
public double => 0.3 + 0.08 * (Skill.Level - 1);
public double => 0.4 + 0.07 * (Skill.Level - 1);
public double => 0.6 * (Skill.Character?.BaseSTR ?? 0);
public Dictionary<Character, double> { get; set; } = [];
@ -80,10 +79,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
if (character == Skill.Character && (damageResult == DamageResult.Normal || damageResult == DamageResult.Critical) && enemy.Effects.FirstOrDefault(e => e is ) is e)
{
if (Random.Shared.NextDouble() < )
{
(character, enemy, actualDamage, damageType, magicType);
}
(character, enemy, actualDamage, damageType, magicType);
}
}
@ -128,7 +124,12 @@ namespace Oshima.FunGame.OshimaModules.Skills
if (GamingQueue != null)
{
allEnemys = [.. GamingQueue.GetEnemies(character).Where(c => c != character && c != enemy && !targets.Contains(c) && c.HP > 0)];
targets.AddRange(allEnemys.OrderBy(o => Random.Shared.Next()).Take(count));
targets.AddRange(allEnemys.Where(c => c.Effects.Any(e => e is )).Take(count));
if (targets.Count < 2)
{
count = 2 - targets.Count;
targets.AddRange(allEnemys.OrderBy(o => Random.Shared.Next()).Take(count));
}
}
}
damage *= ;

View File

@ -33,21 +33,22 @@ namespace Oshima.FunGame.OshimaModules.Skills
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"最大生命值减少 20%。破釜沉舟:生命值高于 40% 时,受到额外的 [ {高于40额外伤害下限}{高于40额外伤害上限}% ] 伤害,获得 [ 累计所受伤害的 {高于40的加成下限}{高于40的加成上限}% ] 伤害加成;生命值低于等于 40% 时,不会受到额外的伤害,并且获得 [ 累计受到的伤害 {低于40的加成下限}{低于40的加成上限}% ] 的伤害加成。" +
$"在没有受到任何伤害的时候,将获得 {常规伤害加成 * 100:0.##}% 伤害加成。通过累计受到伤害发动破釜沉舟时,目标的闪避检定获得 40% 的减值。" + ( > 0 ? $"(当前累计受到伤害:{累计受到的伤害:0.##}" : "");
public override string Description => $"{Skill.SkillOwner()}已经看透了生命的真谛。{Skill.SkillOwner()}的最大生命值减少 20%,并获得破釜沉舟特效。破釜沉舟:生命值高于 40% 时,受到额外的 [ {高于40额外伤害下限}{高于40额外伤害上限}% ] 伤害,获得 [ 累计所受伤害的 {高于40的加成下限}{高于40的加成上限}% ] 伤害加成;生命值低于等于 40% 时,不会受到额外的伤害,并且获得 [ 累计受到的伤害 {低于40的加成下限}{低于40的加成上限}% ] 的伤害加成。" +
$"在没有累计任何受到伤害的时候,将获得 {常规伤害加成 * 100:0.##}% 伤害加成和 {常规生命偷取 * 100:0.##}% 生命偷取。通过累计受到伤害发动破釜沉舟时,目标的闪避检定获得 40% 的减值,并立即清除累计受到的伤害。" + ( > 0 ? $"(当前累计受到伤害:{累计受到的伤害:0.##}" : "");
private bool = false;
private double = 0;
private double = 0;
private double HP = 0;
private double = 0;
private readonly double = 0.35;
private readonly double = 0.4;
private readonly double = 0.2;
private readonly int 40 = 40;
private readonly int 40 = 15;
private readonly int 40 = 80;
private readonly int 40 = 50;
private readonly int 40 = 120;
private readonly int 40 = 90;
private readonly int 40 = 20;
private readonly int 40 = 90;
private readonly int 40 = 60;
private readonly int 40 = 160;
private readonly int 40 = 120;
private double (double damage)
{
@ -75,7 +76,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
= != 0;
= (damage);
WriteLine($"[ {character} ] 发动了破釜沉舟,获得了 {这次的伤害加成:0.##} 点伤害加成!");
= 0;
return ;
}
@ -107,6 +107,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
WriteLine($"[ {enemy} ] 的破釜沉舟触发,保护了自己不进入死亡!!");
}
}
if (character == Skill.Character && )
{
= 0;
double ls = actualDamage * ;
HealToTarget(character, character, ls, triggerEffects: false);
WriteLine($"[ {character} ] 发动了破釜沉舟,回复了 {ls:0.##} 点生命值!");
}
}
public override bool BeforeEvadeCheck(Character actor, Character enemy, ref double throwingBonus)

View File

@ -169,7 +169,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{
Effect e = new (Skill, caster, caster, true, Duration, 0)
{
DispelledType = DispelledType.CannotBeDispelled
DispelledType = DispelledType.Strong
};
if (enemy.AGI <= caster.AGI || (enemy.AGI > caster.AGI && !CheckExemption(caster, enemy, e)))
{

View File

@ -53,17 +53,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
}
if ()
{
WriteLine($"[ {character} ] 发动了归元环!冷却时间减少了 {归元环特效.冷却时间减少:0.##} {GameplayEquilibriumConstant.InGameTime}");
WriteLine($"[ {character} ] 发动了归元环!冷却时间减少了 20%");
foreach (Skill s in c.Skills)
{
if (s.CurrentCD >= .)
s.CurrentCD -= s.CD * .;
if (s.CurrentCD < 0)
{
s.CurrentCD -= .;
if (s.CurrentCD < 0)
{
s.CurrentCD = 0;
s.Enable = true;
}
s.CurrentCD = 0;
s.Enable = true;
}
}
}

View File

@ -26,13 +26,12 @@ namespace Oshima.FunGame.OshimaModules.Skills
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"{Duration:0.##} {GameplayEquilibriumConstant.InGameTime}内,造成伤害必定暴击;使 [ 八卦阵 ] 不需要检定,直接产生偶数效果;并减少所有当前冷却时间高于 {冷却时间阈值:0.##} {GameplayEquilibriumConstant.InGameTime}的主动技能 {冷却时间减少:0.##} {GameplayEquilibriumConstant.InGameTime}冷却时间。";
public override string Description => $"{Duration:0.##} {GameplayEquilibriumConstant.InGameTime}内,造成伤害必定暴击;使 [ 八卦阵 ] 不需要检定,直接产生偶数效果;并且每次触发偶数效果时,减少所有主动技能 {冷却时间减少 * 100:0.##}% 冷却时间。";
public override bool Durative => true;
public override double Duration => 30;
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
public const double = 6;
public const double = 3;
public const double = 0.2;
public override void OnEffectGained(Character character)
{

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override string DispelDescription => Effects.Count > 0 ? Effects.First().DispelDescription : "";
public override double EPCost => 100;
public override double CD => 50;
public override double CD => 65;
public override double HardnessTime { get; set; } = 3;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
@ -31,7 +31,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double Duration => 30;
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
private double => 0.15 + 0.04 * (Level - 1);
private double => 0.15 + 0.02 * (Level - 1);
private double = 0;
public override void OnEffectGained(Character character)

View File

@ -25,8 +25,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对一半以下生命值的目标造成伤害时,将收集其灵魂以永久提升自身伤害,每个灵魂提供 {额外伤害提升 * 100:0.##}% 伤害加成。最多收集 {最多灵魂数量} 个灵魂。" +
$"若自身死亡,灵魂将损失一半。(当前灵魂数量:{当前灵魂数量} 个;伤害提升:{当前灵魂数量 * 额外伤害提升 * 100:0.##}%";
public override string Description => $"{Skill.SkillOwner()}对一半以下生命值的目标造成伤害时,将收集其灵魂以永久提升自身伤害,每个灵魂提供 {额外伤害提升 * 100:0.##}% 伤害加成。最多收集 {最多灵魂数量} 个灵魂。" +
$"若{Skill.SkillOwner()}死亡,灵魂将损失一半。(当前灵魂数量:{当前灵魂数量} 个;伤害提升:{当前灵魂数量 * 额外伤害提升 * 100:0.##}%";
private static double => 0.02;
private int { get; set; } = 0;