mirror of
https://github.com/oshima-studios/OshimaGameModule.git
synced 2025-04-22 20:09:35 +08:00
修改技能
This commit is contained in:
parent
19e7ac8321
commit
263dc6549b
@ -429,20 +429,33 @@ namespace Oshima.Core.Utils
|
||||
{
|
||||
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()
|
||||
{
|
||||
{ "skill", skill },
|
||||
{ "values", skill.Values }
|
||||
{ "values", effectArgs }
|
||||
};
|
||||
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.Level = 1;
|
||||
characterToAct.Skills.Add(skill);
|
||||
realSkillRewards.Add(skill);
|
||||
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);
|
||||
realSkillRewards.Add(skill);
|
||||
}
|
||||
}
|
||||
string msg = $"[ {characterToAct} ] 获得了回合奖励!{string.Join(" / ", realSkillRewards.Select(s => s.Description))}";
|
||||
WriteLine(msg.Trim());
|
||||
}
|
||||
|
||||
bool isGameEnd = actionQueue.ProcessTurn(characterToAct);
|
||||
@ -471,11 +484,31 @@ namespace Oshima.Core.Utils
|
||||
WriteLine("");
|
||||
}
|
||||
|
||||
string roundMsg = "";
|
||||
if (actionQueue.LastRound.HasKill)
|
||||
{
|
||||
roundMsg = Msg;
|
||||
if (!deathMatchRoundDetail)
|
||||
{
|
||||
roundMsg = actionQueue.LastRound.ToString();
|
||||
}
|
||||
Msg = "";
|
||||
}
|
||||
|
||||
// 模拟时间流逝
|
||||
double timeLapse = actionQueue.TimeLapse();
|
||||
totalTime += timeLapse;
|
||||
下一次空投 -= timeLapse;
|
||||
|
||||
if (roundMsg != "")
|
||||
{
|
||||
if (isWeb)
|
||||
{
|
||||
roundMsg += "\r\n" + Msg;
|
||||
}
|
||||
result.Add(roundMsg);
|
||||
}
|
||||
|
||||
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)
|
||||
@ -805,43 +816,76 @@ namespace Oshima.Core.Utils
|
||||
Magics.AddRange([new 冰霜攻击(), new 火之矢(), new 水之矢(), new 风之轮(), new 石之锤(), new 心灵之霞(), new 次元上升(), new 暗物质(), new 回复术(), new 治愈术()]);
|
||||
}
|
||||
|
||||
public static Dictionary<EffectID, Dictionary<string, object>> RoundRewards
|
||||
{
|
||||
get
|
||||
{
|
||||
return new()
|
||||
{
|
||||
{
|
||||
EffectID.ExATK,
|
||||
new()
|
||||
{
|
||||
{ "exatk", Random.Shared.Next(40, 80) }
|
||||
}
|
||||
},
|
||||
{
|
||||
EffectID.ExCritRate,
|
||||
new()
|
||||
{
|
||||
{ "excr", Math.Clamp(Random.Shared.NextDouble(), 0.25, 0.5) }
|
||||
}
|
||||
},
|
||||
{
|
||||
EffectID.ExCritDMG,
|
||||
new()
|
||||
{
|
||||
{ "excrd", Math.Clamp(Random.Shared.NextDouble(), 0.5, 1) }
|
||||
}
|
||||
},
|
||||
{
|
||||
EffectID.ExATK2,
|
||||
new()
|
||||
{
|
||||
{ "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 = [];
|
||||
|
||||
// 设定产生的回合奖励
|
||||
Dictionary<EffectID, Dictionary<string, object>> rewards = new()
|
||||
{
|
||||
{
|
||||
EffectID.ExATK,
|
||||
new()
|
||||
{
|
||||
{ "exatk", "60" }
|
||||
}
|
||||
},
|
||||
{
|
||||
EffectID.ExCritRate,
|
||||
new()
|
||||
{
|
||||
{ "excr", "0.5" }
|
||||
}
|
||||
},
|
||||
{
|
||||
EffectID.ExCritDMG,
|
||||
new()
|
||||
{
|
||||
{ "excrd", "1" }
|
||||
}
|
||||
},
|
||||
{
|
||||
EffectID.ExATK2,
|
||||
new()
|
||||
{
|
||||
{ "exatk", "0.3" }
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
int currentRound = 1;
|
||||
while (currentRound <= maxRound)
|
||||
{
|
||||
@ -852,8 +896,16 @@ namespace Oshima.Core.Utils
|
||||
List<Skill> skills = [];
|
||||
|
||||
// 添加回合奖励特效
|
||||
EffectID effectID = rewards.Keys.ToArray()[Random.Shared.Next(rewards.Count)];
|
||||
skills.Add(Factory.OpenFactory.GetInstance<Skill>((long)effectID, "", rewards[effectID]));
|
||||
long effectID = (long)RoundRewards.Keys.ToArray()[Random.Shared.Next(RoundRewards.Count)];
|
||||
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;
|
||||
}
|
||||
|
@ -2,6 +2,11 @@
|
||||
{
|
||||
public enum EffectID : long
|
||||
{
|
||||
/// <summary>
|
||||
/// 被动特效起点
|
||||
/// </summary>
|
||||
Passive_Start = 8000,
|
||||
|
||||
/// <summary>
|
||||
/// 数值攻击力,参数:exatk
|
||||
/// </summary>
|
||||
@ -159,5 +164,45 @@
|
||||
/// 最大魔法值%,参数:exmp
|
||||
/// </summary>
|
||||
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
|
||||
}
|
||||
}
|
||||
|
35
OshimaModules/Effects/ItemEffects/GetEP.cs
Normal file
35
OshimaModules/Effects/ItemEffects/GetEP.cs
Normal 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 += 实际获得;
|
||||
}
|
||||
}
|
||||
}
|
35
OshimaModules/Effects/ItemEffects/RecoverHP.cs
Normal file
35
OshimaModules/Effects/ItemEffects/RecoverHP.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
36
OshimaModules/Effects/ItemEffects/RecoverHP2.cs
Normal file
36
OshimaModules/Effects/ItemEffects/RecoverHP2.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
35
OshimaModules/Effects/ItemEffects/RecoverMP.cs
Normal file
35
OshimaModules/Effects/ItemEffects/RecoverMP.cs
Normal 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 += 实际回复;
|
||||
}
|
||||
}
|
||||
}
|
36
OshimaModules/Effects/ItemEffects/RecoverMP2.cs
Normal file
36
OshimaModules/Effects/ItemEffects/RecoverMP2.cs
Normal 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 += 实际回复;
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.AccelerationCoefficient;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exacc", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExAGI;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exagi", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExAGI2;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 加成比例 = 0;
|
||||
private double 实际加成 = 0;
|
||||
|
||||
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
public override void OnEffectLost(Character character)
|
||||
{
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exagi", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExATK;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exatk", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExATK2;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 加成比例 = 0;
|
||||
private double 实际加成 = 0;
|
||||
|
||||
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
public override void OnEffectLost(Character character)
|
||||
{
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exatk", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExActionCoefficient;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exac", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExCDR;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("excdr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExCritDMG;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("excrd", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExCritRate;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("excr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExDEF;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exdef", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExDEF2;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 加成比例 = 0;
|
||||
private double 实际加成 = 0;
|
||||
|
||||
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
public override void OnEffectLost(Character character)
|
||||
{
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exdef", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExEvadeRate;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exer", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExHR;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exhr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExINT;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exint", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExINT2;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 加成比例 = 0;
|
||||
private double 实际加成 = 0;
|
||||
|
||||
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
public override void OnEffectLost(Character character)
|
||||
{
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exint", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExMDF;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("mdfType", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExMR;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exmr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExMaxHP;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exhp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExMaxHP2;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 加成比例 = 0;
|
||||
private double 实际加成 = 0;
|
||||
|
||||
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
public override void OnEffectLost(Character character)
|
||||
{
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exhp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExMaxMP;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExMaxMP2;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 加成比例 = 0;
|
||||
private double 实际加成 = 0;
|
||||
|
||||
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
public override void OnEffectLost(Character character)
|
||||
{
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExPDR;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("expdr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExSPD;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exspd", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExSTR;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exstr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.ExSTR2;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 加成比例 = 0;
|
||||
private double 实际加成 = 0;
|
||||
|
||||
@ -24,14 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
public override void OnEffectLost(Character character)
|
||||
{
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exstr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.MagicalPenetration;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exmpt", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.NormalAttackHardTimeReduce;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际硬直时间减少 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("nahtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.NormalAttackHardTimeReduce2;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 减少比例 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("nahtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.PhysicalPenetration;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际加成 = 0;
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
@ -24,11 +22,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exppt", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.SkillHardTimeReduce;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
|
||||
private readonly double 实际硬直时间减少 = 0;
|
||||
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("shtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -7,11 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
|
||||
{
|
||||
public override long Id => (long)EffectID.SkillHardTimeReduce2;
|
||||
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 bool TargetSelf => true;
|
||||
|
||||
public Item? Item { get; }
|
||||
private readonly double 减少比例 = 0;
|
||||
|
||||
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;
|
||||
Source = source;
|
||||
Item = item;
|
||||
if (Values.Count > 0)
|
||||
{
|
||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("shtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||
|
@ -9,7 +9,6 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
|
||||
public override string Name => "眩晕";
|
||||
public override string Description => $"此角色被眩晕了,不能行动。来自:[ {Source} ] 的 [ {Skill.Name} ]";
|
||||
public override EffectType EffectType => EffectType.Stun;
|
||||
public override bool TargetSelf => true;
|
||||
public override Character Source => _sourceCharacter;
|
||||
public override bool Durative => _durative;
|
||||
public override double Duration => _duration;
|
||||
|
@ -9,7 +9,6 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
|
||||
public override string Name => "累积之压标记";
|
||||
public override string Description => $"此角色持有累积之压标记,已累计 {MarkLevel} 层。来自:[ {Source} ]";
|
||||
public override EffectType EffectType => EffectType.Mark;
|
||||
public override bool TargetSelf => true;
|
||||
public override Character Source => _sourceCharacter;
|
||||
public int MarkLevel { get; set; } = 1;
|
||||
|
||||
|
@ -7,8 +7,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
{
|
||||
public override long Id => Skill.Id;
|
||||
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 bool TargetSelf => false;
|
||||
public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成 {BaseDamage:0.##} + {AttributeCoefficient * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(基于属性)} [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。";
|
||||
private double BaseDamage => Skill.Level > 0 ? 基础数值伤害 + 基础伤害等级成长 * (Skill.Level - 1) : 基础数值伤害;
|
||||
private double AttributeCoefficient => Skill.Level > 0 ? 基础属性系数 + 基础系数等级成长 * (Skill.Level - 1) : 基础属性系数;
|
||||
private double Damage
|
||||
|
@ -7,12 +7,11 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
{
|
||||
public override long Id => Skill.Id;
|
||||
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 bool TargetSelf => false;
|
||||
public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成 {BaseDamage:0.##} + {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。";
|
||||
|
||||
private double BaseDamage => 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 基础数值伤害 { get; set; } = 100;
|
||||
private double 基础伤害等级成长 { get; set; } = 50;
|
||||
private double 基础攻击力系数 { get; set; } = 0.2;
|
||||
|
@ -7,11 +7,10 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
{
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"对目标{(TargetCount > 1 ? $"至多 {TargetCount} 个" : "")}敌人造成 {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。";
|
||||
public override bool TargetSelf => false;
|
||||
public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成 {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。";
|
||||
|
||||
private double ATKCoefficient => Skill.Level > 0 ? 基础攻击力系数 + 基础系数等级成长 * (Skill.Level - 1) : 基础攻击力系数;
|
||||
private double Damage => ATKCoefficient * Skill.Character?.ATK ?? 0;
|
||||
|
||||
private double 基础攻击力系数 { get; set; } = 1.5;
|
||||
private double 基础系数等级成长 { get; set; } = 0.25;
|
||||
private bool IsMagic { get; set; } = true;
|
||||
|
@ -7,12 +7,11 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
{
|
||||
public override long Id => Skill.Id;
|
||||
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 bool TargetSelf => false;
|
||||
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) : "物理伤害")}。";
|
||||
|
||||
private double BaseDamage => 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 基础数值伤害 { get; set; } = 100;
|
||||
private double 基础伤害等级成长 { get; set; } = 50;
|
||||
private double 基础属性系数 { get; set; } = 0.4;
|
||||
|
@ -6,8 +6,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
{
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"为{(TargetCount > 1 ? $"至多 {TargetCount} 个" : "")}目标回复其最大生命值 {百分比 * 100:0.##}% 点生命值。";
|
||||
public override bool TargetSelf => true;
|
||||
public override string Description => $"为{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}目标回复其最大生命值 {百分比 * 100:0.##}% 点生命值。";
|
||||
|
||||
private double 基础回复 { get; set; } = 0.03;
|
||||
private double 回复成长 { get; set; } = 0.03;
|
||||
|
@ -7,10 +7,9 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
{
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"对目标{(TargetCount > 1 ? $"至多 {TargetCount} 个" : "")}敌人造成 {Damage:0.##} 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。";
|
||||
public override bool TargetSelf => false;
|
||||
public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成 {Damage:0.##} 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "物理伤害")}。";
|
||||
|
||||
private double Damage => Skill.Level > 0 ? 基础数值伤害 + 基础伤害等级成长 * (Skill.Level - 1) : 基础数值伤害;
|
||||
|
||||
private double 基础数值伤害 { get; set; } = 200;
|
||||
private double 基础伤害等级成长 { get; set; } = 100;
|
||||
private bool IsMagic { get; set; } = true;
|
||||
|
@ -6,9 +6,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
{
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"为{(TargetCount > 1 ? $"至多 {TargetCount} 个" : "")}目标回复 {Heal:0.##} 点生命值。";
|
||||
public override bool TargetSelf => true;
|
||||
|
||||
public override string Description => $"为{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}目标回复 {Heal:0.##} 点生命值。";
|
||||
|
||||
private double Heal => Skill.Level > 0 ? 基础回复 + 回复成长 * (Skill.Level - 1) : 基础回复;
|
||||
private double 基础回复 { get; set; } = 100;
|
||||
private double 回复成长 { get; set; } = 30;
|
||||
|
@ -7,9 +7,8 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
|
||||
{
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"对目标{(TargetCount > 1 ? $"至多 {TargetCount} 个" : "")}敌人造成眩晕 {眩晕时间}。";
|
||||
public override bool TargetSelf => false;
|
||||
|
||||
public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $"至多 {Skill.CanSelectTargetCount} 个" : "")}敌人造成眩晕 {眩晕时间}。";
|
||||
|
||||
private string 眩晕时间 => _durative && _duration > 0 ? _duration + " 时间" : (!_durative && _durationTurn > 0 ? _durationTurn + " 回合" : "0 时间");
|
||||
private readonly bool _durative;
|
||||
private readonly double _duration;
|
||||
|
@ -1,6 +1,6 @@
|
||||
using Milimoe.FunGame.Core.Entity;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
using Oshima.FunGame.OshimaModules.Effects.ItemEffects;
|
||||
using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
|
||||
using Oshima.FunGame.OshimaModules.Skills;
|
||||
|
||||
namespace Oshima.FunGame.OshimaModules.Items
|
||||
@ -54,7 +54,11 @@ namespace Oshima.FunGame.OshimaModules.Items
|
||||
{
|
||||
Level = 1;
|
||||
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()
|
||||
|
@ -1,6 +1,6 @@
|
||||
using Milimoe.FunGame.Core.Entity;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
using Oshima.FunGame.OshimaModules.Effects.ItemEffects;
|
||||
using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
|
||||
|
||||
namespace Oshima.FunGame.OshimaModules.Items
|
||||
{
|
||||
@ -31,8 +31,13 @@ namespace Oshima.FunGame.OshimaModules.Items
|
||||
{
|
||||
Level = 1;
|
||||
Item = item;
|
||||
Effects.Add(new 攻击力加成(this, 攻击力加成, character, item));
|
||||
Effects.Add(new 普攻硬直时间减少(this, 硬直时间减少, character, item));
|
||||
Dictionary<string, object> values = new()
|
||||
{
|
||||
{ "exatk", 攻击力加成 },
|
||||
{ "hatr", 硬直时间减少 }
|
||||
};
|
||||
Effects.Add(new ExATK(this, values, character));
|
||||
Effects.Add(new NormalAttackHardTimeReduce(this, values, character));
|
||||
}
|
||||
|
||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
||||
|
@ -1,5 +1,6 @@
|
||||
using Milimoe.FunGame.Core.Api.Utility;
|
||||
using Milimoe.FunGame.Core.Entity;
|
||||
using Oshima.FunGame.OshimaModules.Effects.ItemEffects;
|
||||
using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
|
||||
using Oshima.FunGame.OshimaModules.Items;
|
||||
using Oshima.FunGame.OshimaModules.Skills;
|
||||
@ -117,6 +118,11 @@ namespace Oshima.FunGame.OshimaModules
|
||||
EffectID.NormalAttackHardTimeReduce2 => new NormalAttackHardTimeReduce2(skill, dict),
|
||||
EffectID.ExMaxHP2 => new ExMaxHP2(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
|
||||
};
|
||||
}
|
||||
|
@ -12,6 +12,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double EPCost => 100;
|
||||
public override double CD => 42 - 1 * (Level - 1);
|
||||
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)
|
||||
{
|
||||
@ -24,7 +26,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"{Duration} 时间内,攻击拥有标记的角色将根据标记层数获得 {吸血 * 100:0.##}% 吸血每层。";
|
||||
public override bool TargetSelf => true;
|
||||
public override bool Durative => true;
|
||||
public override double Duration => 30;
|
||||
|
||||
|
@ -26,8 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"每次造成伤害都可以叠一层标记,累计 4 层时回收该角色所有标记并造成眩晕 1 回合,额外对该角色造成 {系数 * 100:0.##}% 最大生命值的物理伤害。";
|
||||
public override bool TargetSelf => true;
|
||||
|
||||
|
||||
private readonly double 系数 = 0.12;
|
||||
private bool 是否是嵌套伤害 = false;
|
||||
|
||||
|
@ -25,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"每时间提升 {伤害提升 * 100:0.##}% 所有伤害,无上限,但受到伤害时效果清零。" + (累计伤害 > 0 ? $"(当前总提升:{累计伤害 * 100:0.##}%)" : "");
|
||||
public override bool TargetSelf => true;
|
||||
|
||||
|
||||
private readonly double 伤害提升 = 0.04;
|
||||
private double 累计伤害 = 0;
|
||||
|
||||
|
@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double EPCost => Math.Max(100, Character?.EP ?? 100);
|
||||
public override double CD => 32 + (1 * (Level - 1));
|
||||
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)
|
||||
{
|
||||
@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"{Duration:0.##} 时间内无法受到任何伤害,且敏捷提升 {系数 * 100:0.##}% [ {敏捷提升:0.##} ]。此技能会消耗至少 100 点能量。";
|
||||
public override bool TargetSelf => true;
|
||||
public override bool Durative => true;
|
||||
public override double Duration => 16 + 释放时的能量值 * 0.03;
|
||||
|
||||
|
@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double EPCost => 100;
|
||||
public override double CD => 40 - 1 * (Level - 1);
|
||||
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)
|
||||
{
|
||||
@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"30 时间内暴击率提升 {暴击率提升 * 100:0.##}%,暴击伤害提升 {暴击伤害提升 * 100:0.##}%,物理穿透提升 {物理穿透提升 * 100:0.##}%。";
|
||||
public override bool TargetSelf => true;
|
||||
public override bool Durative => true;
|
||||
public override double Duration => 30;
|
||||
|
||||
|
@ -25,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"暴击伤害提升 70%。";
|
||||
public override bool TargetSelf => true;
|
||||
|
||||
|
||||
public override void OnEffectGained(Character character)
|
||||
{
|
||||
character.ExCritDMG += 0.7;
|
||||
|
@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double EPCost => 100;
|
||||
public override double CD => 35 - 2 * (Level - 1);
|
||||
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)
|
||||
{
|
||||
@ -24,8 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override string Name => "三重叠加";
|
||||
public override string Description => $"使 [ 灵能反射 ] 支持普通攻击,且当前释放魔法次数归零,最大硬直消除次数提高到 {灵能反射次数} 次;在魔法命中和普通攻击命中时能够回复所回复能量值的 10 倍魔法值,持续 {技能持续次数} 次(灵能反射每消除次数达到最大时算一次)。" +
|
||||
$"(剩余:{剩余持续次数} 次)";
|
||||
public override bool TargetSelf => true;
|
||||
|
||||
|
||||
public int 剩余持续次数 { get; set; } = 0;
|
||||
private readonly int 灵能反射次数 = 3;
|
||||
private readonly int 技能持续次数 = 2;
|
||||
|
@ -25,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"每释放 {触发硬直次数:0.##} 次魔法才会触发硬直时间,且魔法命中时基于 25% 智力 [ {获得额外能量值:0.##} ] 获得额外能量值。";
|
||||
public override bool TargetSelf => true;
|
||||
|
||||
|
||||
public bool 是否支持普攻 { get; set; } = false;
|
||||
public int 触发硬直次数 { get; set; } = 2;
|
||||
public int 释放次数 { get; set; } = 0;
|
||||
|
@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double EPCost => 100;
|
||||
public override double CD => 30;
|
||||
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)
|
||||
{
|
||||
@ -23,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => "变幻之心";
|
||||
public override string Description => $"检查 [ 智慧与力量 ] 的模式。在力量模式下,立即回复 {生命值回复 * 100:0.##}% 生命值;智力模式下,下一次魔法伤害提升 {伤害提升 * 100:0.##}%。";
|
||||
public override bool TargetSelf => true;
|
||||
|
||||
|
||||
private double 生命值回复 => 0.25 + 0.03 * (Level - 1);
|
||||
private double 伤害提升 => 0.55 + 0.25 * (Level - 1);
|
||||
|
||||
|
@ -26,8 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"当生命值低于 30% 时,智力转化为力量;当生命值高于或等于 30% 时,力量转化为智力。力量模式下,造成伤害必定暴击;智力模式下,获得 30% 闪避率和 25% 魔法抗性。" +
|
||||
(Skill.Character != null ? "(当前模式:" + CharacterSet.GetPrimaryAttributeName(Skill.Character.PrimaryAttribute) + ")" : "");
|
||||
public override bool TargetSelf => true;
|
||||
|
||||
|
||||
private double 交换前的额外智力 = 0;
|
||||
private double 交换前的额外力量 = 0;
|
||||
private double 实际增加闪避率 = 0.3;
|
||||
|
@ -25,7 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"META马专属被动:力量+5,力量成长+0.5;在受到伤害时,获得的能量提升50%,每回合开始还能获得额外的 [ {EP:0.##} ] 能量值。";
|
||||
public override bool TargetSelf => true;
|
||||
|
||||
public static double EP => 7;
|
||||
|
||||
public override void AlterEPAfterGetDamage(Character character, ref double baseEP)
|
||||
|
@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double EPCost => 100;
|
||||
public override double CD => 55;
|
||||
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)
|
||||
{
|
||||
@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => "力量爆发";
|
||||
public override string Description => $"获得 135% 力量 [ {攻击力加成:0.##} ] 的攻击力加成,但每次攻击都会损失 9% 当前生命值 [ {当前生命值:0.##} ],持续 {Duration:0.##} 时间。";
|
||||
public override bool TargetSelf => true;
|
||||
public override bool Durative => true;
|
||||
public override double Duration => 10 + 1 * (Level - 1);
|
||||
|
||||
|
@ -26,8 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"生命值高于 30% 时,受到额外的 [ {高于30额外伤害下限}~{高于30额外伤害上限}% ] 伤害,但是获得 [ 累计所受伤害的 {高于30的加成下限}~{高于30的加成上限}% ] 伤害加成;生命值低于等于 30% 时,不会受到额外的伤害,仅能获得 [ 累计受到的伤害 {低于30的加成下限}~{低于30的加成上限}% ] 伤害加成。" +
|
||||
$"在没有受到任何伤害的时候,将获得 {常规伤害加成 * 100:0.##}% 伤害加成。" + (累计受到的伤害 > 0 ? $"(当前累计受到伤害:{累计受到的伤害:0.##})" : "");
|
||||
public override bool TargetSelf => true;
|
||||
|
||||
|
||||
private double 累计受到的伤害 = 0;
|
||||
private double 这次的伤害加成 = 0;
|
||||
private double 受到伤害之前的HP = 0;
|
||||
|
@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double EPCost => 100;
|
||||
public override double CD => 60 - 2 * (Level - 1);
|
||||
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)
|
||||
{
|
||||
@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"{Duration:0.##} 时间内,提升自身 25% 物理伤害减免和魔法抗性,普通攻击转为魔法伤害,且硬直时间减少 30%,并基于 {智力系数 * 100:0.##}% 智力 [ {智力加成:0.##} ] 强化普通攻击伤害。";
|
||||
public override bool TargetSelf => true;
|
||||
public override bool Durative => true;
|
||||
public override double Duration => 40;
|
||||
|
||||
@ -47,10 +48,10 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override void OnEffectLost(Character character)
|
||||
{
|
||||
character.NormalAttack.SetMagicType(false, character.MagicType);
|
||||
实际物理伤害减免 = 0;
|
||||
实际魔法抗性 = 0;
|
||||
character.ExPDR -= 实际物理伤害减免;
|
||||
character.MDF.SetAllValue(-实际魔法抗性, false);
|
||||
实际物理伤害减免 = 0;
|
||||
实际魔法抗性 = 0;
|
||||
}
|
||||
|
||||
public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType)
|
||||
|
@ -25,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"每次造成伤害都会随机减少对方 [ 7~15 ] 点能量值,对能量值低于一半的角色额外造成 30% 伤害。对于枯竭打击而言,能量值大于100且小于150时,视为低于一半。";
|
||||
public override bool TargetSelf => true;
|
||||
|
||||
|
||||
private bool 是否是嵌套伤害 = false;
|
||||
|
||||
public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
||||
|
@ -12,6 +12,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double CD => 55 - 3 * (Level - 1);
|
||||
public override double HardnessTime { get; set; } = 25;
|
||||
public override string Slogan => "从深渊引爆力量,世界将为之颤抖!!!!";
|
||||
public override bool CanSelectSelf => true;
|
||||
public override bool CanSelectEnemy => false;
|
||||
|
||||
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 Description => $"对所有角色造成 " +
|
||||
$"{能量系数 * 100:0.##}% 其现有能量值 + {智力系数 * 100:0.##}% 智力 [ {智力伤害:0.##} ] 的魔法伤害。";
|
||||
public override bool TargetSelf => false;
|
||||
public override double TargetRange => 999;
|
||||
|
||||
private double 智力系数 => 0.25 * Level;
|
||||
private double 智力伤害 => 智力系数 * Skill.Character?.INT ?? 0;
|
||||
|
@ -25,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
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)
|
||||
{
|
||||
if (character == Skill.Character && (enemy.HP / enemy.MaxHP) <= (character.HP / character.MaxHP))
|
||||
|
@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double EPCost => 100;
|
||||
public override double CD => 45;
|
||||
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)
|
||||
{
|
||||
@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"获得 40% 吸血,持续 {Duration:0.##} 时间。";
|
||||
public override bool TargetSelf => true;
|
||||
public override bool Durative => true;
|
||||
public override double Duration => 30;
|
||||
|
||||
|
@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double EPCost => 100;
|
||||
public override double CD => 60;
|
||||
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)
|
||||
{
|
||||
@ -23,8 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
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 double Duration => 40;
|
||||
|
||||
|
@ -26,8 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"普通攻击硬直时间减少 20%。每次使用普通攻击时,额外再发动一次普通攻击,伤害特效可叠加,冷却 {基础冷却时间:0.##} 时间。" +
|
||||
(冷却时间 > 0 ? $"(正在冷却:剩余 {冷却时间:0.##} 时间)" : "");
|
||||
public override bool TargetSelf => true;
|
||||
|
||||
|
||||
public double 冷却时间 { get; set; } = 0;
|
||||
public double 基础冷却时间 { get; set; } = 20;
|
||||
private bool 是否是嵌套普通攻击 = false;
|
||||
|
@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double EPCost => 100;
|
||||
public override double CD => 35;
|
||||
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)
|
||||
{
|
||||
@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => "魔法涌流";
|
||||
public override string Description => $"{Duration:0.##} 时间内,增加所有伤害的 {减伤比例 * 100:0.##}% 伤害减免,并将普通攻击转为魔法伤害,可叠加魔法震荡的效果。";
|
||||
public override bool TargetSelf => true;
|
||||
public override bool Durative => true;
|
||||
public override double Duration => 25;
|
||||
|
||||
|
@ -26,8 +26,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
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)
|
||||
{
|
||||
if (character == Skill.Character && isMagicDamage && damageResult != DamageResult.Evaded && new Random().NextDouble() < 0.35)
|
||||
|
@ -11,6 +11,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double EPCost => 100;
|
||||
public override double CD => 55 - (1 * (Level - 1));
|
||||
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)
|
||||
{
|
||||
@ -23,7 +25,6 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"敏捷提高 20%,然后将目前的力量补充到与敏捷持平,持续 {Duration:0.##} 时间。";
|
||||
public override bool TargetSelf => true;
|
||||
public override bool Durative => true;
|
||||
public override double Duration => 30;
|
||||
|
||||
|
@ -25,8 +25,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => Skill.Id;
|
||||
public override string Name => Skill.Name;
|
||||
public override string Description => $"每次普通攻击都将附带基于 {敏捷系数 * 100:0.##}% 敏捷 [ {敏捷伤害} ] 的魔法伤害。";
|
||||
public override bool TargetSelf => true;
|
||||
|
||||
|
||||
private double 敏捷伤害 => 敏捷系数 * Skill.Character?.AGI ?? 0;
|
||||
private readonly double 敏捷系数 = 2.5;
|
||||
private bool 是否是嵌套伤害 = false;
|
||||
|
@ -12,6 +12,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override double CD => 35;
|
||||
public override double HardnessTime { get; set; } = 5;
|
||||
public override bool CanSelectSelf => true;
|
||||
public override bool CanSelectEnemy => false;
|
||||
|
||||
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 string Name => Skill.Name;
|
||||
public override string Description => $"进入不可选中状态,获得 100 行动速度,提高 8% 暴击率,持续 {Duration:0.##} 时间。破隐一击:在持续时间内,首次造成伤害会附加 {系数 * 100:0.##}% 敏捷 [ {伤害加成:0.##} ] 的强化伤害,并解除不可选中状态。";
|
||||
public override bool TargetSelf => true;
|
||||
public override bool Durative => true;
|
||||
public override double Duration => 12 + (1 * (Level - 1));
|
||||
|
||||
|
@ -17,7 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public 次元上升(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,9 +9,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public override long Id => (long)MagicID.治愈术;
|
||||
public override string Name => "治愈术";
|
||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
||||
public override double MPCost => Level > 0 ? 90 + (95 * (Level - 1)) : 90;
|
||||
public override double CD => 80;
|
||||
public override double CastTime => 5;
|
||||
public override double MPCost => Level > 0 ? 80 + (105 * (Level - 1)) : 80;
|
||||
public override double CD => Level > 0 ? 90 - (1 * (Level - 1)) : 90;
|
||||
public override double CastTime => Level > 0 ? 5 + (1.5 * (Level - 1)) : 5;
|
||||
public override double HardnessTime { get; set; } = 7;
|
||||
public override bool CanSelectSelf => true;
|
||||
public override bool CanSelectEnemy => false;
|
||||
@ -21,7 +21,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
|
||||
public 治愈术(Character? character = null) : base(SkillType.Magic, character)
|
||||
{
|
||||
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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user