技能适配新架构

This commit is contained in:
milimoe 2025-04-25 21:37:31 +08:00
parent dc33c72289
commit 9a8ab0ce65
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
59 changed files with 91 additions and 59 deletions

View File

@ -9,7 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
public override long Id => (long)EffectID.GetEP;
public override string Name => "立即获得能量值";
public override string Description => $"角色立即获得 {实际获得:0.##} 点能量值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
private readonly double = 0;

View File

@ -9,7 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
public override long Id => (long)EffectID.GetEXP;
public override string Name => "立即获得经验值";
public override string Description => $"角色立即获得 {实际获得:0.##} 点经验值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
private readonly double = 0;

View File

@ -9,7 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
public override long Id => (long)EffectID.RecoverHP;
public override string Name => "立即回复生命值";
public override string Description => $"立即回复角色 {实际回复:0.##} 点生命值(不可用于复活)。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
private readonly double = 0;

View File

@ -9,7 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
public override long Id => (long)EffectID.RecoverHP2;
public override string Name => "立即回复生命值";
public override string Description => $"立即回复角色 {回复比例 * 100:0.##}% [ {实际回复:0.##} ] 点生命值(不可用于复活)。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
private double => * (Skill.Character?.MaxHP ?? 0);
private readonly double = 0;

View File

@ -9,7 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
public override long Id => (long)EffectID.RecoverMP;
public override string Name => "立即回复魔法值";
public override string Description => $"立即回复角色 {实际回复:0.##} 点魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
private readonly double = 0;

View File

@ -9,7 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
public override long Id => (long)EffectID.RecoverMP2;
public override string Name => "立即回复魔法值";
public override string Description => $"立即回复角色 {回复比例 * 100:0.##}% [ {实际回复:0.##} ] 点魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
private double => * (Skill.Character?.MaxMP ?? 0);
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.AccelerationCoefficient;
public override string Name => "加速系数加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成) * 100:0.##}% 加速系数。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.DynamicsEffect;
public override string Name { get; set; } = "动态扩展特效";
public override string Description => string.Join("", Descriptions) + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public HashSet<string> Descriptions { get; } = [];
public Dictionary<string, double> RealDynamicsValues { get; } = [];

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExAGI;
public override string Name => "敏捷加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成):0.##} 点敏捷。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExAGI2;
public override string Name => "敏捷加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点敏捷。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExATK;
public override string Name => "攻击力加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成):0.##} 点攻击力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExATK2;
public override string Name => "攻击力加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点攻击力。" + (Source != null && Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExActionCoefficient;
public override string Name => "行动系数加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成) * 100:0.##}% 行动系数。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExCDR;
public override string Name => "冷却缩减加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成) * 100:0.##}% 冷却缩减。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExCritDMG;
public override string Name => "暴击伤害加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成) * 100:0.##}% 暴击伤害。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExCritRate;
public override string Name => "暴击率加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成) * 100:0.##}% 暴击率。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExDEF;
public override string Name => "物理护甲加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成):0.##} 点物理护甲。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExDEF2;
public override string Name => "物理护甲加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {实际加成:0.##} ] 点物理护甲。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExEvadeRate;
public override string Name => "闪避率加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成) * 100:0.##}% 闪避率。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExHR;
public override string Name => "生命回复加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成):0.##} 点生命回复。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExINT;
public override string Name => "智力加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成):0.##} 点智力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExINT2;
public override string Name => "智力加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点智力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExMDF;
public override string Name => "魔法抗性加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成) * 100:0.##}% {CharacterSet.GetMagicResistanceName(魔法类型)}。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExMR;
public override string Name => "魔法回复加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成):0.##} 点魔法回复。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExMaxHP;
public override string Name => "最大生命值加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成):0.##} 点最大生命值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExMaxHP2;
public override string Name => "最大生命值加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点最大生命值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExMaxMP;
public override string Name => "最大魔法值加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成):0.##} 点最大魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExMaxMP2;
public override string Name => "最大魔法值加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点最大魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExPDR;
public override string Name => "物理伤害减免加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成) * 100:0.##}% 物理伤害减免。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExSPD;
public override string Name => "行动速度加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成):0.##} 点行动速度。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExSTR;
public override string Name => "力量加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成):0.##} 点力量。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.ExSTR2;
public override string Name => "力量加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {Math.Abs(实际加成):0.##} ] 点力量。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.IgnoreEvade;
public override string Name => "无视闪避";
public override string Description => $"普通攻击有 {概率 * 100:0.##}% 概率无视闪避。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.MagicalPenetration;
public override string Name => "魔法穿透加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成) * 100:0.##}% 魔法穿透。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.NormalAttackHardTimeReduce;
public override string Name => Skill.Name;
public override string Description => $"减少角色的普通攻击 {实际硬直时间减少:0.##} {GameplayEquilibriumConstant.InGameTime}硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.NormalAttackHardTimeReduce2;
public override string Name => Skill.Name;
public override string Description => $"减少角色的普通攻击 {减少比例 * 100:0.##}% 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.PhysicalPenetration;
public override string Name => "物理穿透加成";
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(实际加成) * 100:0.##}% 物理穿透。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
public double Value => ;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.SkillHardTimeReduce;
public override string Name => Skill.Name;
public override string Description => $"减少角色的所有主动技能 {实际硬直时间减少:0.##} {GameplayEquilibriumConstant.InGameTime}硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
private readonly double = 0;

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override long Id => (long)EffectID.SkillHardTimeReduce2;
public override string Name => Skill.Name;
public override string Description => $"减少角色的所有主动技能 {减少比例 * 100:0.##}% 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override EffectType EffectType { get; set; } = EffectType.Item;
private readonly double = 0;

View File

@ -9,7 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override string Name => "封技";
public override string Description => $"此角色被封技了,不能使用技能(魔法、战技和爆发技)。来自:[ {Source} ] 的 [ {Skill.Name} ]";
public override EffectType EffectType => EffectType.Silence;
public override DispelledType DispelledType => DispelledType.Strong;
public override DispelledType DispelledType => DispelledType.Weak;
public override Character Source => _sourceCharacter;
public override bool Durative => _durative;
public override double Duration => _duration;

View File

@ -9,6 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override string Name => "累积之压标记";
public override string Description => $"此角色持有累积之压标记。来自:[ {Source} ]";
public override EffectType EffectType => EffectType.Mark;
public override bool DurativeWithoutDuration => true;
public override Character Source => _sourceCharacter;
private readonly Character _sourceCharacter;

View File

@ -1,4 +1,5 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
@ -43,7 +44,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
};
target.Effects.Add(e);
e.OnEffectGained(target);
GamingQueue?.LastRound.Effects.TryAdd(target, e.EffectType);
e.EffectType = EffectType.Haste;
GamingQueue?.LastRound.Effects.TryAdd(target, [e.EffectType]);
}
}
}

