数值和文本调整

This commit is contained in:
milimoe 2025-06-18 01:46:13 +08:00
parent 7e8c69bf1b
commit 33ada4e9ee
Signed by: milimoe
GPG Key ID: 9554D37E4B8991D0
18 changed files with 126 additions and 54 deletions

View File

@ -434,7 +434,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExATKPercentage -= percentage;
}
RealDynamicsValues["exatk2"] = exATK2;
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exATK2) * 100:0.##}% [ {Math.Abs(real):0.##} ] 点攻击力。");
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exATK2) * 100:0.##}% [ {(real == 0 ? "" : $"{Math.Abs(real):0.##}")} ] 点攻击力。");
}
break;
case "exdef2":
@ -451,7 +451,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExDEFPercentage -= percentage;
}
RealDynamicsValues["exdef2"] = exDEF2;
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exDEF2) * 100:0.##}% [ {Math.Abs(real):0.##} ] 点物理护甲。");
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exDEF2) * 100:0.##}% [ {(real == 0 ? "" : $"{Math.Abs(real):0.##}")} ] 点物理护甲。");
}
break;
case "exstr2":
@ -468,7 +468,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExSTRPercentage -= percentage;
}
RealDynamicsValues["exstr2"] = exSTR2;
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exSTR2) * 100:0.##}% [ {Math.Abs(real):0.##} ] 点力量。");
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exSTR2) * 100:0.##}% [ {(real == 0 ? "" : $"{Math.Abs(real):0.##}")} ] 点力量。");
}
break;
case "exagi2":
@ -485,7 +485,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExAGIPercentage -= percentage;
}
RealDynamicsValues["exagi2"] = exAGI2;
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exAGI2) * 100:0.##}% [ {Math.Abs(real):0.##} ] 点敏捷。");
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exAGI2) * 100:0.##}% [ {(real == 0 ? "" : $"{Math.Abs(real):0.##}")} ] 点敏捷。");
}
break;
case "exint2":
@ -502,7 +502,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExINTPercentage -= percentage;
}
RealDynamicsValues["exint2"] = exINT2;
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exINT2) * 100:0.##}% [ {Math.Abs(real):0.##} ] 点智力。");
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exINT2) * 100:0.##}% [ {(real == 0 ? "" : $"{Math.Abs(real):0.##}")} ] 点智力。");
}
break;
case "exhp2":
@ -519,7 +519,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExHPPercentage -= percentage;
}
RealDynamicsValues["exhp2"] = exhp2;
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exhp2) * 100:0.##}% [ {Math.Abs(real):0.##} ] 点最大生命值。");
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exhp2) * 100:0.##}% [ {(real == 0 ? "" : $"{Math.Abs(real):0.##}")} ] 点最大生命值。");
}
break;
case "exmp2":
@ -536,7 +536,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExMPPercentage -= percentage;
}
RealDynamicsValues["exmp2"] = exmp2;
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exmp2) * 100:0.##}% [ {Math.Abs(real):0.##} ] 点最大魔法值。");
Descriptions.Add($"{(real >= 0 ? "" : "")}角色 {Math.Abs(exmp2) * 100:0.##}% [ {(real == 0 ? "" : $"{Math.Abs(real):0.##}")} ] 点最大魔法值。");
}
break;
case "mdftype":

View File

@ -7,7 +7,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 || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {(实际加成 == 0 ? "" : $"{Math.Abs():0.##}")} ] 点敏捷。" + (Source != null && (Skill.Character != Source || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public double Value => ;
private readonly double = 0;

View File

@ -7,7 +7,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 && (Skill.Character != Source || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {(实际加成 == 0 ? "" : $"{Math.Abs():0.##}")} ] 点攻击力。" + (Source != null && (Skill.Character != Source || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public double Value => ;
private readonly double = 0;

View File

@ -7,7 +7,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 || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {(实际加成 == 0 ? "" : $"{Math.Abs():0.##}")} ] 点物理护甲。" + (Source != null && (Skill.Character != Source || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public double Value => ;
private readonly double = 0;

View File

@ -7,7 +7,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 || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {(实际加成 == 0 ? "" : $"{Math.Abs():0.##}")} ] 点智力。" + (Source != null && (Skill.Character != Source || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public double Value => ;
private readonly double = 0;

View File

