mirror of
https://github.com/milimoe/FunGame-Testing.git
synced 2025-04-22 20:29:34 +08:00
更新测试内容
This commit is contained in:
parent
69a6198363
commit
509d65d842
@ -363,27 +363,27 @@ namespace Milimoe.FunGame.Testing.Desktop.Solutions
|
|||||||
|
|
||||||
private void 删除角色物品方法()
|
private void 删除角色物品方法()
|
||||||
{
|
{
|
||||||
Character? c = CharacterManager.LoadedCharacters.Values.Where(c => c.ToString() == 实际列表.Items[实际列表.SelectedIndex].ToString()).FirstOrDefault();
|
//Character? c = CharacterManager.LoadedCharacters.Values.Where(c => c.ToString() == 实际列表.Items[实际列表.SelectedIndex].ToString()).FirstOrDefault();
|
||||||
if (c != null)
|
//if (c != null)
|
||||||
{
|
//{
|
||||||
if (c.Items.Count != 0 || c.EquipSlot.Any())
|
// if (c.Items.Count != 0 || c.EquipSlot.Any())
|
||||||
{
|
// {
|
||||||
ShowList l = new();
|
// ShowList l = new();
|
||||||
l.AddListItem(c.Items.Select(s => s.GetIdName()).ToArray());
|
// l.AddListItem(c.Items.Select(s => s.GetIdName()).ToArray());
|
||||||
l.ShowDialog();
|
// l.ShowDialog();
|
||||||
string selected = l.SelectItem;
|
// string selected = l.SelectItem;
|
||||||
Item? i = c.Items.Where(i => i.GetIdName() == selected).FirstOrDefault();
|
// Item? i = c.Items.Where(i => i.GetIdName() == selected).FirstOrDefault();
|
||||||
if (i != null)
|
// if (i != null)
|
||||||
{
|
// {
|
||||||
if (i.Equipable) c.UnEquip(c.EquipSlot.GetEquipItemToSlot(i));
|
// if (i.Equipable) c.UnEquip(c.EquipSlot.GetEquipItemToSlot(i));
|
||||||
else c.Items.Remove(i);
|
// else c.Items.Remove(i);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
MessageBox.Show("物品列表为空!");
|
// MessageBox.Show("物品列表为空!");
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void 为角色添加技能_Click(object sender, EventArgs e)
|
private void 为角色添加技能_Click(object sender, EventArgs e)
|
||||||
|
@ -145,30 +145,30 @@ namespace Milimoe.FunGame.Testing.Desktop.Solutions
|
|||||||
|
|
||||||
private void 删物品_Click(object sender, EventArgs e)
|
private void 删物品_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (NowClick == 0 && BaseEntity is Character c)
|
//if (NowClick == 0 && BaseEntity is Character c)
|
||||||
{
|
//{
|
||||||
if (c != null)
|
// if (c != null)
|
||||||
{
|
// {
|
||||||
if (c.Items.Count != 0 || c.EquipSlot.Any())
|
// if (c.Items.Count != 0 || c.EquipSlot.Any())
|
||||||
{
|
// {
|
||||||
ShowList l = new();
|
// ShowList l = new();
|
||||||
l.AddListItem(c.Items.OrderBy(i => i.Id).Select(i => i.GetIdName()).ToArray());
|
// l.AddListItem(c.Items.OrderBy(i => i.Id).Select(i => i.GetIdName()).ToArray());
|
||||||
l.ShowDialog();
|
// l.ShowDialog();
|
||||||
string selected = l.SelectItem;
|
// string selected = l.SelectItem;
|
||||||
Item? i = c.Items.Where(i => i.GetIdName() == selected).FirstOrDefault();
|
// Item? i = c.Items.Where(i => i.GetIdName() == selected).FirstOrDefault();
|
||||||
if (i != null)
|
// if (i != null)
|
||||||
{
|
// {
|
||||||
if (i.Equipable) c.UnEquip(c.EquipSlot.GetEquipItemToSlot(i));
|
// if (i.Equipable) c.UnEquip(c.EquipSlot.GetEquipItemToSlot(i));
|
||||||
else c.Items.Remove(i);
|
// else c.Items.Remove(i);
|
||||||
详细内容.Text = c.GetInfo();
|
// 详细内容.Text = c.GetInfo();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
MessageBox.Show("物品列表为空!");
|
// MessageBox.Show("物品列表为空!");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void 删技能_Click(object sender, EventArgs e)
|
private void 删技能_Click(object sender, EventArgs e)
|
||||||
|
@ -15,6 +15,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunGame.Testing.Desktop", "
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunGame.Core", "..\FunGame.Core\FunGame.Core.csproj", "{94B564CD-7A1E-4B3C-AF78-23EBCD5D627E}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunGame.Core", "..\FunGame.Core\FunGame.Core.csproj", "{94B564CD-7A1E-4B3C-AF78-23EBCD5D627E}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OshimaModules", "..\OshimaGameModule\OshimaModules\OshimaModules.csproj", "{35136317-2FBC-41C1-A3A0-C56B198FA440}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OshimaCore", "..\OshimaGameModule\OshimaCore\OshimaCore.csproj", "{A0EDE123-21D0-4886-8960-0802677FBC04}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -33,6 +37,14 @@ Global
|
|||||||
{94B564CD-7A1E-4B3C-AF78-23EBCD5D627E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{94B564CD-7A1E-4B3C-AF78-23EBCD5D627E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{94B564CD-7A1E-4B3C-AF78-23EBCD5D627E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{94B564CD-7A1E-4B3C-AF78-23EBCD5D627E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{94B564CD-7A1E-4B3C-AF78-23EBCD5D627E}.Release|Any CPU.Build.0 = Release|Any CPU
|
{94B564CD-7A1E-4B3C-AF78-23EBCD5D627E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{35136317-2FBC-41C1-A3A0-C56B198FA440}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{35136317-2FBC-41C1-A3A0-C56B198FA440}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{35136317-2FBC-41C1-A3A0-C56B198FA440}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{35136317-2FBC-41C1-A3A0-C56B198FA440}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A0EDE123-21D0-4886-8960-0802677FBC04}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A0EDE123-21D0-4886-8960-0802677FBC04}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A0EDE123-21D0-4886-8960-0802677FBC04}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A0EDE123-21D0-4886-8960-0802677FBC04}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
163
Library/Effects/EffectID.cs
Normal file
163
Library/Effects/EffectID.cs
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
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,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.ItemEffects
|
namespace Milimoe.FunGame.Testing.Effects.ItemEffects
|
||||||
{
|
{
|
||||||
public class 冷却缩减加成 : Effect
|
public class 冷却缩减加成 : Effect
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.ItemEffects
|
namespace Milimoe.FunGame.Testing.Effects.ItemEffects
|
||||||
{
|
{
|
||||||
public class 技能硬直时间减少 : Effect
|
public class 技能硬直时间减少 : Effect
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.ItemEffects
|
namespace Milimoe.FunGame.Testing.Effects.ItemEffects
|
||||||
{
|
{
|
||||||
public class 攻击力加成 : Effect
|
public class 攻击力加成 : Effect
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.ItemEffects
|
namespace Milimoe.FunGame.Testing.Effects.ItemEffects
|
||||||
{
|
{
|
||||||
public class 普攻硬直时间减少 : Effect
|
public class 普攻硬直时间减少 : Effect
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.ItemEffects
|
namespace Milimoe.FunGame.Testing.Effects.ItemEffects
|
||||||
{
|
{
|
||||||
public class 物理护甲加成 : Effect
|
public class 物理护甲加成 : Effect
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class AccelerationCoefficient : Effect
|
public class AccelerationCoefficient : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.AccelerationCoefficient -= 实际加成;
|
character.AccelerationCoefficient -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public AccelerationCoefficient(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public AccelerationCoefficient(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exacc", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exacc", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exACC))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exACC))
|
||||||
{
|
{
|
||||||
实际加成 = exACC;
|
实际加成 = exACC;
|
||||||
}
|
}
|
||||||
|
@ -1,115 +0,0 @@
|
|||||||
namespace Milimoe.FunGame.Testing.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>
|
|
||||||
/// expp
|
|
||||||
/// </summary>
|
|
||||||
PhysicalPenetration = 8017,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// exmp
|
|
||||||
/// </summary>
|
|
||||||
MagicalPenetration = 8018,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// expdr
|
|
||||||
/// </summary>
|
|
||||||
ExPDR = 8019,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// mdftype, mdfvalue
|
|
||||||
/// </summary>
|
|
||||||
ExMDF = 8020,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// exhr
|
|
||||||
/// </summary>
|
|
||||||
ExHR = 8021,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// exmr
|
|
||||||
/// </summary>
|
|
||||||
ExMR = 8022
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExAGI : Effect
|
public class ExAGI : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExAGI -= 实际加成;
|
character.ExAGI -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExAGI(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExAGI(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exagi", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exagi", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exAGI))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exAGI))
|
||||||
{
|
{
|
||||||
实际加成 = exAGI;
|
实际加成 = exAGI;
|
||||||
}
|
}
|
||||||
|
45
Library/Effects/OpenEffects/ExAGI2.cs
Normal file
45
Library/Effects/OpenEffects/ExAGI2.cs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
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,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExATK : Effect
|
public class ExATK : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExATK2 -= 实际加成;
|
character.ExATK2 -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExATK(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExATK(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exatk", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exatk", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exATK))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exATK))
|
||||||
{
|
{
|
||||||
实际加成 = exATK;
|
实际加成 = exATK;
|
||||||
}
|
}
|
||||||
|
45
Library/Effects/OpenEffects/ExATK2.cs
Normal file
45
Library/Effects/OpenEffects/ExATK2.cs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
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,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExActionCoefficient : Effect
|
public class ExActionCoefficient : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExActionCoefficient -= 实际加成;
|
character.ExActionCoefficient -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExActionCoefficient(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExActionCoefficient(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exac", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exac", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exAC))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exAC))
|
||||||
{
|
{
|
||||||
实际加成 = exAC;
|
实际加成 = exAC;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExCDR : Effect
|
public class ExCDR : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExCDR -= 实际加成;
|
character.ExCDR -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExCDR(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExCDR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("excdr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("excdr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exCDR))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exCDR))
|
||||||
{
|
{
|
||||||
实际加成 = exCDR;
|
实际加成 = exCDR;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExCritDMG : Effect
|
public class ExCritDMG : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExCritDMG -= 实际加成;
|
character.ExCritDMG -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExCritDMG(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExCritDMG(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("excrd", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("excrd", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exCRD))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exCRD))
|
||||||
{
|
{
|
||||||
实际加成 = exCRD;
|
实际加成 = exCRD;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExCritRate : Effect
|
public class ExCritRate : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExCritRate -= 实际加成;
|
character.ExCritRate -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExCritRate(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExCritRate(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("excr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("excr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exCR))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exCR))
|
||||||
{
|
{
|
||||||
实际加成 = exCR;
|
实际加成 = exCR;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExDEF : Effect
|
public class ExDEF : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExDEF2 -= 实际加成;
|
character.ExDEF2 -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExDEF(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExDEF(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exdef", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exdef", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exDEF))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exDEF))
|
||||||
{
|
{
|
||||||
实际加成 = exDEF;
|
实际加成 = exDEF;
|
||||||
}
|
}
|
||||||
|
45
Library/Effects/OpenEffects/ExDEF2.cs
Normal file
45
Library/Effects/OpenEffects/ExDEF2.cs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
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,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExEvadeRate : Effect
|
public class ExEvadeRate : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExEvadeRate -= 实际加成;
|
character.ExEvadeRate -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExEvadeRate(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExEvadeRate(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exer", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exer", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exER))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exER))
|
||||||
{
|
{
|
||||||
实际加成 = exER;
|
实际加成 = exER;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExHR : Effect
|
public class ExHR : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExHR -= 实际加成;
|
character.ExHR -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExHR(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExHR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exhr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exhr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exHR))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exHR))
|
||||||
{
|
{
|
||||||
实际加成 = exHR;
|
实际加成 = exHR;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExINT : Effect
|
public class ExINT : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExINT -= 实际加成;
|
character.ExINT -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExINT(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExINT(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exint", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exint", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exINT))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exINT))
|
||||||
{
|
{
|
||||||
实际加成 = exINT;
|
实际加成 = exINT;
|
||||||
}
|
}
|
||||||
|
45
Library/Effects/OpenEffects/ExINT2.cs
Normal file
45
Library/Effects/OpenEffects/ExINT2.cs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
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,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExMDF : Effect
|
public class ExMDF : Effect
|
||||||
{
|
{
|
||||||
@ -45,15 +45,7 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
break;
|
break;
|
||||||
case MagicType.None:
|
case MagicType.None:
|
||||||
default:
|
default:
|
||||||
character.MDF.None += 实际加成;
|
character.MDF.SetAllValue(实际加成, false);
|
||||||
character.MDF.Starmark += 实际加成;
|
|
||||||
character.MDF.PurityNatural += 实际加成;
|
|
||||||
character.MDF.PurityContemporary += 实际加成;
|
|
||||||
character.MDF.Bright += 实际加成;
|
|
||||||
character.MDF.Shadow += 实际加成;
|
|
||||||
character.MDF.Element += 实际加成;
|
|
||||||
character.MDF.Fleabane += 实际加成;
|
|
||||||
character.MDF.Particle += 实际加成;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -88,20 +80,20 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
break;
|
break;
|
||||||
case MagicType.None:
|
case MagicType.None:
|
||||||
default:
|
default:
|
||||||
character.MDF.None -= 实际加成;
|
character.MDF.SetAllValue(-实际加成, false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExMDF(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExMDF(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("mdfType", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("mdfType", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && int.TryParse(skill.OtherArgs[key].ToString(), out int mdfType))
|
if (key.Length > 0 && int.TryParse(Values[key].ToString(), out int mdfType))
|
||||||
{
|
{
|
||||||
if (Enum.IsDefined(typeof(MagicType), mdfType))
|
if (Enum.IsDefined(typeof(MagicType), mdfType))
|
||||||
{
|
{
|
||||||
@ -112,8 +104,8 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
魔法类型 = MagicType.None;
|
魔法类型 = MagicType.None;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("mdfvalue", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
key = Values.Keys.FirstOrDefault(s => s.Equals("mdfvalue", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double mdfValue))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double mdfValue))
|
||||||
{
|
{
|
||||||
实际加成 = mdfValue;
|
实际加成 = mdfValue;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExMR : Effect
|
public class ExMR : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExMR -= 实际加成;
|
character.ExMR -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExMR(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExMR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exmr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exmr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exMR))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exMR))
|
||||||
{
|
{
|
||||||
实际加成 = exMR;
|
实际加成 = exMR;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExMaxHP : Effect
|
public class ExMaxHP : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExHP2 -= 实际加成;
|
character.ExHP2 -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExMaxHP(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExMaxHP(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exhp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exhp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exHP))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exHP))
|
||||||
{
|
{
|
||||||
实际加成 = exHP;
|
实际加成 = exHP;
|
||||||
}
|
}
|
||||||
|
45
Library/Effects/OpenEffects/ExMaxHP2.cs
Normal file
45
Library/Effects/OpenEffects/ExMaxHP2.cs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
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,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExMaxMP : Effect
|
public class ExMaxMP : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExMP2 -= 实际加成;
|
character.ExMP2 -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExMaxMP(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExMaxMP(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exMP))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exMP))
|
||||||
{
|
{
|
||||||
实际加成 = exMP;
|
实际加成 = exMP;
|
||||||
}
|
}
|
||||||
|
45
Library/Effects/OpenEffects/ExMaxMP2.cs
Normal file
45
Library/Effects/OpenEffects/ExMaxMP2.cs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
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,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExPDR : Effect
|
public class ExPDR : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExPDR -= 实际加成;
|
character.ExPDR -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExPDR(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExPDR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("expdr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("expdr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exPDR))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exPDR))
|
||||||
{
|
{
|
||||||
实际加成 = exPDR;
|
实际加成 = exPDR;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExSPD : Effect
|
public class ExSPD : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.ExSPD -= 实际加成;
|
character.ExSPD -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExSPD(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExSPD(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exspd", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exspd", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exSPD))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exSPD))
|
||||||
{
|
{
|
||||||
实际加成 = exSPD;
|
实际加成 = exSPD;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class ExSTR : Effect
|
public class ExSTR : Effect
|
||||||
{
|
{
|
||||||
@ -16,23 +16,23 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
{
|
{
|
||||||
character.ExDEF2 += 实际加成;
|
character.ExSTR += 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
public override void OnEffectLost(Character character)
|
||||||
{
|
{
|
||||||
character.ExDEF2 -= 实际加成;
|
character.ExSTR -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExSTR(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public ExSTR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exstr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exstr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exSTR))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exSTR))
|
||||||
{
|
{
|
||||||
实际加成 = exSTR;
|
实际加成 = exSTR;
|
||||||
}
|
}
|
||||||
|
45
Library/Effects/OpenEffects/ExSTR2.cs
Normal file
45
Library/Effects/OpenEffects/ExSTR2.cs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
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,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class MagicalPenetration : Effect
|
public class MagicalPenetration : Effect
|
||||||
{
|
{
|
||||||
@ -24,17 +24,17 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.MagicalPenetration -= 实际加成;
|
character.MagicalPenetration -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MagicalPenetration(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public MagicalPenetration(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exmpt", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exMP))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exMPT))
|
||||||
{
|
{
|
||||||
实际加成 = exMP;
|
实际加成 = exMPT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class NormalAttackHardTimeReduce : Effect
|
public class NormalAttackHardTimeReduce : Effect
|
||||||
{
|
{
|
||||||
@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.NormalAttack.HardnessTime += 实际硬直时间减少;
|
character.NormalAttack.HardnessTime += 实际硬直时间减少;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NormalAttackHardTimeReduce(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public NormalAttackHardTimeReduce(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("nahtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("nahtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double nahtr))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double nahtr))
|
||||||
{
|
{
|
||||||
实际硬直时间减少 = nahtr;
|
实际硬直时间减少 = nahtr;
|
||||||
}
|
}
|
||||||
|
42
Library/Effects/OpenEffects/NormalAttackHardTimeReduce2.cs
Normal file
42
Library/Effects/OpenEffects/NormalAttackHardTimeReduce2.cs
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
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,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class PhysicalPenetration : Effect
|
public class PhysicalPenetration : Effect
|
||||||
{
|
{
|
||||||
@ -24,17 +24,17 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
character.PhysicalPenetration -= 实际加成;
|
character.PhysicalPenetration -= 实际加成;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PhysicalPenetration(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public PhysicalPenetration(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("expp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("exppt", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exPP))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exPPT))
|
||||||
{
|
{
|
||||||
实际加成 = exPP;
|
实际加成 = exPPT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.OpenEffects
|
namespace Milimoe.FunGame.Testing.Effects.OpenEffects
|
||||||
{
|
{
|
||||||
public class SkillHardTimeReduce : Effect
|
public class SkillHardTimeReduce : Effect
|
||||||
{
|
{
|
||||||
@ -40,15 +40,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public SkillHardTimeReduce(Skill skill, Character? source = null, Item? item = null) : base(skill)
|
public SkillHardTimeReduce(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)
|
||||||
{
|
{
|
||||||
GamingQueue = skill.GamingQueue;
|
GamingQueue = skill.GamingQueue;
|
||||||
Source = source;
|
Source = source;
|
||||||
Item = item;
|
Item = item;
|
||||||
if (skill.OtherArgs.Count > 0)
|
if (Values.Count > 0)
|
||||||
{
|
{
|
||||||
string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("shtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
string key = Values.Keys.FirstOrDefault(s => s.Equals("shtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
|
||||||
if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double shtr))
|
if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double shtr))
|
||||||
{
|
{
|
||||||
实际硬直时间减少 = shtr;
|
实际硬直时间减少 = shtr;
|
||||||
}
|
}
|
||||||
|
58
Library/Effects/OpenEffects/SkillHardTimeReduce2.cs
Normal file
58
Library/Effects/OpenEffects/SkillHardTimeReduce2.cs
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
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,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects
|
namespace Milimoe.FunGame.Testing.Effects.SkillEffects
|
||||||
{
|
{
|
||||||
public class 眩晕 : Effect
|
public class 眩晕 : Effect
|
||||||
{
|
{
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Effects
|
namespace Milimoe.FunGame.Testing.Effects.SkillEffects
|
||||||
{
|
{
|
||||||
public class 累积之压标记 : Effect
|
public class 累积之压标记 : Effect
|
||||||
{
|
{
|
@ -30,4 +30,9 @@
|
|||||||
<Folder Include="Items\Shoes\" />
|
<Folder Include="Items\Shoes\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\OshimaGameModule\OshimaCore\OshimaCore.csproj" />
|
||||||
|
<ProjectReference Include="..\..\OshimaGameModule\OshimaModules\OshimaModules.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
using Milimoe.FunGame.Testing.Skills;
|
using Milimoe.FunGame.Testing.Skills;
|
||||||
using Milimoe.FunGame.Testing.ItemEffects;
|
using Milimoe.FunGame.Testing.Effects.ItemEffects;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Items
|
namespace Milimoe.FunGame.Testing.Items
|
||||||
{
|
{
|
||||||
@ -11,7 +11,7 @@ namespace Milimoe.FunGame.Testing.Items
|
|||||||
public override string Name => "攻击之爪 +10";
|
public override string Name => "攻击之爪 +10";
|
||||||
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
|
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
|
||||||
|
|
||||||
public 攻击之爪10(Character? character = null) : base(ItemType.Accessory, slot: EquipSlotType.Accessory)
|
public 攻击之爪10(Character? character = null) : base(ItemType.Accessory)
|
||||||
{
|
{
|
||||||
Skills.Passives.Add(new 攻击之爪技能(character, this, 10));
|
Skills.Passives.Add(new 攻击之爪技能(character, this, 10));
|
||||||
}
|
}
|
||||||
@ -23,7 +23,7 @@ namespace Milimoe.FunGame.Testing.Items
|
|||||||
public override string Name => "攻击之爪 +30";
|
public override string Name => "攻击之爪 +30";
|
||||||
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
|
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
|
||||||
|
|
||||||
public 攻击之爪30(Character? character = null) : base(ItemType.Accessory, slot: EquipSlotType.Accessory)
|
public 攻击之爪30(Character? character = null) : base(ItemType.Accessory)
|
||||||
{
|
{
|
||||||
Skills.Passives.Add(new 攻击之爪技能(character, this, 30));
|
Skills.Passives.Add(new 攻击之爪技能(character, this, 30));
|
||||||
}
|
}
|
||||||
@ -35,7 +35,7 @@ namespace Milimoe.FunGame.Testing.Items
|
|||||||
public override string Name => "攻击之爪 +50";
|
public override string Name => "攻击之爪 +50";
|
||||||
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
|
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
|
||||||
|
|
||||||
public 攻击之爪50(Character? character = null) : base(ItemType.Accessory, slot: EquipSlotType.Accessory)
|
public 攻击之爪50(Character? character = null) : base(ItemType.Accessory)
|
||||||
{
|
{
|
||||||
Skills.Passives.Add(new 攻击之爪技能(character, this, 50));
|
Skills.Passives.Add(new 攻击之爪技能(character, this, 50));
|
||||||
}
|
}
|
||||||
@ -46,7 +46,6 @@ namespace Milimoe.FunGame.Testing.Items
|
|||||||
public override long Id => (long)ItemPassiveID.攻击之爪;
|
public override long Id => (long)ItemPassiveID.攻击之爪;
|
||||||
public override string Name => "攻击之爪";
|
public override string Name => "攻击之爪";
|
||||||
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
|
||||||
public Item? Item { get; }
|
|
||||||
|
|
||||||
public 攻击之爪技能(Character? character = null, Item? item = null, double exATK = 0) : base(SkillType.Passive, character)
|
public 攻击之爪技能(Character? character = null, Item? item = null, double exATK = 0) : base(SkillType.Passive, character)
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
using Milimoe.FunGame.Testing.ItemEffects;
|
using Milimoe.FunGame.Testing.Effects.ItemEffects;
|
||||||
|
|
||||||
namespace FunGame.Testing.Items
|
namespace FunGame.Testing.Items
|
||||||
{
|
{
|
||||||
@ -10,7 +10,7 @@ namespace FunGame.Testing.Items
|
|||||||
public override string Name => "独奏弓";
|
public override string Name => "独奏弓";
|
||||||
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
|
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
|
||||||
|
|
||||||
public 独奏弓(Character? character = null) : base(ItemType.Weapon, slot: EquipSlotType.Weapon)
|
public 独奏弓(Character? character = null) : base(ItemType.Weapon)
|
||||||
{
|
{
|
||||||
WeaponType = WeaponType.Bow;
|
WeaponType = WeaponType.Bow;
|
||||||
Skills.Passives.Add(new 独奏弓技能(character, this));
|
Skills.Passives.Add(new 独奏弓技能(character, this));
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
using Milimoe.FunGame.Testing.Tests;
|
using Oshima.Core.Utils;
|
||||||
|
using Oshima.FunGame.OshimaModules;
|
||||||
|
|
||||||
_ = new SkillJSONTest();
|
CharacterModule cm = new();
|
||||||
|
cm.Load();
|
||||||
|
SkillModule sm = new();
|
||||||
|
sm.Load();
|
||||||
|
ItemModule im = new();
|
||||||
|
im.Load();
|
||||||
|
|
||||||
|
FunGameSimulation.InitCharacter();
|
||||||
|
FunGameSimulation.StartGame(true, true);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
using Milimoe.FunGame.Testing.Effects;
|
using Milimoe.FunGame.Testing.Effects.SkillEffects;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
namespace Milimoe.FunGame.Testing.Skills
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
using Milimoe.FunGame.Testing.Effects;
|
using Milimoe.FunGame.Testing.Effects.SkillEffects;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
namespace Milimoe.FunGame.Testing.Skills
|
||||||
{
|
{
|
||||||
|
@ -24,10 +24,10 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
{
|
{
|
||||||
public override long Id => Skill.Id;
|
public override long Id => Skill.Id;
|
||||||
public override string Name => Skill.Name;
|
public override string Name => Skill.Name;
|
||||||
public override string Description => $"每时间提升 5.5% 所有伤害,无上限,但受到伤害时效果清零。" + (累计伤害 > 0 ? $"(当前总提升:{累计伤害 * 100:0.##}%)" : "");
|
public override string Description => $"每时间提升 {伤害提升 * 100:0.##}% 所有伤害,无上限,但受到伤害时效果清零。" + (累计伤害 > 0 ? $"(当前总提升:{累计伤害 * 100:0.##}%)" : "");
|
||||||
public override bool TargetSelf => true;
|
public override bool TargetSelf => true;
|
||||||
|
|
||||||
private readonly double 伤害提升 = 0.055;
|
private readonly double 伤害提升 = 0.04;
|
||||||
private double 累计伤害 = 0;
|
private double 累计伤害 = 0;
|
||||||
|
|
||||||
public override bool AlterActualDamageAfterCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
public override bool AlterActualDamageAfterCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
|
||||||
|
@ -27,7 +27,7 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
public override bool Durative => true;
|
public override bool Durative => true;
|
||||||
public override double Duration => 16 + 释放时的能量值 * 0.03;
|
public override double Duration => 16 + 释放时的能量值 * 0.03;
|
||||||
|
|
||||||
private double 系数 => 0.3 + 0.03 * (Level - 1);
|
private double 系数 => 0.2 + 0.015 * (Level - 1);
|
||||||
private double 敏捷提升 => 系数 * Skill.Character?.BaseAGI ?? 0;
|
private double 敏捷提升 => 系数 * Skill.Character?.BaseAGI ?? 0;
|
||||||
private double 实际敏捷提升 = 0;
|
private double 实际敏捷提升 = 0;
|
||||||
private double 释放时的能量值 = 0;
|
private double 释放时的能量值 = 0;
|
||||||
|
@ -22,30 +22,34 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
{
|
{
|
||||||
public override long Id => Skill.Id;
|
public override long Id => Skill.Id;
|
||||||
public override string Name => Skill.Name;
|
public override string Name => Skill.Name;
|
||||||
public override string Description => $"30 时间内暴击率提升 {暴击率提升 * 100:0.##}%,暴击伤害再提升 {暴击伤害提升 * 100:0.##}%。";
|
public override string Description => $"30 时间内暴击率提升 {暴击率提升 * 100:0.##}%,暴击伤害提升 {暴击伤害提升 * 100:0.##}%,物理穿透提升 {物理穿透提升 * 100:0.##}%。";
|
||||||
public override bool TargetSelf => true;
|
public override bool TargetSelf => true;
|
||||||
public override bool Durative => true;
|
public override bool Durative => true;
|
||||||
public override double Duration => 30;
|
public override double Duration => 30;
|
||||||
|
|
||||||
private double 暴击率提升 => 0.2 + 0.03 * (Level - 1);
|
private double 暴击率提升 => 0.2 + 0.03 * (Level - 1);
|
||||||
private double 暴击伤害提升 => 0.8 + 0.04 * (Level - 1);
|
private double 暴击伤害提升 => 0.8 + 0.04 * (Level - 1);
|
||||||
|
private double 物理穿透提升 => 0.3;
|
||||||
private double 实际暴击率提升 = 0;
|
private double 实际暴击率提升 = 0;
|
||||||
private double 实际暴击伤害提升 = 0;
|
private double 实际暴击伤害提升 = 0;
|
||||||
|
private double 实际物理穿透提升 = 0;
|
||||||
|
|
||||||
public override void OnEffectGained(Character character)
|
public override void OnEffectGained(Character character)
|
||||||
{
|
{
|
||||||
实际暴击率提升 = 暴击率提升;
|
实际暴击率提升 = 暴击率提升;
|
||||||
实际暴击伤害提升 = 暴击伤害提升;
|
实际暴击伤害提升 = 暴击伤害提升;
|
||||||
|
实际物理穿透提升 = 物理穿透提升;
|
||||||
character.ExCritRate += 实际暴击率提升;
|
character.ExCritRate += 实际暴击率提升;
|
||||||
WriteLine($"[ {character} ] 的暴击率提升了 [ {实际暴击率提升 * 100:0.##}% ] !");
|
|
||||||
character.ExCritDMG += 实际暴击伤害提升;
|
character.ExCritDMG += 实际暴击伤害提升;
|
||||||
WriteLine($"[ {character} ] 的暴击伤害提升了 [ {实际暴击伤害提升 * 100:0.##}% ] !");
|
character.PhysicalPenetration += 实际物理穿透提升;
|
||||||
|
WriteLine($"[ {character} ] 的暴击率提升了 [ {实际暴击率提升 * 100:0.##}% ],暴击伤害提升了 [ {实际暴击伤害提升 * 100:0.##}% ],物理穿透提升了 [ {实际物理穿透提升 * 100:0.##}% ] !!");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
public override void OnEffectLost(Character character)
|
||||||
{
|
{
|
||||||
character.ExCritRate -= 实际暴击率提升;
|
character.ExCritRate -= 实际暴击率提升;
|
||||||
character.ExCritDMG -= 实际暴击伤害提升;
|
character.ExCritDMG -= 实际暴击伤害提升;
|
||||||
|
character.PhysicalPenetration -= 实际物理穿透提升;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> enemys, List<Character> teammates, Dictionary<string, object> others)
|
public override void OnSkillCasted(Character caster, List<Character> enemys, List<Character> teammates, Dictionary<string, object> others)
|
||||||
@ -55,6 +59,7 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
{
|
{
|
||||||
实际暴击率提升 = 0;
|
实际暴击率提升 = 0;
|
||||||
实际暴击伤害提升 = 0;
|
实际暴击伤害提升 = 0;
|
||||||
|
实际物理穿透提升 = 0;
|
||||||
caster.Effects.Add(this);
|
caster.Effects.Add(this);
|
||||||
OnEffectGained(caster);
|
OnEffectGained(caster);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
|
using Milimoe.FunGame.Core.Interface.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
namespace Milimoe.FunGame.Testing.Skills
|
||||||
@ -24,12 +25,60 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
{
|
{
|
||||||
public override long Id => Skill.Id;
|
public override long Id => Skill.Id;
|
||||||
public override string Name => Skill.Name;
|
public override string Name => Skill.Name;
|
||||||
public override string Description => $"当生命值低于 30% 时,智力转化为力量;当生命值高于或等于 30% 时,力量转化为智力。" +
|
public override string Description => $"当生命值低于 30% 时,智力转化为力量;当生命值高于或等于 30% 时,力量转化为智力。力量模式下,造成伤害必定暴击;智力模式下,获得 30% 闪避率和 25% 魔法抗性。" +
|
||||||
(Skill.Character != null ? "(当前模式:" + CharacterSet.GetPrimaryAttributeName(Skill.Character.PrimaryAttribute) + ")" : "");
|
(Skill.Character != null ? "(当前模式:" + CharacterSet.GetPrimaryAttributeName(Skill.Character.PrimaryAttribute) + ")" : "");
|
||||||
public override bool TargetSelf => true;
|
public override bool TargetSelf => true;
|
||||||
|
|
||||||
private double 交换前的额外智力 = 0;
|
private double 交换前的额外智力 = 0;
|
||||||
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)
|
public override void OnAttributeChanged(Character character)
|
||||||
{
|
{
|
||||||
@ -48,6 +97,12 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool BeforeCriticalCheck(Character character, ref double throwingBonus)
|
||||||
|
{
|
||||||
|
throwingBonus += 100;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public override void OnTimeElapsed(Character character, double elapsed)
|
public override void OnTimeElapsed(Character character, double elapsed)
|
||||||
{
|
{
|
||||||
if (Skill.Character != null)
|
if (Skill.Character != null)
|
||||||
@ -67,6 +122,10 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
c.ExINT = -c.BaseINT;
|
c.ExINT = -c.BaseINT;
|
||||||
c.ExSTR = 交换前的额外智力 + c.BaseINT + 交换前的额外力量;
|
c.ExSTR = 交换前的额外智力 + c.BaseINT + 交换前的额外力量;
|
||||||
c.Recovery(pastHP, pastMP, pastMaxHP, pastMaxMP);
|
c.Recovery(pastHP, pastMP, pastMaxHP, pastMaxMP);
|
||||||
|
if (已经加过)
|
||||||
|
{
|
||||||
|
ResetEffect(character, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -83,6 +142,10 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
c.ExINT = 交换前的额外力量 + c.BaseSTR + 交换前的额外智力;
|
c.ExINT = 交换前的额外力量 + c.BaseSTR + 交换前的额外智力;
|
||||||
c.ExSTR = -c.BaseSTR;
|
c.ExSTR = -c.BaseSTR;
|
||||||
c.Recovery(pastHP, pastMP, pastMaxHP, pastMaxMP);
|
c.Recovery(pastHP, pastMP, pastMaxHP, pastMaxMP);
|
||||||
|
if (!已经加过)
|
||||||
|
{
|
||||||
|
ResetEffect(character, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
public override string Name => Skill.Name;
|
public override string Name => Skill.Name;
|
||||||
public override string Description => $"META马专属被动:力量+5,力量成长+0.5;在受到伤害时,获得的能量提升50%,每回合开始还能获得额外的 [ {EP:0.##} ] 能量值。";
|
public override string Description => $"META马专属被动:力量+5,力量成长+0.5;在受到伤害时,获得的能量提升50%,每回合开始还能获得额外的 [ {EP:0.##} ] 能量值。";
|
||||||
public override bool TargetSelf => true;
|
public override bool TargetSelf => true;
|
||||||
public static double EP => 10;
|
public static double EP => 7;
|
||||||
|
|
||||||
public override void AlterEPAfterGetDamage(Character character, ref double baseEP)
|
public override void AlterEPAfterGetDamage(Character character, ref double baseEP)
|
||||||
{
|
{
|
||||||
|
@ -22,12 +22,12 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
{
|
{
|
||||||
public override long Id => Skill.Id;
|
public override long Id => Skill.Id;
|
||||||
public override string Name => "力量爆发";
|
public override string Name => "力量爆发";
|
||||||
public override string Description => $"获得 150% 力量 [ {攻击力加成:0.##} ] 的攻击力加成,但每次攻击都会损失 9% 当前生命值 [ {当前生命值:0.##} ],持续 {Duration:0.##} 时间。";
|
public override string Description => $"获得 135% 力量 [ {攻击力加成:0.##} ] 的攻击力加成,但每次攻击都会损失 9% 当前生命值 [ {当前生命值:0.##} ],持续 {Duration:0.##} 时间。";
|
||||||
public override bool TargetSelf => true;
|
public override bool TargetSelf => true;
|
||||||
public override bool Durative => true;
|
public override bool Durative => true;
|
||||||
public override double Duration => 10 + 1 * (Level - 1);
|
public override double Duration => 10 + 1 * (Level - 1);
|
||||||
|
|
||||||
private double 攻击力加成 => Skill.Character?.STR * 1.5 ?? 0;
|
private double 攻击力加成 => Skill.Character?.STR * 1.35 ?? 0;
|
||||||
private double 当前生命值 => Skill.Character?.HP * 0.09 ?? 0;
|
private double 当前生命值 => Skill.Character?.HP * 0.09 ?? 0;
|
||||||
private double 实际攻击力加成 = 0;
|
private double 实际攻击力加成 = 0;
|
||||||
|
|
||||||
|
@ -22,22 +22,35 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
{
|
{
|
||||||
public override long Id => Skill.Id;
|
public override long Id => Skill.Id;
|
||||||
public override string Name => Skill.Name;
|
public override string Name => Skill.Name;
|
||||||
public override string Description => $"{Duration:0.##} 时间内,普通攻击转为魔法伤害,且硬直时间减少50%,并基于 {智力系数 * 100:0.##}% 智力 [ {智力加成:0.##} ] 强化普通攻击伤害。";
|
public override string Description => $"{Duration:0.##} 时间内,提升自身 35% 物理伤害减免和魔法抗性,普通攻击转为魔法伤害,且硬直时间减少 30%,并基于 {智力系数 * 100:0.##}% 智力 [ {智力加成:0.##} ] 强化普通攻击伤害。";
|
||||||
public override bool TargetSelf => true;
|
public override bool TargetSelf => true;
|
||||||
public override bool Durative => true;
|
public override bool Durative => true;
|
||||||
public override double Duration => 40;
|
public override double Duration => 40;
|
||||||
|
|
||||||
private double 智力系数 => 1.4 + 0.4 * (Level - 1);
|
private double 智力系数 => 1.4 + 0.4 * (Level - 1);
|
||||||
private double 智力加成 => 智力系数 * Skill.Character?.INT ?? 0;
|
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)
|
public override void OnEffectGained(Character character)
|
||||||
{
|
{
|
||||||
character.NormalAttack.SetMagicType(true, character.MagicType);
|
character.NormalAttack.SetMagicType(true, character.MagicType);
|
||||||
|
实际物理伤害减免 = 物理伤害减免;
|
||||||
|
实际魔法抗性 = 魔法抗性;
|
||||||
|
character.ExPDR += 实际物理伤害减免;
|
||||||
|
character.MDF.SetAllValue(实际魔法抗性, false);
|
||||||
|
WriteLine($"[ {character} ] 提升了 {实际物理伤害减免 * 100:0.##}% 物理伤害减免,{实际魔法抗性 * 100:0.##}% 魔法抗性!!");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnEffectLost(Character character)
|
public override void OnEffectLost(Character character)
|
||||||
{
|
{
|
||||||
character.NormalAttack.SetMagicType(false, character.MagicType);
|
character.NormalAttack.SetMagicType(false, character.MagicType);
|
||||||
|
实际物理伤害减免 = 0;
|
||||||
|
实际魔法抗性 = 0;
|
||||||
|
character.ExPDR -= 实际物理伤害减免;
|
||||||
|
character.MDF.SetAllValue(-实际魔法抗性, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType)
|
public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType)
|
||||||
@ -50,7 +63,7 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
|
|
||||||
public override void AlterHardnessTimeAfterNormalAttack(Character character, ref double baseHardnessTime, ref bool isCheckProtected)
|
public override void AlterHardnessTimeAfterNormalAttack(Character character, ref double baseHardnessTime, ref bool isCheckProtected)
|
||||||
{
|
{
|
||||||
baseHardnessTime *= 0.5;
|
baseHardnessTime *= 0.3;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> enemys, List<Character> teammates, Dictionary<string, object> others)
|
public override void OnSkillCasted(Character caster, List<Character> enemys, List<Character> teammates, Dictionary<string, object> others)
|
||||||
|
@ -11,6 +11,7 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
public override double EPCost => 100;
|
public override double EPCost => 100;
|
||||||
public override double CD => 55 - 3 * (Level - 1);
|
public override double CD => 55 - 3 * (Level - 1);
|
||||||
public override double HardnessTime { get; set; } = 25;
|
public override double HardnessTime { get; set; } = 25;
|
||||||
|
public override string Slogan => "灭!!!!";
|
||||||
|
|
||||||
public 能量毁灭(Character? character = null) : base(SkillType.SuperSkill, character)
|
public 能量毁灭(Character? character = null) : base(SkillType.SuperSkill, character)
|
||||||
{
|
{
|
||||||
@ -27,9 +28,9 @@ namespace Milimoe.FunGame.Testing.Skills
|
|||||||
public override bool TargetSelf => false;
|
public override bool TargetSelf => false;
|
||||||
public override double TargetRange => 999;
|
public override double TargetRange => 999;
|
||||||
|
|
||||||
private double 智力系数 => 0.55 * Level;
|
private double 智力系数 => 0.25 * Level;
|
||||||
private double 智力伤害 => 智力系数 * Skill.Character?.INT ?? 0;
|
private double 智力伤害 => 智力系数 * Skill.Character?.INT ?? 0;
|
||||||
private double 能量系数 => 0.75 * Level;
|
private double 能量系数 => 1.05 * Level;
|
||||||
|
|
||||||
public override void OnSkillCasted(Character caster, List<Character> enemys, List<Character> teammates, Dictionary<string, object> others)
|
public override void OnSkillCasted(Character caster, List<Character> enemys, List<Character> teammates, Dictionary<string, object> others)
|
||||||
{
|
{
|
||||||
|
@ -3,6 +3,32 @@
|
|||||||
public enum MagicID : long
|
public enum MagicID : long
|
||||||
{
|
{
|
||||||
冰霜攻击 = 1001,
|
冰霜攻击 = 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
|
public enum SkillID : long
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Milimoe.FunGame.Core.Entity;
|
using Milimoe.FunGame.Core.Entity;
|
||||||
using Milimoe.FunGame.Core.Library.Constant;
|
using Milimoe.FunGame.Core.Library.Constant;
|
||||||
using Milimoe.FunGame.Testing.Effects;
|
using Milimoe.FunGame.Testing.Effects.SkillEffects;
|
||||||
|
|
||||||
namespace Milimoe.FunGame.Testing.Skills
|
namespace Milimoe.FunGame.Testing.Skills
|
||||||
{
|
{
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
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.OpenEffects;
|
|
||||||
using Milimoe.FunGame.Testing.Items;
|
using Milimoe.FunGame.Testing.Items;
|
||||||
using Milimoe.FunGame.Testing.Skills;
|
using Milimoe.FunGame.Testing.Skills;
|
||||||
|
using Milimoe.FunGame.Testing.Effects.OpenEffects;
|
||||||
|
|
||||||
namespace Addons
|
namespace Addons
|
||||||
{
|
{
|
||||||
@ -87,14 +87,14 @@ namespace Addons
|
|||||||
(long)PassiveID.敏捷之刃 => new 敏捷之刃(),
|
(long)PassiveID.敏捷之刃 => new 敏捷之刃(),
|
||||||
(long)PassiveID.弱者猎手 => new 弱者猎手(),
|
(long)PassiveID.弱者猎手 => new 弱者猎手(),
|
||||||
(long)ItemPassiveID.攻击之爪 => new 攻击之爪技能(),
|
(long)ItemPassiveID.攻击之爪 => new 攻击之爪技能(),
|
||||||
_ => new OpenSkill(id, name)
|
_ => new OpenSkill(id, name, args)
|
||||||
};
|
};
|
||||||
|
|
||||||
if (skill is OpenSkill && args.TryGetValue("others", out object? value) && value is Dictionary<string, object> dict)
|
if (skill is OpenSkill && args.TryGetValue("values", out object? value) && value is Dictionary<string, object> dict)
|
||||||
{
|
{
|
||||||
foreach (string key in dict.Keys)
|
foreach (string key in dict.Keys)
|
||||||
{
|
{
|
||||||
skill.OtherArgs[key] = dict[key];
|
skill.Values[key] = dict[key];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,32 +106,32 @@ namespace Addons
|
|||||||
{
|
{
|
||||||
return (id, name, args) =>
|
return (id, name, args) =>
|
||||||
{
|
{
|
||||||
if (args.TryGetValue("skill", out object? value) && value is Skill skill)
|
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 (EffectID)id switch
|
||||||
{
|
{
|
||||||
EffectID.ExATK => new ExATK(skill),
|
EffectID.ExATK => new ExATK(skill, dict),
|
||||||
EffectID.ExDEF => new ExDEF(skill),
|
EffectID.ExDEF => new ExDEF(skill, dict),
|
||||||
EffectID.ExSTR => new ExSTR(skill),
|
EffectID.ExSTR => new ExSTR(skill, dict),
|
||||||
EffectID.ExAGI => new ExAGI(skill),
|
EffectID.ExAGI => new ExAGI(skill, dict),
|
||||||
EffectID.ExINT => new ExINT(skill),
|
EffectID.ExINT => new ExINT(skill, dict),
|
||||||
EffectID.SkillHardTimeReduce => new SkillHardTimeReduce(skill),
|
EffectID.SkillHardTimeReduce => new SkillHardTimeReduce(skill, dict),
|
||||||
EffectID.NormalAttackHardTimeReduce => new NormalAttackHardTimeReduce(skill),
|
EffectID.NormalAttackHardTimeReduce => new NormalAttackHardTimeReduce(skill, dict),
|
||||||
EffectID.AccelerationCoefficient => new AccelerationCoefficient(skill),
|
EffectID.AccelerationCoefficient => new AccelerationCoefficient(skill, dict),
|
||||||
EffectID.ExSPD => new ExSPD(skill),
|
EffectID.ExSPD => new ExSPD(skill, dict),
|
||||||
EffectID.ExActionCoefficient => new ExActionCoefficient(skill),
|
EffectID.ExActionCoefficient => new ExActionCoefficient(skill, dict),
|
||||||
EffectID.ExCDR => new ExCDR(skill),
|
EffectID.ExCDR => new ExCDR(skill, dict),
|
||||||
EffectID.ExMaxHP => new ExMaxHP(skill),
|
EffectID.ExMaxHP => new ExMaxHP(skill, dict),
|
||||||
EffectID.ExMaxMP => new ExMaxMP(skill),
|
EffectID.ExMaxMP => new ExMaxMP(skill, dict),
|
||||||
EffectID.ExCritRate => new ExCritRate(skill),
|
EffectID.ExCritRate => new ExCritRate(skill, dict),
|
||||||
EffectID.ExCritDMG => new ExCritDMG(skill),
|
EffectID.ExCritDMG => new ExCritDMG(skill, dict),
|
||||||
EffectID.ExEvadeRate => new ExEvadeRate(skill),
|
EffectID.ExEvadeRate => new ExEvadeRate(skill, dict),
|
||||||
EffectID.PhysicalPenetration => new PhysicalPenetration(skill),
|
EffectID.PhysicalPenetration => new PhysicalPenetration(skill, dict),
|
||||||
EffectID.MagicalPenetration => new MagicalPenetration(skill),
|
EffectID.MagicalPenetration => new MagicalPenetration(skill, dict),
|
||||||
EffectID.ExPDR => new ExPDR(skill),
|
EffectID.ExPDR => new ExPDR(skill, dict),
|
||||||
EffectID.ExMDF => new ExMDF(skill),
|
EffectID.ExMDF => new ExMDF(skill, dict),
|
||||||
EffectID.ExHR => new ExHR(skill),
|
EffectID.ExHR => new ExHR(skill, dict),
|
||||||
EffectID.ExMR => new ExMR(skill),
|
EffectID.ExMR => new ExMR(skill, dict),
|
||||||
_ => null
|
_ => null
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -295,7 +295,7 @@ namespace Milimoe.FunGame.Testing.Tests
|
|||||||
if (PrintOut) characters.ForEach(c => Console.WriteLine(c.GetInfo()));
|
if (PrintOut) characters.ForEach(c => Console.WriteLine(c.GetInfo()));
|
||||||
|
|
||||||
// 创建顺序表并排序
|
// 创建顺序表并排序
|
||||||
ActionQueue actionQueue = new(characters, WriteLine);
|
ActionQueue actionQueue = new(characters, false, WriteLine);
|
||||||
if (PrintOut) Console.WriteLine();
|
if (PrintOut) Console.WriteLine();
|
||||||
|
|
||||||
// 显示初始顺序表
|
// 显示初始顺序表
|
||||||
|
Loading…
x
Reference in New Issue
Block a user