百分比特效添加 OnAttributeChanged

This commit is contained in:
milimoe 2024-12-02 00:53:53 +08:00
parent 8359b9e018
commit aa697daee5
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
12 changed files with 70 additions and 16 deletions

View File

@ -765,11 +765,11 @@ namespace Oshima.Core.Utils
if (id == 9)
{
Skill = new (character)
Skill = new (character)
{
Level = passiveLevel
};
character.Skills.Add();
character.Skills.Add();
Skill = new (character)
{

View File

@ -255,11 +255,11 @@ namespace Oshima.Core.Utils
if (c == character9)
{
Skill = new (c)
Skill = new (c)
{
Level = 1
};
c.Skills.Add();
c.Skills.Add();
Skill = new (c)
{

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExAGI -= ;
}
public override void OnAttributeChanged(Character character)
{
// 刷新加成
OnEffectLost(character);
OnEffectGained(character);
}
public ExAGI2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExATK2 -= ;
}
public override void OnAttributeChanged(Character character)
{
// 刷新加成
OnEffectLost(character);
OnEffectGained(character);
}
public ExATK2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExDEF2 -= ;
}
public override void OnAttributeChanged(Character character)
{
// 刷新加成
OnEffectLost(character);
OnEffectGained(character);
}
public ExDEF2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExINT -= ;
}
public override void OnAttributeChanged(Character character)
{
// 刷新加成
OnEffectLost(character);
OnEffectGained(character);
}
public ExINT2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExHP2 -= ;
}
public override void OnAttributeChanged(Character character)
{
// 刷新加成
OnEffectLost(character);
OnEffectGained(character);
}
public ExMaxHP2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExMP2 -= ;
}
public override void OnAttributeChanged(Character character)
{
// 刷新加成
OnEffectLost(character);
OnEffectGained(character);
}
public ExMaxMP2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExSTR -= ;
}
public override void OnAttributeChanged(Character character)
{
// 刷新加成
OnEffectLost(character);
OnEffectGained(character);
}
public ExSTR2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;

View File

@ -63,7 +63,7 @@ namespace Oshima.FunGame.OshimaModules
(long)PassiveID. => new (),
(long)PassiveID. => new (),
(long)PassiveID. => new (),
(long)PassiveID. => new (),
(long)PassiveID. => new (),
(long)PassiveID. => new (),
(long)PassiveID. => new (),
(long)PassiveID. => new (),

View File

@ -1,17 +1,22 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
namespace Oshima.FunGame.OshimaModules.Skills
{
public class : Skill
public class : Skill
{
public override long Id => (long)PassiveID.;
public override string Name => "玻璃大炮";
public override long Id => (long)PassiveID.;
public override string Name => "破釜沉舟";
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public (Character? character = null) : base(SkillType.Passive, character)
public (Character? character = null) : base(SkillType.Passive, character)
{
Effects.Add(new (this));
Effects.Add(new (this));
Effects.Add(new ExMaxHP2(this, new()
{
{ "exhp", -0.3 }
}));
}
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
@ -20,11 +25,11 @@ namespace Oshima.FunGame.OshimaModules.Skills
}
}
public class (Skill skill) : Effect(skill)
public class (Skill skill) : Effect(skill)
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"生命值高于 30% 时,受到额外的 [ {高于30额外伤害下限}~{高于30额外伤害上限}% ] 伤害,但是获得 [ 累计所受伤害的 {高于30的加成下限}~{高于30的加成上限}% ] 伤害加成;生命值低于等于 30% 时,不会受到额外的伤害,仅能获得 [ 累计受到的伤害 {低于30的加成下限}~{低于30的加成上限}% ] 伤害加成。" +
public override string Description => $"最大生命值减少 30%。破釜沉舟:生命值高于 30% 时,受到额外的 [ {高于30额外伤害下限}~{高于30额外伤害上限}% ] 伤害,但是获得 [ 累计所受伤害的 {高于30的加成下限}~{高于30的加成上限}% ] 伤害加成;生命值低于等于 30% 时,不会受到额外的伤害,仅能获得 [ 累计受到的伤害 {低于30的加成下限}~{低于30的加成上限}% ] 伤害加成。" +
$"在没有受到任何伤害的时候,将获得 {常规伤害加成 * 100:0.##}% 伤害加成。" + ( > 0 ? $"(当前累计受到伤害:{累计受到的伤害:0.##}" : "");
private double = 0;
@ -63,7 +68,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
if (character == Skill.Character)
{
= (damage);
WriteLine($"[ {character} ] 发动了玻璃大炮,获得了 {这次的伤害加成:0.##} 点伤害加成!");
WriteLine($"[ {character} ] 发动了破釜沉舟,获得了 {这次的伤害加成:0.##} 点伤害加成!");
= 0;
return ;
}
@ -76,7 +81,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
// 额外受到伤害
double = (Random.Shared.Next(30, 30) + 0.0) / 100;
= damage * ;
WriteLine($"[ {enemy} ] 的玻璃大炮触发,将额外受到 {这次受到的额外伤害:0.##} 点伤害!");
WriteLine($"[ {enemy} ] 的破釜沉舟触发,将额外受到 {这次受到的额外伤害:0.##} 点伤害!");
}
else = 0;
return ;
@ -93,7 +98,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
if (enemy.HP < 0 && HP - damage + > 0)
{
enemy.HP = 10;
WriteLine($"[ {enemy} ] 的玻璃大炮触发,保护了自己不进入死亡!!");
WriteLine($"[ {enemy} ] 的破釜沉舟触发,保护了自己不进入死亡!!");
}
}
}

View File

@ -91,7 +91,7 @@
= 4006,
= 4007,
= 4008,
= 4009,
= 4009,
= 4010,
= 4011,
= 4012,