@ -7,7 +7,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 || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {(实际加成 == 0 ? "" : $"{Math.Abs():0.##}")} ] 点最大生命值。" + (Source != null && (Skill.Character != Source || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public double Value => ;
private readonly double = 0;

View File

@ -7,7 +7,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 || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {(实际加成 == 0 ? "" : $"{Math.Abs():0.##}")} ] 点最大魔法值。" + (Source != null && (Skill.Character != Source || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public double Value => ;
private readonly double = 0;

View File

@ -7,7 +7,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 || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public override string Description => $"{(实际加成 >= 0 ? "" : "")}角色 {Math.Abs(加成比例) * 100:0.##}% [ {(实际加成 == 0 ? "" : $"{Math.Abs():0.##}")} ] 点力量。" + (Source != null && (Skill.Character != Source || Skill is not OpenSkill) ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : (Skill is OpenSkill ? "" : $" 的 [ {Skill.Name} ]")) : "");
public double Value => ;
private readonly double = 0;

View File

@ -7,7 +7,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
{
public override long Id => 4106;
public override string Name => "物理护盾";
public override string Description => $"此角色拥有物理护盾。来自:[ {Source} ] 的 [ {Skill.Name} ]";
public override string Description => $"此角色拥有物理护盾{CurrentShield}。来自:[ {Source} ] 的 [ {Skill.Name} ]";
public override EffectType EffectType => EffectType.Shield;
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
public override bool DurativeWithoutDuration => true;
@ -17,15 +17,28 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override double Duration => _duration;
public override int DurationTurn => _durationTurn;
private string CurrentShield
{
get
{
if (_targetCharacter != null && _targetCharacter.Shield.ShieldOfEffects.TryGetValue(this, out ShieldOfEffect? value) && value != null)
{
return $",护盾值:{value.Shield:0.##} 点";
}
else return "";
}
}
private readonly Character _targetCharacter;
private readonly Character _sourceCharacter;
private readonly double _shield;
private readonly bool _durative;
private readonly double _duration;
private readonly int _durationTurn;
public (Skill skill, Character sourceCharacter, double shield, bool durative = false, double duration = 0, int durationTurn = 0) : base(skill)
public (Skill skill, Character targetCharacter, Character sourceCharacter, double shield, bool durative = false, double duration = 0, int durationTurn = 0) : base(skill)
{
GamingQueue = skill.GamingQueue;
_targetCharacter = targetCharacter;
_sourceCharacter = sourceCharacter;
_durative = durative;
_duration = duration;

View File

@ -7,7 +7,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
{
public override long Id => 4107;
public override string Name => "魔法护盾";
public override string Description => $"此角色拥有魔法护盾。来自:[ {Source} ] 的 [ {Skill.Name} ]";
public override string Description => $"此角色拥有魔法护盾{CurrentShield}。来自:[ {Source} ] 的 [ {Skill.Name} ]";
public override EffectType EffectType => EffectType.Shield;
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
public override bool DurativeWithoutDuration => true;
@ -17,15 +17,28 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override double Duration => _duration;
public override int DurationTurn => _durationTurn;
private string CurrentShield
{
get
{
if (_targetCharacter != null && _targetCharacter.Shield.ShieldOfEffects.TryGetValue(this, out ShieldOfEffect? value) && value != null)
{
return $",护盾值:{value.Shield:0.##} 点";
}
else return "";
}
}
private readonly Character _targetCharacter;
private readonly Character _sourceCharacter;
private readonly double _shield;
private readonly bool _durative;
private readonly double _duration;
private readonly int _durationTurn;
public (Skill skill, Character sourceCharacter, double shield, bool durative = false, double duration = 0, int durationTurn = 0) : base(skill)
public (Skill skill, Character targetCharacter, Character sourceCharacter, double shield, bool durative = false, double duration = 0, int durationTurn = 0) : base(skill)
{
GamingQueue = skill.GamingQueue;
_targetCharacter = targetCharacter;
_sourceCharacter = sourceCharacter;
_durative = durative;
_duration = duration;

View File

@ -34,7 +34,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
foreach (Character target in targets)
{
WriteLine($"[ {target} ] 获得了 {护盾值:0.##} 点物理护盾!");
e = new(Skill, caster, , _durative, _duration, _durationTurn);
e = new(Skill, target, caster, , _durative, _duration, _durationTurn)
{
ParentEffect = ParentEffect
};
target.Effects.Add(e);
e.OnEffectGained(target);
e.DispelledType = DispelledType;

View File

@ -34,7 +34,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
foreach (Character target in targets)
{
WriteLine($"[ {target} ] 获得了 {护盾值:0.##} 点魔法护盾!");
e = new(Skill, caster, , _durative, _duration, _durationTurn);
e = new(Skill, target, caster, , _durative, _duration, _durationTurn)
{
ParentEffect = ParentEffect
};
target.Effects.Add(e);
e.OnEffectGained(target);
e.DispelledType = DispelledType;

View File

@ -54,6 +54,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
if (_duration > e.Duration) e.Duration = _duration;
if (_durationTurn > e.DurationTurn) e.DurationTurn = _durationTurn;
e.DispelledType = DispelledType;
e.ParentEffect = ParentEffect;
}
else
{
@ -62,6 +63,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
e.OnEffectGained(target);
e.IsDebuff = isDebuff;
e.DispelledType = DispelledType;
e.ParentEffect = ParentEffect;
}
GamingQueue?.LastRound.ApplyEffects.TryAdd(target, [e.EffectType]);
}

View File

@ -54,6 +54,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
if (_duration > e.Duration) e.Duration = _duration;
if (_durationTurn > e.DurationTurn) e.DurationTurn = _durationTurn;
e.DispelledType = DispelledType;
e.ParentEffect = ParentEffect;
}
else
{
@ -62,6 +63,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
e.OnEffectGained(target);
e.IsDebuff = isDebuff;
e.DispelledType = DispelledType;
e.ParentEffect = ParentEffect;
}
GamingQueue?.LastRound.ApplyEffects.TryAdd(target, [e.EffectType]);
}

View File

@ -26,9 +26,33 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => Skill.Id;
public override string Name => "变幻之心";
public override string Description => $"检查 [ 智慧与力量 ] 的模式。在力量模式下,立即回复 {生命值回复 * 100:0.##}% 生命值,同时下 {吸血次数} 次对敌人造成伤害时获得 30% 生命偷取;" +
$"智力模式下,下 {魔法加成次数} 次魔法伤害提升 {伤害提升 * 100:0.##}%。此技能效果不叠加,重复释放时将重置次数;若是模式切换后重复释放,将回收先前的效果。";
$"智力模式下,下 {魔法加成次数} 次魔法伤害提升 {伤害提升 * 100:0.##}%。此技能效果不叠加,重复释放时将重置次数;若是模式切换后重复释放,将回收先前的效果。{当前次数描述}";
public override DispelledType DispelledType => DispelledType.CannotBeDispelled;
private string
{
get
{
string str = "";
if ( > 0 || > 0)
{
str = > 0 ? "吸血次数" : ( > 0 ? "魔法加成次数" : "");
if (str != "")
{
str = $"剩余{str}";
}
if ( > 0)
{
str += $"{当前吸血次数} 次。";
}
else if ( > 0)
{
str += $"{当前魔法加成次数} 次。";
}
}
return str;
}
}
private int
{
get
@ -63,8 +87,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
}
private double => 0.25 + 0.03 * (Level - 1);
private double => 0.6 + 0.4 * (Level - 1);
private double = 0;
private double = 0;
private int = 0;
private int = 0;
public override void OnEffectGained(Character character)
{

View File

@ -28,9 +28,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
(Skill.Character != null ? "(当前模式:" + CharacterSet.GetPrimaryAttributeName(Skill.Character.PrimaryAttribute) + "" : "");
private double = 0;
private double = 0.15;
private double = 0.15;
private double = 0.15;
private readonly double = 0.15;
private readonly double = 0.15;
private readonly double = 0.15;
private bool = false;
public override void OnEffectGained(Character character)

View File

@ -18,7 +18,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ "exhp", -0.2 }
})
{
ParentEffect = Effects.First()
ParentEffect = Effects.First(),
ForceHideInStatusBar = true
});
}
@ -32,7 +33,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"最大生命值减少 20%。破釜沉舟:生命值高于 30% 时,受到额外的 [ {高于30额外伤害下限}{高于30额外伤害上限}% ] 伤害,获得 [ 累计所受伤害的 {高于30的加成下限}{高于30的加成上限}% ] 伤害加成;生命值低于等于 30% 时,不会受到额外的伤害,并且获得 [ 累计受到的伤害 {低于30的加成下限}{低于30的加成上限}% ] 的伤害加成。" +
public override string Description => $"最大生命值减少 20%。破釜沉舟:生命值高于 40% 时,受到额外的 [ {高于40额外伤害下限}{高于40额外伤害上限}% ] 伤害,获得 [ 累计所受伤害的 {高于40的加成下限}{高于40的加成上限}% ] 伤害加成;生命值低于等于 40% 时,不会受到额外的伤害,并且获得 [ 累计受到的伤害 {低于40的加成下限}{低于40的加成上限}% ] 的伤害加成。" +
$"在没有受到任何伤害的时候,将获得 {常规伤害加成 * 100:0.##}% 伤害加成。" + ( > 0 ? $"(当前累计受到伤害:{累计受到的伤害:0.##}" : "");
private double = 0;
@ -40,12 +41,12 @@ namespace Oshima.FunGame.OshimaModules.Skills
private double HP = 0;
private double = 0;
private readonly double = 0.35;
private readonly int 30 = 30;
private readonly int 30 = 15;
private readonly int 30 = 80;
private readonly int 30 = 50;
private readonly int 30 = 120;
private readonly int 30 = 90;
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 double (double damage)
{
@ -53,13 +54,13 @@ namespace Oshima.FunGame.OshimaModules.Skills
Character? character = Skill.Character;
if (character != null && != 0)
{
if (character.HP > character.MaxHP * 0.3)
if (character.HP > character.MaxHP * 0.4)
{
= (Random.Shared.Next(30, 30) + 0.0) / 100;
= (Random.Shared.Next(40, 40) + 0.0) / 100;
}
else
{
= (Random.Shared.Next(30, 30) + 0.0) / 100;
= (Random.Shared.Next(40, 40) + 0.0) / 100;
}
return * ;
}
@ -79,10 +80,10 @@ namespace Oshima.FunGame.OshimaModules.Skills
if (enemy == Skill.Character)
{
HP = enemy.HP;
if (enemy.HP > enemy.MaxHP * 0.3)
if (enemy.HP > enemy.MaxHP * 0.4)
{
// 额外受到伤害
double = (Random.Shared.Next(30, 30) + 0.0) / 100;
double = (Random.Shared.Next(40, 40) + 0.0) / 100;
= damage * ;
WriteLine($"[ {enemy} ] 的破釜沉舟触发,将额外受到 {这次受到的额外伤害:0.##} 点伤害!");
}

View File

@ -70,17 +70,20 @@ namespace Oshima.FunGame.OshimaModules.Skills
public (Character? character = null) : base(SkillType.Magic, character)
{
Effect shield = new _特效持续型(this, 120, 160, true, 15)
Effect effect = new (this);
Effect shield = new _特效持续型(this, 120, 160, true, 20)
{
DispelledType = DispelledType.CannotBeDispelled
DispelledType = DispelledType.CannotBeDispelled,
ParentEffect = effect
};
Effects.Add(shield);
Effect dispel = new (this, durative: true, duration: 12)
{
DispelledType = DispelledType.Strong
DispelledType = DispelledType.Strong,
ParentEffect = effect
};
Effects.Add(dispel);
Effects.Add(new (this));
Effects.Add(effect);
}
}
@ -88,30 +91,38 @@ namespace Oshima.FunGame.OshimaModules.Skills
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"";
public override string Description => "";
public override bool ForceHideInStatusBar => true;
private List<Character> _targets = [];
public override void OnTimeElapsed(Character character, double elapsed)
{
if (!character.Effects.Any(e => e is ) && character.Effects.FirstOrDefault(e => e is ) is e)
if (!character.Effects.Any(e => e is && e.ParentEffect == this))
{
e.DispelledType = DispelledType.Weak;
}
else
{
character.Effects.Remove(this);
if (character.Effects.FirstOrDefault(e => e is && e.ParentEffect == this) is e)
{
e.DispelledType = DispelledType.Weak;
}
else
{
character.Effects.Remove(this);
}
}
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
_targets = targets;
foreach (Character target in targets)
{
if (!target.Effects.Any(e => e is ))
{
target.Effects.Add(new (Skill));
}
target.Effects.Add(this);
}
}
public string Observer()
{
return $"正在监控目标角色 [ {string.Join(" ] / [ ", _targets)} ] 的对象:{string.Join("", _targets.SelectMany(c => c.Effects.Where(e => e.ParentEffect == this).Distinct().Select(e => e.Name)))}";
}
}
}