修改技能

This commit is contained in:
milimoe 2024-11-08 23:42:15 +08:00
parent 19e7ac8321
commit 263dc6549b
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
83 changed files with 509 additions and 522 deletions

View File

@ -429,20 +429,33 @@ namespace Oshima.Core.Utils
{ {
foreach (Skill skill in skillRewards) foreach (Skill skill in skillRewards)
{ {
Dictionary<string, object> effectArgs = [];
if (RoundRewards.TryGetValue((EffectID)skill.Id, out Dictionary<string, object>? dict) && dict != null)
{
effectArgs = new(dict);
}
Dictionary<string, object> args = new() Dictionary<string, object> args = new()
{ {
{ "skill", skill }, { "skill", skill },
{ "values", skill.Values } { "values", effectArgs }
}; };
skill.GamingQueue = actionQueue; skill.GamingQueue = actionQueue;
skill.Effects.Add(Factory.OpenFactory.GetInstance<Effect>(skill.Id, "回合奖励", args)); skill.Effects.Add(Factory.OpenFactory.GetInstance<Effect>(skill.Id, "", args));
skill.Character = characterToAct; skill.Character = characterToAct;
skill.Level = 1; skill.Level = 1;
actionQueue.LastRound.RoundRewards.Add(skill);
WriteLine($"[ {characterToAct} ] 获得了回合奖励!{skill.Description}".Trim());
if (skill.IsActive)
{
actionQueue.LastRound.Targets.Add(characterToAct);
skill.OnSkillCasted(actionQueue, characterToAct, [characterToAct]);
}
else
{
characterToAct.Skills.Add(skill); characterToAct.Skills.Add(skill);
realSkillRewards.Add(skill); realSkillRewards.Add(skill);
} }
string msg = $"[ {characterToAct} ] 获得了回合奖励!{string.Join(" / ", realSkillRewards.Select(s => s.Description))}"; }
WriteLine(msg.Trim());
} }
bool isGameEnd = actionQueue.ProcessTurn(characterToAct); bool isGameEnd = actionQueue.ProcessTurn(characterToAct);
@ -471,11 +484,31 @@ namespace Oshima.Core.Utils
WriteLine(""); WriteLine("");
} }
string roundMsg = "";
if (actionQueue.LastRound.HasKill)
{
roundMsg = Msg;
if (!deathMatchRoundDetail)
{
roundMsg = actionQueue.LastRound.ToString();
}
Msg = "";
}
// 模拟时间流逝 // 模拟时间流逝
double timeLapse = actionQueue.TimeLapse(); double timeLapse = actionQueue.TimeLapse();
totalTime += timeLapse; totalTime += timeLapse;
-= timeLapse; -= timeLapse;
if (roundMsg != "")
{
if (isWeb)
{
roundMsg += "\r\n" + Msg;
}
result.Add(roundMsg);
}
if ( <= 0) if ( <= 0)
{ {
// 空投 // 空投
@ -500,28 +533,6 @@ namespace Oshima.Core.Utils
++; ++;
} }
} }
if (actionQueue.LastRound.HasKill)
{
string roundMsg = Msg;
if (!deathMatchRoundDetail)
{
roundMsg = actionQueue.LastRound.ToString();
}
if (!isWeb)
{
string[] strs = roundMsg.Split("==== 角色状态 ====");
if (strs.Length > 0)
{
roundMsg = strs[0];
}
result.Add(roundMsg);
}
else
{
result.Add(roundMsg);
}
}
} }
if (PrintOut) if (PrintOut)
@ -805,42 +816,75 @@ namespace Oshima.Core.Utils
Magics.AddRange([new (), new (), new (), new (), new (), new (), new (), new (), new (), new ()]); Magics.AddRange([new (), new (), new (), new (), new (), new (), new (), new (), new (), new ()]);
} }
public static Dictionary<int, List<Skill>> GenerateRoundRewards(int maxRound) public static Dictionary<EffectID, Dictionary<string, object>> RoundRewards
{ {
Dictionary<int, List<Skill>> roundRewards = []; get
{
// 设定产生的回合奖励 return new()
Dictionary<EffectID, Dictionary<string, object>> rewards = new()
{ {
{ {
EffectID.ExATK, EffectID.ExATK,
new() new()
{ {
{ "exatk", "60" } { "exatk", Random.Shared.Next(40, 80) }
} }
}, },
{ {
EffectID.ExCritRate, EffectID.ExCritRate,
new() new()
{ {
{ "excr", "0.5" } { "excr", Math.Clamp(Random.Shared.NextDouble(), 0.25, 0.5) }
} }
}, },
{ {
EffectID.ExCritDMG, EffectID.ExCritDMG,
new() new()
{ {
{ "excrd", "1" } { "excrd", Math.Clamp(Random.Shared.NextDouble(), 0.5, 1) }
} }
}, },
{ {
EffectID.ExATK2, EffectID.ExATK2,
new() new()
{ {
{ "exatk", "0.3" } { "exatk", Math.Clamp(Random.Shared.NextDouble(), 0.15, 0.3) }
}
},
{
EffectID.RecoverHP,
new()
{
{ "hp", Random.Shared.Next(160, 640) }
}
},
{
EffectID.RecoverMP,
new()
{
{ "mp", Random.Shared.Next(140, 490) }
}
},
{
EffectID.RecoverHP2,
new()
{
{ "hp", Math.Clamp(Random.Shared.NextDouble(), 0.04, 0.08) }
}
},
{
EffectID.RecoverMP2,
new()
{
{ "mp", Math.Clamp(Random.Shared.NextDouble(), 0.09, 0.18) }
} }
} }
}; };
}
}
public static Dictionary<int, List<Skill>> GenerateRoundRewards(int maxRound)
{
Dictionary<int, List<Skill>> roundRewards = [];
int currentRound = 1; int currentRound = 1;
while (currentRound <= maxRound) while (currentRound <= maxRound)
@ -852,8 +896,16 @@ namespace Oshima.Core.Utils
List<Skill> skills = []; List<Skill> skills = [];
// 添加回合奖励特效 // 添加回合奖励特效
EffectID effectID = rewards.Keys.ToArray()[Random.Shared.Next(rewards.Count)]; long effectID = (long)RoundRewards.Keys.ToArray()[Random.Shared.Next(RoundRewards.Count)];
skills.Add(Factory.OpenFactory.GetInstance<Skill>((long)effectID, "", rewards[effectID])); Dictionary<string, object> args = [];
if (effectID > (long)EffectID.Active_Start)
{
args.Add("active", true);
args.Add("self", true);
args.Add("enemy", false);
}
skills.Add(Factory.OpenFactory.GetInstance<Skill>(effectID, "回合奖励", args));
roundRewards[currentRound] = skills; roundRewards[currentRound] = skills;
} }

View File

