mirror of
https://github.com/milimoe/FunGame-Testing.git
synced 2025-04-22 20:29:34 +08:00
删除testing的技能
This commit is contained in:
parent
3a7daf0856
commit
98859605c7
@ -1,163 +0,0 @@
|
|||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public enum EffectID : long
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 数值攻击力,参数:exatk
|
|
||||||
/// </summary>
|
|
||||||
ExATK = 8001,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 数值物理护甲,参数:exdef
|
|
||||||
/// </summary>
|
|
||||||
ExDEF = 8002,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 数值力量,参数:exstr
|
|
||||||
/// </summary>
|
|
||||||
ExSTR = 8003,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 数值敏捷,参数:exagi
|
|
||||||
/// </summary>
|
|
||||||
ExAGI = 8004,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 数值智力,参数:exint
|
|
||||||
/// </summary>
|
|
||||||
ExINT = 8005,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 数值技能硬直时间减少,参数:shtr
|
|
||||||
/// </summary>
|
|
||||||
SkillHardTimeReduce = 8006,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 数值普攻硬直时间减少,参数:nahtr
|
|
||||||
/// </summary>
|
|
||||||
NormalAttackHardTimeReduce = 8007,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 加速系数%,参数:exacc
|
|
||||||
/// </summary>
|
|
||||||
AccelerationCoefficient = 8008,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 数值行动速度,参数:exspd
|
|
||||||
/// </summary>
|
|
||||||
ExSPD = 8009,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 行动系数%,参考:exac
|
|
||||||
/// </summary>
|
|
||||||
ExActionCoefficient = 8010,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 冷却缩减%,参数:excdr
|
|
||||||
/// </summary>
|
|
||||||
ExCDR = 8011,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 数值生命值,参数:exhp
|
|
||||||
/// </summary>
|
|
||||||
ExMaxHP = 8012,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 数值魔法值,参数:exmp
|
|
||||||
/// </summary>
|
|
||||||
ExMaxMP = 8013,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 暴击率%,参数:excr
|
|
||||||
/// </summary>
|
|
||||||
ExCritRate = 8014,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 暴击伤害%,参数:excrd
|
|
||||||
/// </summary>
|
|
||||||
ExCritDMG = 8015,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 闪避率%,参数:exer
|
|
||||||
/// </summary>
|
|
||||||
ExEvadeRate = 8016,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 物理穿透%,参数:exppt
|
|
||||||
/// </summary>
|
|
||||||
PhysicalPenetration = 8017,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 魔法穿透%,参数:exmpt
|
|
||||||
/// </summary>
|
|
||||||
MagicalPenetration = 8018,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 物理伤害减免%,参数:expdr
|
|
||||||
/// </summary>
|
|
||||||
ExPDR = 8019,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 魔法抗性%<para/>
|
|
||||||
/// 参数:<para/>
|
|
||||||
/// 魔法类型(对应MagicType,0为所有):mdftype<para/>
|
|
||||||
/// 魔法抗性%:mdfvalue
|
|
||||||
/// </summary>
|
|
||||||
ExMDF = 8020,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 数值生命回复,参数:exhr
|
|
||||||
/// </summary>
|
|
||||||
ExHR = 8021,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 数值魔法回复,参数:exmr
|
|
||||||
/// </summary>
|
|
||||||
ExMR = 8022,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 攻击力%,参数:exatk
|
|
||||||
/// </summary>
|
|
||||||
ExATK2 = 8023,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 物理护甲%,参数:exdef
|
|
||||||
/// </summary>
|
|
||||||
ExDEF2 = 8024,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 力量%,参数:exstr
|
|
||||||
/// </summary>
|
|
||||||
ExSTR2 = 8025,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 敏捷%,参数:exagi
|
|
||||||
/// </summary>
|
|
||||||
ExAGI2 = 8026,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 智力%,参数:exint
|
|
||||||
/// </summary>
|
|
||||||
ExINT2 = 8027,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 技能硬直时间减少%,参数:shtr
|
|
||||||
/// </summary>
|
|
||||||
SkillHardTimeReduce2 = 8028,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 普攻硬直时间减少%,参数:nahtr
|
|
||||||
/// </summary>
|
|
||||||
NormalAttackHardTimeReduce2 = 8029,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 最大生命值%,参数:exhp
|
|
||||||
/// </summary>
|
|
||||||
ExMaxHP2 = 8030,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 最大魔法值%,参数:exmp
|
|
||||||
/// </summary>
|
|
||||||
ExMaxMP2 = 8031,
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,35 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.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 Milimoe.FunGame.Testing.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 Milimoe.FunGame.Testing.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 Milimoe.FunGame.Testing.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 Milimoe.FunGame.Testing.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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class AccelerationCoefficient : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
character.AccelerationCoefficient += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.AccelerationCoefficient -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public AccelerationCoefficient(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exACC))
|
|
||||||
{
|
|
||||||
实际加成 = exACC;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExAGI : Effect
|
|
||||||
{
|
|
||||||
public override long Id => (long)EffectID.ExAGI;
|
|
||||||
public override string 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.ExAGI += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExAGI -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExAGI(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exAGI))
|
|
||||||
{
|
|
||||||
实际加成 = exAGI;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,45 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExAGI2 : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 加成比例 = 0;
|
|
||||||
private double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
实际加成 = character.BaseAGI * 加成比例;
|
|
||||||
character.ExAGI += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
GamingQueue = skill.GamingQueue;
|
|
||||||
Source = source;
|
|
||||||
Item = item;
|
|
||||||
if (Values.Count > 0)
|
|
||||||
{
|
|
||||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exagi", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exAGI))
|
|
||||||
{
|
|
||||||
加成比例 = exAGI;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExATK : Effect
|
|
||||||
{
|
|
||||||
public override long Id => (long)EffectID.ExATK;
|
|
||||||
public override string 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 ExATK(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exATK))
|
|
||||||
{
|
|
||||||
实际加成 = exATK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,45 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExATK2 : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 加成比例 = 0;
|
|
||||||
private double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
实际加成 = character.BaseATK * 加成比例;
|
|
||||||
character.ExATK2 += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
GamingQueue = skill.GamingQueue;
|
|
||||||
Source = source;
|
|
||||||
Item = item;
|
|
||||||
if (Values.Count > 0)
|
|
||||||
{
|
|
||||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exatk", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exATK))
|
|
||||||
{
|
|
||||||
加成比例 = exATK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExActionCoefficient : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
character.ExActionCoefficient += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExActionCoefficient -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExActionCoefficient(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exAC))
|
|
||||||
{
|
|
||||||
实际加成 = exAC;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExCDR : Effect
|
|
||||||
{
|
|
||||||
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 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 ExCDR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exCDR))
|
|
||||||
{
|
|
||||||
实际加成 = exCDR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExCritDMG : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
character.ExCritDMG += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExCritDMG -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExCritDMG(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exCRD))
|
|
||||||
{
|
|
||||||
实际加成 = exCRD;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExCritRate : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
character.ExCritRate += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExCritRate -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExCritRate(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exCR))
|
|
||||||
{
|
|
||||||
实际加成 = exCR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExDEF : Effect
|
|
||||||
{
|
|
||||||
public override long Id => (long)EffectID.ExDEF;
|
|
||||||
public override string 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 ExDEF(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exDEF))
|
|
||||||
{
|
|
||||||
实际加成 = exDEF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,45 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExDEF2 : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 加成比例 = 0;
|
|
||||||
private double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
实际加成 = character.BaseDEF * 加成比例;
|
|
||||||
character.ExDEF2 += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
GamingQueue = skill.GamingQueue;
|
|
||||||
Source = source;
|
|
||||||
Item = item;
|
|
||||||
if (Values.Count > 0)
|
|
||||||
{
|
|
||||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exdef", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exDEF))
|
|
||||||
{
|
|
||||||
加成比例 = exDEF;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExEvadeRate : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
character.ExEvadeRate += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExEvadeRate -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExEvadeRate(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exER))
|
|
||||||
{
|
|
||||||
实际加成 = exER;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExHR : Effect
|
|
||||||
{
|
|
||||||
public override long Id => (long)EffectID.ExHR;
|
|
||||||
public override string 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.ExHR += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExHR -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExHR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exHR))
|
|
||||||
{
|
|
||||||
实际加成 = exHR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExINT : Effect
|
|
||||||
{
|
|
||||||
public override long Id => (long)EffectID.ExINT;
|
|
||||||
public override string 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.ExINT += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExINT -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExINT(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exINT))
|
|
||||||
{
|
|
||||||
实际加成 = exINT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,45 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExINT2 : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 加成比例 = 0;
|
|
||||||
private double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
实际加成 = character.BaseINT * 加成比例;
|
|
||||||
character.ExINT += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
GamingQueue = skill.GamingQueue;
|
|
||||||
Source = source;
|
|
||||||
Item = item;
|
|
||||||
if (Values.Count > 0)
|
|
||||||
{
|
|
||||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exint", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exINT))
|
|
||||||
{
|
|
||||||
加成比例 = exINT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,115 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExMDF : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 实际加成 = 0;
|
|
||||||
private readonly MagicType 魔法类型 = MagicType.None;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
switch (魔法类型)
|
|
||||||
{
|
|
||||||
case MagicType.Starmark:
|
|
||||||
character.MDF.Starmark += 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.PurityNatural:
|
|
||||||
character.MDF.PurityNatural += 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.PurityContemporary:
|
|
||||||
character.MDF.PurityContemporary += 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.Bright:
|
|
||||||
character.MDF.Bright += 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.Shadow:
|
|
||||||
character.MDF.Shadow += 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.Element:
|
|
||||||
character.MDF.Element += 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.Fleabane:
|
|
||||||
character.MDF.Fleabane += 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.Particle:
|
|
||||||
character.MDF.Particle += 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.None:
|
|
||||||
default:
|
|
||||||
character.MDF.SetAllValue(实际加成, false);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
switch (魔法类型)
|
|
||||||
{
|
|
||||||
case MagicType.Starmark:
|
|
||||||
character.MDF.Starmark -= 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.PurityNatural:
|
|
||||||
character.MDF.PurityNatural -= 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.PurityContemporary:
|
|
||||||
character.MDF.PurityContemporary -= 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.Bright:
|
|
||||||
character.MDF.Bright -= 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.Shadow:
|
|
||||||
character.MDF.Shadow -= 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.Element:
|
|
||||||
character.MDF.Element -= 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.Fleabane:
|
|
||||||
character.MDF.Fleabane -= 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.Particle:
|
|
||||||
character.MDF.Particle -= 实际加成;
|
|
||||||
break;
|
|
||||||
case MagicType.None:
|
|
||||||
default:
|
|
||||||
character.MDF.SetAllValue(-实际加成, false);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExMDF(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && int.TryParse(Values[key].ToString(), out int mdfType))
|
|
||||||
{
|
|
||||||
if (Enum.IsDefined(typeof(MagicType), mdfType))
|
|
||||||
{
|
|
||||||
魔法类型 = (MagicType)mdfType;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
魔法类型 = MagicType.None;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
key = Values.Keys.FirstOrDefault(s => s.Equals("mdfvalue", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double mdfValue))
|
|
||||||
{
|
|
||||||
实际加成 = mdfValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExMR : Effect
|
|
||||||
{
|
|
||||||
public override long Id => (long)EffectID.ExMR;
|
|
||||||
public override string 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.ExMR += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExMR -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExMR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exMR))
|
|
||||||
{
|
|
||||||
实际加成 = exMR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExMaxHP : Effect
|
|
||||||
{
|
|
||||||
public override long Id => (long)EffectID.ExMaxHP;
|
|
||||||
public override string 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.ExHP2 += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExHP2 -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExMaxHP(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exHP))
|
|
||||||
{
|
|
||||||
实际加成 = exHP;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,45 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExMaxHP2 : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 加成比例 = 0;
|
|
||||||
private double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
实际加成 = character.BaseHP * 加成比例;
|
|
||||||
character.ExHP2 += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
GamingQueue = skill.GamingQueue;
|
|
||||||
Source = source;
|
|
||||||
Item = item;
|
|
||||||
if (Values.Count > 0)
|
|
||||||
{
|
|
||||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exhp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exHP))
|
|
||||||
{
|
|
||||||
加成比例 = exHP;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExMaxMP : Effect
|
|
||||||
{
|
|
||||||
public override long Id => (long)EffectID.ExMaxMP;
|
|
||||||
public override string 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.ExMP2 += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExMP2 -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExMaxMP(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exMP))
|
|
||||||
{
|
|
||||||
实际加成 = exMP;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,45 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExMaxMP2 : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 加成比例 = 0;
|
|
||||||
private double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
实际加成 = character.BaseMP * 加成比例;
|
|
||||||
character.ExMP2 += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
GamingQueue = skill.GamingQueue;
|
|
||||||
Source = source;
|
|
||||||
Item = item;
|
|
||||||
if (Values.Count > 0)
|
|
||||||
{
|
|
||||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exMP))
|
|
||||||
{
|
|
||||||
加成比例 = exMP;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExPDR : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
character.ExPDR += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExPDR -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExPDR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exPDR))
|
|
||||||
{
|
|
||||||
实际加成 = exPDR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExSPD : Effect
|
|
||||||
{
|
|
||||||
public override long Id => (long)EffectID.ExSPD;
|
|
||||||
public override string 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.ExSPD += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExSPD -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExSPD(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exSPD))
|
|
||||||
{
|
|
||||||
实际加成 = exSPD;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExSTR : Effect
|
|
||||||
{
|
|
||||||
public override long Id => (long)EffectID.ExSTR;
|
|
||||||
public override string 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.ExSTR += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExSTR -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExSTR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exSTR))
|
|
||||||
{
|
|
||||||
实际加成 = exSTR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,45 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class ExSTR2 : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 加成比例 = 0;
|
|
||||||
private double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
实际加成 = character.BaseSTR * 加成比例;
|
|
||||||
character.ExSTR += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
GamingQueue = skill.GamingQueue;
|
|
||||||
Source = source;
|
|
||||||
Item = item;
|
|
||||||
if (Values.Count > 0)
|
|
||||||
{
|
|
||||||
string key = Values.Keys.FirstOrDefault(s => s.Equals("exstr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exSTR))
|
|
||||||
{
|
|
||||||
加成比例 = exSTR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class MagicalPenetration : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
character.MagicalPenetration += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.MagicalPenetration -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public MagicalPenetration(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exMPT))
|
|
||||||
{
|
|
||||||
实际加成 = exMPT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class NormalAttackHardTimeReduce : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 实际硬直时间减少 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
character.NormalAttack.HardnessTime -= 实际硬直时间减少;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.NormalAttack.HardnessTime += 实际硬直时间减少;
|
|
||||||
}
|
|
||||||
|
|
||||||
public NormalAttackHardTimeReduce(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double nahtr))
|
|
||||||
{
|
|
||||||
实际硬直时间减少 = nahtr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class NormalAttackHardTimeReduce2 : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 减少比例 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
character.NormalAttack.HardnessTime -= character.NormalAttack.HardnessTime * 减少比例;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.NormalAttack.HardnessTime += character.NormalAttack.HardnessTime * 减少比例;
|
|
||||||
}
|
|
||||||
|
|
||||||
public NormalAttackHardTimeReduce2(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double nahtr))
|
|
||||||
{
|
|
||||||
减少比例 = nahtr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class PhysicalPenetration : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 实际加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
character.PhysicalPenetration += 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.PhysicalPenetration -= 实际加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PhysicalPenetration(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exPPT))
|
|
||||||
{
|
|
||||||
实际加成 = exPPT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,58 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class SkillHardTimeReduce : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 实际硬直时间减少 = 0;
|
|
||||||
|
|
||||||
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 SkillHardTimeReduce(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double shtr))
|
|
||||||
{
|
|
||||||
实际硬直时间减少 = shtr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,58 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
|
||||||
{
|
|
||||||
public class SkillHardTimeReduce2 : Effect
|
|
||||||
{
|
|
||||||
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 EffectType EffectType => EffectType.Item;
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
public Item? Item { get; }
|
|
||||||
private readonly double 减少比例 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
foreach (Skill s in character.Skills)
|
|
||||||
{
|
|
||||||
s.HardnessTime -= s.HardnessTime * 减少比例;
|
|
||||||
}
|
|
||||||
foreach (Skill? s in character.Items.Select(i => i.Skills.Active))
|
|
||||||
{
|
|
||||||
if (s != null)
|
|
||||||
s.HardnessTime -= s.HardnessTime * 减少比例;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
foreach (Skill s in character.Skills)
|
|
||||||
{
|
|
||||||
s.HardnessTime += s.HardnessTime * 减少比例;
|
|
||||||
}
|
|
||||||
foreach (Skill? s in character.Items.Select(i => i.Skills.Active))
|
|
||||||
{
|
|
||||||
if (s != null)
|
|
||||||
s.HardnessTime += s.HardnessTime * 减少比例;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public SkillHardTimeReduce2(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = 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)) ?? "";
|
|
||||||
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double shtr))
|
|
||||||
{
|
|
||||||
减少比例 = shtr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.SkillEffects
|
|
||||||
{
|
|
||||||
public class 眩晕 : Effect
|
|
||||||
{
|
|
||||||
public override long Id => 4101;
|
|
||||||
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;
|
|
||||||
public override int DurationTurn => _durationTurn;
|
|
||||||
|
|
||||||
private readonly Character _sourceCharacter;
|
|
||||||
private readonly bool _durative;
|
|
||||||
private readonly double _duration;
|
|
||||||
private readonly int _durationTurn;
|
|
||||||
|
|
||||||
public 眩晕(Skill skill, Character sourceCharacter, bool durative = false, double duration = 0, int durationTurn = 1) : base(skill)
|
|
||||||
{
|
|
||||||
GamingQueue = skill.GamingQueue;
|
|
||||||
_sourceCharacter = sourceCharacter;
|
|
||||||
_durative = durative;
|
|
||||||
_duration = duration;
|
|
||||||
_durationTurn = durationTurn;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
if (_durative) RemainDuration = Duration;
|
|
||||||
else RemainDurationTurn = DurationTurn;
|
|
||||||
character.CharacterEffectStates.Add(this, [CharacterState.NotActionable]);
|
|
||||||
character.UpdateCharacterState();
|
|
||||||
InterruptCasting(character, Source);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.CharacterEffectStates.Remove(this);
|
|
||||||
character.UpdateCharacterState();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects.SkillEffects
|
|
||||||
{
|
|
||||||
public class 累积之压标记 : Effect
|
|
||||||
{
|
|
||||||
public override long Id => 4102;
|
|
||||||
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;
|
|
||||||
|
|
||||||
private readonly Character _sourceCharacter;
|
|
||||||
|
|
||||||
public 累积之压标记(Skill skill, Character sourceCharacter) : base(skill)
|
|
||||||
{
|
|
||||||
GamingQueue = skill.GamingQueue;
|
|
||||||
_sourceCharacter = sourceCharacter;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,62 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
using Milimoe.FunGame.Testing.Effects.ItemEffects;
|
|
||||||
using Milimoe.FunGame.Testing.Skills;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Items
|
|
||||||
{
|
|
||||||
public class 攻击之爪10 : Item
|
|
||||||
{
|
|
||||||
public override long Id => (long)AccessoryID.攻击之爪10;
|
|
||||||
public override string Name => "攻击之爪 +10";
|
|
||||||
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
|
|
||||||
|
|
||||||
public 攻击之爪10(Character? character = null) : base(ItemType.Accessory)
|
|
||||||
{
|
|
||||||
Skills.Passives.Add(new 攻击之爪技能(character, this, 10));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 攻击之爪30 : Item
|
|
||||||
{
|
|
||||||
public override long Id => (long)AccessoryID.攻击之爪30;
|
|
||||||
public override string Name => "攻击之爪 +30";
|
|
||||||
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
|
|
||||||
|
|
||||||
public 攻击之爪30(Character? character = null) : base(ItemType.Accessory)
|
|
||||||
{
|
|
||||||
Skills.Passives.Add(new 攻击之爪技能(character, this, 30));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 攻击之爪50 : Item
|
|
||||||
{
|
|
||||||
public override long Id => (long)AccessoryID.攻击之爪50;
|
|
||||||
public override string Name => "攻击之爪 +50";
|
|
||||||
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
|
|
||||||
|
|
||||||
public 攻击之爪50(Character? character = null) : base(ItemType.Accessory)
|
|
||||||
{
|
|
||||||
Skills.Passives.Add(new 攻击之爪技能(character, this, 50));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 攻击之爪技能 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)ItemPassiveID.攻击之爪;
|
|
||||||
public override string Name => "攻击之爪";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
|
|
||||||
public 攻击之爪技能(Character? character = null, Item? item = null, double exATK = 0) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Level = 1;
|
|
||||||
Item = item;
|
|
||||||
Effects.Add(new 攻击力加成(this, exATK, character, item));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
namespace Milimoe.FunGame.Testing.Items
|
|
||||||
{
|
|
||||||
public enum AccessoryID : long
|
|
||||||
{
|
|
||||||
攻击之爪10 = 14001,
|
|
||||||
攻击之爪30 = 14002,
|
|
||||||
攻击之爪50 = 14003,
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
using Milimoe.FunGame.Testing.Effects.ItemEffects;
|
|
||||||
|
|
||||||
namespace FunGame.Testing.Items
|
|
||||||
{
|
|
||||||
public class 独奏弓 : Item
|
|
||||||
{
|
|
||||||
public override long Id => 11001;
|
|
||||||
public override string Name => "独奏弓";
|
|
||||||
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
|
|
||||||
|
|
||||||
public 独奏弓(Character? character = null) : base(ItemType.Weapon)
|
|
||||||
{
|
|
||||||
WeaponType = WeaponType.Bow;
|
|
||||||
Skills.Passives.Add(new 独奏弓技能(character, this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 独奏弓技能 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => 5002;
|
|
||||||
public override string Name => "独奏弓";
|
|
||||||
public override string Description => $"增加角色 {攻击力加成} 点攻击力,减少普通攻击 {硬直时间减少} 硬直时间。";
|
|
||||||
|
|
||||||
private readonly double 攻击力加成 = 80;
|
|
||||||
private readonly double 硬直时间减少 = 2;
|
|
||||||
|
|
||||||
public 独奏弓技能(Character? character, Item item) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Level = 1;
|
|
||||||
Item = item;
|
|
||||||
Effects.Add(new 攻击力加成(this, 攻击力加成, character, item));
|
|
||||||
Effects.Add(new 普攻硬直时间减少(this, 硬直时间减少, character, item));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -12,7 +12,8 @@ ItemModule im = new();
|
|||||||
im.Load();
|
im.Load();
|
||||||
|
|
||||||
FunGameSimulation.InitCharacter();
|
FunGameSimulation.InitCharacter();
|
||||||
FunGameSimulation.StartGame(true, false, true);
|
List<string> strings = FunGameSimulation.StartGame(false, false, true);
|
||||||
|
strings.ForEach(Console.WriteLine);
|
||||||
|
|
||||||
//Character c = FunGameSimulation.Characters[1].Copy();
|
//Character c = FunGameSimulation.Characters[1].Copy();
|
||||||
//foreach (Skill s in FunGameSimulation.Magics)
|
//foreach (Skill s in FunGameSimulation.Magics)
|
||||||
@ -30,8 +31,9 @@ FunGameSimulation.StartGame(true, false, true);
|
|||||||
//Stopwatch stopwatch = new();
|
//Stopwatch stopwatch = new();
|
||||||
//stopwatch.Start();
|
//stopwatch.Start();
|
||||||
|
|
||||||
//for (int i = 0; i < 30; i++)
|
//for (int i = 0; i < 2000; i++)
|
||||||
//{
|
//{
|
||||||
|
// Console.WriteLine($"{i}/2000");
|
||||||
// FunGameSimulation.StartGame(false, false, false);
|
// FunGameSimulation.StartGame(false, false, false);
|
||||||
// FunGameSimulation.StartGame(false, false, true);
|
// FunGameSimulation.StartGame(false, false, true);
|
||||||
//}
|
//}
|
||||||
|
@ -1,64 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
using Milimoe.FunGame.Testing.Effects.SkillEffects;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 嗜血本能 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)SuperSkillID.嗜血本能;
|
|
||||||
public override string Name => "嗜血本能";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
public override double EPCost => 100;
|
|
||||||
public override double CD => 42 - 1 * (Level - 1);
|
|
||||||
public override double HardnessTime { get; set; } = 12;
|
|
||||||
|
|
||||||
public 嗜血本能(Character? character = null) : base(SkillType.SuperSkill, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 嗜血本能特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 嗜血本能特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
|
|
||||||
public HashSet<Character> 角色有第四层 { get; } = [];
|
|
||||||
private double 吸血 => 0.03 * Level;
|
|
||||||
|
|
||||||
public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
|
||||||
{
|
|
||||||
if (character == Skill.Character && damageResult != DamageResult.Evaded && character.HP < character.MaxHP)
|
|
||||||
{
|
|
||||||
int 层数 = 0;
|
|
||||||
if (enemy.Effects.Where(e => e is 累积之压标记).FirstOrDefault() is 累积之压标记 e)
|
|
||||||
{
|
|
||||||
层数 = e.MarkLevel;
|
|
||||||
}
|
|
||||||
else if (角色有第四层.Remove(enemy))
|
|
||||||
{
|
|
||||||
层数 = 4;
|
|
||||||
}
|
|
||||||
double 实际吸血 = 吸血 * 层数 * damage;
|
|
||||||
character.HP += 实际吸血;
|
|
||||||
WriteLine($"[ {character} ] 回复了 {实际吸血:0.##} 点生命值!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
RemainDuration = Duration;
|
|
||||||
if (!caster.Effects.Contains(this))
|
|
||||||
{
|
|
||||||
角色有第四层.Clear();
|
|
||||||
caster.Effects.Add(this);
|
|
||||||
OnEffectGained(caster);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,89 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
using Milimoe.FunGame.Testing.Effects.SkillEffects;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 累积之压 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)PassiveID.累积之压;
|
|
||||||
public override string Name => "累积之压";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
|
|
||||||
public 累积之压(Character? character = null) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 累积之压特效(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 累积之压特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
|
|
||||||
public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
|
||||||
{
|
|
||||||
if (character == Skill.Character && damageResult != DamageResult.Evaded && !是否是嵌套伤害)
|
|
||||||
{
|
|
||||||
// 叠标记
|
|
||||||
IEnumerable<Effect> effects = enemy.Effects.Where(e => e is 累积之压标记);
|
|
||||||
if (effects.Any() && effects.First() is 累积之压标记 e)
|
|
||||||
{
|
|
||||||
e.MarkLevel++;
|
|
||||||
IEnumerable<Effect> effects2 = character.Effects.Where(e => e is 嗜血本能特效);
|
|
||||||
if (effects2.Any() && effects2.First() is 嗜血本能特效 e2)
|
|
||||||
{
|
|
||||||
if (e.MarkLevel >= 4)
|
|
||||||
{
|
|
||||||
e2.角色有第四层.Add(enemy);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
e2.角色有第四层.Remove(enemy);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (e.MarkLevel >= 4)
|
|
||||||
{
|
|
||||||
// 移除标记
|
|
||||||
enemy.Effects.Remove(e);
|
|
||||||
double 额外伤害 = enemy.MaxHP * 系数;
|
|
||||||
WriteLine($"[ {character} ] 发动了累积之压!将对 [ {enemy} ] 造成眩晕和额外伤害!");
|
|
||||||
// 眩晕
|
|
||||||
IEnumerable<Effect> effects3 = enemy.Effects.Where(e => e is 眩晕 && e.Skill == Skill);
|
|
||||||
if (effects3.Any())
|
|
||||||
{
|
|
||||||
effects3.First().RemainDurationTurn++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
眩晕 e3 = new(Skill, character, false, 0, 1);
|
|
||||||
enemy.Effects.Add(e3);
|
|
||||||
e3.OnEffectGained(enemy);
|
|
||||||
}
|
|
||||||
是否是嵌套伤害 = true;
|
|
||||||
DamageToEnemy(character, enemy, false, magicType, 额外伤害);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
enemy.Effects.Add(new 累积之压标记(Skill, character));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (character == Skill.Character && 是否是嵌套伤害)
|
|
||||||
{
|
|
||||||
是否是嵌套伤害 = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,58 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 毁灭之势 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)PassiveID.毁灭之势;
|
|
||||||
public override string Name => "毁灭之势";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
|
|
||||||
public 毁灭之势(Character? character = null) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 毁灭之势特效(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 毁灭之势特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
|
|
||||||
public override bool AlterActualDamageAfterCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
|
||||||
{
|
|
||||||
if (damageResult != DamageResult.Evaded)
|
|
||||||
{
|
|
||||||
if (enemy == Skill.Character && damage > 0 && !enemy.Effects.Where(e => e is 绝对领域特效).Any())
|
|
||||||
{
|
|
||||||
累计伤害 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (character == Skill.Character)
|
|
||||||
{
|
|
||||||
double 实际伤害提升 = damage * 累计伤害;
|
|
||||||
damage += 实际伤害提升;
|
|
||||||
if (实际伤害提升 > 0) WriteLine($"[ {character} ] 的伤害提升了 {实际伤害提升:0.##} 点!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnTimeElapsed(Character character, double eapsed)
|
|
||||||
{
|
|
||||||
累计伤害 += 伤害提升 * eapsed;
|
|
||||||
WriteLine($"[ {character} ] 的 [ {Name} ] 效果增加了,当前总提升:{累计伤害 * 100:0.##}%。");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,73 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 绝对领域 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)SuperSkillID.绝对领域;
|
|
||||||
public override string Name => "绝对领域";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
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 绝对领域(Character? character = null) : base(SkillType.SuperSkill, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 绝对领域特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 绝对领域特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
|
|
||||||
private double 系数 => 0.2 + 0.015 * (Level - 1);
|
|
||||||
private double 敏捷提升 => 系数 * Skill.Character?.BaseAGI ?? 0;
|
|
||||||
private double 实际敏捷提升 = 0;
|
|
||||||
private double 释放时的能量值 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
实际敏捷提升 = 敏捷提升;
|
|
||||||
character.ExAGI += 实际敏捷提升;
|
|
||||||
WriteLine($"[ {character} ] 的敏捷提升了 {系数 * 100:0.##}% [ {实际敏捷提升:0.##} ] !");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExAGI -= 实际敏捷提升;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override bool AlterActualDamageAfterCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
|
||||||
{
|
|
||||||
if (enemy == Skill.Character && damageResult != DamageResult.Evaded)
|
|
||||||
{
|
|
||||||
WriteLine($"[ {enemy} ] 发动了绝对领域,巧妙的化解了此伤害!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasting(Character caster, List<Character> targets)
|
|
||||||
{
|
|
||||||
释放时的能量值 = caster.EP;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
RemainDuration = Duration;
|
|
||||||
if (!caster.Effects.Contains(this))
|
|
||||||
{
|
|
||||||
实际敏捷提升 = 0;
|
|
||||||
caster.Effects.Add(this);
|
|
||||||
OnEffectGained(caster);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,68 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 精准打击 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)SuperSkillID.精准打击;
|
|
||||||
public override string Name => "精准打击";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
public override double EPCost => 100;
|
|
||||||
public override double CD => 40 - 1 * (Level - 1);
|
|
||||||
public override double HardnessTime { get; set; } = 8;
|
|
||||||
|
|
||||||
public 精准打击(Character? character = null) : base(SkillType.SuperSkill, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 精准打击特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 精准打击特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
|
|
||||||
private double 暴击率提升 => 0.2 + 0.03 * (Level - 1);
|
|
||||||
private double 暴击伤害提升 => 0.8 + 0.04 * (Level - 1);
|
|
||||||
private double 物理穿透提升 => 0.3;
|
|
||||||
private double 实际暴击率提升 = 0;
|
|
||||||
private double 实际暴击伤害提升 = 0;
|
|
||||||
private double 实际物理穿透提升 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
实际暴击率提升 = 暴击率提升;
|
|
||||||
实际暴击伤害提升 = 暴击伤害提升;
|
|
||||||
实际物理穿透提升 = 物理穿透提升;
|
|
||||||
character.ExCritRate += 实际暴击率提升;
|
|
||||||
character.ExCritDMG += 实际暴击伤害提升;
|
|
||||||
character.PhysicalPenetration += 实际物理穿透提升;
|
|
||||||
WriteLine($"[ {character} ] 的暴击率提升了 [ {实际暴击率提升 * 100:0.##}% ],暴击伤害提升了 [ {实际暴击伤害提升 * 100:0.##}% ],物理穿透提升了 [ {实际物理穿透提升 * 100:0.##}% ] !!");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExCritRate -= 实际暴击率提升;
|
|
||||||
character.ExCritDMG -= 实际暴击伤害提升;
|
|
||||||
character.PhysicalPenetration -= 实际物理穿透提升;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
RemainDuration = Duration;
|
|
||||||
if (!caster.Effects.Contains(this))
|
|
||||||
{
|
|
||||||
实际暴击率提升 = 0;
|
|
||||||
实际暴击伤害提升 = 0;
|
|
||||||
实际物理穿透提升 = 0;
|
|
||||||
caster.Effects.Add(this);
|
|
||||||
OnEffectGained(caster);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,40 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 致命打击 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)PassiveID.致命打击;
|
|
||||||
public override string Name => "致命打击";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
|
|
||||||
public 致命打击(Character? character = null) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 致命打击特效(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 致命打击特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExCritDMG -= 0.7;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,64 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 三重叠加 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)SuperSkillID.三重叠加;
|
|
||||||
public override string Name => "三重叠加";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
public override double EPCost => 100;
|
|
||||||
public override double CD => 35 - 2 * (Level - 1);
|
|
||||||
public override double HardnessTime { get; set; } = 10;
|
|
||||||
|
|
||||||
public 三重叠加(Character? character = null) : base(SkillType.SuperSkill, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 三重叠加特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 三重叠加特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
public override long Id => Skill.Id;
|
|
||||||
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;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
IEnumerable<Effect> effects = character.Effects.Where(e => e is 灵能反射特效);
|
|
||||||
if (effects.Any() && effects.First() is 灵能反射特效 e)
|
|
||||||
{
|
|
||||||
e.是否支持普攻 = true;
|
|
||||||
e.触发硬直次数 = 3;
|
|
||||||
e.释放次数 = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
IEnumerable<Effect> effects = character.Effects.Where(e => e is 灵能反射特效);
|
|
||||||
if (effects.Any() && effects.First() is 灵能反射特效 e)
|
|
||||||
{
|
|
||||||
e.是否支持普攻 = false;
|
|
||||||
e.触发硬直次数 = 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
剩余持续次数 = 技能持续次数;
|
|
||||||
if (!caster.Effects.Contains(this))
|
|
||||||
{
|
|
||||||
caster.Effects.Add(this);
|
|
||||||
OnEffectGained(caster);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,96 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 灵能反射 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)PassiveID.灵能反射;
|
|
||||||
public override string Name => "灵能反射";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
|
|
||||||
public 灵能反射(Character? character = null) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 灵能反射特效(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 灵能反射特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
public double 获得额外能量值 => 0.25 * Skill.Character?.INT ?? 0;
|
|
||||||
|
|
||||||
public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
|
||||||
{
|
|
||||||
if (character == Skill.Character && (是否支持普攻 && isNormalAttack || isMagicDamage) && damageResult != DamageResult.Evaded && character.EP < 200)
|
|
||||||
{
|
|
||||||
double 实际获得能量值 = 获得额外能量值;
|
|
||||||
character.EP += 实际获得能量值;
|
|
||||||
WriteLine($"[ {character} ] 发动了灵能反射!额外获得了 {实际获得能量值:0.##} 能量!");
|
|
||||||
IEnumerable<Effect> effects = character.Effects.Where(e => e is 三重叠加特效);
|
|
||||||
if (effects.Any() && effects.First() is 三重叠加特效 e)
|
|
||||||
{
|
|
||||||
double 获得的魔法值 = 实际获得能量值 * 10;
|
|
||||||
character.MP += 获得的魔法值;
|
|
||||||
WriteLine($"[ {character} ] 发动了三重叠加!回复了 {获得的魔法值:0.##} 魔法值!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void AlterHardnessTimeAfterNormalAttack(Character character, ref double baseHardnessTime, ref bool isCheckProtected)
|
|
||||||
{
|
|
||||||
if (是否支持普攻)
|
|
||||||
{
|
|
||||||
AlterHardnessTime(character, ref baseHardnessTime, ref isCheckProtected);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void AlterHardnessTimeAfterCastSkill(Character character, Skill skill, ref double baseHardnessTime, ref bool isCheckProtected)
|
|
||||||
{
|
|
||||||
if (skill.SkillType == SkillType.Magic)
|
|
||||||
{
|
|
||||||
AlterHardnessTime(character, ref baseHardnessTime, ref isCheckProtected);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AlterHardnessTime(Character character, ref double baseHardnessTime, ref bool isCheckProtected)
|
|
||||||
{
|
|
||||||
释放次数++;
|
|
||||||
if (释放次数 < 触发硬直次数)
|
|
||||||
{
|
|
||||||
baseHardnessTime = 0;
|
|
||||||
isCheckProtected = false;
|
|
||||||
WriteLine($"[ {character} ] 发动了灵能反射,消除了硬直时间!!");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
释放次数 = 0;
|
|
||||||
IEnumerable<Effect> effects = character.Effects.Where(e => e is 三重叠加特效);
|
|
||||||
if (effects.Any() && effects.First() is 三重叠加特效 e)
|
|
||||||
{
|
|
||||||
baseHardnessTime = 0;
|
|
||||||
isCheckProtected = false;
|
|
||||||
WriteLine($"[ {character} ] 发动了灵能反射,消除了硬直时间!!");
|
|
||||||
e.剩余持续次数--;
|
|
||||||
if (e.剩余持续次数 == 0)
|
|
||||||
{
|
|
||||||
character.Effects.Remove(e);
|
|
||||||
e.OnEffectLost(character);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,76 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 变幻之心 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)SuperSkillID.变幻之心;
|
|
||||||
public override string Name => "变幻之心";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
public override double EPCost => 100;
|
|
||||||
public override double CD => 30;
|
|
||||||
public override double HardnessTime { get; set; } = 10;
|
|
||||||
|
|
||||||
public 变幻之心(Character? character = null) : base(SkillType.SuperSkill, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 变幻之心特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 变幻之心特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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);
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
Skill.IsInEffect = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
Skill.IsInEffect = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType)
|
|
||||||
{
|
|
||||||
if (character == Skill.Character && isMagicDamage)
|
|
||||||
{
|
|
||||||
double 实际伤害提升百分比 = 伤害提升;
|
|
||||||
double 实际伤害提升 = damage * 实际伤害提升百分比;
|
|
||||||
damage += 实际伤害提升;
|
|
||||||
WriteLine($"[ {character} ] 发动了变幻之心!伤害提升了 {实际伤害提升:0.##} 点!");
|
|
||||||
character.Effects.Remove(this);
|
|
||||||
OnEffectLost(character);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
IEnumerable<Effect> effects = caster.Effects.Where(e => e is 智慧与力量特效);
|
|
||||||
if (effects.Any())
|
|
||||||
{
|
|
||||||
if (caster.PrimaryAttribute == PrimaryAttribute.STR)
|
|
||||||
{
|
|
||||||
double 回复的生命 = 生命值回复 * caster.MaxHP;
|
|
||||||
caster.HP += 回复的生命;
|
|
||||||
WriteLine($"[ {caster} ] 回复了 {回复的生命:0.##} 点生命值!");
|
|
||||||
}
|
|
||||||
else if (caster.PrimaryAttribute == PrimaryAttribute.INT)
|
|
||||||
{
|
|
||||||
if (!caster.Effects.Contains(this))
|
|
||||||
{
|
|
||||||
caster.Effects.Add(this);
|
|
||||||
OnEffectGained(caster);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,153 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 智慧与力量 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)PassiveID.智慧与力量;
|
|
||||||
public override string Name => "智慧与力量";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
|
|
||||||
public 智慧与力量(Character? character = null) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 智慧与力量特效(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 智慧与力量特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
public override long Id => Skill.Id;
|
|
||||||
public override string Name => Skill.Name;
|
|
||||||
public override string Description => $"当生命值低于 30% 时,智力转化为力量;当生命值高于或等于 30% 时,力量转化为智力。力量模式下,造成伤害必定暴击;智力模式下,获得 30% 闪避率和 25% 魔法抗性。" +
|
|
||||||
(Skill.Character != null ? "(当前模式:" + CharacterSet.GetPrimaryAttributeName(Skill.Character.PrimaryAttribute) + ")" : "");
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
private double 交换前的额外智力 = 0;
|
|
||||||
private double 交换前的额外力量 = 0;
|
|
||||||
private double 实际增加闪避率 = 0.3;
|
|
||||||
private double 实际增加魔法抗性 = 0.25;
|
|
||||||
private bool 已经加过 = false;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
ResetEffect(character, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
if (character.PrimaryAttribute == PrimaryAttribute.INT)
|
|
||||||
{
|
|
||||||
ResetEffect(character, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ResetEffect(Character character, bool isAdd)
|
|
||||||
{
|
|
||||||
if (isAdd)
|
|
||||||
{
|
|
||||||
已经加过 = true;
|
|
||||||
character.ExEvadeRate += 实际增加闪避率;
|
|
||||||
character.MDF.None += 实际增加魔法抗性;
|
|
||||||
character.MDF.Particle += 实际增加魔法抗性;
|
|
||||||
character.MDF.Fleabane += 实际增加魔法抗性;
|
|
||||||
character.MDF.Element += 实际增加魔法抗性;
|
|
||||||
character.MDF.Shadow += 实际增加魔法抗性;
|
|
||||||
character.MDF.Bright += 实际增加魔法抗性;
|
|
||||||
character.MDF.PurityContemporary += 实际增加魔法抗性;
|
|
||||||
character.MDF.PurityNatural += 实际增加魔法抗性;
|
|
||||||
character.MDF.Starmark += 实际增加魔法抗性;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
已经加过 = false;
|
|
||||||
character.ExEvadeRate -= 实际增加闪避率;
|
|
||||||
character.MDF.None -= 实际增加魔法抗性;
|
|
||||||
character.MDF.Particle -= 实际增加魔法抗性;
|
|
||||||
character.MDF.Fleabane -= 实际增加魔法抗性;
|
|
||||||
character.MDF.Element -= 实际增加魔法抗性;
|
|
||||||
character.MDF.Shadow -= 实际增加魔法抗性;
|
|
||||||
character.MDF.Bright -= 实际增加魔法抗性;
|
|
||||||
character.MDF.PurityContemporary -= 实际增加魔法抗性;
|
|
||||||
character.MDF.PurityNatural -= 实际增加魔法抗性;
|
|
||||||
character.MDF.Starmark -= 实际增加魔法抗性;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnAttributeChanged(Character character)
|
|
||||||
{
|
|
||||||
if (Skill.Character != null)
|
|
||||||
{
|
|
||||||
if (Skill.Character.PrimaryAttribute == PrimaryAttribute.INT)
|
|
||||||
{
|
|
||||||
double diff = character.ExSTR - 交换前的额外力量;
|
|
||||||
character.ExINT = 交换前的额外力量 + character.BaseSTR + diff;
|
|
||||||
}
|
|
||||||
else if (Skill.Character.PrimaryAttribute == PrimaryAttribute.STR)
|
|
||||||
{
|
|
||||||
double diff = character.ExINT - 交换前的额外智力;
|
|
||||||
character.ExSTR = 交换前的额外智力 + character.BaseINT + diff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override bool BeforeCriticalCheck(Character character, ref double throwingBonus)
|
|
||||||
{
|
|
||||||
throwingBonus += 100;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnTimeElapsed(Character character, double elapsed)
|
|
||||||
{
|
|
||||||
if (Skill.Character != null)
|
|
||||||
{
|
|
||||||
Character c = Skill.Character;
|
|
||||||
if (c.HP < c.MaxHP * 0.3)
|
|
||||||
{
|
|
||||||
if (c.PrimaryAttribute == PrimaryAttribute.INT)
|
|
||||||
{
|
|
||||||
double pastHP = c.HP;
|
|
||||||
double pastMaxHP = c.MaxHP;
|
|
||||||
double pastMP = c.MP;
|
|
||||||
double pastMaxMP = c.MaxMP;
|
|
||||||
c.PrimaryAttribute = PrimaryAttribute.STR;
|
|
||||||
交换前的额外智力 = c.ExINT;
|
|
||||||
交换前的额外力量 = c.ExSTR;
|
|
||||||
c.ExINT = -c.BaseINT;
|
|
||||||
c.ExSTR = 交换前的额外智力 + c.BaseINT + 交换前的额外力量;
|
|
||||||
c.Recovery(pastHP, pastMP, pastMaxHP, pastMaxMP);
|
|
||||||
if (已经加过)
|
|
||||||
{
|
|
||||||
ResetEffect(character, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (c.PrimaryAttribute == PrimaryAttribute.STR)
|
|
||||||
{
|
|
||||||
double pastHP = c.HP;
|
|
||||||
double pastMaxHP = c.MaxHP;
|
|
||||||
double pastMP = c.MP;
|
|
||||||
double pastMaxMP = c.MaxMP;
|
|
||||||
c.PrimaryAttribute = PrimaryAttribute.INT;
|
|
||||||
交换前的额外智力 = c.ExINT;
|
|
||||||
交换前的额外力量 = c.ExSTR;
|
|
||||||
c.ExINT = 交换前的额外力量 + c.BaseSTR + 交换前的额外智力;
|
|
||||||
c.ExSTR = -c.BaseSTR;
|
|
||||||
c.Recovery(pastHP, pastMP, pastMaxHP, pastMaxMP);
|
|
||||||
if (!已经加过)
|
|
||||||
{
|
|
||||||
ResetEffect(character, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,46 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class META马 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)PassiveID.META马;
|
|
||||||
public override string Name => "META马";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
|
|
||||||
public META马(Character? character = null) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new META马特效(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class META马特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
baseEP *= 1.5;
|
|
||||||
if (Skill.Character != null) WriteLine($"[ {Skill.Character} ] 发动了META马专属被动!本次获得了 {baseEP:0.##} 能量!");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnTurnStart(Character character)
|
|
||||||
{
|
|
||||||
if (character.EP < 200)
|
|
||||||
{
|
|
||||||
character.EP += EP;
|
|
||||||
WriteLine($"[ {character} ] 发动了META马专属被动!本次获得了 {EP:0.##} 能量!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,68 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 力量爆发 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)SuperSkillID.力量爆发;
|
|
||||||
public override string Name => "力量爆发";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
public override double EPCost => 100;
|
|
||||||
public override double CD => 55;
|
|
||||||
public override double HardnessTime { get; set; } = 0;
|
|
||||||
|
|
||||||
public 力量爆发(Character? character = null) : base(SkillType.SuperSkill, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 力量爆发特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 力量爆发特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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);
|
|
||||||
|
|
||||||
private double 攻击力加成 => Skill.Character?.STR * 1.35 ?? 0;
|
|
||||||
private double 当前生命值 => Skill.Character?.HP * 0.09 ?? 0;
|
|
||||||
private double 实际攻击力加成 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
实际攻击力加成 = 攻击力加成;
|
|
||||||
character.ExATK2 += 实际攻击力加成;
|
|
||||||
WriteLine($"[ {character} ] 的攻击力增加了 [ {实际攻击力加成:0.##} ] !");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
// 恢复到原始攻击力
|
|
||||||
character.ExATK2 -= 实际攻击力加成;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
|
||||||
{
|
|
||||||
if (character == Skill.Character && isNormalAttack)
|
|
||||||
{
|
|
||||||
double 生命值减少 = 当前生命值;
|
|
||||||
character.HP -= 生命值减少;
|
|
||||||
WriteLine($"[ {character} ] 由于自身力量过于强大而被反噬,损失了 [ {生命值减少:0.##} ] 点生命值!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
RemainDuration = Duration;
|
|
||||||
if (!caster.Effects.Contains(this))
|
|
||||||
{
|
|
||||||
实际攻击力加成 = 0;
|
|
||||||
caster.Effects.Add(this);
|
|
||||||
OnEffectGained(caster);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,100 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 玻璃大炮 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)PassiveID.玻璃大炮;
|
|
||||||
public override string Name => "玻璃大炮";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
|
|
||||||
public 玻璃大炮(Character? character = null) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 玻璃大炮特效(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 玻璃大炮特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
public override long Id => Skill.Id;
|
|
||||||
public override string Name => Skill.Name;
|
|
||||||
public override string Description => $"生命值高于 30% 时,受到额外的 [ {高于30额外伤害下限}~{高于30额外伤害上限}% ] 伤害,但是获得 [ 累计所受伤害的 {高于30的加成下限}~{高于30的加成上限}% ] 伤害加成;生命值低于等于 30% 时,不会受到额外的伤害,仅能获得 [ 累计受到的伤害 {低于30的加成下限}~{低于30的加成上限}% ] 伤害加成。" +
|
|
||||||
$"在没有受到任何伤害的时候,将获得 {常规伤害加成 * 100:0.##}% 伤害加成。" + (累计受到的伤害 > 0 ? $"(当前累计受到伤害:{累计受到的伤害:0.##})" : "");
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
|
|
||||||
private double 累计受到的伤害 = 0;
|
|
||||||
private double 这次的伤害加成 = 0;
|
|
||||||
private double 受到伤害之前的HP = 0;
|
|
||||||
private double 这次受到的额外伤害 = 0;
|
|
||||||
private readonly double 常规伤害加成 = 0.35;
|
|
||||||
private readonly int 高于30额外伤害上限 = 30;
|
|
||||||
private readonly int 高于30额外伤害下限 = 15;
|
|
||||||
private readonly int 高于30的加成上限 = 100;
|
|
||||||
private readonly int 高于30的加成下限 = 80;
|
|
||||||
private readonly int 低于30的加成上限 = 60;
|
|
||||||
private readonly int 低于30的加成下限 = 40;
|
|
||||||
|
|
||||||
private double 伤害加成(double damage)
|
|
||||||
{
|
|
||||||
double 系数 = 常规伤害加成;
|
|
||||||
Character? character = Skill.Character;
|
|
||||||
if (character != null && 累计受到的伤害 != 0)
|
|
||||||
{
|
|
||||||
if (character.HP > character.MaxHP * 0.3)
|
|
||||||
{
|
|
||||||
系数 = 1.0 + ((Random.Shared.Next(高于30的加成下限, 高于30的加成上限) + 0.0) / 100);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
系数 = 1.0 + ((Random.Shared.Next(低于30的加成下限, 低于30的加成上限) + 0.0) / 100);
|
|
||||||
}
|
|
||||||
return 系数 * 累计受到的伤害;
|
|
||||||
}
|
|
||||||
return 系数 * damage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType)
|
|
||||||
{
|
|
||||||
if (character == Skill.Character)
|
|
||||||
{
|
|
||||||
这次的伤害加成 = 伤害加成(damage);
|
|
||||||
damage += 这次的伤害加成;
|
|
||||||
WriteLine($"[ {character} ] 发动了玻璃大炮,获得了 {这次的伤害加成:0.##} 点伤害加成!");
|
|
||||||
累计受到的伤害 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (enemy == Skill.Character)
|
|
||||||
{
|
|
||||||
受到伤害之前的HP = enemy.HP;
|
|
||||||
if (enemy.HP > enemy.MaxHP * 0.3)
|
|
||||||
{
|
|
||||||
// 额外受到伤害
|
|
||||||
double 系数 = (Random.Shared.Next(高于30额外伤害下限, 高于30额外伤害上限) + 0.0) / 100;
|
|
||||||
这次受到的额外伤害 = damage * 系数;
|
|
||||||
damage += 这次受到的额外伤害;
|
|
||||||
WriteLine($"[ {enemy} ] 的玻璃大炮触发,将额外受到 {这次受到的额外伤害:0.##} 点伤害!");
|
|
||||||
}
|
|
||||||
else 这次受到的额外伤害 = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
|
||||||
{
|
|
||||||
if (enemy == Skill.Character && damageResult != DamageResult.Evaded)
|
|
||||||
{
|
|
||||||
累计受到的伤害 += damage;
|
|
||||||
if (enemy.HP < 0 && 受到伤害之前的HP - damage + 这次受到的额外伤害 > 0)
|
|
||||||
{
|
|
||||||
enemy.HP = 10;
|
|
||||||
WriteLine($"[ {enemy} ] 的玻璃大炮触发,保护了自己不进入死亡!!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,79 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 迅捷之势 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)SuperSkillID.迅捷之势;
|
|
||||||
public override string Name => "迅捷之势";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
public override double EPCost => 100;
|
|
||||||
public override double CD => 60 - 2 * (Level - 1);
|
|
||||||
public override double HardnessTime { get; set; } = 15;
|
|
||||||
|
|
||||||
public 迅捷之势(Character? character = null) : base(SkillType.SuperSkill, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 迅捷之势特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 迅捷之势特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
public override long Id => Skill.Id;
|
|
||||||
public override string Name => Skill.Name;
|
|
||||||
public override string Description => $"{Duration:0.##} 时间内,提升自身 35% 物理伤害减免和魔法抗性,普通攻击转为魔法伤害,且硬直时间减少 30%,并基于 {智力系数 * 100:0.##}% 智力 [ {智力加成:0.##} ] 强化普通攻击伤害。";
|
|
||||||
public override bool TargetSelf => true;
|
|
||||||
public override bool Durative => true;
|
|
||||||
public override double Duration => 40;
|
|
||||||
|
|
||||||
private double 智力系数 => 1.4 + 0.4 * (Level - 1);
|
|
||||||
private double 智力加成 => 智力系数 * Skill.Character?.INT ?? 0;
|
|
||||||
private double 物理伤害减免 => 0.35;
|
|
||||||
private double 魔法抗性 => 0.35;
|
|
||||||
private double 实际物理伤害减免 = 0;
|
|
||||||
private double 实际魔法抗性 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
character.NormalAttack.SetMagicType(true, character.MagicType);
|
|
||||||
实际物理伤害减免 = 物理伤害减免;
|
|
||||||
实际魔法抗性 = 魔法抗性;
|
|
||||||
character.ExPDR += 实际物理伤害减免;
|
|
||||||
character.MDF.SetAllValue(实际魔法抗性, false);
|
|
||||||
WriteLine($"[ {character} ] 提升了 {实际物理伤害减免 * 100:0.##}% 物理伤害减免,{实际魔法抗性 * 100:0.##}% 魔法抗性!!");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.NormalAttack.SetMagicType(false, character.MagicType);
|
|
||||||
实际物理伤害减免 = 0;
|
|
||||||
实际魔法抗性 = 0;
|
|
||||||
character.ExPDR -= 实际物理伤害减免;
|
|
||||||
character.MDF.SetAllValue(-实际魔法抗性, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType)
|
|
||||||
{
|
|
||||||
if (character == Skill.Character && isNormalAttack)
|
|
||||||
{
|
|
||||||
damage += 智力加成;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void AlterHardnessTimeAfterNormalAttack(Character character, ref double baseHardnessTime, ref bool isCheckProtected)
|
|
||||||
{
|
|
||||||
baseHardnessTime *= 0.3;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
RemainDuration = Duration;
|
|
||||||
if (!caster.Effects.Contains(this))
|
|
||||||
{
|
|
||||||
caster.Effects.Add(this);
|
|
||||||
OnEffectGained(caster);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,56 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 枯竭打击 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)PassiveID.枯竭打击;
|
|
||||||
public override string Name => "枯竭打击";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
|
|
||||||
public 枯竭打击(Character? character = null) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 枯竭打击特效(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 枯竭打击特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
public override long Id => Skill.Id;
|
|
||||||
public override string Name => Skill.Name;
|
|
||||||
public override string Description => $"每次造成伤害都会随机减少对方 [ 10~25 ] 点能量值,对能量值低于一半的角色额外造成 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)
|
|
||||||
{
|
|
||||||
if (character == Skill.Character && damageResult != DamageResult.Evaded && !是否是嵌套伤害)
|
|
||||||
{
|
|
||||||
// 减少能量
|
|
||||||
double EP = Random.Shared.Next(10, 25);
|
|
||||||
enemy.EP -= EP;
|
|
||||||
WriteLine($"[ {character} ] 发动了枯竭打击![ {enemy} ] 的能量值被减少了 {EP:0.##} 点!现有能量:{enemy.EP:0.##}。");
|
|
||||||
// 额外伤害
|
|
||||||
if (enemy.EP >= 0 && enemy.EP < 50 || enemy.EP >= 100 && enemy.EP < 150)
|
|
||||||
{
|
|
||||||
double 额外伤害 = damage * 0.3;
|
|
||||||
WriteLine($"[ {character} ] 发动了枯竭打击!将造成额外伤害!");
|
|
||||||
是否是嵌套伤害 = true;
|
|
||||||
DamageToEnemy(character, enemy, isMagicDamage, magicType, 额外伤害);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (character == Skill.Character && 是否是嵌套伤害)
|
|
||||||
{
|
|
||||||
是否是嵌套伤害 = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,45 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 能量毁灭 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)SuperSkillID.能量毁灭;
|
|
||||||
public override string Name => "能量毁灭";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
public override double EPCost => 100;
|
|
||||||
public override double CD => 55 - 3 * (Level - 1);
|
|
||||||
public override double HardnessTime { get; set; } = 25;
|
|
||||||
public override string Slogan => "灭!!!!";
|
|
||||||
|
|
||||||
public 能量毁灭(Character? character = null) : base(SkillType.SuperSkill, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 能量毁灭特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 能量毁灭特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
public override long Id => Skill.Id;
|
|
||||||
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;
|
|
||||||
private double 能量系数 => 1.05 * Level;
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
foreach (Character c in targets)
|
|
||||||
{
|
|
||||||
WriteLine($"[ {caster} ] 正在毁灭 [ {c} ] 的能量!!");
|
|
||||||
double ep = c.EP;
|
|
||||||
DamageToEnemy(caster, c, true, MagicType, ep * 能量系数 + 智力伤害);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,51 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 弱者猎手 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)PassiveID.弱者猎手;
|
|
||||||
public override string Name => "弱者猎手";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
|
|
||||||
public 弱者猎手(Character? character = null) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 弱者猎手特效(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 弱者猎手特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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))
|
|
||||||
{
|
|
||||||
double 额外伤害 = damage * 0.5;
|
|
||||||
damage += 额外伤害;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override bool AlterEnemyListBeforeAction(Character character, List<Character> enemys, List<Character> teammates, List<Skill> skills, Dictionary<Character, int> continuousKilling, Dictionary<Character, int> earnedMoney)
|
|
||||||
{
|
|
||||||
IEnumerable<Character> list = [.. enemys.OrderBy(e => e.HP / e.MaxHP)];
|
|
||||||
if (list.Any())
|
|
||||||
{
|
|
||||||
enemys.Clear();
|
|
||||||
enemys.Add(list.First());
|
|
||||||
WriteLine($"[ {character} ] 发动了弱者猎手![ {list.First()} ] 被盯上了!");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,50 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 血之狂欢 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)SuperSkillID.血之狂欢;
|
|
||||||
public override string Name => "血之狂欢";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
public override double EPCost => 100;
|
|
||||||
public override double CD => 45;
|
|
||||||
public override double HardnessTime { get; set; } = 7;
|
|
||||||
|
|
||||||
public 血之狂欢(Character? character = null) : base(SkillType.SuperSkill, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 血之狂欢特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 血之狂欢特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
|
|
||||||
public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
|
||||||
{
|
|
||||||
if (character == Skill.Character && damageResult != DamageResult.Evaded && character.HP < character.MaxHP)
|
|
||||||
{
|
|
||||||
double 实际吸血 = 0.4 * damage;
|
|
||||||
character.HP += 实际吸血;
|
|
||||||
WriteLine($"[ {character} ] 回复了 {实际吸血:0.##} 点生命值!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
RemainDuration = Duration;
|
|
||||||
if (!caster.Effects.Contains(this))
|
|
||||||
{
|
|
||||||
caster.Effects.Add(this);
|
|
||||||
OnEffectGained(caster);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,80 +0,0 @@
|
|||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public enum MagicID : long
|
|
||||||
{
|
|
||||||
冰霜攻击 = 1001,
|
|
||||||
火之矢 = 1002,
|
|
||||||
水之矢 = 1003,
|
|
||||||
石之锤 = 1004,
|
|
||||||
风之轮 = 1005,
|
|
||||||
心灵之霞 = 1006,
|
|
||||||
次元上升 = 1007,
|
|
||||||
暗物质 = 1008,
|
|
||||||
|
|
||||||
回复术 = 1009,
|
|
||||||
治愈术 = 1010,
|
|
||||||
复苏术 = 1011,
|
|
||||||
圣灵术 = 1012,
|
|
||||||
时间加速 = 1013,
|
|
||||||
时间减速 = 1014,
|
|
||||||
反魔法领域 = 1015,
|
|
||||||
沉默十字 = 1016,
|
|
||||||
虚弱领域 = 1017,
|
|
||||||
混沌烙印 = 1018,
|
|
||||||
凝胶稠絮 = 1019,
|
|
||||||
|
|
||||||
大地之墙 = 1020,
|
|
||||||
盖亚之盾 = 1021,
|
|
||||||
风之守护 = 1022,
|
|
||||||
结晶防护 = 1023,
|
|
||||||
强音之力 = 1024,
|
|
||||||
神圣祝福 = 1025
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum SkillID : long
|
|
||||||
{
|
|
||||||
疾风步 = 2001,
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum SuperSkillID : long
|
|
||||||
{
|
|
||||||
力量爆发 = 3001,
|
|
||||||
天赐之力 = 3002,
|
|
||||||
魔法涌流 = 3003,
|
|
||||||
三重叠加 = 3004,
|
|
||||||
变幻之心 = 3005,
|
|
||||||
精准打击 = 3006,
|
|
||||||
绝对领域 = 3007,
|
|
||||||
能量毁灭 = 3008,
|
|
||||||
迅捷之势 = 3009,
|
|
||||||
嗜血本能 = 3010,
|
|
||||||
平衡强化 = 3011,
|
|
||||||
血之狂欢 = 3012,
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum PassiveID : long
|
|
||||||
{
|
|
||||||
META马 = 4001,
|
|
||||||
心灵之火 = 4002,
|
|
||||||
魔法震荡 = 4003,
|
|
||||||
灵能反射 = 4004,
|
|
||||||
智慧与力量 = 4005,
|
|
||||||
致命打击 = 4006,
|
|
||||||
毁灭之势 = 4007,
|
|
||||||
枯竭打击 = 4008,
|
|
||||||
玻璃大炮 = 4009,
|
|
||||||
累积之压 = 4010,
|
|
||||||
敏捷之刃 = 4011,
|
|
||||||
弱者猎手 = 4012,
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum ItemPassiveID : long
|
|
||||||
{
|
|
||||||
攻击之爪 = 5001,
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum ItemActiveID : long
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,89 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 天赐之力 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)SuperSkillID.天赐之力;
|
|
||||||
public override string Name => "天赐之力";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
public override double EPCost => 100;
|
|
||||||
public override double CD => 60;
|
|
||||||
public override double HardnessTime { get; set; } = 15;
|
|
||||||
|
|
||||||
public 天赐之力(Character? character = null) : base(SkillType.SuperSkill, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 天赐之力特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 天赐之力特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
|
|
||||||
private double 系数 => 1.2 * (1 + 0.6 * (Skill.Level - 1));
|
|
||||||
private double 伤害加成 => 系数 * Skill.Character?.AGI ?? 0;
|
|
||||||
private double 攻击力提升 => 0.4 * Skill.Character?.BaseATK ?? 0;
|
|
||||||
private double 实际的攻击力提升 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
实际的攻击力提升 = 攻击力提升;
|
|
||||||
character.ExATK2 += 实际的攻击力提升;
|
|
||||||
character.PhysicalPenetration += 0.3;
|
|
||||||
character.ExEvadeRate += 0.25;
|
|
||||||
if (character.Effects.Where(e => e is 心灵之火特效).FirstOrDefault() is 心灵之火特效 e)
|
|
||||||
{
|
|
||||||
e.基础冷却时间 = 3;
|
|
||||||
if (e.冷却时间 > e.基础冷却时间) e.冷却时间 = e.基础冷却时间;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.ExATK2 -= 实际的攻击力提升;
|
|
||||||
character.PhysicalPenetration -= 0.3;
|
|
||||||
character.ExEvadeRate -= 0.25;
|
|
||||||
if (character.Effects.Where(e => e is 心灵之火特效).FirstOrDefault() is 心灵之火特效 e)
|
|
||||||
{
|
|
||||||
e.基础冷却时间 = 8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override CharacterActionType AlterActionTypeBeforeAction(Character character, CharacterState state, ref bool canUseItem, ref bool canCastSkill, ref double pUseItem, ref double pCastSkill, ref double pNormalAttack)
|
|
||||||
{
|
|
||||||
pNormalAttack += 0.1;
|
|
||||||
return CharacterActionType.None;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType)
|
|
||||||
{
|
|
||||||
if (character == Skill.Character && isNormalAttack)
|
|
||||||
{
|
|
||||||
damage += 伤害加成;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void AlterHardnessTimeAfterNormalAttack(Character character, ref double baseHardnessTime, ref bool isCheckProtected)
|
|
||||||
{
|
|
||||||
baseHardnessTime *= 0.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
RemainDuration = Duration;
|
|
||||||
if (!caster.Effects.Contains(this))
|
|
||||||
{
|
|
||||||
caster.Effects.Add(this);
|
|
||||||
OnEffectGained(caster);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,68 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 心灵之火 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)PassiveID.心灵之火;
|
|
||||||
public override string Name => "心灵之火";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
|
|
||||||
public 心灵之火(Character? character = null) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 心灵之火特效(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 心灵之火特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
public override long Id => Skill.Id;
|
|
||||||
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;
|
|
||||||
|
|
||||||
public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
|
||||||
{
|
|
||||||
if (character == Skill.Character && isNormalAttack && 冷却时间 == 0 && !是否是嵌套普通攻击 && GamingQueue != null)
|
|
||||||
{
|
|
||||||
WriteLine($"[ {character} ] 发动了心灵之火!额外进行一次普通攻击!");
|
|
||||||
冷却时间 = 基础冷却时间;
|
|
||||||
是否是嵌套普通攻击 = true;
|
|
||||||
character.NormalAttack.Attack(GamingQueue, character, enemy);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (character == Skill.Character && 是否是嵌套普通攻击)
|
|
||||||
{
|
|
||||||
是否是嵌套普通攻击 = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnTimeElapsed(Character character, double elapsed)
|
|
||||||
{
|
|
||||||
if (冷却时间 > 0)
|
|
||||||
{
|
|
||||||
冷却时间 -= elapsed;
|
|
||||||
if (冷却时间 <= 0)
|
|
||||||
{
|
|
||||||
冷却时间 = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void AlterHardnessTimeAfterNormalAttack(Character character, ref double baseHardnessTime, ref bool isCheckProtected)
|
|
||||||
{
|
|
||||||
baseHardnessTime *= 0.8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,64 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 魔法涌流 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)SuperSkillID.魔法涌流;
|
|
||||||
public override string Name => "魔法涌流";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
public override double EPCost => 100;
|
|
||||||
public override double CD => 35;
|
|
||||||
public override double HardnessTime { get; set; } = 10;
|
|
||||||
|
|
||||||
public 魔法涌流(Character? character = null) : base(SkillType.SuperSkill, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 魔法涌流特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 魔法涌流特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
|
|
||||||
private double 减伤比例 => 0.1 + 0.02 * (Level - 1);
|
|
||||||
private double 实际比例 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
实际比例 = 减伤比例;
|
|
||||||
character.NormalAttack.SetMagicType(true, character.MagicType);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
character.NormalAttack.SetMagicType(false, character.MagicType);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override bool AlterActualDamageAfterCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
|
||||||
{
|
|
||||||
if (enemy == Skill.Character)
|
|
||||||
{
|
|
||||||
damage *= 1 - 实际比例;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
RemainDuration = Duration;
|
|
||||||
if (!caster.Effects.Contains(this))
|
|
||||||
{
|
|
||||||
实际比例 = 0;
|
|
||||||
caster.Effects.Add(this);
|
|
||||||
OnEffectGained(caster);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,50 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
using Milimoe.FunGame.Testing.Effects.SkillEffects;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 魔法震荡 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)PassiveID.魔法震荡;
|
|
||||||
public override string Name => "魔法震荡";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
|
|
||||||
public 魔法震荡(Character? character = null) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 魔法震荡特效(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 魔法震荡特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
IEnumerable<Effect> effects = enemy.Effects.Where(e => e is 眩晕 && e.Skill == Skill);
|
|
||||||
if (effects.Any())
|
|
||||||
{
|
|
||||||
effects.First().RemainDurationTurn++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
眩晕 e = new(Skill, character, false, 0, 1);
|
|
||||||
enemy.Effects.Add(e);
|
|
||||||
e.OnEffectGained(enemy);
|
|
||||||
}
|
|
||||||
WriteLine($"[ {character} ] 的魔法伤害触发了魔法震荡,[ {enemy} ] 被眩晕了!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,70 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 平衡强化 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)SuperSkillID.平衡强化;
|
|
||||||
public override string Name => "平衡强化";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
public override double EPCost => 100;
|
|
||||||
public override double CD => 55 - (1 * (Level - 1));
|
|
||||||
public override double HardnessTime { get; set; } = 12;
|
|
||||||
|
|
||||||
public 平衡强化(Character? character = null) : base(SkillType.SuperSkill, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 平衡强化特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 平衡强化特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
|
|
||||||
private double 本次提升的敏捷 = 0;
|
|
||||||
private double 本次提升的力量 = 0;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
double pastHP = character.HP;
|
|
||||||
double pastMaxHP = character.MaxHP;
|
|
||||||
double pastMP = character.MP;
|
|
||||||
double pastMaxMP = character.MaxMP;
|
|
||||||
本次提升的敏捷 = character.BaseAGI * 0.2;
|
|
||||||
character.ExAGI += 本次提升的敏捷;
|
|
||||||
本次提升的力量 = character.AGI - character.STR;
|
|
||||||
character.ExSTR += 本次提升的力量;
|
|
||||||
character.Recovery(pastHP, pastMP, pastMaxHP, pastMaxMP);
|
|
||||||
WriteLine($"[ {character} ] 敏捷提升了 {本次提升的敏捷:0.##},力量提升了 {本次提升的力量:0.##}!");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
double pastHP = character.HP;
|
|
||||||
double pastMaxHP = character.MaxHP;
|
|
||||||
double pastMP = character.MP;
|
|
||||||
double pastMaxMP = character.MaxMP;
|
|
||||||
character.ExAGI -= character.BaseAGI * 0.2;
|
|
||||||
character.ExSTR -= 本次提升的力量;
|
|
||||||
character.Recovery(pastHP, pastMP, pastMaxHP, pastMaxMP);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
RemainDuration = Duration;
|
|
||||||
if (!caster.Effects.Contains(this))
|
|
||||||
{
|
|
||||||
本次提升的敏捷 = 0;
|
|
||||||
本次提升的力量 = 0;
|
|
||||||
caster.Effects.Add(this);
|
|
||||||
OnEffectGained(caster);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 敏捷之刃 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)PassiveID.敏捷之刃;
|
|
||||||
public override string Name => "敏捷之刃";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
|
|
||||||
public 敏捷之刃(Character? character = null) : base(SkillType.Passive, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 敏捷之刃特效(this));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override IEnumerable<Effect> AddInactiveEffectToCharacter()
|
|
||||||
{
|
|
||||||
return Effects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 敏捷之刃特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
|
|
||||||
public override void AfterDamageCalculation(Character character, Character enemy, double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
|
||||||
{
|
|
||||||
if (character == Skill.Character && isNormalAttack && damageResult != DamageResult.Evaded && !是否是嵌套伤害)
|
|
||||||
{
|
|
||||||
WriteLine($"[ {character} ] 发动了敏捷之刃!将造成额外伤害!");
|
|
||||||
是否是嵌套伤害 = true;
|
|
||||||
DamageToEnemy(character, enemy, true, magicType, 敏捷伤害);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (character == Skill.Character && 是否是嵌套伤害)
|
|
||||||
{
|
|
||||||
是否是嵌套伤害 = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,84 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 疾风步 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)SkillID.疾风步;
|
|
||||||
public override string Name => "疾风步";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
public override double EPCost => 60;
|
|
||||||
public override double CD => 35;
|
|
||||||
public override double HardnessTime { get; set; } = 5;
|
|
||||||
|
|
||||||
public 疾风步(Character? character = null) : base(SkillType.Skill, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 疾风步特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 疾风步特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
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));
|
|
||||||
|
|
||||||
private double 系数 => 0.5 + 0.5 * (Skill.Level - 1);
|
|
||||||
private double 伤害加成 => 系数 * Skill.Character?.AGI ?? 0;
|
|
||||||
private bool 首次伤害 { get; set; } = true;
|
|
||||||
private bool 破隐一击 { get; set; } = false;
|
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
|
||||||
{
|
|
||||||
Skill.IsInEffect = true;
|
|
||||||
character.CharacterEffectTypes.Add(this, [EffectType.Unselectable]);
|
|
||||||
character.UpdateCharacterState();
|
|
||||||
character.ExSPD += 100;
|
|
||||||
character.ExCritRate += 0.08;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
|
||||||
{
|
|
||||||
Skill.IsInEffect = false;
|
|
||||||
if (!破隐一击)
|
|
||||||
{
|
|
||||||
// 在没有打出破隐一击的情况下,恢复角色状态
|
|
||||||
character.CharacterEffectTypes.Remove(this);
|
|
||||||
character.UpdateCharacterState();
|
|
||||||
}
|
|
||||||
character.ExSPD -= 100;
|
|
||||||
character.ExCritRate -= 0.08;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override bool AlterActualDamageAfterCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
|
||||||
{
|
|
||||||
if (character == Skill.Character && 首次伤害)
|
|
||||||
{
|
|
||||||
首次伤害 = false;
|
|
||||||
破隐一击 = true;
|
|
||||||
character.CharacterEffectTypes.Remove(this);
|
|
||||||
character.UpdateCharacterState();
|
|
||||||
double d = 伤害加成;
|
|
||||||
damage += d;
|
|
||||||
WriteLine($"[ {character} ] 触发了疾风步破隐一击,获得了 [ {d:0.##} ] 点伤害加成!");
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
if (!caster.Effects.Contains(this))
|
|
||||||
{
|
|
||||||
首次伤害 = true;
|
|
||||||
破隐一击 = false;
|
|
||||||
RemainDuration = Duration;
|
|
||||||
caster.Effects.Add(this);
|
|
||||||
OnEffectGained(caster);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,52 +0,0 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
|
||||||
{
|
|
||||||
public class 冰霜攻击 : Skill
|
|
||||||
{
|
|
||||||
public override long Id => (long)MagicID.冰霜攻击;
|
|
||||||
public override string Name => "冰霜攻击";
|
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
|
||||||
public override double MPCost => 30 + (50 * (Level - 1));
|
|
||||||
public override double CD => 20;
|
|
||||||
public override double CastTime => 6;
|
|
||||||
public override double HardnessTime { get; set; } = 3;
|
|
||||||
|
|
||||||
public 冰霜攻击(Character? character = null) : base(SkillType.Magic, character)
|
|
||||||
{
|
|
||||||
Effects.Add(new 冰霜攻击特效(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class 冰霜攻击特效(Skill skill) : Effect(skill)
|
|
||||||
{
|
|
||||||
public override long Id => Skill.Id;
|
|
||||||
public override string Name => Skill.Name;
|
|
||||||
public override string Description => $"对目标敌人造成 {90 + 60 * (Skill.Level - 1):0.##} + {(1.2 + 1.8 * (Skill.Level - 1)) * 100:0.##}% 智力 [ {Damage:0.##} ] 点{CharacterSet.GetMagicDamageName(MagicType)}。";
|
|
||||||
public override bool TargetSelf => false;
|
|
||||||
public override int TargetCount => 1;
|
|
||||||
|
|
||||||
private double Damage
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
double d = 0;
|
|
||||||
if (Skill.Character != null)
|
|
||||||
{
|
|
||||||
d = 90 + 60 * (Skill.Level - 1) + (1.2 + 1.8 * (Skill.Level - 1)) * Skill.Character.INT;
|
|
||||||
}
|
|
||||||
return d;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
|
|
||||||
{
|
|
||||||
if (targets.Count > 0)
|
|
||||||
{
|
|
||||||
Character enemy = targets[0];
|
|
||||||
DamageToEnemy(caster, enemy, true, MagicType, Damage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +1,6 @@
|
|||||||
using Milimoe.FunGame.Core.Api.Utility;
|
using Milimoe.FunGame.Core.Api.Utility;
|
||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Common.Addon;
|
using Milimoe.FunGame.Core.Library.Common.Addon;
|
||||||
using Milimoe.FunGame.Testing.Effects.OpenEffects;
|
|
||||||
using Milimoe.FunGame.Testing.Items;
|
|
||||||
using Milimoe.FunGame.Testing.Skills;
|
|
||||||
|
|
||||||
namespace Addons
|
namespace Addons
|
||||||
{
|
{
|
||||||
@ -60,33 +57,6 @@ namespace Addons
|
|||||||
{
|
{
|
||||||
Skill skill = id switch
|
Skill skill = id switch
|
||||||
{
|
{
|
||||||
(long)MagicID.冰霜攻击 => new 冰霜攻击(),
|
|
||||||
(long)SkillID.疾风步 => new 疾风步(),
|
|
||||||
(long)SuperSkillID.力量爆发 => new 力量爆发(),
|
|
||||||
(long)SuperSkillID.天赐之力 => new 天赐之力(),
|
|
||||||
(long)SuperSkillID.魔法涌流 => new 魔法涌流(),
|
|
||||||
(long)SuperSkillID.三重叠加 => new 三重叠加(),
|
|
||||||
(long)SuperSkillID.变幻之心 => new 变幻之心(),
|
|
||||||
(long)SuperSkillID.精准打击 => new 精准打击(),
|
|
||||||
(long)SuperSkillID.绝对领域 => new 绝对领域(),
|
|
||||||
(long)SuperSkillID.能量毁灭 => new 能量毁灭(),
|
|
||||||
(long)SuperSkillID.迅捷之势 => new 迅捷之势(),
|
|
||||||
(long)SuperSkillID.嗜血本能 => new 嗜血本能(),
|
|
||||||
(long)SuperSkillID.平衡强化 => new 平衡强化(),
|
|
||||||
(long)SuperSkillID.血之狂欢 => new 血之狂欢(),
|
|
||||||
(long)PassiveID.META马 => new META马(),
|
|
||||||
(long)PassiveID.心灵之火 => new 心灵之火(),
|
|
||||||
(long)PassiveID.魔法震荡 => new 魔法震荡(),
|
|
||||||
(long)PassiveID.灵能反射 => new 灵能反射(),
|
|
||||||
(long)PassiveID.智慧与力量 => new 智慧与力量(),
|
|
||||||
(long)PassiveID.致命打击 => new 致命打击(),
|
|
||||||
(long)PassiveID.毁灭之势 => new 毁灭之势(),
|
|
||||||
(long)PassiveID.枯竭打击 => new 枯竭打击(),
|
|
||||||
(long)PassiveID.玻璃大炮 => new 玻璃大炮(),
|
|
||||||
(long)PassiveID.累积之压 => new 累积之压(),
|
|
||||||
(long)PassiveID.敏捷之刃 => new 敏捷之刃(),
|
|
||||||
(long)PassiveID.弱者猎手 => new 弱者猎手(),
|
|
||||||
(long)ItemPassiveID.攻击之爪 => new 攻击之爪技能(),
|
|
||||||
_ => new OpenSkill(id, name, args)
|
_ => new OpenSkill(id, name, args)
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -108,30 +78,8 @@ namespace Addons
|
|||||||
{
|
{
|
||||||
if (args.TryGetValue("skill", out object? value) && value is Skill skill && args.TryGetValue("values", out value) && value is Dictionary<string, object> dict)
|
if (args.TryGetValue("skill", out object? value) && value is Skill skill && args.TryGetValue("values", out value) && value is Dictionary<string, object> dict)
|
||||||
{
|
{
|
||||||
return (EffectID)id switch
|
return id switch
|
||||||
{
|
{
|
||||||
EffectID.ExATK => new ExATK(skill, dict),
|
|
||||||
EffectID.ExDEF => new ExDEF(skill, dict),
|
|
||||||
EffectID.ExSTR => new ExSTR(skill, dict),
|
|
||||||
EffectID.ExAGI => new ExAGI(skill, dict),
|
|
||||||
EffectID.ExINT => new ExINT(skill, dict),
|
|
||||||
EffectID.SkillHardTimeReduce => new SkillHardTimeReduce(skill, dict),
|
|
||||||
EffectID.NormalAttackHardTimeReduce => new NormalAttackHardTimeReduce(skill, dict),
|
|
||||||
EffectID.AccelerationCoefficient => new AccelerationCoefficient(skill, dict),
|
|
||||||
EffectID.ExSPD => new ExSPD(skill, dict),
|
|
||||||
EffectID.ExActionCoefficient => new ExActionCoefficient(skill, dict),
|
|
||||||
EffectID.ExCDR => new ExCDR(skill, dict),
|
|
||||||
EffectID.ExMaxHP => new ExMaxHP(skill, dict),
|
|
||||||
EffectID.ExMaxMP => new ExMaxMP(skill, dict),
|
|
||||||
EffectID.ExCritRate => new ExCritRate(skill, dict),
|
|
||||||
EffectID.ExCritDMG => new ExCritDMG(skill, dict),
|
|
||||||
EffectID.ExEvadeRate => new ExEvadeRate(skill, dict),
|
|
||||||
EffectID.PhysicalPenetration => new PhysicalPenetration(skill, dict),
|
|
||||||
EffectID.MagicalPenetration => new MagicalPenetration(skill, dict),
|
|
||||||
EffectID.ExPDR => new ExPDR(skill, dict),
|
|
||||||
EffectID.ExMDF => new ExMDF(skill, dict),
|
|
||||||
EffectID.ExHR => new ExHR(skill, dict),
|
|
||||||
EffectID.ExMR => new ExMR(skill, dict),
|
|
||||||
_ => null
|
_ => null
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -164,9 +112,6 @@ namespace Addons
|
|||||||
{
|
{
|
||||||
return id switch
|
return id switch
|
||||||
{
|
{
|
||||||
(long)AccessoryID.攻击之爪10 => new 攻击之爪10(),
|
|
||||||
(long)AccessoryID.攻击之爪30 => new 攻击之爪30(),
|
|
||||||
(long)AccessoryID.攻击之爪50 => new 攻击之爪50(),
|
|
||||||
_ => null,
|
_ => null,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -3,8 +3,6 @@ using Milimoe.FunGame.Core.Entity;
|
|||||||
using Milimoe.FunGame.Core.Interface;
|
using Milimoe.FunGame.Core.Interface;
|
||||||
using Milimoe.FunGame.Core.Library.Common.Addon;
|
using Milimoe.FunGame.Core.Library.Common.Addon;
|
||||||
using Milimoe.FunGame.Core.Library.Common.Event;
|
using Milimoe.FunGame.Core.Library.Common.Event;
|
||||||
using Milimoe.FunGame.Testing.Items;
|
|
||||||
using Milimoe.FunGame.Testing.Skills;
|
|
||||||
using MilimoeFunGame.Testing.Characters;
|
using MilimoeFunGame.Testing.Characters;
|
||||||
|
|
||||||
namespace Addons
|
namespace Addons
|
||||||
@ -39,36 +37,8 @@ namespace Addons
|
|||||||
config.SaveConfig();
|
config.SaveConfig();
|
||||||
|
|
||||||
EntityModuleConfig<Skill> config2 = new(ExampleGameModuleConstant.Example, ExampleGameModuleConstant.ExampleSkill);
|
EntityModuleConfig<Skill> config2 = new(ExampleGameModuleConstant.Example, ExampleGameModuleConstant.ExampleSkill);
|
||||||
Character c = Factory.GetCharacter();
|
//Character c = Factory.GetCharacter();
|
||||||
List<Skill> listSkill = [];
|
List<Skill> listSkill = [];
|
||||||
listSkill.Add(new 冰霜攻击(c));
|
|
||||||
listSkill.Add(new 疾风步(c));
|
|
||||||
listSkill.Add(new META马(c));
|
|
||||||
listSkill.Add(new 力量爆发(c));
|
|
||||||
listSkill.Add(new 心灵之火(c));
|
|
||||||
listSkill.Add(new 天赐之力(c));
|
|
||||||
listSkill.Add(new 魔法震荡(c));
|
|
||||||
listSkill.Add(new 魔法涌流(c));
|
|
||||||
listSkill.Add(new 灵能反射(c));
|
|
||||||
listSkill.Add(new 三重叠加(c));
|
|
||||||
listSkill.Add(new 智慧与力量(c));
|
|
||||||
listSkill.Add(new 变幻之心(c));
|
|
||||||
listSkill.Add(new 致命打击(c));
|
|
||||||
listSkill.Add(new 精准打击(c));
|
|
||||||
listSkill.Add(new 毁灭之势(c));
|
|
||||||
listSkill.Add(new 绝对领域(c));
|
|
||||||
listSkill.Add(new 枯竭打击(c));
|
|
||||||
listSkill.Add(new 能量毁灭(c));
|
|
||||||
listSkill.Add(new 玻璃大炮(c));
|
|
||||||
listSkill.Add(new 迅捷之势(c));
|
|
||||||
listSkill.Add(new 累积之压(c));
|
|
||||||
listSkill.Add(new 嗜血本能(c));
|
|
||||||
listSkill.Add(new 敏捷之刃(c));
|
|
||||||
listSkill.Add(new 平衡强化(c));
|
|
||||||
listSkill.Add(new 弱者猎手(c));
|
|
||||||
listSkill.Add(new 血之狂欢(c));
|
|
||||||
listSkill.Add(new 冰霜攻击(c));
|
|
||||||
listSkill.Add(new 疾风步(c));
|
|
||||||
foreach (Skill s in listSkill)
|
foreach (Skill s in listSkill)
|
||||||
{
|
{
|
||||||
config2.Add(s.Name, s);
|
config2.Add(s.Name, s);
|
||||||
@ -77,9 +47,7 @@ namespace Addons
|
|||||||
|
|
||||||
EntityModuleConfig<Item> config3 = new(ExampleGameModuleConstant.Example, ExampleGameModuleConstant.ExampleItem)
|
EntityModuleConfig<Item> config3 = new(ExampleGameModuleConstant.Example, ExampleGameModuleConstant.ExampleItem)
|
||||||
{
|
{
|
||||||
{ "攻击之爪10", new 攻击之爪10() },
|
|
||||||
{ "攻击之爪30", new 攻击之爪30() },
|
|
||||||
{ "攻击之爪50", new 攻击之爪50() }
|
|
||||||
};
|
};
|
||||||
config3.SaveConfig();
|
config3.SaveConfig();
|
||||||
|
|
||||||
|
@ -2,8 +2,6 @@
|
|||||||
using Milimoe.FunGame.Core.Api.Utility;
|
using Milimoe.FunGame.Core.Api.Utility;
|
||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Model;
|
using Milimoe.FunGame.Core.Model;
|
||||||
using Milimoe.FunGame.Testing.Items;
|
|
||||||
using Milimoe.FunGame.Testing.Skills;
|
|
||||||
using MilimoeFunGame.Testing.Characters;
|
using MilimoeFunGame.Testing.Characters;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Tests
|
namespace Milimoe.FunGame.Testing.Tests
|
||||||
@ -86,209 +84,209 @@ namespace Milimoe.FunGame.Testing.Tests
|
|||||||
character9, character10, character11, character12
|
character9, character10, character11, character12
|
||||||
];
|
];
|
||||||
|
|
||||||
int clevel = 60;
|
//int clevel = 60;
|
||||||
int slevel = 6;
|
//int slevel = 6;
|
||||||
int mlevel = 8;
|
//int mlevel = 8;
|
||||||
|
|
||||||
// 升级和赋能
|
// 升级和赋能
|
||||||
for (int index = 0; index < characters.Count; index++)
|
//for (int index = 0; index < characters.Count; index++)
|
||||||
{
|
//{
|
||||||
Character c = characters[index];
|
// Character c = characters[index];
|
||||||
c.Level = clevel;
|
// c.Level = clevel;
|
||||||
c.NormalAttack.Level = mlevel;
|
// c.NormalAttack.Level = mlevel;
|
||||||
|
|
||||||
Skill 冰霜攻击 = new 冰霜攻击(c)
|
// Skill 冰霜攻击 = new 冰霜攻击(c)
|
||||||
{
|
// {
|
||||||
Level = mlevel
|
// Level = mlevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(冰霜攻击);
|
// c.Skills.Add(冰霜攻击);
|
||||||
|
|
||||||
Skill 疾风步 = new 疾风步(c)
|
// Skill 疾风步 = new 疾风步(c)
|
||||||
{
|
// {
|
||||||
Level = slevel
|
// Level = slevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(疾风步);
|
// c.Skills.Add(疾风步);
|
||||||
|
|
||||||
if (c == character1)
|
// if (c == character1)
|
||||||
{
|
// {
|
||||||
Skill META马 = new META马(c)
|
// Skill META马 = new META马(c)
|
||||||
{
|
// {
|
||||||
Level = 1
|
// Level = 1
|
||||||
};
|
// };
|
||||||
c.Skills.Add(META马);
|
// c.Skills.Add(META马);
|
||||||
|
|
||||||
Skill 力量爆发 = new 力量爆发(c)
|
// Skill 力量爆发 = new 力量爆发(c)
|
||||||
{
|
// {
|
||||||
Level = mlevel
|
// Level = mlevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(力量爆发);
|
// c.Skills.Add(力量爆发);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (c == character2)
|
// if (c == character2)
|
||||||
{
|
// {
|
||||||
Skill 心灵之火 = new 心灵之火(c)
|
// Skill 心灵之火 = new 心灵之火(c)
|
||||||
{
|
// {
|
||||||
Level = 1
|
// Level = 1
|
||||||
};
|
// };
|
||||||
c.Skills.Add(心灵之火);
|
// c.Skills.Add(心灵之火);
|
||||||
|
|
||||||
Skill 天赐之力 = new 天赐之力(c)
|
// Skill 天赐之力 = new 天赐之力(c)
|
||||||
{
|
// {
|
||||||
Level = slevel
|
// Level = slevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(天赐之力);
|
// c.Skills.Add(天赐之力);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (c == character3)
|
// if (c == character3)
|
||||||
{
|
// {
|
||||||
Skill 魔法震荡 = new 魔法震荡(c)
|
// Skill 魔法震荡 = new 魔法震荡(c)
|
||||||
{
|
// {
|
||||||
Level = 1
|
// Level = 1
|
||||||
};
|
// };
|
||||||
c.Skills.Add(魔法震荡);
|
// c.Skills.Add(魔法震荡);
|
||||||
|
|
||||||
Skill 魔法涌流 = new 魔法涌流(c)
|
// Skill 魔法涌流 = new 魔法涌流(c)
|
||||||
{
|
// {
|
||||||
Level = slevel
|
// Level = slevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(魔法涌流);
|
// c.Skills.Add(魔法涌流);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (c == character4)
|
// if (c == character4)
|
||||||
{
|
// {
|
||||||
Skill 灵能反射 = new 灵能反射(c)
|
// Skill 灵能反射 = new 灵能反射(c)
|
||||||
{
|
// {
|
||||||
Level = 1
|
// Level = 1
|
||||||
};
|
// };
|
||||||
c.Skills.Add(灵能反射);
|
// c.Skills.Add(灵能反射);
|
||||||
|
|
||||||
Skill 三重叠加 = new 三重叠加(c)
|
// Skill 三重叠加 = new 三重叠加(c)
|
||||||
{
|
// {
|
||||||
Level = slevel
|
// Level = slevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(三重叠加);
|
// c.Skills.Add(三重叠加);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (c == character5)
|
// if (c == character5)
|
||||||
{
|
// {
|
||||||
Skill 智慧与力量 = new 智慧与力量(c)
|
// Skill 智慧与力量 = new 智慧与力量(c)
|
||||||
{
|
// {
|
||||||
Level = 1
|
// Level = 1
|
||||||
};
|
// };
|
||||||
c.Skills.Add(智慧与力量);
|
// c.Skills.Add(智慧与力量);
|
||||||
|
|
||||||
Skill 变幻之心 = new 变幻之心(c)
|
// Skill 变幻之心 = new 变幻之心(c)
|
||||||
{
|
// {
|
||||||
Level = slevel
|
// Level = slevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(变幻之心);
|
// c.Skills.Add(变幻之心);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (c == character6)
|
// if (c == character6)
|
||||||
{
|
// {
|
||||||
Skill 致命打击 = new 致命打击(c)
|
// Skill 致命打击 = new 致命打击(c)
|
||||||
{
|
// {
|
||||||
Level = 1
|
// Level = 1
|
||||||
};
|
// };
|
||||||
c.Skills.Add(致命打击);
|
// c.Skills.Add(致命打击);
|
||||||
|
|
||||||
Skill 精准打击 = new 精准打击(c)
|
// Skill 精准打击 = new 精准打击(c)
|
||||||
{
|
// {
|
||||||
Level = slevel
|
// Level = slevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(精准打击);
|
// c.Skills.Add(精准打击);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (c == character7)
|
// if (c == character7)
|
||||||
{
|
// {
|
||||||
Skill 毁灭之势 = new 毁灭之势(c)
|
// Skill 毁灭之势 = new 毁灭之势(c)
|
||||||
{
|
// {
|
||||||
Level = 1
|
// Level = 1
|
||||||
};
|
// };
|
||||||
c.Skills.Add(毁灭之势);
|
// c.Skills.Add(毁灭之势);
|
||||||
|
|
||||||
Skill 绝对领域 = new 绝对领域(c)
|
// Skill 绝对领域 = new 绝对领域(c)
|
||||||
{
|
// {
|
||||||
Level = slevel
|
// Level = slevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(绝对领域);
|
// c.Skills.Add(绝对领域);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (c == character8)
|
// if (c == character8)
|
||||||
{
|
// {
|
||||||
Skill 枯竭打击 = new 枯竭打击(c)
|
// Skill 枯竭打击 = new 枯竭打击(c)
|
||||||
{
|
// {
|
||||||
Level = 1
|
// Level = 1
|
||||||
};
|
// };
|
||||||
c.Skills.Add(枯竭打击);
|
// c.Skills.Add(枯竭打击);
|
||||||
|
|
||||||
Skill 能量毁灭 = new 能量毁灭(c)
|
// Skill 能量毁灭 = new 能量毁灭(c)
|
||||||
{
|
// {
|
||||||
Level = slevel
|
// Level = slevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(能量毁灭);
|
// c.Skills.Add(能量毁灭);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (c == character9)
|
// if (c == character9)
|
||||||
{
|
// {
|
||||||
Skill 玻璃大炮 = new 玻璃大炮(c)
|
// Skill 玻璃大炮 = new 玻璃大炮(c)
|
||||||
{
|
// {
|
||||||
Level = 1
|
// Level = 1
|
||||||
};
|
// };
|
||||||
c.Skills.Add(玻璃大炮);
|
// c.Skills.Add(玻璃大炮);
|
||||||
|
|
||||||
Skill 迅捷之势 = new 迅捷之势(c)
|
// Skill 迅捷之势 = new 迅捷之势(c)
|
||||||
{
|
// {
|
||||||
Level = slevel
|
// Level = slevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(迅捷之势);
|
// c.Skills.Add(迅捷之势);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (c == character10)
|
// if (c == character10)
|
||||||
{
|
// {
|
||||||
Skill 累积之压 = new 累积之压(c)
|
// Skill 累积之压 = new 累积之压(c)
|
||||||
{
|
// {
|
||||||
Level = 1
|
// Level = 1
|
||||||
};
|
// };
|
||||||
c.Skills.Add(累积之压);
|
// c.Skills.Add(累积之压);
|
||||||
|
|
||||||
Skill 嗜血本能 = new 嗜血本能(c)
|
// Skill 嗜血本能 = new 嗜血本能(c)
|
||||||
{
|
// {
|
||||||
Level = slevel
|
// Level = slevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(嗜血本能);
|
// c.Skills.Add(嗜血本能);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (c == character11)
|
// if (c == character11)
|
||||||
{
|
// {
|
||||||
Skill 敏捷之刃 = new 敏捷之刃(c)
|
// Skill 敏捷之刃 = new 敏捷之刃(c)
|
||||||
{
|
// {
|
||||||
Level = 1
|
// Level = 1
|
||||||
};
|
// };
|
||||||
c.Skills.Add(敏捷之刃);
|
// c.Skills.Add(敏捷之刃);
|
||||||
|
|
||||||
Skill 平衡强化 = new 平衡强化(c)
|
// Skill 平衡强化 = new 平衡强化(c)
|
||||||
{
|
// {
|
||||||
Level = slevel
|
// Level = slevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(平衡强化);
|
// c.Skills.Add(平衡强化);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (c == character12)
|
// if (c == character12)
|
||||||
{
|
// {
|
||||||
Skill 弱者猎手 = new 弱者猎手(c)
|
// Skill 弱者猎手 = new 弱者猎手(c)
|
||||||
{
|
// {
|
||||||
Level = 1
|
// Level = 1
|
||||||
};
|
// };
|
||||||
c.Skills.Add(弱者猎手);
|
// c.Skills.Add(弱者猎手);
|
||||||
|
|
||||||
Skill 血之狂欢 = new 血之狂欢(c)
|
// Skill 血之狂欢 = new 血之狂欢(c)
|
||||||
{
|
// {
|
||||||
Level = slevel
|
// Level = slevel
|
||||||
};
|
// };
|
||||||
c.Skills.Add(血之狂欢);
|
// c.Skills.Add(血之狂欢);
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
// 显示角色信息
|
// 显示角色信息
|
||||||
if (PrintOut) characters.ForEach(c => Console.WriteLine(c.GetInfo()));
|
if (PrintOut) characters.ForEach(c => Console.WriteLine(c.GetInfo()));
|
||||||
@ -563,7 +561,7 @@ namespace Milimoe.FunGame.Testing.Tests
|
|||||||
|
|
||||||
Dictionary<string, Item> exitem = Factory.GetGameModuleInstances<Item>(nameof(SkillJSONTest), nameof(Item));
|
Dictionary<string, Item> exitem = Factory.GetGameModuleInstances<Item>(nameof(SkillJSONTest), nameof(Item));
|
||||||
Items.AddRange(exitem.Values);
|
Items.AddRange(exitem.Values);
|
||||||
Items.AddRange([new 攻击之爪10(), new 攻击之爪30(), new 攻击之爪50()]);
|
//Items.AddRange([new 攻击之爪10(), new 攻击之爪30(), new 攻击之爪50()]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user