技能修改

This commit is contained in:
milimoe 2025-04-16 01:24:48 +08:00
parent 2438bcd5b6
commit 37a8a989c9
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
31 changed files with 267 additions and 106 deletions

View File

@ -1,4 +1,5 @@
using Milimoe.FunGame.Core.Library.Common.Addon; using Milimoe.FunGame.Core.Library.Common.Addon;
using Milimoe.FunGame.Core.Model;
namespace Oshima.Core.Constant namespace Oshima.Core.Constant
{ {
@ -23,5 +24,10 @@ namespace Oshima.Core.Constant
private static readonly string[] Skills = [Skill]; private static readonly string[] Skills = [Skill];
private static readonly string[] Items = [Item]; private static readonly string[] Items = [Item];
public static GameModuleDepend GameModuleDepend { get; } = new(Maps, Characters, Skills, Items); public static GameModuleDepend GameModuleDepend { get; } = new(Maps, Characters, Skills, Items);
public static EquilibriumConstant GameplayEquilibriumConstant { get; } = new()
{
InGameTime = "秒"
};
} }
} }

View File

@ -170,6 +170,11 @@
/// </summary> /// </summary>
DynamicsEffect = 8032, DynamicsEffect = 8032,
/// <summary>
/// 无视闪避率参数p
/// </summary>
IgnoreEvade = 8033,
/// <summary> /// <summary>
/// 被动特效终点 /// 被动特效终点
/// </summary> /// </summary>

View File

@ -142,7 +142,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
} }
} }
RealDynamicsValues["shtr"] = shtr; RealDynamicsValues["shtr"] = shtr;
Descriptions.Add($"减少角色的所有主动技能 {shtr:0.##} 硬直时间。"); Descriptions.Add($"减少角色的所有主动技能 {shtr:0.##} {GameplayEquilibriumConstant.InGameTime}硬直时间。");
} }
break; break;
case "nahtr": case "nahtr":
@ -157,7 +157,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.NormalAttack.HardnessTime += nahtr; character.NormalAttack.HardnessTime += nahtr;
} }
RealDynamicsValues["nahtr"] = nahtr; RealDynamicsValues["nahtr"] = nahtr;
Descriptions.Add($"减少角色的普通攻击 {nahtr:0.##} 硬直时间。"); Descriptions.Add($"减少角色的普通攻击 {nahtr:0.##} {GameplayEquilibriumConstant.InGameTime}硬直时间。");
} }
break; break;
case "exacc": case "exacc":

View File

@ -0,0 +1,40 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{
public class IgnoreEvade : Effect
{
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 double Value => ;
private readonly double = 0;
public override bool BeforeEvadeCheck(Character actor, Character enemy, ref double throwingBonus)
{
if (actor == Skill.Character)
{
WriteLine($"[ {actor} ] 的普通攻击无视了 [ {enemy} ] 的闪避!");
return false;
}
return true;
}
public IgnoreEvade(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
if (Values.Count > 0)
{
string key = Values.Keys.FirstOrDefault(s => s.Equals("p", StringComparison.CurrentCultureIgnoreCase)) ?? "";
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double p) && p >= 0 && p <= 1)
{
= p;
}
}
}
}
}

View File

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

View File

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

View File