@ -2,6 +2,11 @@
{ {
public enum EffectID : long public enum EffectID : long
{ {
/// <summary>
/// 被动特效起点
/// </summary>
Passive_Start = 8000,
/// <summary> /// <summary>
/// 数值攻击力参数exatk /// 数值攻击力参数exatk
/// </summary> /// </summary>
@ -159,5 +164,45 @@
/// 最大魔法值%参数exmp /// 最大魔法值%参数exmp
/// </summary> /// </summary>
ExMaxMP2 = 8031, ExMaxMP2 = 8031,
/// <summary>
/// 被动特效终点
/// </summary>
Passive_End = 8699,
/// <summary>
/// 主动特效起点
/// </summary>
Active_Start = 8700,
/// <summary>
/// 立即回复生命值参数hp
/// </summary>
RecoverHP = 8701,
/// <summary>
/// 立即回复魔法值参数mp
/// </summary>
RecoverMP = 8702,
/// <summary>
/// 立即回复生命值%参数hp
/// </summary>
RecoverHP2 = 8703,
/// <summary>
/// 立即回复魔法值%参数mp
/// </summary>
RecoverMP2 = 8704,
/// <summary>
/// 立即获得能量值参数ep
/// </summary>
GetEP = 8705,
/// <summary>
/// 主动特效终点
/// </summary>
Active_End = 8999
} }
} }

View File

@ -0,0 +1,35 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
{
public class GetEP : Effect
{
public override long Id => (long)EffectID.GetEP;
public override string Name => "立即获得能量值";
public override string Description => $"立即获得角色 {实际获得:0.##} 点能量值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
private readonly double = 0;
public GetEP(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("ep", StringComparison.CurrentCultureIgnoreCase)) ?? "";
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double ep))
{
= ep;
}
}
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
caster.EP += ;
}
}
}

View File

@ -0,0 +1,35 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
{
public class RecoverHP : Effect
{
public override long Id => (long)EffectID.RecoverHP;
public override string Name => "立即回复生命值";
public override string Description => $"立即回复角色 {实际回复:0.##} 点生命值(不可用于复活)。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
private readonly double = 0;
public RecoverHP(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("hp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double hp))
{
= hp;
}
}
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
HealToTarget(caster, caster, , false);
}
}
}

View File

@ -0,0 +1,36 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
{
public class RecoverHP2 : Effect
{
public override long Id => (long)EffectID.RecoverHP2;
public override string Name => "立即回复生命值";
public override string Description => $"立即回复角色 {回复比例 * 100:0.##}% [ {实际回复:0.##} ] 点生命值(不可用于复活)。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
private double => * (Skill.Character?.MaxHP ?? 0);
private readonly double = 0;
public RecoverHP2(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("hp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double hp))
{
= hp;
}
}
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
HealToTarget(caster, caster, , false);
}
}
}

View File

@ -0,0 +1,35 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
{
public class RecoverMP : Effect
{
public override long Id => (long)EffectID.RecoverMP;
public override string Name => "立即回复魔法值";
public override string Description => $"立即回复角色 {实际回复:0.##} 点魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
private readonly double = 0;
public RecoverMP(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("mp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double mp))
{
= mp;
}
}
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
caster.MP += ;
}
}
}

View File

@ -0,0 +1,36 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
{
public class RecoverMP2 : Effect
{
public override long Id => (long)EffectID.RecoverMP2;
public override string Name => "立即回复魔法值";
public override string Description => $"立即回复角色 {回复比例 * 100:0.##}% [ {实际回复:0.##} ] 点魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
private double => * (Skill.Character?.MaxMP ?? 0);
private readonly double = 0;
public RecoverMP2(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("mp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double mp))
{
= mp;
}
}
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
caster.MP += ;
}
}
}

View File

@ -1,35 +0,0 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
{
public class : Effect
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"增加角色 {实际冷却缩减加成 * 100:0.##}% 冷却缩减。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0;
public override void OnEffectGained(Character character)
{
character.ExCDR += ;
}
public override void OnEffectLost(Character character)
{
character.ExCDR -= ;
}
public (Skill skill, double exCdr, Character? source = null, Item? item = null) : base(skill)
{
GamingQueue = skill.GamingQueue;
= exCdr;
Source = source;
Item = item;
}
}
}

View File

@ -1,51 +0,0 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
{
public class : Effect
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"减少角色的所有主动技能 {实际硬直时间减少:0.##} 硬直时间。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 2;
public override void OnEffectGained(Character character)
{
foreach (Skill s in character.Skills)
{
s.HardnessTime -= ;
}
foreach (Skill? s in character.Items.Select(i => i.Skills.Active))
{
if (s != null)
s.HardnessTime -= ;
}
}
public override void OnEffectLost(Character character)
{
foreach (Skill s in character.Skills)
{
s.HardnessTime += ;
}
foreach (Skill? s in character.Items.Select(i => i.Skills.Active))
{
if (s != null)
s.HardnessTime += ;
}
}
public (Skill skill, double reduce, Character? source = null, Item? item = null) : base(skill)
{
GamingQueue = skill.GamingQueue;
= reduce;
Source = source;
Item = item;
}
}
}

View File

@ -1,35 +0,0 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
{
public class : Effect
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"增加角色 {实际攻击力加成:0.##} 点攻击力。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0;
public override void OnEffectGained(Character character)
{
character.ExATK2 += ;
}
public override void OnEffectLost(Character character)
{
character.ExATK2 -= ;
}
public (Skill skill, double exATK, Character? source = null, Item? item = null) : base(skill)
{
GamingQueue = skill.GamingQueue;
= exATK;
Source = source;
Item = item;
}
}
}

View File

@ -1,35 +0,0 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
{
public class : Effect
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"减少角色的普通攻击 {实际硬直时间减少:0.##} 硬直时间。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 2;
public override void OnEffectGained(Character character)
{
character.NormalAttack.HardnessTime -= ;
}
public override void OnEffectLost(Character character)
{
character.NormalAttack.HardnessTime += ;
}
public (Skill skill, double reduce, Character? source = null, Item? item = null) : base(skill)
{
GamingQueue = skill.GamingQueue;
= reduce;
Source = source;
Item = item;
}
}
}

View File