View File

@ -35,7 +35,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
e = new(Skill, caster, false, 0, 1);
enemy.Effects.Add(e);
e.OnEffectGained(enemy);
GamingQueue?.LastRound.Effects.TryAdd(enemy, e.EffectType);
GamingQueue?.LastRound.Effects.TryAdd(enemy, [e.EffectType]);
}
}
}

View File

@ -32,10 +32,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
foreach (Character enemy in targets)
{
WriteLine($"[ {caster} ] 眩晕了 [ {enemy} ] !持续时间:{眩晕时间}");
e = new(Skill, caster, false, 0, 1);
e = new(Skill, caster, _durative, _duration, _durationTurn);
enemy.Effects.Add(e);
e.OnEffectGained(enemy);
GamingQueue?.LastRound.Effects.TryAdd(enemy, e.EffectType);
GamingQueue?.LastRound.Effects.TryAdd(enemy, [e.EffectType]);
}
}
}

View File

@ -1,4 +1,5 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
@ -43,7 +44,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
};
target.Effects.Add(e);
e.OnEffectGained(target);
GamingQueue?.LastRound.Effects.TryAdd(target, e.EffectType);
e.EffectType = EffectType.Slow;
GamingQueue?.LastRound.Effects.TryAdd(target, [e.EffectType]);
}
}
}

View File

