百分比特效添加 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) if (id == 9)
{ {
Skill = new (character) Skill = new (character)
{ {
Level = passiveLevel Level = passiveLevel
}; };
character.Skills.Add(); character.Skills.Add();
Skill = new (character) Skill = new (character)
{ {

View File

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

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExAGI -= ; 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) public ExAGI2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExATK2 -= ; 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) public ExATK2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExDEF2 -= ; 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) public ExDEF2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExINT -= ; 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) public ExINT2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExHP2 -= ; 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) public ExMaxHP2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExMP2 -= ; 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) public ExMaxMP2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;

View File

@ -25,6 +25,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExSTR -= ; 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) public ExSTR2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; 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 (),
(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.Entity;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
namespace Oshima.FunGame.OshimaModules.Skills namespace Oshima.FunGame.OshimaModules.Skills
{ {
public class : Skill public class : Skill
{ {
public override long Id => (long)PassiveID.; public override long Id => (long)PassiveID.;
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 (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() 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 long Id => Skill.Id;
public override string Name => Skill.Name; 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.##}" : ""); $"在没有受到任何伤害的时候,将获得 {常规伤害加成 * 100:0.##}% 伤害加成。" + ( > 0 ? $"(当前累计受到伤害:{累计受到的伤害:0.##}" : "");
private double = 0; private double = 0;
@ -63,7 +68,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
if (character == Skill.Character) if (character == Skill.Character)
{ {
= (damage); = (damage);
WriteLine($"[ {character} ] 发动了玻璃大炮,获得了 {这次的伤害加成:0.##} 点伤害加成!"); WriteLine($"[ {character} ] 发动了破釜沉舟,获得了 {这次的伤害加成:0.##} 点伤害加成!");
= 0; = 0;
return ; return ;
} }
@ -76,7 +81,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
// 额外受到伤害 // 额外受到伤害
double = (Random.Shared.Next(30, 30) + 0.0) / 100; double = (Random.Shared.Next(30, 30) + 0.0) / 100;
= damage * ; = damage * ;
WriteLine($"[ {enemy} ] 的玻璃大炮触发,将额外受到 {这次受到的额外伤害:0.##} 点伤害!"); WriteLine($"[ {enemy} ] 的破釜沉舟触发,将额外受到 {这次受到的额外伤害:0.##} 点伤害!");
} }
else = 0; else = 0;
return ; return ;
@ -93,7 +98,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
if (enemy.HP < 0 && HP - damage + > 0) if (enemy.HP < 0 && HP - damage + > 0)
{ {
enemy.HP = 10; enemy.HP = 10;
WriteLine($"[ {enemy} ] 的玻璃大炮触发,保护了自己不进入死亡!!"); WriteLine($"[ {enemy} ] 的破釜沉舟触发,保护了自己不进入死亡!!");
} }
} }
} }

View File

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