@ -1,35 +0,0 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.Effects.ItemEffects
{
public class : Effect
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"增加角色 {实际物理护甲加成:0.##} 点物理护甲。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0;
public override void OnEffectGained(Character character)
{
character.ExDEF2 += ;
}
public override void OnEffectLost(Character character)
{
character.ExDEF2 -= ;
}
public (Skill skill, double exDef, Character? source = null, Item? item = null) : base(skill)
{
GamingQueue = skill.GamingQueue;
= exDef;
Source = source;
Item = item;
}
}
}

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.AccelerationCoefficient; public override long Id => (long)EffectID.AccelerationCoefficient;
public override string Name => "加速系数加成"; public override string Name => "加速系数加成";
public override string Description => $"增加角色 {实际加成 * 100:0.##}% 加速系数。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.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 override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.AccelerationCoefficient -= ; character.AccelerationCoefficient -= ;
} }
public AccelerationCoefficient(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public AccelerationCoefficient(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exacc", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exacc", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExAGI; public override long Id => (long)EffectID.ExAGI;
public override string Name => "敏捷加成"; public override string Name => "敏捷加成";
public override string Description => $"增加角色 {实际加成:0.##} 点敏捷。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {实际加成:0.##} 点敏捷。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExAGI -= ; character.ExAGI -= ;
} }
public ExAGI(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExAGI(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exagi", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exagi", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExAGI2; public override long Id => (long)EffectID.ExAGI2;
public override string Name => "敏捷加成"; public override string Name => "敏捷加成";
public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点敏捷。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点敏捷。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
private double = 0; private double = 0;
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override void OnEffectLost(Character character) public override void OnEffectLost(Character character)
{ {
character.ExAGI -= ; character.ExAGI -= ;
= 0;
} }
public ExAGI2(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExAGI2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exagi", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exagi", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExATK; public override long Id => (long)EffectID.ExATK;
public override string Name => "攻击力加成"; public override string Name => "攻击力加成";
public override string Description => $"增加角色 {实际加成:0.##} 点攻击力。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {实际加成:0.##} 点攻击力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExATK2 -= ; character.ExATK2 -= ;
} }
public ExATK(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExATK(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exatk", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exatk", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExATK2; public override long Id => (long)EffectID.ExATK2;
public override string Name => "攻击力加成"; public override string Name => "攻击力加成";
public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点攻击力。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点攻击力。" + (Source != null && Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
private double = 0; private double = 0;
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override void OnEffectLost(Character character) public override void OnEffectLost(Character character)
{ {
character.ExATK2 -= ; character.ExATK2 -= ;
= 0;
} }
public ExATK2(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExATK2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exatk", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exatk", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExActionCoefficient; public override long Id => (long)EffectID.ExActionCoefficient;
public override string Name => "行动系数加成"; public override string Name => "行动系数加成";
public override string Description => $"增加角色 {实际加成 * 100:0.##}% 行动系数。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.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 override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExActionCoefficient -= ; character.ExActionCoefficient -= ;
} }
public ExActionCoefficient(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExActionCoefficient(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exac", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exac", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExCDR; public override long Id => (long)EffectID.ExCDR;
public override string Name => "冷却缩减加成"; public override string Name => "冷却缩减加成";
public override string Description => $"增加角色 {实际加成 * 100:0.##}% 冷却缩减。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.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 override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExCDR -= ; character.ExCDR -= ;
} }
public ExCDR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExCDR(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("excdr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("excdr", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExCritDMG; public override long Id => (long)EffectID.ExCritDMG;
public override string Name => "暴击伤害加成"; public override string Name => "暴击伤害加成";
public override string Description => $"增加角色 {实际加成 * 100:0.##}% 暴击伤害。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.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 override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExCritDMG -= ; character.ExCritDMG -= ;
} }
public ExCritDMG(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExCritDMG(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("excrd", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("excrd", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExCritRate; public override long Id => (long)EffectID.ExCritRate;
public override string Name => "暴击率加成"; public override string Name => "暴击率加成";
public override string Description => $"增加角色 {实际加成 * 100:0.##}% 暴击率。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.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 override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExCritRate -= ; character.ExCritRate -= ;
} }
public ExCritRate(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExCritRate(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("excr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("excr", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExDEF; public override long Id => (long)EffectID.ExDEF;
public override string Name => "物理护甲加成"; public override string Name => "物理护甲加成";
public override string Description => $"增加角色 {实际加成:0.##} 点物理护甲。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {实际加成:0.##} 点物理护甲。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExDEF2 -= ; character.ExDEF2 -= ;
} }
public ExDEF(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExDEF(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exdef", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exdef", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExDEF2; public override long Id => (long)EffectID.ExDEF2;
public override string Name => "物理护甲加成"; public override string Name => "物理护甲加成";
public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点物理护甲。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点物理护甲。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
private double = 0; private double = 0;
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override void OnEffectLost(Character character) public override void OnEffectLost(Character character)
{ {
character.ExDEF2 -= ; character.ExDEF2 -= ;
= 0;
} }
public ExDEF2(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExDEF2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exdef", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exdef", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExEvadeRate; public override long Id => (long)EffectID.ExEvadeRate;
public override string Name => "闪避率加成"; public override string Name => "闪避率加成";
public override string Description => $"增加角色 {实际加成 * 100:0.##}% 闪避率。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.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 override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExEvadeRate -= ; character.ExEvadeRate -= ;
} }
public ExEvadeRate(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExEvadeRate(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exer", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exer", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExHR; public override long Id => (long)EffectID.ExHR;
public override string Name => "生命回复加成"; public override string Name => "生命回复加成";
public override string Description => $"增加角色 {实际加成:0.##} 点生命回复。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {实际加成:0.##} 点生命回复。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExHR -= ; character.ExHR -= ;
} }
public ExHR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExHR(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exhr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exhr", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExINT; public override long Id => (long)EffectID.ExINT;
public override string Name => "智力加成"; public override string Name => "智力加成";
public override string Description => $"增加角色 {实际加成:0.##} 点智力。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {实际加成:0.##} 点智力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExINT -= ; character.ExINT -= ;
} }
public ExINT(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExINT(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exint", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exint", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExINT2; public override long Id => (long)EffectID.ExINT2;
public override string Name => "智力加成"; public override string Name => "智力加成";
public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点智力。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点智力。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
private double = 0; private double = 0;
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override void OnEffectLost(Character character) public override void OnEffectLost(Character character)
{ {
character.ExINT -= ; character.ExINT -= ;
= 0;
} }
public ExINT2(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExINT2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exint", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exint", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExMDF; public override long Id => (long)EffectID.ExMDF;
public override string Name => "魔法抗性加成"; public override string Name => "魔法抗性加成";
public override string Description => $"增加角色 {实际加成 * 100:0.##}% {CharacterSet.GetMagicResistanceName(魔法类型)}。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {实际加成 * 100:0.##}% {CharacterSet.GetMagicResistanceName(魔法类型)}。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
private readonly MagicType = MagicType.None; private readonly MagicType = MagicType.None;
@ -85,11 +83,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
} }
} }
public ExMDF(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExMDF(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("mdfType", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("mdfType", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExMR; public override long Id => (long)EffectID.ExMR;
public override string Name => "魔法回复加成"; public override string Name => "魔法回复加成";
public override string Description => $"增加角色 {实际加成:0.##} 点魔法回复。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {实际加成:0.##} 点魔法回复。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExMR -= ; character.ExMR -= ;
} }
public ExMR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExMR(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exmr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exmr", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExMaxHP; public override long Id => (long)EffectID.ExMaxHP;
public override string Name => "最大生命值加成"; public override string Name => "最大生命值加成";
public override string Description => $"增加角色 {实际加成:0.##} 点最大生命值。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {实际加成:0.##} 点最大生命值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExHP2 -= ; character.ExHP2 -= ;
} }
public ExMaxHP(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExMaxHP(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exhp", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exhp", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExMaxHP2; public override long Id => (long)EffectID.ExMaxHP2;
public override string Name => "最大生命值加成"; public override string Name => "最大生命值加成";
public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点最大生命值。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点最大生命值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
private double = 0; private double = 0;
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override void OnEffectLost(Character character) public override void OnEffectLost(Character character)
{ {
character.ExHP2 -= ; character.ExHP2 -= ;
= 0;
} }
public ExMaxHP2(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExMaxHP2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exhp", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exhp", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExMaxMP; public override long Id => (long)EffectID.ExMaxMP;
public override string Name => "最大魔法值加成"; public override string Name => "最大魔法值加成";
public override string Description => $"增加角色 {实际加成:0.##} 点最大魔法值。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {实际加成:0.##} 点最大魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExMP2 -= ; character.ExMP2 -= ;
} }
public ExMaxMP(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExMaxMP(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExMaxMP2; public override long Id => (long)EffectID.ExMaxMP2;
public override string Name => "最大魔法值加成"; public override string Name => "最大魔法值加成";
public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点最大魔法值。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点最大魔法值。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
private double = 0; private double = 0;
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override void OnEffectLost(Character character) public override void OnEffectLost(Character character)
{ {
character.ExMP2 -= ; character.ExMP2 -= ;
= 0;
} }
public ExMaxMP2(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExMaxMP2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExPDR; public override long Id => (long)EffectID.ExPDR;
public override string Name => "物理伤害减免加成"; public override string Name => "物理伤害减免加成";
public override string Description => $"增加角色 {实际加成 * 100:0.##}% 物理伤害减免。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.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 override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExPDR -= ; character.ExPDR -= ;
} }
public ExPDR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExPDR(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("expdr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("expdr", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExSPD; public override long Id => (long)EffectID.ExSPD;
public override string Name => "行动速度加成"; public override string Name => "行动速度加成";
public override string Description => $"增加角色 {实际加成:0.##} 点行动速度。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {实际加成:0.##} 点行动速度。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExSPD -= ; character.ExSPD -= ;
} }
public ExSPD(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExSPD(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exspd", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exspd", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExSTR; public override long Id => (long)EffectID.ExSTR;
public override string Name => "力量加成"; public override string Name => "力量加成";
public override string Description => $"增加角色 {实际加成:0.##} 点力量。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {实际加成:0.##} 点力量。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.ExSTR -= ; character.ExSTR -= ;
} }
public ExSTR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExSTR(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exstr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exstr", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.ExSTR2; public override long Id => (long)EffectID.ExSTR2;
public override string Name => "力量加成"; public override string Name => "力量加成";
public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点力量。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"增加角色 {加成比例 * 100:0.##}% [ {实际加成:0.##} ] 点力量。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
private double = 0; private double = 0;
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override void OnEffectLost(Character character) public override void OnEffectLost(Character character)
{ {
character.ExSTR -= ; character.ExSTR -= ;
= 0;
} }
public ExSTR2(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExSTR2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exstr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exstr", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.MagicalPenetration; public override long Id => (long)EffectID.MagicalPenetration;
public override string Name => "魔法穿透加成"; public override string Name => "魔法穿透加成";
public override string Description => $"增加角色 {实际加成 * 100:0.##}% 魔法穿透。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.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 override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.MagicalPenetration -= ; character.MagicalPenetration -= ;
} }
public MagicalPenetration(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public MagicalPenetration(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exmpt", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exmpt", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ 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.##} 硬直时间。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"减少角色的普通攻击 {实际硬直时间减少:0.##} 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.NormalAttack.HardnessTime += ; character.NormalAttack.HardnessTime += ;
} }
public NormalAttackHardTimeReduce(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public NormalAttackHardTimeReduce(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("nahtr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("nahtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.NormalAttackHardTimeReduce2; public override long Id => (long)EffectID.NormalAttackHardTimeReduce2;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"减少角色的普通攻击 {减少比例 * 100:0.##}% 硬直时间。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.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 override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.NormalAttack.HardnessTime += character.NormalAttack.HardnessTime * ; character.NormalAttack.HardnessTime += character.NormalAttack.HardnessTime * ;
} }
public NormalAttackHardTimeReduce2(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public NormalAttackHardTimeReduce2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("nahtr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("nahtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.PhysicalPenetration; public override long Id => (long)EffectID.PhysicalPenetration;
public override string Name => "物理穿透加成"; public override string Name => "物理穿透加成";
public override string Description => $"增加角色 {实际加成 * 100:0.##}% 物理穿透。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.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 override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
character.PhysicalPenetration -= ; character.PhysicalPenetration -= ;
} }
public PhysicalPenetration(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public PhysicalPenetration(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("exppt", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("exppt", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ 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.##} 硬直时间。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.Name} ]" : "") : ""); public override string Description => $"减少角色的所有主动技能 {实际硬直时间减少:0.##} 硬直时间。" + (Source != null && Skill.Character != Source ? $"来自:[ {Source} ]" + (Skill.Item != null ? $" 的 [ {Skill.Item.Name} ]" : "") : "");
public override EffectType EffectType => EffectType.Item; public override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -40,11 +38,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
} }
} }
public SkillHardTimeReduce(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public SkillHardTimeReduce(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("shtr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("shtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
{ {
public override long Id => (long)EffectID.SkillHardTimeReduce2; public override long Id => (long)EffectID.SkillHardTimeReduce2;
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"减少角色的所有主动技能 {减少比例 * 100:0.##}% 硬直时间。" + (!TargetSelf ? $"来自:[ {Source} ]" + (Item != null ? $" 的 [ {Item.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 override EffectType EffectType => EffectType.Item;
public override bool TargetSelf => true;
public Item? Item { get; }
private readonly double = 0; private readonly double = 0;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
@ -40,11 +38,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
} }
} }
public SkillHardTimeReduce2(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public SkillHardTimeReduce2(Skill skill, Dictionary<string, object> args, Character? source = null) : base(skill, args)
{ {
GamingQueue = skill.GamingQueue; GamingQueue = skill.GamingQueue;
Source = source; Source = source;
Item = item;
if (Values.Count > 0) if (Values.Count > 0)
{ {
string key = Values.Keys.FirstOrDefault(s => s.Equals("shtr", StringComparison.CurrentCultureIgnoreCase)) ?? ""; string key = Values.Keys.FirstOrDefault(s => s.Equals("shtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";

View File

@ -9,7 +9,6 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
public override string Name => "眩晕"; public override string Name => "眩晕";
public override string Description => $"此角色被眩晕了,不能行动。来自:[ {Source} ] 的 [ {Skill.Name} ]"; public override string Description => $"此角色被眩晕了,不能行动。来自:[ {Source} ] 的 [ {Skill.Name} ]";
public override EffectType EffectType => EffectType.Stun; public override EffectType EffectType => EffectType.Stun;
public override bool TargetSelf => true;
public override Character Source => _sourceCharacter; public override Character Source => _sourceCharacter;
public override bool Durative => _durative; public override bool Durative => _durative;
public override double Duration => _duration; public override double Duration => _duration;

View File

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

View File

@ -7,8 +7,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
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 => $"对目标{(TargetCount > 1 ? $" {TargetCount} " : "")}敌人造成 {BaseDamage:0.##} + {AttributeCoefficient * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(基于属性)} [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。"; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成 {BaseDamage:0.##} + {AttributeCoefficient * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(基于属性)} [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。";
public override bool TargetSelf => false;
private double BaseDamage => Skill.Level > 0 ? + * (Skill.Level - 1) : ; private double BaseDamage => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double AttributeCoefficient => Skill.Level > 0 ? + * (Skill.Level - 1) : ; private double AttributeCoefficient => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double Damage private double Damage

View File

@ -7,12 +7,11 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
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 => $"对目标{(TargetCount > 1 ? $" {TargetCount} " : "")}敌人造成 {BaseDamage:0.##} + {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。"; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成 {BaseDamage:0.##} + {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。";
public override bool TargetSelf => false;
private double BaseDamage => Skill.Level > 0 ? + * (Skill.Level - 1) : ; private double BaseDamage => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double ATKCoefficient => Skill.Level > 0 ? + * (Skill.Level - 1) : ; private double ATKCoefficient => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double Damage => BaseDamage + (ATKCoefficient * Skill.Character?.ATK ?? 0); private double Damage => BaseDamage + (ATKCoefficient * Skill.Character?.ATK ?? 0);
private double { get; set; } = 100; private double { get; set; } = 100;
private double { get; set; } = 50; private double { get; set; } = 50;
private double { get; set; } = 0.2; private double { get; set; } = 0.2;

View File

@ -7,11 +7,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
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 => $"对目标{(TargetCount > 1 ? $" {TargetCount} " : "")}敌人造成 {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。"; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成 {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。";
public override bool TargetSelf => false;
private double ATKCoefficient => Skill.Level > 0 ? + * (Skill.Level - 1) : ; private double ATKCoefficient => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double Damage => ATKCoefficient * Skill.Character?.ATK ?? 0; private double Damage => ATKCoefficient * Skill.Character?.ATK ?? 0;
private double { get; set; } = 1.5; private double { get; set; } = 1.5;
private double { get; set; } = 0.25; private double { get; set; } = 0.25;
private bool IsMagic { get; set; } = true; private bool IsMagic { get; set; } = true;

View File

@ -7,12 +7,11 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
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 => $"对目标{(TargetCount > 1 ? $" {TargetCount} " : "")}敌人造成 {BaseDamage:0.##} + {AttributeCoefficient * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(Skill.Character?.PrimaryAttribute ?? PrimaryAttribute.INT)} [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。"; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成 {BaseDamage:0.##} + {AttributeCoefficient * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(Skill.Character?.PrimaryAttribute ?? PrimaryAttribute.INT)} [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。";
public override bool TargetSelf => false;
private double BaseDamage => Skill.Level > 0 ? + * (Skill.Level - 1) : ; private double BaseDamage => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double AttributeCoefficient => Skill.Level > 0 ? + * (Skill.Level - 1) : ; private double AttributeCoefficient => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double Damage => BaseDamage + (AttributeCoefficient * Skill.Character?.PrimaryAttributeValue ?? 0); private double Damage => BaseDamage + (AttributeCoefficient * Skill.Character?.PrimaryAttributeValue ?? 0);
private double { get; set; } = 100; private double { get; set; } = 100;
private double { get; set; } = 50; private double { get; set; } = 50;
private double { get; set; } = 0.4; private double { get; set; } = 0.4;

View File

@ -6,8 +6,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
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 => $"为{(TargetCount > 1 ? $" {TargetCount} " : "")}目标回复其最大生命值 {百分比 * 100:0.##}% 点生命值。"; public override string Description => $"为{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}目标回复其最大生命值 {百分比 * 100:0.##}% 点生命值。";
public override bool TargetSelf => true;
private double { get; set; } = 0.03; private double { get; set; } = 0.03;
private double { get; set; } = 0.03; private double { get; set; } = 0.03;

View File

@ -7,10 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
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 => $"对目标{(TargetCount > 1 ? $" {TargetCount} " : "")}敌人造成 {Damage:0.##} 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。"; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成 {Damage:0.##} 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。";
public override bool TargetSelf => false;
private double Damage => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double Damage => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double { get; set; } = 200; private double { get; set; } = 200;
private double { get; set; } = 100; private double { get; set; } = 100;
private bool IsMagic { get; set; } = true; private bool IsMagic { get; set; } = true;

View File

@ -6,8 +6,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
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 => $"为{(TargetCount > 1 ? $" {TargetCount} " : "")}目标回复 {Heal:0.##} 点生命值。"; public override string Description => $"为{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}目标回复 {Heal:0.##} 点生命值。";
public override bool TargetSelf => true;
private double Heal => Skill.Level > 0 ? + * (Skill.Level - 1) : ; private double Heal => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double { get; set; } = 100; private double { get; set; } = 100;

View File

@ -7,8 +7,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{ {
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 => $"对目标{(TargetCount > 1 ? $" {TargetCount} " : "")}敌人造成眩晕 {眩晕时间}。"; public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成眩晕 {眩晕时间}。";
public override bool TargetSelf => false;
private string => _durative && _duration > 0 ? _duration + " 时间" : (!_durative && _durationTurn > 0 ? _durationTurn + " 回合" : "0 时间"); private string => _durative && _duration > 0 ? _duration + " 时间" : (!_durative && _durationTurn > 0 ? _durationTurn + " 回合" : "0 时间");
private readonly bool _durative; private readonly bool _durative;

View File

@ -1,6 +1,6 @@
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.ItemEffects; using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
using Oshima.FunGame.OshimaModules.Skills; using Oshima.FunGame.OshimaModules.Skills;
namespace Oshima.FunGame.OshimaModules.Items namespace Oshima.FunGame.OshimaModules.Items
@ -54,7 +54,11 @@ namespace Oshima.FunGame.OshimaModules.Items
{ {
Level = 1; Level = 1;
Item = item; Item = item;
Effects.Add(new (this, exATK, character, item)); Dictionary<string, object> values = new()
{
{ "exatk", exATK }
};
Effects.Add(new ExATK(this, values, character));
} }
public override IEnumerable<Effect> AddInactiveEffectToCharacter() public override IEnumerable<Effect> AddInactiveEffectToCharacter()

View File

@ -1,6 +1,6 @@
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.ItemEffects; using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
namespace Oshima.FunGame.OshimaModules.Items namespace Oshima.FunGame.OshimaModules.Items
{ {
@ -31,8 +31,13 @@ namespace Oshima.FunGame.OshimaModules.Items
{ {
Level = 1; Level = 1;
Item = item; Item = item;
Effects.Add(new (this, , character, item)); Dictionary<string, object> values = new()
Effects.Add(new (this, , character, item)); {
{ "exatk", },
{ "hatr", }
};
Effects.Add(new ExATK(this, values, character));
Effects.Add(new NormalAttackHardTimeReduce(this, values, character));
} }
public override IEnumerable<Effect> AddInactiveEffectToCharacter() public override IEnumerable<Effect> AddInactiveEffectToCharacter()

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 Oshima.FunGame.OshimaModules.Effects.ItemEffects;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
using Oshima.FunGame.OshimaModules.Items; using Oshima.FunGame.OshimaModules.Items;
using Oshima.FunGame.OshimaModules.Skills; using Oshima.FunGame.OshimaModules.Skills;
@ -117,6 +118,11 @@ namespace Oshima.FunGame.OshimaModules
EffectID.NormalAttackHardTimeReduce2 => new NormalAttackHardTimeReduce2(skill, dict), EffectID.NormalAttackHardTimeReduce2 => new NormalAttackHardTimeReduce2(skill, dict),
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.RecoverHP => new RecoverHP(skill, dict),
EffectID.RecoverMP => new RecoverMP(skill, dict),
EffectID.RecoverHP2 => new RecoverHP2(skill, dict),
EffectID.RecoverMP2 => new RecoverMP2(skill, dict),
EffectID.GetEP => new GetEP(skill, dict),
_ => null _ => null
}; };
} }

View File

@ -12,6 +12,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double EPCost => 100; public override double EPCost => 100;
public override double CD => 42 - 1 * (Level - 1); public override double CD => 42 - 1 * (Level - 1);
public override double HardnessTime { get; set; } = 12; public override double HardnessTime { get; set; } = 12;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public (Character? character = null) : base(SkillType.SuperSkill, character) public (Character? character = null) : base(SkillType.SuperSkill, character)
{ {
@ -24,7 +26,6 @@ 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} 时间内,攻击拥有标记的角色将根据标记层数获得 {吸血 * 100:0.##}% 吸血每层。";
public override bool TargetSelf => true;
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 30; public override double Duration => 30;

View File

@ -26,7 +26,6 @@ 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 => $"每次造成伤害都可以叠一层标记,累计 4 层时回收该角色所有标记并造成眩晕 1 回合,额外对该角色造成 {系数 * 100:0.##}% 最大生命值的物理伤害。";
public override bool TargetSelf => true;
private readonly double = 0.12; private readonly double = 0.12;
private bool = false; private bool = false;

View File

@ -25,7 +25,6 @@ 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 => $"每时间提升 {伤害提升 * 100:0.##}% 所有伤害,无上限,但受到伤害时效果清零。" + ( > 0 ? $"(当前总提升:{累计伤害 * 100:0.##}%" : "");
public override bool TargetSelf => true;
private readonly double = 0.04; private readonly double = 0.04;
private double = 0; private double = 0;

View File

@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
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 => 32 + (1 * (Level - 1));
public override double HardnessTime { get; set; } = 12; public override double HardnessTime { get; set; } = 12;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public (Character? character = null) : base(SkillType.SuperSkill, character) public (Character? character = null) : base(SkillType.SuperSkill, character)
{ {
@ -23,7 +25,6 @@ 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.##} 时间内无法受到任何伤害,且敏捷提升 {系数 * 100:0.##}% [ {敏捷提升:0.##} ]。此技能会消耗至少 100 点能量。";
public override bool TargetSelf => true;
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

@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double EPCost => 100; public override double EPCost => 100;
public override double CD => 40 - 1 * (Level - 1); public override double CD => 40 - 1 * (Level - 1);
public override double HardnessTime { get; set; } = 8; public override double HardnessTime { get; set; } = 8;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public (Character? character = null) : base(SkillType.SuperSkill, character) public (Character? character = null) : base(SkillType.SuperSkill, character)
{ {
@ -23,7 +25,6 @@ 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 时间内暴击率提升 {暴击率提升 * 100:0.##}%,暴击伤害提升 {暴击伤害提升 * 100:0.##}%,物理穿透提升 {物理穿透提升 * 100:0.##}%。";
public override bool TargetSelf => true;
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 30; public override double Duration => 30;

View File

@ -25,7 +25,6 @@ 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 => $"暴击伤害提升 70%。"; public override string Description => $"暴击伤害提升 70%。";
public override bool TargetSelf => true;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
{ {

View File

@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double EPCost => 100; public override double EPCost => 100;
public override double CD => 35 - 2 * (Level - 1); public override double CD => 35 - 2 * (Level - 1);
public override double HardnessTime { get; set; } = 10; public override double HardnessTime { get; set; } = 10;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public (Character? character = null) : base(SkillType.SuperSkill, character) public (Character? character = null) : base(SkillType.SuperSkill, character)
{ {
@ -24,7 +26,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => "三重叠加"; public override string Name => "三重叠加";
public override string Description => $"使 [ 灵能反射 ] 支持普通攻击,且当前释放魔法次数归零,最大硬直消除次数提高到 {灵能反射次数} 次;在魔法命中和普通攻击命中时能够回复所回复能量值的 10 倍魔法值,持续 {技能持续次数} 次(灵能反射每消除次数达到最大时算一次)。" + public override string Description => $"使 [ 灵能反射 ] 支持普通攻击,且当前释放魔法次数归零,最大硬直消除次数提高到 {灵能反射次数} 次;在魔法命中和普通攻击命中时能够回复所回复能量值的 10 倍魔法值,持续 {技能持续次数} 次(灵能反射每消除次数达到最大时算一次)。" +
$"(剩余:{剩余持续次数} 次)"; $"(剩余:{剩余持续次数} 次)";
public override bool TargetSelf => true;
public int { get; set; } = 0; public int { get; set; } = 0;
private readonly int = 3; private readonly int = 3;

View File

@ -25,7 +25,6 @@ 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 => $"每释放 {触发硬直次数:0.##} 次魔法才会触发硬直时间,且魔法命中时基于 25% 智力 [ {获得额外能量值:0.##} ] 获得额外能量值。"; public override string Description => $"每释放 {触发硬直次数:0.##} 次魔法才会触发硬直时间,且魔法命中时基于 25% 智力 [ {获得额外能量值:0.##} ] 获得额外能量值。";
public override bool TargetSelf => true;
public bool { get; set; } = false; public bool { get; set; } = false;
public int { get; set; } = 2; public int { get; set; } = 2;

View File

@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double EPCost => 100; public override double EPCost => 100;
public override double CD => 30; public override double CD => 30;
public override double HardnessTime { get; set; } = 10; public override double HardnessTime { get; set; } = 10;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public (Character? character = null) : base(SkillType.SuperSkill, character) public (Character? character = null) : base(SkillType.SuperSkill, character)
{ {
@ -23,7 +25,6 @@ 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 => $"检查 [ 智慧与力量 ] 的模式。在力量模式下,立即回复 {生命值回复 * 100:0.##}% 生命值;智力模式下,下一次魔法伤害提升 {伤害提升 * 100:0.##}%。"; public override string Description => $"检查 [ 智慧与力量 ] 的模式。在力量模式下,立即回复 {生命值回复 * 100:0.##}% 生命值;智力模式下,下一次魔法伤害提升 {伤害提升 * 100:0.##}%。";
public override bool TargetSelf => true;
private double => 0.25 + 0.03 * (Level - 1); private double => 0.25 + 0.03 * (Level - 1);
private double => 0.55 + 0.25 * (Level - 1); private double => 0.55 + 0.25 * (Level - 1);

View File

@ -26,7 +26,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"当生命值低于 30% 时,智力转化为力量;当生命值高于或等于 30% 时,力量转化为智力。力量模式下,造成伤害必定暴击;智力模式下,获得 30% 闪避率和 25% 魔法抗性。" + public override string Description => $"当生命值低于 30% 时,智力转化为力量;当生命值高于或等于 30% 时,力量转化为智力。力量模式下,造成伤害必定暴击;智力模式下,获得 30% 闪避率和 25% 魔法抗性。" +
(Skill.Character != null ? "(当前模式:" + CharacterSet.GetPrimaryAttributeName(Skill.Character.PrimaryAttribute) + "" : ""); (Skill.Character != null ? "(当前模式:" + CharacterSet.GetPrimaryAttributeName(Skill.Character.PrimaryAttribute) + "" : "");
public override bool TargetSelf => true;
private double = 0; private double = 0;
private double = 0; private double = 0;

View File

@ -25,7 +25,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 => $"META马专属被动力量+5力量成长+0.5在受到伤害时获得的能量提升50%,每回合开始还能获得额外的 [ {EP:0.##} ] 能量值。"; public override string Description => $"META马专属被动力量+5力量成长+0.5在受到伤害时获得的能量提升50%,每回合开始还能获得额外的 [ {EP:0.##} ] 能量值。";
public override bool TargetSelf => true;
public static double EP => 7; public static double EP => 7;
public override void AlterEPAfterGetDamage(Character character, ref double baseEP) public override void AlterEPAfterGetDamage(Character character, ref double baseEP)

View File

@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double EPCost => 100; public override double EPCost => 100;
public override double CD => 55; public override double CD => 55;
public override double HardnessTime { get; set; } = 0; public override double HardnessTime { get; set; } = 0;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public (Character? character = null) : base(SkillType.SuperSkill, character) public (Character? character = null) : base(SkillType.SuperSkill, character)
{ {
@ -23,7 +25,6 @@ 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.##} 时间。";
public override bool TargetSelf => true;
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

@ -26,7 +26,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
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的加成上限}% ] 伤害加成。" +
$"在没有受到任何伤害的时候,将获得 {常规伤害加成 * 100:0.##}% 伤害加成。" + ( > 0 ? $"(当前累计受到伤害:{累计受到的伤害:0.##}" : ""); $"在没有受到任何伤害的时候,将获得 {常规伤害加成 * 100:0.##}% 伤害加成。" + ( > 0 ? $"(当前累计受到伤害:{累计受到的伤害:0.##}" : "");
public override bool TargetSelf => true;
private double = 0; private double = 0;
private double = 0; private double = 0;

View File

@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double EPCost => 100; public override double EPCost => 100;
public override double CD => 60 - 2 * (Level - 1); public override double CD => 60 - 2 * (Level - 1);
public override double HardnessTime { get; set; } = 15; public override double HardnessTime { get; set; } = 15;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public (Character? character = null) : base(SkillType.SuperSkill, character) public (Character? character = null) : base(SkillType.SuperSkill, character)
{ {
@ -23,7 +25,6 @@ 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.##} 时间内,提升自身 25% 物理伤害减免和魔法抗性,普通攻击转为魔法伤害,且硬直时间减少 30%,并基于 {智力系数 * 100:0.##}% 智力 [ {智力加成:0.##} ] 强化普通攻击伤害。";
public override bool TargetSelf => true;
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 40; public override double Duration => 40;
@ -47,10 +48,10 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override void OnEffectLost(Character character) public override void OnEffectLost(Character character)
{ {
character.NormalAttack.SetMagicType(false, character.MagicType); character.NormalAttack.SetMagicType(false, character.MagicType);
= 0;
= 0;
character.ExPDR -= ; character.ExPDR -= ;
character.MDF.SetAllValue(-, false); character.MDF.SetAllValue(-, false);
= 0;
= 0;
} }
public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType) public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType)

View File

@ -25,7 +25,6 @@ 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 => $"每次造成伤害都会随机减少对方 [ 7~15 ] 点能量值,对能量值低于一半的角色额外造成 30% 伤害。对于枯竭打击而言能量值大于100且小于150时视为低于一半。"; public override string Description => $"每次造成伤害都会随机减少对方 [ 7~15 ] 点能量值,对能量值低于一半的角色额外造成 30% 伤害。对于枯竭打击而言能量值大于100且小于150时视为低于一半。";
public override bool TargetSelf => true;
private bool = false; private bool = false;

View File

@ -12,6 +12,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CD => 55 - 3 * (Level - 1); public override double CD => 55 - 3 * (Level - 1);
public override double HardnessTime { get; set; } = 25; public override double HardnessTime { get; set; } = 25;
public override string Slogan => "从深渊引爆力量,世界将为之颤抖!!!!"; public override string Slogan => "从深渊引爆力量,世界将为之颤抖!!!!";
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public (Character? character = null) : base(SkillType.SuperSkill, character) public (Character? character = null) : base(SkillType.SuperSkill, character)
{ {
@ -30,8 +32,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"对所有角色造成 " + public override string Description => $"对所有角色造成 " +
$"{能量系数 * 100:0.##}% 其现有能量值 + {智力系数 * 100:0.##}% 智力 [ {智力伤害:0.##} ] 的魔法伤害。"; $"{能量系数 * 100:0.##}% 其现有能量值 + {智力系数 * 100:0.##}% 智力 [ {智力伤害:0.##} ] 的魔法伤害。";
public override bool TargetSelf => false;
public override double TargetRange => 999;
private double => 0.25 * Level; private double => 0.25 * Level;
private double => * Skill.Character?.INT ?? 0; private double => * Skill.Character?.INT ?? 0;

View File

@ -25,7 +25,6 @@ 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 => $"优先攻击血量更低的角色,对生命值百分比低于自己的角色造成 150% 伤害。";
public override bool TargetSelf => true;
public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType) public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType)
{ {

View File

@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double EPCost => 100; public override double EPCost => 100;
public override double CD => 45; public override double CD => 45;
public override double HardnessTime { get; set; } = 7; public override double HardnessTime { get; set; } = 7;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public (Character? character = null) : base(SkillType.SuperSkill, character) public (Character? character = null) : base(SkillType.SuperSkill, character)
{ {
@ -23,7 +25,6 @@ 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.##} 时间。";
public override bool TargetSelf => true;
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 30; public override double Duration => 30;

View File

@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double EPCost => 100; public override double EPCost => 100;
public override double CD => 60; public override double CD => 60;
public override double HardnessTime { get; set; } = 15; public override double HardnessTime { get; set; } = 15;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public (Character? character = null) : base(SkillType.SuperSkill, character) public (Character? character = null) : base(SkillType.SuperSkill, character)
{ {
@ -23,8 +25,6 @@ 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.##} 时间内,增加 40% 攻击力 [ {攻击力提升:0.##} ]、30% 物理穿透和 25% 闪避率(不可叠加),普通攻击硬直时间额外减少 20%,基于 {系数 * 100:0.##}% 敏捷 [ {伤害加成:0.##} ] 强化普通攻击的伤害。在持续时间内,【心灵之火】的冷却时间降低至 3 时间。"; public override string Description => $"{Duration:0.##} 时间内,增加 40% 攻击力 [ {攻击力提升:0.##} ]、30% 物理穿透和 25% 闪避率(不可叠加),普通攻击硬直时间额外减少 20%,基于 {系数 * 100:0.##}% 敏捷 [ {伤害加成:0.##} ] 强化普通攻击的伤害。在持续时间内,【心灵之火】的冷却时间降低至 3 时间。";
public override bool TargetSelf => false;
public override int TargetCount => 1;
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 40; public override double Duration => 40;

View File

@ -26,7 +26,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Name => Skill.Name; public override string Name => Skill.Name;
public override string Description => $"普通攻击硬直时间减少 20%。每次使用普通攻击时,额外再发动一次普通攻击,伤害特效可叠加,冷却 {基础冷却时间:0.##} 时间。" + public override string Description => $"普通攻击硬直时间减少 20%。每次使用普通攻击时,额外再发动一次普通攻击,伤害特效可叠加,冷却 {基础冷却时间:0.##} 时间。" +
( > 0 ? $"(正在冷却:剩余 {冷却时间:0.##} 时间)" : ""); ( > 0 ? $"(正在冷却:剩余 {冷却时间:0.##} 时间)" : "");
public override bool TargetSelf => true;
public double { get; set; } = 0; public double { get; set; } = 0;
public double { get; set; } = 20; public double { get; set; } = 20;

View File

@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
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; } = 10;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public (Character? character = null) : base(SkillType.SuperSkill, character) public (Character? character = null) : base(SkillType.SuperSkill, character)
{ {
@ -23,7 +25,6 @@ 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.##} 时间内,增加所有伤害的 {减伤比例 * 100:0.##}% 伤害减免,并将普通攻击转为魔法伤害,可叠加魔法震荡的效果。";
public override bool TargetSelf => true;
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 25; public override double Duration => 25;

View File

@ -26,7 +26,6 @@ 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 => $"造成魔法伤害时有 35% 几率使敌人眩晕 1 回合。";
public override bool TargetSelf => true;
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)
{ {

View File

@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double EPCost => 100; public override double EPCost => 100;
public override double CD => 55 - (1 * (Level - 1)); public override double CD => 55 - (1 * (Level - 1));
public override double HardnessTime { get; set; } = 12; public override double HardnessTime { get; set; } = 12;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public (Character? character = null) : base(SkillType.SuperSkill, character) public (Character? character = null) : base(SkillType.SuperSkill, character)
{ {
@ -23,7 +25,6 @@ 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.##} 时间。";
public override bool TargetSelf => true;
public override bool Durative => true; public override bool Durative => true;
public override double Duration => 30; public override double Duration => 30;

View File

@ -25,7 +25,6 @@ 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.##}% 敏捷 [ {敏捷伤害} ] 的魔法伤害。"; public override string Description => $"每次普通攻击都将附带基于 {敏捷系数 * 100:0.##}% 敏捷 [ {敏捷伤害} ] 的魔法伤害。";
public override bool TargetSelf => true;
private double => * Skill.Character?.AGI ?? 0; private double => * Skill.Character?.AGI ?? 0;
private readonly double = 2.5; private readonly double = 2.5;

View File

@ -12,6 +12,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CD => 35; public override double CD => 35;
public override double HardnessTime { get; set; } = 5; public override double HardnessTime { get; set; } = 5;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public (Character? character = null) : base(SkillType.Skill, character) public (Character? character = null) : base(SkillType.Skill, character)
{ {
@ -24,7 +25,6 @@ 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.##} 时间。破隐一击:在持续时间内,首次造成伤害会附加 {系数 * 100:0.##}% 敏捷 [ {伤害加成:0.##} ] 的强化伤害,并解除不可选中状态。";
public override bool TargetSelf => true;
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

@ -17,7 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public (Character? character = null) : base(SkillType.Magic, character) public (Character? character = null) : base(SkillType.Magic, character)
{ {
Effects.Add(new (this, true, 15, 0)); Effects.Add(new (this, true, 15, 0));
Effects.Add(new _带基础伤害(this, 90, 110, 0.5, 0.3)); Effects.Add(new _带基础伤害(this, 80, 55, 0.5, 0.3));
} }
} }
} }

View File

@ -9,9 +9,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)MagicID.; public override long Id => (long)MagicID.;
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 MPCost => Level > 0 ? 90 + (95 * (Level - 1)) : 90; public override double MPCost => Level > 0 ? 80 + (105 * (Level - 1)) : 80;
public override double CD => 80; public override double CD => Level > 0 ? 90 - (1 * (Level - 1)) : 90;
public override double CastTime => 5; public override double CastTime => Level > 0 ? 5 + (1.5 * (Level - 1)) : 5;
public override double HardnessTime { get; set; } = 7; public override double HardnessTime { get; set; } = 7;
public override bool CanSelectSelf => true; public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false; public override bool CanSelectEnemy => false;
@ -21,7 +21,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public (Character? character = null) : base(SkillType.Magic, character) public (Character? character = null) : base(SkillType.Magic, character)
{ {
SelectTargetPredicates.Add(c => c.HP > 0 && c.HP < c.MaxHP); SelectTargetPredicates.Add(c => c.HP > 0 && c.HP < c.MaxHP);
Effects.Add(new (this, 0.03, 0.03)); Effects.Add(new (this, 0.3, 0.02));
} }
} }
} }