@ -7,10 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
{ {
public override long Id => 4102; public override long Id => 4102;
public override string Name => "累积之压标记"; public override string Name => "累积之压标记";
public override string Description => $"此角色持有累积之压标记,已累计 {MarkLevel} 层。来自:[ {Source} ]"; public override string Description => $"此角色持有累积之压标记。来自:[ {Source} ]";
public override EffectType EffectType => EffectType.Mark; public override EffectType EffectType => EffectType.Mark;
public override Character Source => _sourceCharacter; public override Character Source => _sourceCharacter;
public int MarkLevel { get; set; } = 1;
private readonly Character _sourceCharacter; private readonly Character _sourceCharacter;

View File

@ -12,7 +12,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
private double SPD => Level > 0 ? Math.Abs( + * (Level - 1)) : Math.Abs(); private double SPD => Level > 0 ? Math.Abs( + * (Level - 1)) : Math.Abs();
private double { get; set; } = 65; private double { get; set; } = 65;
private double { get; set; } = 25; private double { get; set; } = 25;
private string => _durative && _duration > 0 ? _duration + " 时间" : (!_durative && _durationTurn > 0 ? _durationTurn + " 回合" : "0 时间"); private string => _durative && _duration > 0 ? _duration + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? _durationTurn + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}");
private readonly bool _durative; private readonly bool _durative;
private readonly double _duration; private readonly double _duration;
private readonly int _durationTurn; private readonly int _durationTurn;
@ -31,7 +31,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
foreach (Character target in targets) foreach (Character target in targets)
{ {
WriteLine($"[ {target} ] 的行动速度提升了 {SPD:0.##} !持续时间:{持续时间}"); WriteLine($"[ {target} ] 的行动速度提升了 {SPD:0.##} !持续时间:{持续时间} {GameplayEquilibriumConstant.InGameTime}");
ExSPD e = new(Skill, new Dictionary<string, object>() ExSPD e = new(Skill, new Dictionary<string, object>()
{ {
{ "exspd", SPD } { "exspd", SPD }

View File

@ -9,7 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成封技 {封技时间},无法使用技能(魔法、战技和爆发技),并打断当前施法。"; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成封技 {封技时间},无法使用技能(魔法、战技和爆发技),并打断当前施法。";
private string => _durative && _duration > 0 ? + " 时间" : (!_durative && _durationTurn > 0 ? + " 回合" : "0 时间"); private string => _durative && _duration > 0 ? + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}");
private double => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0); private double => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0);
private readonly bool _durative; private readonly bool _durative;
private readonly double _duration; private readonly double _duration;
@ -29,7 +29,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
foreach (Character enemy in targets) foreach (Character enemy in targets)
{ {
WriteLine($"[ {caster} ] 对 [ {enemy} ] 造成了封技和施法解除!持续时间:{封技时间}"); WriteLine($"[ {caster} ] 对 [ {enemy} ] 造成了封技和施法解除!持续时间:{封技时间} {GameplayEquilibriumConstant.InGameTime}");
e = new(Skill, caster, false, 0, 1); e = new(Skill, caster, false, 0, 1);
enemy.Effects.Add(e); enemy.Effects.Add(e);
e.OnEffectGained(enemy); e.OnEffectGained(enemy);

View File

@ -9,7 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成眩晕 {眩晕时间}。"; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成眩晕 {眩晕时间}。";
private string => _durative && _duration > 0 ? + " 时间" : (!_durative && _durationTurn > 0 ? + " 回合" : "0 时间"); private string => _durative && _duration > 0 ? + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}");
private double => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0); private double => _durative && _duration > 0 ? _duration + _levelGrowth * (Level - 1) : (!_durative && _durationTurn > 0 ? _durationTurn + _levelGrowth * (Level - 1) : 0);
private readonly bool _durative; private readonly bool _durative;
private readonly double _duration; private readonly double _duration;
@ -29,7 +29,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
foreach (Character enemy in targets) foreach (Character enemy in targets)
{ {
WriteLine($"[ {caster} ] 眩晕了 [ {enemy} ] !持续时间:{眩晕时间}"); WriteLine($"[ {caster} ] 眩晕了 [ {enemy} ] !持续时间:{眩晕时间} {GameplayEquilibriumConstant.InGameTime}");
e = new(Skill, caster, false, 0, 1); e = new(Skill, caster, false, 0, 1);
enemy.Effects.Add(e); enemy.Effects.Add(e);
e.OnEffectGained(enemy); e.OnEffectGained(enemy);

View File

@ -12,7 +12,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
private double SPD => Level > 0 ? -Math.Abs( + * (Level - 1)) : -Math.Abs(); private double SPD => Level > 0 ? -Math.Abs( + * (Level - 1)) : -Math.Abs();
private double { get; set; } = 30; private double { get; set; } = 30;
private double { get; set; } = 20; private double { get; set; } = 20;
private string => _durative && _duration > 0 ? _duration + " 时间" : (!_durative && _durationTurn > 0 ? _durationTurn + " 回合" : "0 时间"); private string => _durative && _duration > 0 ? _duration + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? _durationTurn + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}");
private readonly bool _durative; private readonly bool _durative;
private readonly double _duration; private readonly double _duration;
private readonly int _durationTurn; private readonly int _durationTurn;
@ -31,7 +31,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
foreach (Character target in targets) foreach (Character target in targets)
{ {
WriteLine($"[ {target} ] 的行动速度降低了 {SPD:0.##} !持续时间:{持续时间}"); WriteLine($"[ {target} ] 的行动速度降低了 {SPD:0.##} !持续时间:{持续时间} {GameplayEquilibriumConstant.InGameTime}");
ExSPD e = new(Skill, new Dictionary<string, object>() ExSPD e = new(Skill, new Dictionary<string, object>()
{ {
{ "exspd", SPD } { "exspd", SPD }

View File

@ -22,7 +22,7 @@ namespace Oshima.FunGame.OshimaModules.Items
{ {
public override long Id => 5999; public override long Id => 5999;
public override string Name => "独奏弓"; public override string Name => "独奏弓";
public override string Description => $"增加角色 {攻击力加成:0.##} 点攻击力,减少普通攻击 {硬直时间减少:0.##} 硬直时间。"; public override string Description => $"增加角色 {攻击力加成:0.##} 点攻击力,减少普通攻击 {硬直时间减少:0.##} {GameplayEquilibriumConstant.InGameTime}硬直时间。";
private readonly double = 80; private readonly double = 80;
private readonly double = 2; private readonly double = 2;

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.Core.Constant; using Oshima.Core.Constant;
using Oshima.FunGame.OshimaModules.Effects.ItemEffects; using Oshima.FunGame.OshimaModules.Effects.ItemEffects;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
@ -23,6 +24,11 @@ namespace Oshima.FunGame.OshimaModules
} }
} }
protected override void AfterLoad()
{
General.GameplayEquilibriumConstant.InGameTime = "秒";
}
protected override Factory.EntityFactoryDelegate<Skill> SkillFactory() protected override Factory.EntityFactoryDelegate<Skill> SkillFactory()
{ {
return (id, name, args) => return (id, name, args) =>
@ -116,6 +122,7 @@ namespace Oshima.FunGame.OshimaModules
EffectID.ExMaxHP2 => new ExMaxHP2(skill, dict), EffectID.ExMaxHP2 => new ExMaxHP2(skill, dict),
EffectID.ExMaxMP2 => new ExMaxMP2(skill, dict), EffectID.ExMaxMP2 => new ExMaxMP2(skill, dict),
EffectID.DynamicsEffect => new DynamicsEffect(skill, dict), EffectID.DynamicsEffect => new DynamicsEffect(skill, dict),
EffectID.IgnoreEvade => new IgnoreEvade(skill, dict),
EffectID.RecoverHP => new RecoverHP(skill, dict), EffectID.RecoverHP => new RecoverHP(skill, dict),
EffectID.RecoverMP => new RecoverMP(skill, dict), EffectID.RecoverMP => new RecoverMP(skill, dict),
EffectID.RecoverHP2 => new RecoverHP2(skill, dict), EffectID.RecoverHP2 => new RecoverHP2(skill, dict),

View File

@ -10,8 +10,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "嗜血本能"; public override string Name => "嗜血本能";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double EPCost => 100; public override double EPCost => 100;
public override double CD => 42 - 1 * (Level - 1); public override double CD => 45;
public override double HardnessTime { get; set; } = 12; public override double HardnessTime { get; set; } = 5;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false; public override bool CanSelectEnemy => false;
@ -25,27 +25,34 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"{Duration} 时间内,攻击拥有标记的角色将根据标记层数获得 {吸血 * 100:0.##}% 吸血每层。"; public override string Description => $"{Duration} {GameplayEquilibriumConstant.InGameTime}内,攻击拥有标记的角色将不会回收标记,增强 {最大生命值伤害 * 100:0.##}% 最大生命值伤害,并获得 {吸血 * 100:0.##}% 吸血。";
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 30; public override double Duration => 25;
public HashSet<Character> { get; } = []; private static double => 0.3;
private double => 0.03 * Level; private double => 0.02 * Level;
public override void OnEffectGained(Character character)
{
if (character.Effects.Where(e => e is ).FirstOrDefault() is e)
{
e. += ;
}
}
public override void OnEffectLost(Character character)
{
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) 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) if (character == Skill.Character && damageResult != DamageResult.Evaded && character.HP < character.MaxHP)
{ {
int = 0; double = * damage;
if (enemy.Effects.Where(e => e is ).FirstOrDefault() is e)
{
= e.MarkLevel;
}
else if (.Remove(enemy))
{
= 4;
}
double = * * damage;
character.HP += ; character.HP += ;
WriteLine($"[ {character} ] 回复了 {实际吸血:0.##} 点生命值!"); WriteLine($"[ {character} ] 回复了 {实际吸血:0.##} 点生命值!");
} }
@ -56,7 +63,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
RemainDuration = Duration; RemainDuration = Duration;
if (!caster.Effects.Contains(this)) if (!caster.Effects.Contains(this))
{ {
.Clear();
caster.Effects.Add(this); caster.Effects.Add(this);
OnEffectGained(caster); OnEffectGained(caster);
} }

View File

@ -25,9 +25,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"每次造成伤害都可以叠一层标记,累计 4 层时回收该角色所有标记并造成眩晕 1 回合,额外对该角色造成 {系数 * 100:0.##}% 最大生命值的物理伤害。"; public override string Description => $"造成伤害时会标记目标,攻击具有标记的敌人将对其造成眩晕 1 回合,并回收标记,额外对该角色造成 {系数 * 100:0.##}% 最大生命值的物理伤害。";
private readonly double = 0.12; public double { get; set; } = 0.16;
private bool = false; private bool = false;
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)
@ -38,40 +38,32 @@ namespace Oshima.FunGame.OshimaModules.Skills
IEnumerable<Effect> effects = enemy.Effects.Where(e => e is ); IEnumerable<Effect> effects = enemy.Effects.Where(e => e is );
if (effects.Any() && effects.First() is e) if (effects.Any() && effects.First() is e)
{ {
e.MarkLevel++;
IEnumerable<Effect> effects2 = character.Effects.Where(e => e is ); IEnumerable<Effect> effects2 = character.Effects.Where(e => e is );
if (effects2.Any() && effects2.First() is e2) if (effects2.Any() && effects2.First() is e2)
{ {
if (e.MarkLevel >= 4) // 嗜血本能生效状态下,不会移除标记
{
e2..Add(enemy);
}
else
{
e2..Remove(enemy);
}
} }
if (e.MarkLevel >= 4) else
{ {
// 移除标记 // 移除标记
enemy.Effects.Remove(e); enemy.Effects.Remove(e);
double = enemy.MaxHP * ;
WriteLine($"[ {character} ] 发动了累积之压!将对 [ {enemy} ] 造成眩晕和额外伤害!");
// 眩晕
IEnumerable<Effect> effects3 = enemy.Effects.Where(e => e is && e.Skill == Skill);
if (effects3.Any())
{
effects3.First().RemainDurationTurn++;
}
else
{
e3 = new(Skill, character, false, 0, 1);
enemy.Effects.Add(e3);
e3.OnEffectGained(enemy);
}
= true;
DamageToEnemy(character, enemy, false, magicType, );
} }
double = enemy.MaxHP * ;
WriteLine($"[ {character} ] 发动了累积之压!将对 [ {enemy} ] 造成眩晕和额外伤害!");
// 眩晕
IEnumerable<Effect> effects3 = enemy.Effects.Where(e => e is && e.Skill == Skill);
if (effects3.Any())
{
effects3.First().RemainDurationTurn++;
}
else
{
e3 = new(Skill, character, false, 0, 1);
enemy.Effects.Add(e3);
e3.OnEffectGained(enemy);
}
= true;
DamageToEnemy(character, enemy, false, magicType, );
} }
else else
{ {

View File

@ -24,10 +24,12 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"每时间提升 {伤害提升 * 100:0.##}% 所有伤害,无上限,但受到伤害时效果清零。" + ( > 0 ? $"(当前总提升:{累计伤害 * 100:0.##}%" : ""); public override string Description => $"每经过 {时间流逝} {GameplayEquilibriumConstant.InGameTime}提升 {伤害提升 * 100:0.##}% 所有伤害,无上限,但是受到伤害时清零。(下一次提升在:{下一次提升:0.##} {GameplayEquilibriumConstant.InGameTime}后{(累计伤害 > 0 ? $"{ * 100:0.##}%" : "")}";
private readonly double = 0.03; private readonly double = 7;
private readonly double = 0.21;
private double = 0; private double = 0;
private double = 7;
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) 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)
{ {
@ -52,8 +54,13 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
if (GamingQueue != null) if (GamingQueue != null)
{ {
+= * eapsed; -= eapsed;
WriteLine($"[ {character} ] 的 [ {Name} ] 效果增加了,当前总提升:{累计伤害 * 100:0.##}%。"); if ( <= 0)
{
+= ;
+= ;
WriteLine($"[ {character} ] 的 [ {Name} ] 效果增加了,当前总提升:{累计伤害 * 100:0.##}%。");
}
} }
} }
} }

View File

@ -9,7 +9,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "绝对领域"; public override string Name => "绝对领域";
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double EPCost => Math.Max(100, Character?.EP ?? 100); public override double EPCost => Math.Max(100, Character?.EP ?? 100);
public override double CD => 32 + (1 * (Level - 1)); public override double CD => 60;
public override double HardnessTime { get; set; } = 12; public override double HardnessTime { get; set; } = 12;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false; public override bool CanSelectEnemy => false;
@ -24,7 +24,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"{Duration:0.##} 时间内无法受到任何伤害,且敏捷提升 {系数 * 100:0.##}% [ {敏捷提升:0.##} ]。此技能会消耗至少 100 点能量。"; public override string Description => $"{Duration:0.##} {GameplayEquilibriumConstant.InGameTime}内无法受到任何伤害,且敏捷提升 {系数 * 100:0.##}% [ {敏捷提升:0.##} ]。此技能会消耗至少 100 点能量。";
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 16 + * 0.03; public override double Duration => 16 + * 0.03;

View File

@ -24,7 +24,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"30 时间内暴击率提升 {暴击率提升 * 100:0.##}%,暴击伤害提升 {暴击伤害提升 * 100:0.##}%,物理穿透提升 {物理穿透提升 * 100:0.##}%。"; public override string Description => $"30 {GameplayEquilibriumConstant.InGameTime}内暴击率提升 {暴击率提升 * 100:0.##}%,暴击伤害提升 {暴击伤害提升 * 100:0.##}%,物理穿透提升 {物理穿透提升 * 100:0.##}%。";
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 30; public override double Duration => 30;

View File

@ -61,10 +61,13 @@ namespace Oshima.FunGame.OshimaModules.Skills
} }
} }
public override bool BeforeCriticalCheck(Character character, ref double throwingBonus) public override bool BeforeCriticalCheck(Character actor, Character enemy, ref double throwingBonus)
{ {
throwingBonus += 100; if (actor == Skill.Character)
return false; {
throwingBonus += 100;
}
return true;
} }
public override void OnTimeElapsed(Character character, double elapsed) public override void OnTimeElapsed(Character character, double elapsed)

View File

@ -24,7 +24,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => "力量爆发"; public override string Name => "力量爆发";
public override string Description => $"获得 135% 力量 [ {攻击力加成:0.##} ] 的攻击力加成,但每次攻击都会损失 9% 当前生命值 [ {当前生命值:0.##} ],持续 {Duration:0.##} 时间。"; public override string Description => $"获得 135% 力量 [ {攻击力加成:0.##} ] 的攻击力加成,但每次攻击都会损失 9% 当前生命值 [ {当前生命值:0.##} ],持续 {Duration:0.##} {GameplayEquilibriumConstant.InGameTime}。";
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 10 + 1 * (Level - 1); public override double Duration => 10 + 1 * (Level - 1);

View File

@ -24,7 +24,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"{Duration:0.##} 时间内,提升自身 25% 物理伤害减免和魔法抗性,普通攻击转为魔法伤害,且硬直时间减少 30%,并基于 {智力系数 * 100:0.##}% 智力 [ {智力加成:0.##} ] 强化普通攻击伤害。"; public override string Description => $"{Duration:0.##} {GameplayEquilibriumConstant.InGameTime}内,提升自身 25% 物理伤害减免和魔法抗性,普通攻击转为魔法伤害,且硬直时间减少 30%,并基于 {智力系数 * 100:0.##}% 智力 [ {智力加成:0.##} ] 强化普通攻击伤害。";
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 40; public override double Duration => 40;

View File

@ -1,4 +1,5 @@
using Milimoe.FunGame.Core.Entity; using System.Collections.Generic;
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.Skills namespace Oshima.FunGame.OshimaModules.Skills
@ -24,11 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"优先攻击血量更低的角色,对生命值百分比低于自己的角色造成 150% 伤害。"; public override string Description => $"在 AI 控制下,任何目标都将则优先选择血量更低的角色。行动开始时,弱者猎手会盯上一名角色,然后标记所有生命值百分比低于自己的角色。在此回合内攻击被盯上或者被标记的角色,将造成 150% 伤害。";
public HashSet<Character> { get; set; } = [];
public override double AlterExpectedDamageBeforeCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, Dictionary<Effect, double> totalDamageBonus) 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 && .Contains(enemy))
{ {
double = damage * 0.5; double = damage * 0.5;
return ; return ;
@ -36,16 +39,34 @@ namespace Oshima.FunGame.OshimaModules.Skills
return 0; 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 void AlterSelectListBeforeAction(Character character, List<Character> enemys, List<Character> teammates, List<Skill> skills, Dictionary<Character, int> continuousKilling, Dictionary<Character, int> earnedMoney)
{ {
.Clear();
IEnumerable<Character> list = [.. enemys.OrderBy(e => e.HP / e.MaxHP)]; IEnumerable<Character> list = [.. enemys.OrderBy(e => e.HP / e.MaxHP)];
if (list.Any()) if (list.Any())
{ {
enemys.Clear(); Character first = list.First();
enemys.Add(list.First()); if (IsCharacterInAIControlling(character))
WriteLine($"[ {character} ] 发动了弱者猎手![ {list.First()} ] 被盯上了!"); {
enemys.Clear();
enemys.Add(first);
}
.Add(first);
WriteLine($"[ {character} ] 发动了弱者猎手![ {first} ] 被盯上了!");
AddHalfOfMe(enemys);
if (.Count > 0) WriteLine($"[ {character} ] 的弱者猎手标记了以下角色:[ {string.Join(" ] / [ ", 猎手标记)} ] ");
}
}
private void AddHalfOfMe(params IEnumerable<Character> enemys)
{
foreach (Character enemy in enemys)
{
if (Skill.Character != null && ((enemy.HP / enemy.MaxHP) < (Skill.Character.HP / Skill.Character.MaxHP)))
{
.Add(enemy);
}
} }
return true;
} }
} }
} }

