mirror of
https://github.com/oshima-studios/OshimaGameModule.git
synced 2025-12-05 08:09:04 +00:00
数值和文本调整
This commit is contained in:
parent
7e8c69bf1b
commit
33ada4e9ee
@ -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":
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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]);
|
||||
}
|
||||
|
||||
@ -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]);
|
||||
}
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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.##} 点伤害!");
|
||||
}
|
||||
|
||||
@ -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,12 +91,16 @@ 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))
|
||||
{
|
||||
if (character.Effects.FirstOrDefault(e => e is 施加持续性弱驱散 && e.ParentEffect == this) is 施加持续性弱驱散 e)
|
||||
{
|
||||
e.DispelledType = DispelledType.Weak;
|
||||
}
|
||||
@ -102,16 +109,20 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
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(this);
|
||||
}
|
||||
}
|
||||
|
||||
public string Observer()
|
||||
{
|
||||
target.Effects.Add(new 大地之墙特效(Skill));
|
||||
}
|
||||
}
|
||||
return $"正在监控目标角色 [ {string.Join(" ] / [ ", _targets)} ] 的对象:{string.Join(",", _targets.SelectMany(c => c.Effects.Where(e => e.ParentEffect == this).Distinct().Select(e => e.Name)))}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user