@ -1,6 +1,5 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.PassiveEffects;
namespace Oshima.FunGame.OshimaModules.Skills
{
@ -9,6 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)SuperSkillID.;
public override string Name => "嗜血本能";
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 => 45;
public override double HardnessTime { get; set; } = 5;
@ -28,12 +28,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => $"{Duration} {GameplayEquilibriumConstant.InGameTime}内,攻击拥有标记的角色将不会回收标记,增强 {最大生命值伤害 * 100:0.##}% 最大生命值伤害,并获得 {吸血 * 100:0.##}% 吸血。";
public override bool Durative => true;
public override double Duration => 25;
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
private static double => 0.2;
private double => 0.015 * Level;
public override void OnEffectGained(Character character)
{
character.Lifesteal += ;
if (character.Effects.Where(e => e is ).FirstOrDefault() is e)
{
e. += ;
@ -42,21 +44,13 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override void OnEffectLost(Character character)
{
character.Lifesteal -= ;
if (character.Effects.Where(e => e is ).FirstOrDefault() is e)
{
e. -= ;
}
}
public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
{
if (character == Skill.Character && damageResult != DamageResult.Evaded && character.HP < character.MaxHP)
{
double = * damage;
HealToTarget(character, character, );
}
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
RemainDuration = Duration;
@ -65,6 +59,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
caster.Effects.Add(this);
OnEffectGained(caster);
}
GamingQueue?.LastRound.Effects.TryAdd(caster, [EffectType.DamageBoost, EffectType.Lifesteal]);
}
}
}

View File

@ -27,7 +27,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"造成伤害时会标记目标,攻击具有标记的敌人将对其造成眩晕 1 回合,并回收标记,额外对该角色造成 {系数 * 100:0.##}% 最大生命值的物理伤害。";
public override string DispelDescription => "可驱散性:眩晕需强驱散";
public override string DispelDescription => "被驱散性:眩晕需强驱散,标记可弱驱散";
public double { get; set; } = 0.12;
private bool = false;

View File

@ -72,6 +72,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
caster.Effects.Add(this);
OnEffectGained(caster);
}
GamingQueue?.LastRound.Effects.TryAdd(caster, [EffectType.Invulnerable]);
}
}
}

View File

@ -8,6 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)SuperSkillID.;
public override string Name => "精准打击";
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 => 40 - 1 * (Level - 1);
public override double HardnessTime { get; set; } = 8;
@ -27,6 +28,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => $"30 {GameplayEquilibriumConstant.InGameTime}内暴击率提升 {暴击率提升 * 100:0.##}%,暴击伤害提升 {暴击伤害提升 * 100:0.##}%,物理穿透提升 {物理穿透提升 * 100:0.##}%。";
public override bool Durative => true;
public override double Duration => 30;
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
private double => 0.2 + 0.03 * (Level - 1);
private double => 0.8 + 0.04 * (Level - 1);
@ -64,6 +66,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
caster.Effects.Add(this);
OnEffectGained(caster);
}
GamingQueue?.LastRound.Effects.TryAdd(caster, [EffectType.CritBoost, EffectType.PenetrationBoost]);
}
}
}

View File

@ -8,6 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)SuperSkillID.;
public override string Name => "三重叠加";
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 => 35 - 2 * (Level - 1);
public override double HardnessTime { get; set; } = 0;
@ -26,6 +27,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "三重叠加";
public override string Description => $"使 [ 灵能反射 ] 支持普通攻击,且当前释放魔法次数归零,最大硬直消除次数提高到 {灵能反射次数} 次;在魔法命中和普通攻击命中时能够回复所回复能量值的 10 倍魔法值,持续 {技能持续次数} 次(灵能反射每消除次数达到最大时算一次)。" +
$"(剩余:{剩余持续次数} 次)";
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
public int { get; set; } = 0;
private readonly int = 3;
@ -60,6 +62,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
caster.Effects.Add(this);
OnEffectGained(caster);
}
GamingQueue?.LastRound.Effects.TryAdd(caster, [EffectType.MPRegen, EffectType.Haste]);
}
}
}

View File