View File

@ -24,7 +24,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"获得 40% 吸血,持续 {Duration:0.##} 时间。"; public override string Description => $"获得 40% 吸血,持续 {Duration:0.##} {GameplayEquilibriumConstant.InGameTime}。";
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 30; public override double Duration => 30;

View File

@ -24,13 +24,22 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"普通攻击硬直时间减少 20%。每次使用普通攻击时,额外再发动一次普通攻击,伤害特效可叠加,冷却 {基础冷却时间:0.##} 时间。" + public override string Description => $"普通攻击硬直时间减少 20%。每次使用普通攻击时,额外再发动一次普通攻击,伤害特效可叠加,但伤害折减一半,冷却 {基础冷却时间:0.##} {GameplayEquilibriumConstant.InGameTime}。" +
( > 0 ? $"(正在冷却:剩余 {冷却时间:0.##} 时间" : ""); ( > 0 ? $"(正在冷却:剩余 {冷却时间:0.##} {GameplayEquilibriumConstant.InGameTime}" : "");
public double { get; set; } = 0; public double { get; set; } = 0;
public double { get; set; } = 20; public double { get; set; } = 12;
private bool = false; private bool = false;
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 && && isNormalAttack && damage > 0)
{
return -(damage / 2);
}
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)
{ {
if (character == Skill.Character && isNormalAttack && == 0 && ! && GamingQueue != null && enemy.HP > 0) if (character == Skill.Character && isNormalAttack && == 0 && ! && GamingQueue != null && enemy.HP > 0)

View File

@ -10,7 +10,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => Effects.Count > 0 ? Effects.First().Description : ""; public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double EPCost => 100; public override double EPCost => 100;
public override double CD => 35; public override double CD => 35;
public override double HardnessTime { get; set; } = 10; public override double HardnessTime { get; set; } = 3;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false; public override bool CanSelectEnemy => false;
@ -24,22 +24,34 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => "魔法涌流"; public override string Name => "魔法涌流";
public override string Description => $"{Duration:0.##} 时间内,增加所有伤害的 {减伤比例 * 100:0.##}% 伤害减免,并将普通攻击转为魔法伤害,可叠加魔法震荡的效果。"; public override string Description => $"{Duration:0.##} {GameplayEquilibriumConstant.InGameTime}内,增加自身所有伤害的 {减伤比例 * 100:0.##}% 伤害减免;【魔法震荡】的冷却时间降低至 5 {GameplayEquilibriumConstant.InGameTime},并将普通攻击转为魔法伤害,允许普通攻击时选择至多 3 个目标。";
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 25; public override double Duration => 30;
private double => 0.1 + 0.02 * (Level - 1); private double => 0.15 + 0.04 * (Level - 1);
private double = 0; private double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
{ {
character.NormalAttack.CanSelectTargetCount += 2;
= ; = ;
character.NormalAttack.SetMagicType(true, character.MagicType); character.NormalAttack.SetMagicType(true, character.MagicType);
if (character.Effects.Where(e => e is ).FirstOrDefault() is e)
{
e. = 5;
if (e. > e.) e. = e.;
}
} }
public override void OnEffectLost(Character character) public override void OnEffectLost(Character character)
{ {
= 0;
character.NormalAttack.CanSelectTargetCount -= 2;
character.NormalAttack.SetMagicType(false, character.MagicType); character.NormalAttack.SetMagicType(false, character.MagicType);
if (character.Effects.Where(e => e is ).FirstOrDefault() is e)
{
e. = 10;
}
} }
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) 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)
@ -56,7 +68,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
RemainDuration = Duration; RemainDuration = Duration;
if (!caster.Effects.Contains(this)) if (!caster.Effects.Contains(this))
{ {
= 0;
caster.Effects.Add(this); caster.Effects.Add(this);
OnEffectGained(caster); OnEffectGained(caster);
} }

