diff --git a/Desktop/Solutions/EntityCreator/EntityEditor.cs b/Desktop/Solutions/EntityCreator/EntityEditor.cs
index 5e3b10b..8713a28 100644
--- a/Desktop/Solutions/EntityCreator/EntityEditor.cs
+++ b/Desktop/Solutions/EntityCreator/EntityEditor.cs
@@ -363,27 +363,27 @@ namespace Milimoe.FunGame.Testing.Desktop.Solutions
private void 删除角色物品方法()
{
- Character? c = CharacterManager.LoadedCharacters.Values.Where(c => c.ToString() == 实际列表.Items[实际列表.SelectedIndex].ToString()).FirstOrDefault();
- if (c != null)
- {
- if (c.Items.Count != 0 || c.EquipSlot.Any())
- {
- ShowList l = new();
- l.AddListItem(c.Items.Select(s => s.GetIdName()).ToArray());
- l.ShowDialog();
- string selected = l.SelectItem;
- Item? i = c.Items.Where(i => i.GetIdName() == selected).FirstOrDefault();
- if (i != null)
- {
- if (i.Equipable) c.UnEquip(c.EquipSlot.GetEquipItemToSlot(i));
- else c.Items.Remove(i);
- }
- }
- else
- {
- MessageBox.Show("物品列表为空!");
- }
- }
+ //Character? c = CharacterManager.LoadedCharacters.Values.Where(c => c.ToString() == 实际列表.Items[实际列表.SelectedIndex].ToString()).FirstOrDefault();
+ //if (c != null)
+ //{
+ // if (c.Items.Count != 0 || c.EquipSlot.Any())
+ // {
+ // ShowList l = new();
+ // l.AddListItem(c.Items.Select(s => s.GetIdName()).ToArray());
+ // l.ShowDialog();
+ // string selected = l.SelectItem;
+ // Item? i = c.Items.Where(i => i.GetIdName() == selected).FirstOrDefault();
+ // if (i != null)
+ // {
+ // if (i.Equipable) c.UnEquip(c.EquipSlot.GetEquipItemToSlot(i));
+ // else c.Items.Remove(i);
+ // }
+ // }
+ // else
+ // {
+ // MessageBox.Show("物品列表为空!");
+ // }
+ //}
}
private void 为角色添加技能_Click(object sender, EventArgs e)
diff --git a/Desktop/Solutions/EntityCreator/ShowDetail.cs b/Desktop/Solutions/EntityCreator/ShowDetail.cs
index 7ecacce..42ad383 100644
--- a/Desktop/Solutions/EntityCreator/ShowDetail.cs
+++ b/Desktop/Solutions/EntityCreator/ShowDetail.cs
@@ -145,30 +145,30 @@ namespace Milimoe.FunGame.Testing.Desktop.Solutions
private void 删物品_Click(object sender, EventArgs e)
{
- if (NowClick == 0 && BaseEntity is Character c)
- {
- if (c != null)
- {
- if (c.Items.Count != 0 || c.EquipSlot.Any())
- {
- ShowList l = new();
- l.AddListItem(c.Items.OrderBy(i => i.Id).Select(i => i.GetIdName()).ToArray());
- l.ShowDialog();
- string selected = l.SelectItem;
- Item? i = c.Items.Where(i => i.GetIdName() == selected).FirstOrDefault();
- if (i != null)
- {
- if (i.Equipable) c.UnEquip(c.EquipSlot.GetEquipItemToSlot(i));
- else c.Items.Remove(i);
- 详细内容.Text = c.GetInfo();
- }
- }
- else
- {
- MessageBox.Show("物品列表为空!");
- }
- }
- }
+ //if (NowClick == 0 && BaseEntity is Character c)
+ //{
+ // if (c != null)
+ // {
+ // if (c.Items.Count != 0 || c.EquipSlot.Any())
+ // {
+ // ShowList l = new();
+ // l.AddListItem(c.Items.OrderBy(i => i.Id).Select(i => i.GetIdName()).ToArray());
+ // l.ShowDialog();
+ // string selected = l.SelectItem;
+ // Item? i = c.Items.Where(i => i.GetIdName() == selected).FirstOrDefault();
+ // if (i != null)
+ // {
+ // if (i.Equipable) c.UnEquip(c.EquipSlot.GetEquipItemToSlot(i));
+ // else c.Items.Remove(i);
+ // 详细内容.Text = c.GetInfo();
+ // }
+ // }
+ // else
+ // {
+ // MessageBox.Show("物品列表为空!");
+ // }
+ // }
+ //}
}
private void 删技能_Click(object sender, EventArgs e)
diff --git a/FunGame.Testing.sln b/FunGame.Testing.sln
index 98180eb..db69ed8 100644
--- a/FunGame.Testing.sln
+++ b/FunGame.Testing.sln
@@ -15,6 +15,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunGame.Testing.Desktop", "
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunGame.Core", "..\FunGame.Core\FunGame.Core.csproj", "{94B564CD-7A1E-4B3C-AF78-23EBCD5D627E}"
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
GlobalSection(SolutionConfigurationPlatforms) = preSolution
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}.Release|Any CPU.ActiveCfg = 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
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Library/Effects/EffectID.cs b/Library/Effects/EffectID.cs
new file mode 100644
index 0000000..f589027
--- /dev/null
+++ b/Library/Effects/EffectID.cs
@@ -0,0 +1,163 @@
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
+{
+ public enum EffectID : long
+ {
+ ///
+ /// 数值攻击力,参数:exatk
+ ///
+ ExATK = 8001,
+
+ ///
+ /// 数值物理护甲,参数:exdef
+ ///
+ ExDEF = 8002,
+
+ ///
+ /// 数值力量,参数:exstr
+ ///
+ ExSTR = 8003,
+
+ ///
+ /// 数值敏捷,参数:exagi
+ ///
+ ExAGI = 8004,
+
+ ///
+ /// 数值智力,参数:exint
+ ///
+ ExINT = 8005,
+
+ ///
+ /// 数值技能硬直时间减少,参数:shtr
+ ///
+ SkillHardTimeReduce = 8006,
+
+ ///
+ /// 数值普攻硬直时间减少,参数:nahtr
+ ///
+ NormalAttackHardTimeReduce = 8007,
+
+ ///
+ /// 加速系数%,参数:exacc
+ ///
+ AccelerationCoefficient = 8008,
+
+ ///
+ /// 数值行动速度,参数:exspd
+ ///
+ ExSPD = 8009,
+
+ ///
+ /// 行动系数%,参考:exac
+ ///
+ ExActionCoefficient = 8010,
+
+ ///
+ /// 冷却缩减%,参数:excdr
+ ///
+ ExCDR = 8011,
+
+ ///
+ /// 数值生命值,参数:exhp
+ ///
+ ExMaxHP = 8012,
+
+ ///
+ /// 数值魔法值,参数:exmp
+ ///
+ ExMaxMP = 8013,
+
+ ///
+ /// 暴击率%,参数:excr
+ ///
+ ExCritRate = 8014,
+
+ ///
+ /// 暴击伤害%,参数:excrd
+ ///
+ ExCritDMG = 8015,
+
+ ///
+ /// 闪避率%,参数:exer
+ ///
+ ExEvadeRate = 8016,
+
+ ///
+ /// 物理穿透%,参数:exppt
+ ///
+ PhysicalPenetration = 8017,
+
+ ///
+ /// 魔法穿透%,参数:exmpt
+ ///
+ MagicalPenetration = 8018,
+
+ ///
+ /// 物理伤害减免%,参数:expdr
+ ///
+ ExPDR = 8019,
+
+ ///
+ /// 魔法抗性%
+ /// 参数:
+ /// 魔法类型(对应MagicType,0为所有):mdftype
+ /// 魔法抗性%:mdfvalue
+ ///
+ ExMDF = 8020,
+
+ ///
+ /// 数值生命回复,参数:exhr
+ ///
+ ExHR = 8021,
+
+ ///
+ /// 数值魔法回复,参数:exmr
+ ///
+ ExMR = 8022,
+
+ ///
+ /// 攻击力%,参数:exatk
+ ///
+ ExATK2 = 8023,
+
+ ///
+ /// 物理护甲%,参数:exdef
+ ///
+ ExDEF2 = 8024,
+
+ ///
+ /// 力量%,参数:exstr
+ ///
+ ExSTR2 = 8025,
+
+ ///
+ /// 敏捷%,参数:exagi
+ ///
+ ExAGI2 = 8026,
+
+ ///
+ /// 智力%,参数:exint
+ ///
+ ExINT2 = 8027,
+
+ ///
+ /// 技能硬直时间减少%,参数:shtr
+ ///
+ SkillHardTimeReduce2 = 8028,
+
+ ///
+ /// 普攻硬直时间减少%,参数:nahtr
+ ///
+ NormalAttackHardTimeReduce2 = 8029,
+
+ ///
+ /// 最大生命值%,参数:exhp
+ ///
+ ExMaxHP2 = 8030,
+
+ ///
+ /// 最大魔法值%,参数:exmp
+ ///
+ ExMaxMP2 = 8031,
+ }
+}
diff --git a/Library/Effects/ItemEffects/冷却缩减加成.cs b/Library/Effects/ItemEffects/冷却缩减加成.cs
index 18e822f..7521691 100644
--- a/Library/Effects/ItemEffects/冷却缩减加成.cs
+++ b/Library/Effects/ItemEffects/冷却缩减加成.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.ItemEffects
+namespace Milimoe.FunGame.Testing.Effects.ItemEffects
{
public class 冷却缩减加成 : Effect
{
diff --git a/Library/Effects/ItemEffects/技能硬直时间减少.cs b/Library/Effects/ItemEffects/技能硬直时间减少.cs
index 4c81131..1aad4e7 100644
--- a/Library/Effects/ItemEffects/技能硬直时间减少.cs
+++ b/Library/Effects/ItemEffects/技能硬直时间减少.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.ItemEffects
+namespace Milimoe.FunGame.Testing.Effects.ItemEffects
{
public class 技能硬直时间减少 : Effect
{
diff --git a/Library/Effects/ItemEffects/攻击力加成.cs b/Library/Effects/ItemEffects/攻击力加成.cs
index 8c72e55..bf7558a 100644
--- a/Library/Effects/ItemEffects/攻击力加成.cs
+++ b/Library/Effects/ItemEffects/攻击力加成.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.ItemEffects
+namespace Milimoe.FunGame.Testing.Effects.ItemEffects
{
public class 攻击力加成 : Effect
{
diff --git a/Library/Effects/ItemEffects/普攻硬直时间减少.cs b/Library/Effects/ItemEffects/普攻硬直时间减少.cs
index 95bdf74..c7b6a0a 100644
--- a/Library/Effects/ItemEffects/普攻硬直时间减少.cs
+++ b/Library/Effects/ItemEffects/普攻硬直时间减少.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.ItemEffects
+namespace Milimoe.FunGame.Testing.Effects.ItemEffects
{
public class 普攻硬直时间减少 : Effect
{
diff --git a/Library/Effects/ItemEffects/物理护甲加成.cs b/Library/Effects/ItemEffects/物理护甲加成.cs
index 6571c49..62d6f69 100644
--- a/Library/Effects/ItemEffects/物理护甲加成.cs
+++ b/Library/Effects/ItemEffects/物理护甲加成.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.ItemEffects
+namespace Milimoe.FunGame.Testing.Effects.ItemEffects
{
public class 物理护甲加成 : Effect
{
diff --git a/Library/Effects/OpenEffects/AccelerationCoefficient.cs b/Library/Effects/OpenEffects/AccelerationCoefficient.cs
index 7e481e1..4d1ca5f 100644
--- a/Library/Effects/OpenEffects/AccelerationCoefficient.cs
+++ b/Library/Effects/OpenEffects/AccelerationCoefficient.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class AccelerationCoefficient : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.AccelerationCoefficient -= 实际加成;
}
- public AccelerationCoefficient(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public AccelerationCoefficient(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exacc", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exACC))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exacc", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exACC))
{
实际加成 = exACC;
}
diff --git a/Library/Effects/OpenEffects/EffectID.cs b/Library/Effects/OpenEffects/EffectID.cs
deleted file mode 100644
index 6c86f7b..0000000
--- a/Library/Effects/OpenEffects/EffectID.cs
+++ /dev/null
@@ -1,115 +0,0 @@
-namespace Milimoe.FunGame.Testing.OpenEffects
-{
- public enum EffectID : long
- {
- ///
- /// exatk
- ///
- ExATK = 8001,
-
- ///
- /// exdef
- ///
- ExDEF = 8002,
-
- ///
- /// exstr
- ///
- ExSTR = 8003,
-
- ///
- /// exagi
- ///
- ExAGI = 8004,
-
- ///
- /// exint
- ///
- ExINT = 8005,
-
- ///
- /// shtr
- ///
- SkillHardTimeReduce = 8006,
-
- ///
- /// nahtr
- ///
- NormalAttackHardTimeReduce = 8007,
-
- ///
- /// exacc
- ///
- AccelerationCoefficient = 8008,
-
- ///
- /// exspd
- ///
- ExSPD = 8009,
-
- ///
- /// exac
- ///
- ExActionCoefficient = 8010,
-
- ///
- /// excdr
- ///
- ExCDR = 8011,
-
- ///
- /// exhp
- ///
- ExMaxHP = 8012,
-
- ///
- /// exmp
- ///
- ExMaxMP = 8013,
-
- ///
- /// excr
- ///
- ExCritRate = 8014,
-
- ///
- /// excrd
- ///
- ExCritDMG = 8015,
-
- ///
- /// exer
- ///
- ExEvadeRate = 8016,
-
- ///
- /// expp
- ///
- PhysicalPenetration = 8017,
-
- ///
- /// exmp
- ///
- MagicalPenetration = 8018,
-
- ///
- /// expdr
- ///
- ExPDR = 8019,
-
- ///
- /// mdftype, mdfvalue
- ///
- ExMDF = 8020,
-
- ///
- /// exhr
- ///
- ExHR = 8021,
-
- ///
- /// exmr
- ///
- ExMR = 8022
- }
-}
diff --git a/Library/Effects/OpenEffects/ExAGI.cs b/Library/Effects/OpenEffects/ExAGI.cs
index f3ec161..09b4574 100644
--- a/Library/Effects/OpenEffects/ExAGI.cs
+++ b/Library/Effects/OpenEffects/ExAGI.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExAGI : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExAGI -= 实际加成;
}
- public ExAGI(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExAGI(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exagi", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exAGI))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exagi", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exAGI))
{
实际加成 = exAGI;
}
diff --git a/Library/Effects/OpenEffects/ExAGI2.cs b/Library/Effects/OpenEffects/ExAGI2.cs
new file mode 100644
index 0000000..3551893
--- /dev/null
+++ b/Library/Effects/OpenEffects/ExAGI2.cs
@@ -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 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;
+ }
+ }
+ }
+ }
+}
diff --git a/Library/Effects/OpenEffects/ExATK.cs b/Library/Effects/OpenEffects/ExATK.cs
index 9ede1eb..3ca13f2 100644
--- a/Library/Effects/OpenEffects/ExATK.cs
+++ b/Library/Effects/OpenEffects/ExATK.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExATK : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExATK2 -= 实际加成;
}
- public ExATK(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExATK(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exatk", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exATK))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exatk", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exATK))
{
实际加成 = exATK;
}
diff --git a/Library/Effects/OpenEffects/ExATK2.cs b/Library/Effects/OpenEffects/ExATK2.cs
new file mode 100644
index 0000000..2b15805
--- /dev/null
+++ b/Library/Effects/OpenEffects/ExATK2.cs
@@ -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 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;
+ }
+ }
+ }
+ }
+}
diff --git a/Library/Effects/OpenEffects/ExActionCoefficient.cs b/Library/Effects/OpenEffects/ExActionCoefficient.cs
index 36f6822..1f9a703 100644
--- a/Library/Effects/OpenEffects/ExActionCoefficient.cs
+++ b/Library/Effects/OpenEffects/ExActionCoefficient.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExActionCoefficient : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExActionCoefficient -= 实际加成;
}
- public ExActionCoefficient(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExActionCoefficient(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exac", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exAC))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exac", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exAC))
{
实际加成 = exAC;
}
diff --git a/Library/Effects/OpenEffects/ExCDR.cs b/Library/Effects/OpenEffects/ExCDR.cs
index f55208b..348dbbc 100644
--- a/Library/Effects/OpenEffects/ExCDR.cs
+++ b/Library/Effects/OpenEffects/ExCDR.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExCDR : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExCDR -= 实际加成;
}
- public ExCDR(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExCDR(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("excdr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exCDR))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("excdr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exCDR))
{
实际加成 = exCDR;
}
diff --git a/Library/Effects/OpenEffects/ExCritDMG.cs b/Library/Effects/OpenEffects/ExCritDMG.cs
index a337d20..123c123 100644
--- a/Library/Effects/OpenEffects/ExCritDMG.cs
+++ b/Library/Effects/OpenEffects/ExCritDMG.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExCritDMG : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExCritDMG -= 实际加成;
}
- public ExCritDMG(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExCritDMG(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("excrd", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exCRD))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("excrd", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exCRD))
{
实际加成 = exCRD;
}
diff --git a/Library/Effects/OpenEffects/ExCritRate.cs b/Library/Effects/OpenEffects/ExCritRate.cs
index 213036c..f51ceb9 100644
--- a/Library/Effects/OpenEffects/ExCritRate.cs
+++ b/Library/Effects/OpenEffects/ExCritRate.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExCritRate : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExCritRate -= 实际加成;
}
- public ExCritRate(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExCritRate(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("excr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exCR))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("excr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exCR))
{
实际加成 = exCR;
}
diff --git a/Library/Effects/OpenEffects/ExDEF.cs b/Library/Effects/OpenEffects/ExDEF.cs
index 424be1d..8cecf16 100644
--- a/Library/Effects/OpenEffects/ExDEF.cs
+++ b/Library/Effects/OpenEffects/ExDEF.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExDEF : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExDEF2 -= 实际加成;
}
- public ExDEF(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExDEF(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exdef", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exDEF))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exdef", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exDEF))
{
实际加成 = exDEF;
}
diff --git a/Library/Effects/OpenEffects/ExDEF2.cs b/Library/Effects/OpenEffects/ExDEF2.cs
new file mode 100644
index 0000000..ba434d9
--- /dev/null
+++ b/Library/Effects/OpenEffects/ExDEF2.cs
@@ -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 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;
+ }
+ }
+ }
+ }
+}
diff --git a/Library/Effects/OpenEffects/ExEvadeRate.cs b/Library/Effects/OpenEffects/ExEvadeRate.cs
index 96ebcf6..6bcaabb 100644
--- a/Library/Effects/OpenEffects/ExEvadeRate.cs
+++ b/Library/Effects/OpenEffects/ExEvadeRate.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExEvadeRate : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExEvadeRate -= 实际加成;
}
- public ExEvadeRate(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExEvadeRate(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exer", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exER))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exer", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exER))
{
实际加成 = exER;
}
diff --git a/Library/Effects/OpenEffects/ExHR.cs b/Library/Effects/OpenEffects/ExHR.cs
index 82220f5..803e635 100644
--- a/Library/Effects/OpenEffects/ExHR.cs
+++ b/Library/Effects/OpenEffects/ExHR.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExHR : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExHR -= 实际加成;
}
- public ExHR(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExHR(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exhr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exHR))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exhr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exHR))
{
实际加成 = exHR;
}
diff --git a/Library/Effects/OpenEffects/ExINT.cs b/Library/Effects/OpenEffects/ExINT.cs
index 77effde..62b6d80 100644
--- a/Library/Effects/OpenEffects/ExINT.cs
+++ b/Library/Effects/OpenEffects/ExINT.cs
@@ -1,7 +1,7 @@
- using Milimoe.FunGame.Core.Entity;
+using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExINT : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExINT -= 实际加成;
}
- public ExINT(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExINT(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exint", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exINT))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exint", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exINT))
{
实际加成 = exINT;
}
diff --git a/Library/Effects/OpenEffects/ExINT2.cs b/Library/Effects/OpenEffects/ExINT2.cs
new file mode 100644
index 0000000..aa684d0
--- /dev/null
+++ b/Library/Effects/OpenEffects/ExINT2.cs
@@ -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 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;
+ }
+ }
+ }
+ }
+}
diff --git a/Library/Effects/OpenEffects/ExMDF.cs b/Library/Effects/OpenEffects/ExMDF.cs
index 78f3428..9877fcf 100644
--- a/Library/Effects/OpenEffects/ExMDF.cs
+++ b/Library/Effects/OpenEffects/ExMDF.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExMDF : Effect
{
@@ -45,15 +45,7 @@ namespace Milimoe.FunGame.Testing.OpenEffects
break;
case MagicType.None:
default:
- character.MDF.None += 实际加成;
- character.MDF.Starmark += 实际加成;
- character.MDF.PurityNatural += 实际加成;
- character.MDF.PurityContemporary += 实际加成;
- character.MDF.Bright += 实际加成;
- character.MDF.Shadow += 实际加成;
- character.MDF.Element += 实际加成;
- character.MDF.Fleabane += 实际加成;
- character.MDF.Particle += 实际加成;
+ character.MDF.SetAllValue(实际加成, false);
break;
}
}
@@ -88,20 +80,20 @@ namespace Milimoe.FunGame.Testing.OpenEffects
break;
case MagicType.None:
default:
- character.MDF.None -= 实际加成;
+ character.MDF.SetAllValue(-实际加成, false);
break;
}
}
- public ExMDF(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExMDF(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("mdfType", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && int.TryParse(skill.OtherArgs[key].ToString(), out int mdfType))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("mdfType", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && int.TryParse(Values[key].ToString(), out int mdfType))
{
if (Enum.IsDefined(typeof(MagicType), mdfType))
{
@@ -112,8 +104,8 @@ namespace Milimoe.FunGame.Testing.OpenEffects
魔法类型 = MagicType.None;
}
}
- key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("mdfvalue", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double mdfValue))
+ key = Values.Keys.FirstOrDefault(s => s.Equals("mdfvalue", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double mdfValue))
{
实际加成 = mdfValue;
}
diff --git a/Library/Effects/OpenEffects/ExMR.cs b/Library/Effects/OpenEffects/ExMR.cs
index 91da5ad..387f73d 100644
--- a/Library/Effects/OpenEffects/ExMR.cs
+++ b/Library/Effects/OpenEffects/ExMR.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExMR : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExMR -= 实际加成;
}
- public ExMR(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExMR(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exmr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exMR))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exmr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exMR))
{
实际加成 = exMR;
}
diff --git a/Library/Effects/OpenEffects/ExMaxHP.cs b/Library/Effects/OpenEffects/ExMaxHP.cs
index 1d3e388..5ef156e 100644
--- a/Library/Effects/OpenEffects/ExMaxHP.cs
+++ b/Library/Effects/OpenEffects/ExMaxHP.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExMaxHP : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExHP2 -= 实际加成;
}
- public ExMaxHP(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExMaxHP(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exhp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exHP))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exhp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exHP))
{
实际加成 = exHP;
}
diff --git a/Library/Effects/OpenEffects/ExMaxHP2.cs b/Library/Effects/OpenEffects/ExMaxHP2.cs
new file mode 100644
index 0000000..506904e
--- /dev/null
+++ b/Library/Effects/OpenEffects/ExMaxHP2.cs
@@ -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 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;
+ }
+ }
+ }
+ }
+}
diff --git a/Library/Effects/OpenEffects/ExMaxMP.cs b/Library/Effects/OpenEffects/ExMaxMP.cs
index ea090f0..584dc7f 100644
--- a/Library/Effects/OpenEffects/ExMaxMP.cs
+++ b/Library/Effects/OpenEffects/ExMaxMP.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExMaxMP : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExMP2 -= 实际加成;
}
- public ExMaxMP(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExMaxMP(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exMP))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exMP))
{
实际加成 = exMP;
}
diff --git a/Library/Effects/OpenEffects/ExMaxMP2.cs b/Library/Effects/OpenEffects/ExMaxMP2.cs
new file mode 100644
index 0000000..6f4fd4a
--- /dev/null
+++ b/Library/Effects/OpenEffects/ExMaxMP2.cs
@@ -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 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;
+ }
+ }
+ }
+ }
+}
diff --git a/Library/Effects/OpenEffects/ExPDR.cs b/Library/Effects/OpenEffects/ExPDR.cs
index b0a6027..b800367 100644
--- a/Library/Effects/OpenEffects/ExPDR.cs
+++ b/Library/Effects/OpenEffects/ExPDR.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExPDR : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExPDR -= 实际加成;
}
- public ExPDR(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExPDR(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("expdr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exPDR))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("expdr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exPDR))
{
实际加成 = exPDR;
}
diff --git a/Library/Effects/OpenEffects/ExSPD.cs b/Library/Effects/OpenEffects/ExSPD.cs
index 4d0f2df..6912561 100644
--- a/Library/Effects/OpenEffects/ExSPD.cs
+++ b/Library/Effects/OpenEffects/ExSPD.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExSPD : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.ExSPD -= 实际加成;
}
- public ExSPD(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public ExSPD(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exspd", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exSPD))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exspd", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exSPD))
{
实际加成 = exSPD;
}
diff --git a/Library/Effects/OpenEffects/ExSTR.cs b/Library/Effects/OpenEffects/ExSTR.cs
index 5c8b913..95445af 100644
--- a/Library/Effects/OpenEffects/ExSTR.cs
+++ b/Library/Effects/OpenEffects/ExSTR.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class ExSTR : Effect
{
@@ -16,23 +16,23 @@ namespace Milimoe.FunGame.Testing.OpenEffects
public override void OnEffectGained(Character character)
{
- character.ExDEF2 += 实际加成;
+ character.ExSTR += 实际加成;
}
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 args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exstr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exSTR))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exstr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exSTR))
{
实际加成 = exSTR;
}
diff --git a/Library/Effects/OpenEffects/ExSTR2.cs b/Library/Effects/OpenEffects/ExSTR2.cs
new file mode 100644
index 0000000..cb49ad4
--- /dev/null
+++ b/Library/Effects/OpenEffects/ExSTR2.cs
@@ -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 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;
+ }
+ }
+ }
+ }
+}
diff --git a/Library/Effects/OpenEffects/MagicalPenetration.cs b/Library/Effects/OpenEffects/MagicalPenetration.cs
index 9d8d52a..fcfccb5 100644
--- a/Library/Effects/OpenEffects/MagicalPenetration.cs
+++ b/Library/Effects/OpenEffects/MagicalPenetration.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class MagicalPenetration : Effect
{
@@ -24,17 +24,17 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.MagicalPenetration -= 实际加成;
}
- public MagicalPenetration(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public MagicalPenetration(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("exmp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exMP))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exmpt", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exMPT))
{
- 实际加成 = exMP;
+ 实际加成 = exMPT;
}
}
}
diff --git a/Library/Effects/OpenEffects/NormalAttackHardTimeReduce.cs b/Library/Effects/OpenEffects/NormalAttackHardTimeReduce.cs
index 32a524f..5407aca 100644
--- a/Library/Effects/OpenEffects/NormalAttackHardTimeReduce.cs
+++ b/Library/Effects/OpenEffects/NormalAttackHardTimeReduce.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class NormalAttackHardTimeReduce : Effect
{
@@ -24,15 +24,15 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.NormalAttack.HardnessTime += 实际硬直时间减少;
}
- public NormalAttackHardTimeReduce(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public NormalAttackHardTimeReduce(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("nahtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double nahtr))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("nahtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double nahtr))
{
实际硬直时间减少 = nahtr;
}
diff --git a/Library/Effects/OpenEffects/NormalAttackHardTimeReduce2.cs b/Library/Effects/OpenEffects/NormalAttackHardTimeReduce2.cs
new file mode 100644
index 0000000..f25d298
--- /dev/null
+++ b/Library/Effects/OpenEffects/NormalAttackHardTimeReduce2.cs
@@ -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 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;
+ }
+ }
+ }
+ }
+}
diff --git a/Library/Effects/OpenEffects/PhysicalPenetration.cs b/Library/Effects/OpenEffects/PhysicalPenetration.cs
index 6197f0a..76a8c51 100644
--- a/Library/Effects/OpenEffects/PhysicalPenetration.cs
+++ b/Library/Effects/OpenEffects/PhysicalPenetration.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
public class PhysicalPenetration : Effect
{
@@ -24,17 +24,17 @@ namespace Milimoe.FunGame.Testing.OpenEffects
character.PhysicalPenetration -= 实际加成;
}
- public PhysicalPenetration(Skill skill, Character? source = null, Item? item = null) : base(skill)
+ public PhysicalPenetration(Skill skill, Dictionary args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("expp", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double exPP))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("exppt", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double exPPT))
{
- 实际加成 = exPP;
+ 实际加成 = exPPT;
}
}
}
diff --git a/Library/Effects/OpenEffects/SkillHardTimeReduce.cs b/Library/Effects/OpenEffects/SkillHardTimeReduce.cs
index 2220923..4ed1b09 100644
--- a/Library/Effects/OpenEffects/SkillHardTimeReduce.cs
+++ b/Library/Effects/OpenEffects/SkillHardTimeReduce.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.OpenEffects
+namespace Milimoe.FunGame.Testing.Effects.OpenEffects
{
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 args, Character? source = null, Item? item = null) : base(skill, args)
{
GamingQueue = skill.GamingQueue;
Source = source;
Item = item;
- if (skill.OtherArgs.Count > 0)
+ if (Values.Count > 0)
{
- string key = skill.OtherArgs.Keys.FirstOrDefault(s => s.Equals("shtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
- if (key.Length > 0 && double.TryParse(skill.OtherArgs[key].ToString(), out double shtr))
+ string key = Values.Keys.FirstOrDefault(s => s.Equals("shtr", StringComparison.CurrentCultureIgnoreCase)) ?? "";
+ if (key.Length > 0 && double.TryParse(Values[key].ToString(), out double shtr))
{
实际硬直时间减少 = shtr;
}
diff --git a/Library/Effects/OpenEffects/SkillHardTimeReduce2.cs b/Library/Effects/OpenEffects/SkillHardTimeReduce2.cs
new file mode 100644
index 0000000..d8745c4
--- /dev/null
+++ b/Library/Effects/OpenEffects/SkillHardTimeReduce2.cs
@@ -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 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;
+ }
+ }
+ }
+ }
+}
diff --git a/Library/Effects/眩晕.cs b/Library/Effects/SkillEffects/眩晕.cs
similarity index 97%
rename from Library/Effects/眩晕.cs
rename to Library/Effects/SkillEffects/眩晕.cs
index 4219d2a..658a76c 100644
--- a/Library/Effects/眩晕.cs
+++ b/Library/Effects/SkillEffects/眩晕.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.Effects
+namespace Milimoe.FunGame.Testing.Effects.SkillEffects
{
public class 眩晕 : Effect
{
diff --git a/Library/Effects/累积之压标记.cs b/Library/Effects/SkillEffects/累积之压标记.cs
similarity index 94%
rename from Library/Effects/累积之压标记.cs
rename to Library/Effects/SkillEffects/累积之压标记.cs
index e02c728..1d9bbd0 100644
--- a/Library/Effects/累积之压标记.cs
+++ b/Library/Effects/SkillEffects/累积之压标记.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-namespace Milimoe.FunGame.Testing.Effects
+namespace Milimoe.FunGame.Testing.Effects.SkillEffects
{
public class 累积之压标记 : Effect
{
diff --git a/Library/FunGame.Testing.csproj b/Library/FunGame.Testing.csproj
index 86c8c16..ae4b497 100644
--- a/Library/FunGame.Testing.csproj
+++ b/Library/FunGame.Testing.csproj
@@ -30,4 +30,9 @@
+
+
+
+
+
diff --git a/Library/Items/Accessory/攻击之爪.cs b/Library/Items/Accessory/攻击之爪.cs
index b83446f..1e1fe0f 100644
--- a/Library/Items/Accessory/攻击之爪.cs
+++ b/Library/Items/Accessory/攻击之爪.cs
@@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Testing.Skills;
-using Milimoe.FunGame.Testing.ItemEffects;
+using Milimoe.FunGame.Testing.Effects.ItemEffects;
namespace Milimoe.FunGame.Testing.Items
{
@@ -11,7 +11,7 @@ namespace Milimoe.FunGame.Testing.Items
public override string Name => "攻击之爪 +10";
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
- public 攻击之爪10(Character? character = null) : base(ItemType.Accessory, slot: EquipSlotType.Accessory)
+ public 攻击之爪10(Character? character = null) : base(ItemType.Accessory)
{
Skills.Passives.Add(new 攻击之爪技能(character, this, 10));
}
@@ -23,7 +23,7 @@ namespace Milimoe.FunGame.Testing.Items
public override string Name => "攻击之爪 +30";
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
- public 攻击之爪30(Character? character = null) : base(ItemType.Accessory, slot: EquipSlotType.Accessory)
+ public 攻击之爪30(Character? character = null) : base(ItemType.Accessory)
{
Skills.Passives.Add(new 攻击之爪技能(character, this, 30));
}
@@ -35,7 +35,7 @@ namespace Milimoe.FunGame.Testing.Items
public override string Name => "攻击之爪 +50";
public override string Description => Skills.Passives.Count > 0 ? Skills.Passives.First().Description : "";
- public 攻击之爪50(Character? character = null) : base(ItemType.Accessory, slot: EquipSlotType.Accessory)
+ public 攻击之爪50(Character? character = null) : base(ItemType.Accessory)
{
Skills.Passives.Add(new 攻击之爪技能(character, this, 50));
}
@@ -46,7 +46,6 @@ namespace Milimoe.FunGame.Testing.Items
public override long Id => (long)ItemPassiveID.攻击之爪;
public override string Name => "攻击之爪";
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)
{
diff --git a/Library/Items/Weapon/独奏弓.cs b/Library/Items/Weapon/独奏弓.cs
index 19258f9..a34cd17 100644
--- a/Library/Items/Weapon/独奏弓.cs
+++ b/Library/Items/Weapon/独奏弓.cs
@@ -1,6 +1,6 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-using Milimoe.FunGame.Testing.ItemEffects;
+using Milimoe.FunGame.Testing.Effects.ItemEffects;
namespace FunGame.Testing.Items
{
@@ -10,7 +10,7 @@ namespace FunGame.Testing.Items
public override string Name => "独奏弓";
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;
Skills.Passives.Add(new 独奏弓技能(character, this));
diff --git a/Library/Main.cs b/Library/Main.cs
index 038a917..ec8cdf8 100644
--- a/Library/Main.cs
+++ b/Library/Main.cs
@@ -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);
diff --git a/Library/Skills/ColdBlue/嗜血本能.cs b/Library/Skills/ColdBlue/嗜血本能.cs
index e457a21..48e7ff0 100644
--- a/Library/Skills/ColdBlue/嗜血本能.cs
+++ b/Library/Skills/ColdBlue/嗜血本能.cs
@@ -1,6 +1,6 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-using Milimoe.FunGame.Testing.Effects;
+using Milimoe.FunGame.Testing.Effects.SkillEffects;
namespace Milimoe.FunGame.Testing.Skills
{
diff --git a/Library/Skills/ColdBlue/累积之压.cs b/Library/Skills/ColdBlue/累积之压.cs
index ae351ab..cc97175 100644
--- a/Library/Skills/ColdBlue/累积之压.cs
+++ b/Library/Skills/ColdBlue/累积之压.cs
@@ -1,6 +1,6 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-using Milimoe.FunGame.Testing.Effects;
+using Milimoe.FunGame.Testing.Effects.SkillEffects;
namespace Milimoe.FunGame.Testing.Skills
{
diff --git a/Library/Skills/MagicalGirl/毁灭之势.cs b/Library/Skills/MagicalGirl/毁灭之势.cs
index 01ad7f6..d142f8c 100644
--- a/Library/Skills/MagicalGirl/毁灭之势.cs
+++ b/Library/Skills/MagicalGirl/毁灭之势.cs
@@ -24,10 +24,10 @@ namespace Milimoe.FunGame.Testing.Skills
{
public override long Id => Skill.Id;
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;
- private readonly double 伤害提升 = 0.055;
+ private readonly double 伤害提升 = 0.04;
private double 累计伤害 = 0;
public override bool AlterActualDamageAfterCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType, DamageResult damageResult)
diff --git a/Library/Skills/MagicalGirl/绝对领域.cs b/Library/Skills/MagicalGirl/绝对领域.cs
index c7a0c4f..0713e42 100644
--- a/Library/Skills/MagicalGirl/绝对领域.cs
+++ b/Library/Skills/MagicalGirl/绝对领域.cs
@@ -27,7 +27,7 @@ namespace Milimoe.FunGame.Testing.Skills
public override bool Durative => true;
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 实际敏捷提升 = 0;
private double 释放时的能量值 = 0;
diff --git a/Library/Skills/Mayor/精准打击.cs b/Library/Skills/Mayor/精准打击.cs
index 0498a13..608e62f 100644
--- a/Library/Skills/Mayor/精准打击.cs
+++ b/Library/Skills/Mayor/精准打击.cs
@@ -22,30 +22,34 @@ namespace Milimoe.FunGame.Testing.Skills
{
public override long Id => Skill.Id;
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 Durative => true;
public override double Duration => 30;
private double 暴击率提升 => 0.2 + 0.03 * (Level - 1);
private double 暴击伤害提升 => 0.8 + 0.04 * (Level - 1);
+ private double 物理穿透提升 => 0.3;
private double 实际暴击率提升 = 0;
private double 实际暴击伤害提升 = 0;
+ private double 实际物理穿透提升 = 0;
public override void OnEffectGained(Character character)
{
实际暴击率提升 = 暴击率提升;
实际暴击伤害提升 = 暴击伤害提升;
+ 实际物理穿透提升 = 物理穿透提升;
character.ExCritRate += 实际暴击率提升;
- WriteLine($"[ {character} ] 的暴击率提升了 [ {实际暴击率提升 * 100:0.##}% ] !");
character.ExCritDMG += 实际暴击伤害提升;
- WriteLine($"[ {character} ] 的暴击伤害提升了 [ {实际暴击伤害提升 * 100:0.##}% ] !");
+ character.PhysicalPenetration += 实际物理穿透提升;
+ WriteLine($"[ {character} ] 的暴击率提升了 [ {实际暴击率提升 * 100:0.##}% ],暴击伤害提升了 [ {实际暴击伤害提升 * 100:0.##}% ],物理穿透提升了 [ {实际物理穿透提升 * 100:0.##}% ] !!");
}
public override void OnEffectLost(Character character)
{
character.ExCritRate -= 实际暴击率提升;
character.ExCritDMG -= 实际暴击伤害提升;
+ character.PhysicalPenetration -= 实际物理穿透提升;
}
public override void OnSkillCasted(Character caster, List enemys, List teammates, Dictionary others)
@@ -55,6 +59,7 @@ namespace Milimoe.FunGame.Testing.Skills
{
实际暴击率提升 = 0;
实际暴击伤害提升 = 0;
+ 实际物理穿透提升 = 0;
caster.Effects.Add(this);
OnEffectGained(caster);
}
diff --git a/Library/Skills/NiuNan/智慧与力量.cs b/Library/Skills/NiuNan/智慧与力量.cs
index 0d5925a..e4c3fdd 100644
--- a/Library/Skills/NiuNan/智慧与力量.cs
+++ b/Library/Skills/NiuNan/智慧与力量.cs
@@ -1,4 +1,5 @@
using Milimoe.FunGame.Core.Entity;
+using Milimoe.FunGame.Core.Interface.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Testing.Skills
@@ -24,12 +25,60 @@ namespace Milimoe.FunGame.Testing.Skills
{
public override long Id => Skill.Id;
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) + ")" : "");
public override bool TargetSelf => true;
private double 交换前的额外智力 = 0;
private double 交换前的额外力量 = 0;
+ private double 实际增加闪避率 = 0.3;
+ private double 实际增加魔法抗性 = 0.25;
+ private bool 已经加过 = false;
+
+ public override void OnEffectGained(Character character)
+ {
+ ResetEffect(character, true);
+ }
+
+ public override void OnEffectLost(Character character)
+ {
+ if (character.PrimaryAttribute == PrimaryAttribute.INT)
+ {
+ ResetEffect(character, false);
+ }
+ }
+
+ private void ResetEffect(Character character, bool isAdd)
+ {
+ if (isAdd)
+ {
+ 已经加过 = true;
+ character.ExEvadeRate += 实际增加闪避率;
+ character.MDF.None += 实际增加魔法抗性;
+ character.MDF.Particle += 实际增加魔法抗性;
+ character.MDF.Fleabane += 实际增加魔法抗性;
+ character.MDF.Element += 实际增加魔法抗性;
+ character.MDF.Shadow += 实际增加魔法抗性;
+ character.MDF.Bright += 实际增加魔法抗性;
+ character.MDF.PurityContemporary += 实际增加魔法抗性;
+ character.MDF.PurityNatural += 实际增加魔法抗性;
+ character.MDF.Starmark += 实际增加魔法抗性;
+ }
+ else
+ {
+ 已经加过 = false;
+ character.ExEvadeRate -= 实际增加闪避率;
+ character.MDF.None -= 实际增加魔法抗性;
+ character.MDF.Particle -= 实际增加魔法抗性;
+ character.MDF.Fleabane -= 实际增加魔法抗性;
+ character.MDF.Element -= 实际增加魔法抗性;
+ character.MDF.Shadow -= 实际增加魔法抗性;
+ character.MDF.Bright -= 实际增加魔法抗性;
+ character.MDF.PurityContemporary -= 实际增加魔法抗性;
+ character.MDF.PurityNatural -= 实际增加魔法抗性;
+ character.MDF.Starmark -= 实际增加魔法抗性;
+ }
+ }
public override void OnAttributeChanged(Character character)
{
@@ -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)
{
if (Skill.Character != null)
@@ -67,6 +122,10 @@ namespace Milimoe.FunGame.Testing.Skills
c.ExINT = -c.BaseINT;
c.ExSTR = 交换前的额外智力 + c.BaseINT + 交换前的额外力量;
c.Recovery(pastHP, pastMP, pastMaxHP, pastMaxMP);
+ if (已经加过)
+ {
+ ResetEffect(character, false);
+ }
}
}
else
@@ -83,6 +142,10 @@ namespace Milimoe.FunGame.Testing.Skills
c.ExINT = 交换前的额外力量 + c.BaseSTR + 交换前的额外智力;
c.ExSTR = -c.BaseSTR;
c.Recovery(pastHP, pastMP, pastMaxHP, pastMaxMP);
+ if (!已经加过)
+ {
+ ResetEffect(character, true);
+ }
}
}
}
diff --git a/Library/Skills/Oshima/META马.cs b/Library/Skills/Oshima/META马.cs
index b1aae68..f694466 100644
--- a/Library/Skills/Oshima/META马.cs
+++ b/Library/Skills/Oshima/META马.cs
@@ -26,7 +26,7 @@ namespace Milimoe.FunGame.Testing.Skills
public override string Name => Skill.Name;
public override string Description => $"META马专属被动:力量+5,力量成长+0.5;在受到伤害时,获得的能量提升50%,每回合开始还能获得额外的 [ {EP:0.##} ] 能量值。";
public override bool TargetSelf => true;
- public static double EP => 10;
+ public static double EP => 7;
public override void AlterEPAfterGetDamage(Character character, ref double baseEP)
{
diff --git a/Library/Skills/Oshima/力量爆发.cs b/Library/Skills/Oshima/力量爆发.cs
index 3c4fc6f..554b723 100644
--- a/Library/Skills/Oshima/力量爆发.cs
+++ b/Library/Skills/Oshima/力量爆发.cs
@@ -22,12 +22,12 @@ namespace Milimoe.FunGame.Testing.Skills
{
public override long Id => Skill.Id;
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 Durative => true;
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 实际攻击力加成 = 0;
diff --git a/Library/Skills/QWQAQW/迅捷之势.cs b/Library/Skills/QWQAQW/迅捷之势.cs
index 8bef40f..db314ee 100644
--- a/Library/Skills/QWQAQW/迅捷之势.cs
+++ b/Library/Skills/QWQAQW/迅捷之势.cs
@@ -22,22 +22,35 @@ namespace Milimoe.FunGame.Testing.Skills
{
public override long Id => Skill.Id;
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 Durative => true;
public override double Duration => 40;
private double 智力系数 => 1.4 + 0.4 * (Level - 1);
private double 智力加成 => 智力系数 * Skill.Character?.INT ?? 0;
+ private double 物理伤害减免 => 0.35;
+ private double 魔法抗性 => 0.35;
+ private double 实际物理伤害减免 = 0;
+ private double 实际魔法抗性 = 0;
public override void OnEffectGained(Character character)
{
character.NormalAttack.SetMagicType(true, character.MagicType);
+ 实际物理伤害减免 = 物理伤害减免;
+ 实际魔法抗性 = 魔法抗性;
+ character.ExPDR += 实际物理伤害减免;
+ character.MDF.SetAllValue(实际魔法抗性, false);
+ WriteLine($"[ {character} ] 提升了 {实际物理伤害减免 * 100:0.##}% 物理伤害减免,{实际魔法抗性 * 100:0.##}% 魔法抗性!!");
}
public override void OnEffectLost(Character character)
{
character.NormalAttack.SetMagicType(false, character.MagicType);
+ 实际物理伤害减免 = 0;
+ 实际魔法抗性 = 0;
+ character.ExPDR -= 实际物理伤害减免;
+ character.MDF.SetAllValue(-实际魔法抗性, false);
}
public override void AlterExpectedDamageBeforeCalculation(Character character, Character enemy, ref double damage, bool isNormalAttack, bool isMagicDamage, MagicType magicType)
@@ -50,7 +63,7 @@ namespace Milimoe.FunGame.Testing.Skills
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 enemys, List teammates, Dictionary others)
diff --git a/Library/Skills/QingXiang/能量毁灭.cs b/Library/Skills/QingXiang/能量毁灭.cs
index f70d136..825af9e 100644
--- a/Library/Skills/QingXiang/能量毁灭.cs
+++ b/Library/Skills/QingXiang/能量毁灭.cs
@@ -11,6 +11,7 @@ namespace Milimoe.FunGame.Testing.Skills
public override double EPCost => 100;
public override double CD => 55 - 3 * (Level - 1);
public override double HardnessTime { get; set; } = 25;
+ public override string Slogan => "灭!!!!";
public 能量毁灭(Character? character = null) : base(SkillType.SuperSkill, character)
{
@@ -27,9 +28,9 @@ namespace Milimoe.FunGame.Testing.Skills
public override bool TargetSelf => false;
public override double TargetRange => 999;
- private double 智力系数 => 0.55 * Level;
+ private double 智力系数 => 0.25 * Level;
private double 智力伤害 => 智力系数 * Skill.Character?.INT ?? 0;
- private double 能量系数 => 0.75 * Level;
+ private double 能量系数 => 1.05 * Level;
public override void OnSkillCasted(Character caster, List enemys, List teammates, Dictionary others)
{
diff --git a/Library/Skills/SkillID.cs b/Library/Skills/SkillID.cs
index a85d65a..aa85500 100644
--- a/Library/Skills/SkillID.cs
+++ b/Library/Skills/SkillID.cs
@@ -3,6 +3,32 @@
public enum MagicID : long
{
冰霜攻击 = 1001,
+ 火之矢 = 1002,
+ 水之矢 = 1003,
+ 石之锤 = 1004,
+ 风之轮 = 1005,
+ 心灵之霞 = 1006,
+ 次元上升 = 1007,
+ 暗物质 = 1008,
+
+ 回复术 = 1009,
+ 治愈术 = 1010,
+ 复苏术 = 1011,
+ 圣灵术 = 1012,
+ 时间加速 = 1013,
+ 时间减速 = 1014,
+ 反魔法领域 = 1015,
+ 沉默十字 = 1016,
+ 虚弱领域 = 1017,
+ 混沌烙印 = 1018,
+ 凝胶稠絮 = 1019,
+
+ 大地之墙 = 1020,
+ 盖亚之盾 = 1021,
+ 风之守护 = 1022,
+ 结晶防护 = 1023,
+ 强音之力 = 1024,
+ 神圣祝福 = 1025
}
public enum SkillID : long
diff --git a/Library/Skills/Yang/魔法震荡.cs b/Library/Skills/Yang/魔法震荡.cs
index 37ccfee..1ac713e 100644
--- a/Library/Skills/Yang/魔法震荡.cs
+++ b/Library/Skills/Yang/魔法震荡.cs
@@ -1,6 +1,6 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
-using Milimoe.FunGame.Testing.Effects;
+using Milimoe.FunGame.Testing.Effects.SkillEffects;
namespace Milimoe.FunGame.Testing.Skills
{
diff --git a/Library/Solutions/TestModule.cs b/Library/Solutions/TestModule.cs
index efb6a0c..db91a51 100644
--- a/Library/Solutions/TestModule.cs
+++ b/Library/Solutions/TestModule.cs
@@ -1,9 +1,9 @@
using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Common.Addon;
-using Milimoe.FunGame.Testing.OpenEffects;
using Milimoe.FunGame.Testing.Items;
using Milimoe.FunGame.Testing.Skills;
+using Milimoe.FunGame.Testing.Effects.OpenEffects;
namespace Addons
{
@@ -87,14 +87,14 @@ namespace Addons
(long)PassiveID.敏捷之刃 => new 敏捷之刃(),
(long)PassiveID.弱者猎手 => 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 dict)
+ if (skill is OpenSkill && args.TryGetValue("values", out object? value) && value is Dictionary dict)
{
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) =>
{
- 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 dict)
{
return (EffectID)id switch
{
- EffectID.ExATK => new ExATK(skill),
- EffectID.ExDEF => new ExDEF(skill),
- EffectID.ExSTR => new ExSTR(skill),
- EffectID.ExAGI => new ExAGI(skill),
- EffectID.ExINT => new ExINT(skill),
- EffectID.SkillHardTimeReduce => new SkillHardTimeReduce(skill),
- EffectID.NormalAttackHardTimeReduce => new NormalAttackHardTimeReduce(skill),
- EffectID.AccelerationCoefficient => new AccelerationCoefficient(skill),
- EffectID.ExSPD => new ExSPD(skill),
- EffectID.ExActionCoefficient => new ExActionCoefficient(skill),
- EffectID.ExCDR => new ExCDR(skill),
- EffectID.ExMaxHP => new ExMaxHP(skill),
- EffectID.ExMaxMP => new ExMaxMP(skill),
- EffectID.ExCritRate => new ExCritRate(skill),
- EffectID.ExCritDMG => new ExCritDMG(skill),
- EffectID.ExEvadeRate => new ExEvadeRate(skill),
- EffectID.PhysicalPenetration => new PhysicalPenetration(skill),
- EffectID.MagicalPenetration => new MagicalPenetration(skill),
- EffectID.ExPDR => new ExPDR(skill),
- EffectID.ExMDF => new ExMDF(skill),
- EffectID.ExHR => new ExHR(skill),
- EffectID.ExMR => new ExMR(skill),
+ EffectID.ExATK => new ExATK(skill, dict),
+ EffectID.ExDEF => new ExDEF(skill, dict),
+ EffectID.ExSTR => new ExSTR(skill, dict),
+ EffectID.ExAGI => new ExAGI(skill, dict),
+ EffectID.ExINT => new ExINT(skill, dict),
+ EffectID.SkillHardTimeReduce => new SkillHardTimeReduce(skill, dict),
+ EffectID.NormalAttackHardTimeReduce => new NormalAttackHardTimeReduce(skill, dict),
+ EffectID.AccelerationCoefficient => new AccelerationCoefficient(skill, dict),
+ EffectID.ExSPD => new ExSPD(skill, dict),
+ EffectID.ExActionCoefficient => new ExActionCoefficient(skill, dict),
+ EffectID.ExCDR => new ExCDR(skill, dict),
+ EffectID.ExMaxHP => new ExMaxHP(skill, dict),
+ EffectID.ExMaxMP => new ExMaxMP(skill, dict),
+ EffectID.ExCritRate => new ExCritRate(skill, dict),
+ EffectID.ExCritDMG => new ExCritDMG(skill, dict),
+ EffectID.ExEvadeRate => new ExEvadeRate(skill, dict),
+ EffectID.PhysicalPenetration => new PhysicalPenetration(skill, dict),
+ EffectID.MagicalPenetration => new MagicalPenetration(skill, dict),
+ EffectID.ExPDR => new ExPDR(skill, dict),
+ EffectID.ExMDF => new ExMDF(skill, dict),
+ EffectID.ExHR => new ExHR(skill, dict),
+ EffectID.ExMR => new ExMR(skill, dict),
_ => null
};
}
diff --git a/Library/Tests/FunGame.cs b/Library/Tests/FunGame.cs
index 7d74547..39b3fb3 100644
--- a/Library/Tests/FunGame.cs
+++ b/Library/Tests/FunGame.cs
@@ -295,7 +295,7 @@ namespace Milimoe.FunGame.Testing.Tests
if (PrintOut) characters.ForEach(c => Console.WriteLine(c.GetInfo()));
// 创建顺序表并排序
- ActionQueue actionQueue = new(characters, WriteLine);
+ ActionQueue actionQueue = new(characters, false, WriteLine);
if (PrintOut) Console.WriteLine();
// 显示初始顺序表