@ -9,6 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)SuperSkillID.;
public override string Name => "变幻之心";
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 => 20;
public override double HardnessTime { get; set; } = 3;
@ -26,6 +27,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => Skill.Id;
public override string Name => "变幻之心";
public override string Description => $"检查 [ 智慧与力量 ] 的模式。在力量模式下,立即回复 {生命值回复 * 100:0.##}% 生命值;智力模式下,下一次魔法伤害提升 {伤害提升 * 100:0.##}%。";
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
private double => 0.25 + 0.03 * (Level - 1);
private double => 0.6 + 0.4 * (Level - 1);
@ -71,6 +73,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
caster.Effects.Add(this);
OnEffectGained(caster);
}
GamingQueue?.LastRound.Effects.TryAdd(caster, [EffectType.DamageBoost]);
}
}
}

View File

@ -8,6 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)SuperSkillID.;
public override string Name => "力量爆发";
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 => 55;
public override double HardnessTime { get; set; } = 0;
@ -27,6 +28,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => $"获得 135% 力量 [ {攻击力加成:0.##} ] 的攻击力加成,但每次攻击都会损失 9% 当前生命值 [ {当前生命值:0.##} ],持续 {Duration:0.##} {GameplayEquilibriumConstant.InGameTime}。";
public override bool Durative => true;
public override double Duration => 10 + 1 * (Level - 1);
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
private double => Skill.Character?.STR * 1.35 ?? 0;
private double => Skill.Character?.HP * 0.09 ?? 0;
@ -64,6 +66,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
caster.Effects.Add(this);
OnEffectGained(caster);
}
GamingQueue?.LastRound.Effects.TryAdd(caster, [EffectType.DamageBoost]);
}
}
}

View File

@ -8,6 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)SuperSkillID.;
public override string Name => "迅捷之势";
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 => 60 - 2 * (Level - 1);
public override double HardnessTime { get; set; } = 15;
@ -27,6 +28,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => $"{Duration:0.##} {GameplayEquilibriumConstant.InGameTime}内,提升自身 25% 物理伤害减免和魔法抗性,普通攻击转为魔法伤害,且硬直时间减少 30%,并基于 {智力系数 * 100:0.##}% 智力 [ {智力加成:0.##} ] 强化普通攻击伤害。";
public override bool Durative => true;
public override double Duration => 40;
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
private double => 1.4 + 0.4 * (Level - 1);
private double => * Skill.Character?.INT ?? 0;
@ -77,6 +79,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
caster.Effects.Add(this);
OnEffectGained(caster);
}
GamingQueue?.LastRound.Effects.TryAdd(caster, [EffectType.DamageBoost, EffectType.Haste, EffectType.DefenseBoost]);
}
}
}

View File

@ -8,6 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)SuperSkillID.;
public override string Name => "血之狂欢";
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 => 45;
public override double HardnessTime { get; set; } = 7;
@ -27,6 +28,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => $"获得 40% 吸血,持续 {Duration:0.##} {GameplayEquilibriumConstant.InGameTime}。";
public override bool Durative => true;
public override double Duration => 30;
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
{
@ -45,6 +47,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
caster.Effects.Add(this);
OnEffectGained(caster);
}
GamingQueue?.LastRound.Effects.TryAdd(caster, [EffectType.Lifesteal]);
}
}
}

View File

@ -8,6 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)SuperSkillID.;
public override string Name => "天赐之力";
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 => 60;
public override double HardnessTime { get; set; } = 15;
@ -27,6 +28,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => $"{Duration:0.##} {GameplayEquilibriumConstant.InGameTime}内,增加 40% 攻击力 [ {攻击力提升:0.##} ]、30% 物理穿透和 25% 闪避率(不可叠加),普通攻击硬直时间额外减少 20%,基于 {系数 * 100:0.##}% 敏捷 [ {伤害加成:0.##} ] 强化普通攻击的伤害。在持续时间内,【心灵之火】的冷却时间降低至 3 {GameplayEquilibriumConstant.InGameTime}。";
public override bool Durative => true;
public override double Duration => 40;
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
private double => 1.2 * (1 + 0.6 * (Skill.Level - 1));
private double => * Skill.Character?.AGI ?? 0;
@ -85,6 +87,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
caster.Effects.Add(this);
OnEffectGained(caster);
}
GamingQueue?.LastRound.Effects.TryAdd(caster, [EffectType.DamageBoost, EffectType.PenetrationBoost]);
}
}
}

View File