View File

@ -25,11 +25,25 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"造成魔法伤害时有 35% 几率使敌人眩晕 1 回合。"; public override string Description => $"对处于完全行动不能状态的敌人额外造成 {系数 * 100:0.##}% 力量 [ {伤害加成:0.##} ] 点伤害;造成魔法伤害时使敌人眩晕 1 回合,冷却 {基础冷却时间:0.##} {GameplayEquilibriumConstant.InGameTime}。" +
( > 0 ? $"(正在冷却:剩余 {冷却时间:0.##} {GameplayEquilibriumConstant.InGameTime}" : "");
public double { get; set; } = 0;
public double { get; set; } = 10;
private double => 1.2 * (1 + 0.4 * (Skill.Level - 1));
private double => * Skill.Character?.STR ?? 0;
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.CharacterState == CharacterState.NotActionable)
{
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)
{ {
if (character == Skill.Character && isMagicDamage && damageResult != DamageResult.Evaded && new Random().NextDouble() < 0.35) if (character == Skill.Character && isMagicDamage && == 0 && damageResult != DamageResult.Evaded && new Random().NextDouble() < 0.35)
{ {
IEnumerable<Effect> effects = enemy.Effects.Where(e => e is && e.Skill == Skill); IEnumerable<Effect> effects = enemy.Effects.Where(e => e is && e.Skill == Skill);
if (effects.Any()) if (effects.Any())
@ -43,6 +57,19 @@ namespace Oshima.FunGame.OshimaModules.Skills
e.OnEffectGained(enemy); e.OnEffectGained(enemy);
} }
WriteLine($"[ {character} ] 的魔法伤害触发了魔法震荡,[ {enemy} ] 被眩晕了!"); WriteLine($"[ {character} ] 的魔法伤害触发了魔法震荡,[ {enemy} ] 被眩晕了!");
= ;
}
}
public override void OnTimeElapsed(Character character, double elapsed)
{
if ( > 0)
{
-= elapsed;
if ( <= 0)
{
= 0;
}
} }
} }
} }

View File

@ -24,7 +24,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"敏捷提高 20%,然后将目前的力量补充到与敏捷持平,持续 {Duration:0.##} 时间。"; public override string Description => $"敏捷提高 20%,然后将目前的力量补充到与敏捷持平,持续 {Duration:0.##} {GameplayEquilibriumConstant.InGameTime}。";
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 30; public override double Duration => 30;

View File

@ -24,7 +24,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"进入不可选中状态,获得 100 行动速度,提高 8% 暴击率,持续 {Duration:0.##} 时间。破隐一击:在持续时间内,首次造成伤害会附加 {系数 * 100:0.##}% 敏捷 [ {伤害加成:0.##} ] 的强化伤害,并解除不可选中状态。"; public override string Description => $"进入不可选中状态,获得 100 行动速度,提高 8% 暴击率,持续 {Duration:0.##} {GameplayEquilibriumConstant.InGameTime}。破隐一击:在持续时间内,首次造成伤害会附加 {系数 * 100:0.##}% 敏捷 [ {伤害加成:0.##} ] 的强化伤害,并解除不可选中状态。";
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 12 + (1 * (Level - 1)); public override double Duration => 12 + (1 * (Level - 1));

View File

@ -708,7 +708,7 @@
"Description": "增加角色 85 点攻击力和 25% 暴击伤害。", "Description": "增加角色 85 点攻击力和 25% 暴击伤害。",
"BackgroundStory": "一环荆棘与花朵交织的暗器,美丽而致命,象征着爱与痛的纠缠。", "BackgroundStory": "一环荆棘与花朵交织的暗器,美丽而致命,象征着爱与痛的纠缠。",
"ItemType": 1, "ItemType": 1,
"WeaponType": 9, "WeaponType": 11,
"QualityType": 4, "QualityType": 4,
"Skills": { "Skills": {
"Active": null, "Active": null,
@ -728,6 +728,35 @@
] ]
} }
}, },
"金箍棒": {
"Id": 11572,
"Name": "金箍棒",
"Description": "增加角色 85 点攻击力。克敌机先:普通攻击有 80% 概率无视闪避。",
"BackgroundStory": "天河定底神珍棒,棒名如意世间高。",
"ItemType": 1,
"WeaponType": 9,
"QualityType": 4,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7030,
"Name": "金箍棒",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 85
},
{
"Id": 8033,
"p": 0.8
}
]
}
]
}
},
"初级法袍": { "初级法袍": {
"Id": 12501, "Id": 12501,
"Name": "初级法袍", "Name": "初级法袍",
@ -837,7 +866,7 @@
"炼狱战铠": { "炼狱战铠": {
"Id": 12505, "Id": 12505,
"Name": "炼狱战铠", "Name": "炼狱战铠",
"Description": "增加角色 40 点物理护甲,增加角色 5 点每时间生命回复。", "Description": "增加角色 40 点物理护甲,增加角色 5 点每生命回复。",
"BackgroundStory": "在无尽战火中锻造而成,具有极高的防御力。", "BackgroundStory": "在无尽战火中锻造而成,具有极高的防御力。",
"ItemType": 2, "ItemType": 2,
"WeaponType": 0, "WeaponType": 0,
@ -1119,7 +1148,7 @@
"辉煌光环": { "辉煌光环": {
"Id": 14504, "Id": 14504,
"Name": "辉煌光环", "Name": "辉煌光环",
"Description": "增加角色 80 点最大魔法值和 2 点每时间魔法回复。", "Description": "增加角色 80 点最大魔法值和 2 点每魔法回复。",
"BackgroundStory": "流光溢彩的光环。", "BackgroundStory": "流光溢彩的光环。",
"ItemType": 4, "ItemType": 4,
"WeaponType": 0, "WeaponType": 0,
@ -1239,7 +1268,7 @@
"精灵之戒": { "精灵之戒": {
"Id": 14508, "Id": 14508,
"Name": "精灵之戒", "Name": "精灵之戒",
"Description": "增加角色 5 点每时间魔法回复,并增加角色 8 点智力。", "Description": "增加角色 5 点每魔法回复,并增加角色 8 点智力。",
"BackgroundStory": "这枚戒指由精灵制成,能够帮助法师更快地恢复法力。", "BackgroundStory": "这枚戒指由精灵制成,能够帮助法师更快地恢复法力。",
"ItemType": 4, "ItemType": 4,
"WeaponType": 0, "WeaponType": 0,
@ -1268,7 +1297,7 @@
"暗影项链": { "暗影项链": {
"Id": 14509, "Id": 14509,
"Name": "暗影项链", "Name": "暗影项链",
"Description": "增加角色 15 点敏捷和 3 点每时间生命回复。", "Description": "增加角色 15 点敏捷和 3 点每生命回复。",
"BackgroundStory": "项链蕴含着黑暗的力量,让佩戴者更具敏捷性。", "BackgroundStory": "项链蕴含着黑暗的力量,让佩戴者更具敏捷性。",
"ItemType": 4, "ItemType": 4,
"WeaponType": 0, "WeaponType": 0,
@ -1414,7 +1443,7 @@
"白月光的玉佩": { "白月光的玉佩": {
"Id": 14514, "Id": 14514,
"Name": "白月光的玉佩", "Name": "白月光的玉佩",
"Description": "增加角色 10% 魔法抗性4 点每时间魔法回复和 5% 冷却缩减。", "Description": "增加角色 10% 魔法抗性4 点每魔法回复和 5% 冷却缩减。",
"BackgroundStory": "据说每个总裁都有一个救命恩人,还有一个冒充救命恩人的人。", "BackgroundStory": "据说每个总裁都有一个救命恩人,还有一个冒充救命恩人的人。",
"ItemType": 4, "ItemType": 4,
"WeaponType": 0, "WeaponType": 0,

View File

@ -1,5 +1,4 @@
using System.Text; using System.Text;
using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Model; using Milimoe.FunGame.Core.Model;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Effects.OpenEffects;

View File

@ -50,7 +50,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
{ {
StringBuilder builder = new(); StringBuilder builder = new();
builder.AppendLine(character.ToStringWithLevelWithOutUser()); builder.AppendLine(character.ToStringWithOutUser());
builder.AppendLine($"总计造成伤害:{stats.TotalDamage:0.##} / 场均:{stats.AvgDamage:0.##}"); builder.AppendLine($"总计造成伤害:{stats.TotalDamage:0.##} / 场均:{stats.AvgDamage:0.##}");
builder.AppendLine($"总计造成物理伤害:{stats.TotalPhysicalDamage:0.##} / 场均:{stats.AvgPhysicalDamage:0.##}"); builder.AppendLine($"总计造成物理伤害:{stats.TotalPhysicalDamage:0.##} / 场均:{stats.AvgPhysicalDamage:0.##}");
builder.AppendLine($"总计造成魔法伤害:{stats.TotalMagicDamage:0.##} / 场均:{stats.AvgMagicDamage:0.##}"); builder.AppendLine($"总计造成魔法伤害:{stats.TotalMagicDamage:0.##} / 场均:{stats.AvgMagicDamage:0.##}");
@ -105,7 +105,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
{ {
StringBuilder builder = new(); StringBuilder builder = new();
builder.AppendLine(character.ToStringWithLevelWithOutUser()); builder.AppendLine(character.ToStringWithOutUser());
builder.AppendLine($"总计造成伤害:{stats.TotalDamage:0.##} / 场均:{stats.AvgDamage:0.##}"); builder.AppendLine($"总计造成伤害:{stats.TotalDamage:0.##} / 场均:{stats.AvgDamage:0.##}");
builder.AppendLine($"总计造成物理伤害:{stats.TotalPhysicalDamage:0.##} / 场均:{stats.AvgPhysicalDamage:0.##}"); builder.AppendLine($"总计造成物理伤害:{stats.TotalPhysicalDamage:0.##} / 场均:{stats.AvgPhysicalDamage:0.##}");
builder.AppendLine($"总计造成魔法伤害:{stats.TotalMagicDamage:0.##} / 场均:{stats.AvgMagicDamage:0.##}"); builder.AppendLine($"总计造成魔法伤害:{stats.TotalMagicDamage:0.##} / 场均:{stats.AvgMagicDamage:0.##}");
@ -157,7 +157,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
{ {
StringBuilder builder = new(); StringBuilder builder = new();
CharacterStatistics stats = FunGameSimulation.TeamCharacterStatistics[character]; CharacterStatistics stats = FunGameSimulation.TeamCharacterStatistics[character];
builder.AppendLine(character.ToStringWithLevelWithOutUser()); builder.AppendLine(character.ToStringWithOutUser());
builder.AppendLine($"总计参赛数:{stats.Plays}"); builder.AppendLine($"总计参赛数:{stats.Plays}");
builder.AppendLine($"总计冠军数:{stats.Wins}"); builder.AppendLine($"总计冠军数:{stats.Wins}");
builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%"); builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%");
@ -175,7 +175,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
{ {
StringBuilder builder = new(); StringBuilder builder = new();
CharacterStatistics stats = FunGameSimulation.CharacterStatistics[character]; CharacterStatistics stats = FunGameSimulation.CharacterStatistics[character];
builder.AppendLine(character.ToStringWithLevelWithOutUser()); builder.AppendLine(character.ToStringWithOutUser());
builder.AppendLine($"总计参赛数:{stats.Plays}"); builder.AppendLine($"总计参赛数:{stats.Plays}");
builder.AppendLine($"总计冠军数:{stats.Wins}"); builder.AppendLine($"总计冠军数:{stats.Wins}");
builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%"); builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%");
@ -202,7 +202,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
{ {
StringBuilder builder = new(); StringBuilder builder = new();
CharacterStatistics stats = FunGameSimulation.TeamCharacterStatistics[character]; CharacterStatistics stats = FunGameSimulation.TeamCharacterStatistics[character];
builder.AppendLine(character.ToStringWithLevelWithOutUser()); builder.AppendLine(character.ToStringWithOutUser());
builder.AppendLine($"总计参赛数:{stats.Plays}"); builder.AppendLine($"总计参赛数:{stats.Plays}");
builder.AppendLine($"总计冠军数:{stats.Wins}"); builder.AppendLine($"总计冠军数:{stats.Wins}");
builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%"); builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%");
@ -220,7 +220,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
{ {
StringBuilder builder = new(); StringBuilder builder = new();
CharacterStatistics stats = FunGameSimulation.CharacterStatistics[character]; CharacterStatistics stats = FunGameSimulation.CharacterStatistics[character];
builder.AppendLine(character.ToStringWithLevelWithOutUser()); builder.AppendLine(character.ToStringWithOutUser());
builder.AppendLine($"总计参赛数:{stats.Plays}"); builder.AppendLine($"总计参赛数:{stats.Plays}");
builder.AppendLine($"总计冠军数:{stats.Wins}"); builder.AppendLine($"总计冠军数:{stats.Wins}");
builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%"); builder.AppendLine($"胜率:{stats.Winrates * 100:0.##}%");