@ -8,6 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)SuperSkillID.;
public override string Name => "魔法涌流";
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 => 35;
public override double HardnessTime { get; set; } = 3;
@ -27,6 +28,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => $"{Duration:0.##} {GameplayEquilibriumConstant.InGameTime}内,增加自身所有伤害的 {减伤比例 * 100:0.##}% 伤害减免;【魔法震荡】的冷却时间降低至 5 {GameplayEquilibriumConstant.InGameTime},并将普通攻击转为魔法伤害,允许普通攻击时选择至多 3 个目标。";
public override bool Durative => true;
public override double Duration => 30;
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
private double => 0.15 + 0.04 * (Level - 1);
private double = 0;
@ -71,6 +73,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
caster.Effects.Add(this);
OnEffectGained(caster);
}
GamingQueue?.LastRound.Effects.TryAdd(caster, [EffectType.DefenseBoost]);
}
}
}

View File

@ -28,7 +28,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => Skill.Name;
public override string Description => $"对处于完全行动不能、行动受限、战斗不能、技能受限、攻击受限状态的敌人额外造成 {系数 * 100:0.##}% 力量 [ {伤害加成:0.##} ] 点伤害;造成魔法伤害时使敌人眩晕 1 回合,冷却 {基础冷却时间:0.##} {GameplayEquilibriumConstant.InGameTime}。" +
( > 0 ? $"(正在冷却:剩余 {冷却时间:0.##} {GameplayEquilibriumConstant.InGameTime}" : "");
public override string DispelDescription => "驱散性:眩晕需强驱散";
public override string DispelDescription => "驱散性:眩晕需强驱散";
public double { get; set; } = 0;
public double { get; set; } = 10;
private static double => 4;

View File

@ -8,6 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)SuperSkillID.;
public override string Name => "平衡强化";
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 => 55 - (1 * (Level - 1));
public override double HardnessTime { get; set; } = 12;
@ -27,6 +28,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => $"敏捷提高 20%,然后将目前的力量补充到与敏捷持平,持续 {Duration:0.##} {GameplayEquilibriumConstant.InGameTime}。";
public override bool Durative => true;
public override double Duration => 30;
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
private double = 0;
private double = 0;
@ -66,6 +68,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
caster.Effects.Add(this);
OnEffectGained(caster);
}
GamingQueue?.LastRound.Effects.TryAdd(caster, [EffectType.DamageBoost, EffectType.Lifesteal]);
}
}
}

View File

@ -27,6 +27,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => Skill.Name;
public override string Description => $"进入不可选中状态,获得 100 行动速度,提高 8% 暴击率,持续 {Duration:0.##} {GameplayEquilibriumConstant.InGameTime}。破隐一击:在持续时间内,首次造成伤害会附加 {系数 * 100:0.##}% 敏捷 [ {伤害加成:0.##} ] 的强化伤害,并解除不可选中状态。";
public override string DispelDescription => "不可选中状态生效期间,此技能不可驱散,否则可弱驱散";
public override EffectType EffectType => EffectType.Unselectable;
public override bool Durative => true;
public override double Duration => 12 + (1 * (Level - 1));
@ -37,8 +38,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override void OnEffectGained(Character character)
{
DispelledType = DispelledType.CannotBeDispelled;
Skill.IsInEffect = true;
AddEffectTypeToCharacter(character, [EffectType.Unselectable]);
AddEffectTypeToCharacter(character, [EffectType]);
character.ExSPD += 100;
character.ExCritRate += 0.08;
GamingQueue?.InterruptCastingAsync(character);
@ -51,6 +53,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{
// 在没有打出破隐一击的情况下,恢复角色状态
RemoveEffectTypesFromCharacter(character);
DispelledType = DispelledType.Weak;
}
character.ExSPD -= 100;
character.ExCritRate -= 0.08;
@ -65,6 +68,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
RemoveEffectTypesFromCharacter(character);
double d = ;
WriteLine($"[ {character} ] 触发了疾风步破隐一击,获得了 [ {d:0.##} ] 点伤害加成!");
DispelledType = DispelledType.Weak;
return d;
}
return 0;
@ -74,7 +78,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{
if (!caster.Effects.Contains(this))
{
GamingQueue?.LastRound.Effects.Add(caster, EffectType.Unselectable);
GamingQueue?.LastRound.Effects.Add(caster, [EffectType]);
= true;
= false;
RemainDuration = Duration;