新增配置文件;百分比加成的物品特效;角色技能调整

This commit is contained in:
milimoe 2024-10-29 00:27:17 +08:00
parent 8365c36775
commit 5e69b9532d
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
22 changed files with 1213 additions and 67 deletions

View File

@ -307,7 +307,7 @@ namespace Oshima.Core.Utils
// 开始空投 // 开始空投
Msg = ""; Msg = "";
(actionQueue); (actionQueue, true);
if (isWeb) result.Add("=== 空投 ===\r\n" + Msg); if (isWeb) result.Add("=== 空投 ===\r\n" + Msg);
double = 80; double = 80;
@ -506,17 +506,22 @@ namespace Oshima.Core.Utils
if (PrintOut) Console.WriteLine(str); if (PrintOut) Console.WriteLine(str);
} }
public static void (ActionQueue queue) public static void (ActionQueue queue, bool first = false)
{ {
Item a = Items[Random.Shared.Next(Items.Count)]; Item a = Items[Random.Shared.Next(Items.Count)];
a.SetGamingQueue(queue); if (first)
{
a = Items.Where(row => row.Name == "魔能法袍").FirstOrDefault() ?? a;
}
Item[] = [a]; Item[] = [a];
WriteLine($"社区送温暖了,现在向所有人发放 [ {a.Name} ]"); WriteLine($"社区送温暖了,现在向所有人发放 [ {a.Name} ]");
foreach (Character character in queue.Queue) foreach (Character character in queue.Queue)
{ {
foreach (Item item in ) foreach (Item item in )
{ {
queue.Equip(character, item.Copy(1)); Item realItem = item.Copy(1);
realItem.SetGamingQueue(queue);
queue.Equip(character, realItem);
} }
} }
WriteLine(""); WriteLine("");

View File

@ -3,113 +3,161 @@
public enum EffectID : long public enum EffectID : long
{ {
/// <summary> /// <summary>
/// exatk /// 数值攻击力,参数:exatk
/// </summary> /// </summary>
ExATK = 8001, ExATK = 8001,
/// <summary> /// <summary>
/// exdef /// 数值物理护甲,参数:exdef
/// </summary> /// </summary>
ExDEF = 8002, ExDEF = 8002,
/// <summary> /// <summary>
/// exstr /// 数值力量,参数:exstr
/// </summary> /// </summary>
ExSTR = 8003, ExSTR = 8003,
/// <summary> /// <summary>
/// exagi /// 数值敏捷,参数:exagi
/// </summary> /// </summary>
ExAGI = 8004, ExAGI = 8004,
/// <summary> /// <summary>
/// exint /// 数值智力,参数:exint
/// </summary> /// </summary>
ExINT = 8005, ExINT = 8005,
/// <summary> /// <summary>
/// shtr /// 数值技能硬直时间减少,参数:shtr
/// </summary> /// </summary>
SkillHardTimeReduce = 8006, SkillHardTimeReduce = 8006,
/// <summary> /// <summary>
/// nahtr /// 数值普攻硬直时间减少,参数:nahtr
/// </summary> /// </summary>
NormalAttackHardTimeReduce = 8007, NormalAttackHardTimeReduce = 8007,
/// <summary> /// <summary>
/// exacc /// 加速系数%,参数:exacc
/// </summary> /// </summary>
AccelerationCoefficient = 8008, AccelerationCoefficient = 8008,
/// <summary> /// <summary>
/// exspd /// 数值行动速度,参数:exspd
/// </summary> /// </summary>
ExSPD = 8009, ExSPD = 8009,
/// <summary> /// <summary>
/// exac /// 行动系数%,参考:exac
/// </summary> /// </summary>
ExActionCoefficient = 8010, ExActionCoefficient = 8010,
/// <summary> /// <summary>
/// excdr /// 冷却缩减%,参数:excdr
/// </summary> /// </summary>
ExCDR = 8011, ExCDR = 8011,
/// <summary> /// <summary>
/// exhp /// 数值生命值,参数:exhp
/// </summary> /// </summary>
ExMaxHP = 8012, ExMaxHP = 8012,
/// <summary> /// <summary>
/// exmp /// 数值魔法值,参数:exmp
/// </summary> /// </summary>
ExMaxMP = 8013, ExMaxMP = 8013,
/// <summary> /// <summary>
/// excr /// 暴击率%,参数:excr
/// </summary> /// </summary>
ExCritRate = 8014, ExCritRate = 8014,
/// <summary> /// <summary>
/// excrd /// 暴击伤害%,参数:excrd
/// </summary> /// </summary>
ExCritDMG = 8015, ExCritDMG = 8015,
/// <summary> /// <summary>
/// exer /// 闪避率%,参数:exer
/// </summary> /// </summary>
ExEvadeRate = 8016, ExEvadeRate = 8016,
/// <summary> /// <summary>
/// exppt /// 物理穿透%,参数:exppt
/// </summary> /// </summary>
PhysicalPenetration = 8017, PhysicalPenetration = 8017,
/// <summary> /// <summary>
/// exmpt /// 魔法穿透%,参数:exmpt
/// </summary> /// </summary>
MagicalPenetration = 8018, MagicalPenetration = 8018,
/// <summary> /// <summary>
/// expdr /// 物理伤害减免%,参数:expdr
/// </summary> /// </summary>
ExPDR = 8019, ExPDR = 8019,
/// <summary> /// <summary>
/// mdftype, mdfvalue /// 魔法抗性%<para/>
/// 参数:<para/>
/// 魔法类型对应MagicType0为所有mdftype<para/>
/// 魔法抗性%mdfvalue
/// </summary> /// </summary>
ExMDF = 8020, ExMDF = 8020,
/// <summary> /// <summary>
/// exhr /// 数值生命回复,参数:exhr
/// </summary> /// </summary>
ExHR = 8021, ExHR = 8021,
/// <summary> /// <summary>
/// exmr /// 数值魔法回复,参数:exmr
/// </summary> /// </summary>
ExMR = 8022 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,
} }
} }

View File

@ -0,0 +1,45 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.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;
}
}
}
}
}

View File

@ -0,0 +1,45 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.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;
}
}
}
}
}

View File

@ -0,0 +1,45 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.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;
}
}
}
}
}

View File

@ -0,0 +1,45 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.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;
}
}
}
}
}

View File

@ -45,15 +45,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
break; break;
case MagicType.None: case MagicType.None:
default: default:
character.MDF.None += ; character.MDF.SetAllValue(, false);
character.MDF.Particle += ;
character.MDF.Fleabane += ;
character.MDF.Element += ;
character.MDF.Shadow += ;
character.MDF.Bright += ;
character.MDF.PurityContemporary += ;
character.MDF.PurityNatural += ;
character.MDF.Starmark += ;
break; break;
} }
} }
@ -88,15 +80,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
break; break;
case MagicType.None: case MagicType.None:
default: default:
character.MDF.None -= ; character.MDF.SetAllValue(-, false);
character.MDF.Particle -= ;
character.MDF.Fleabane -= ;
character.MDF.Element -= ;
character.MDF.Shadow -= ;
character.MDF.Bright -= ;
character.MDF.PurityContemporary -= ;
character.MDF.PurityNatural -= ;
character.MDF.Starmark -= ;
break; break;
} }
} }

View File

@ -0,0 +1,45 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.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;
}
}
}
}
}

View File

@ -0,0 +1,45 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.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;
}
}
}
}
}

View File

@ -16,12 +16,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.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, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args) public ExSTR(Skill skill, Dictionary<string, object> args, Character? source = null, Item? item = null) : base(skill, args)

View File

@ -0,0 +1,45 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.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;
}
}
}
}
}

View File

@ -0,0 +1,42 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.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;
}
}
}
}
}

View File

@ -0,0 +1,58 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.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;
}
}
}
}
}

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.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 Oshima.FunGame.OshimaModules.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 Oshima.FunGame.OshimaModules.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));
} }

View File

@ -11,7 +11,7 @@ namespace Oshima.FunGame.OshimaModules.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));

View File

@ -33,24 +33,26 @@ namespace Oshima.FunGame.OshimaModules.Skills
private double = 0; private double = 0;
private double = 0.3; private double = 0.3;
private double = 0.25; private double = 0.25;
private bool = false; private bool = false;
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
{ {
= true;
ResetEffect(character, true); ResetEffect(character, true);
} }
public override void OnEffectLost(Character character) public override void OnEffectLost(Character character)
{ {
= false; if (character.PrimaryAttribute == PrimaryAttribute.INT)
{
ResetEffect(character, false); ResetEffect(character, false);
} }
}
private void ResetEffect(Character character, bool isAdd) private void ResetEffect(Character character, bool isAdd)
{ {
if (isAdd) if (isAdd)
{ {
= true;
character.ExEvadeRate += ; character.ExEvadeRate += ;
character.MDF.None += ; character.MDF.None += ;
character.MDF.Particle += ; character.MDF.Particle += ;
@ -64,6 +66,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
} }
else else
{ {
= false;
character.ExEvadeRate -= ; character.ExEvadeRate -= ;
character.MDF.None -= ; character.MDF.None -= ;
character.MDF.Particle -= ; character.MDF.Particle -= ;
@ -119,9 +122,9 @@ namespace Oshima.FunGame.OshimaModules.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 (!) if ()
{ {
ResetEffect(character, true); ResetEffect(character, false);
} }
} }
} }
@ -139,9 +142,9 @@ namespace Oshima.FunGame.OshimaModules.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 () if (!)
{ {
ResetEffect(character, false); ResetEffect(character, true);
} }
} }
} }

View File

@ -26,7 +26,7 @@ namespace Oshima.FunGame.OshimaModules.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)
{ {

View File

@ -22,12 +22,12 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
public override long Id => Skill.Id; public override long Id => Skill.Id;
public override string Name => "力量爆发"; public override string Name => "力量爆发";
public override string Description => $"获得 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;

View File

@ -39,8 +39,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
character.NormalAttack.SetMagicType(true, character.MagicType); character.NormalAttack.SetMagicType(true, character.MagicType);
= ; = ;
= ; = ;
character.PhysicalPenetration += ; character.ExPDR += ;
character.MagicalPenetration += ; character.MDF.SetAllValue(, false);
WriteLine($"[ {character} ] 提升了 {实际物理伤害减免 * 100:0.##}% 物理伤害减免,{实际魔法抗性 * 100:0.##}% 魔法抗性!!"); WriteLine($"[ {character} ] 提升了 {实际物理伤害减免 * 100:0.##}% 物理伤害减免,{实际魔法抗性 * 100:0.##}% 魔法抗性!!");
} }
@ -49,8 +49,8 @@ namespace Oshima.FunGame.OshimaModules.Skills
character.NormalAttack.SetMagicType(false, character.MagicType); character.NormalAttack.SetMagicType(false, character.MagicType);
= 0; = 0;
= 0; = 0;
character.PhysicalPenetration -= ; character.ExPDR -= ;
character.MagicalPenetration -= ; 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)

View File

@ -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

View File

@ -516,7 +516,7 @@ namespace Oshima.FunGame.OshimaServers
= [new 50()]; = [new 50()];
foreach (Item item in ) foreach (Item item in )
{ {
queue.Equip(character, EquipItemToSlot.Accessory1, item); queue.Equip(character, EquipSlotType.Accessory1, item);
} }
} }
} }

View File

@ -0,0 +1,665 @@
{
"黑暗之刃": {
"Id": 11543,
"Name": "黑暗之刃",
"Description": "增加 20 点攻击力。",
"BackgroundStory": "传说中的黑暗之刃,蕴含邪恶力量。",
"ItemType": 1,
"WeaponType": 1,
"Price": 0,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7001,
"Name": "黑暗之刃",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 20
}
]
}
]
}
},
"烈焰长剑": {
"Id": 11544,
"Name": "烈焰长剑",
"Description": "增加 20 点攻击力。",
"BackgroundStory": "火焰中锻造的长剑,散发着炙热气息。",
"ItemType": 1,
"WeaponType": 2,
"Price": 0,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7002,
"Name": "烈焰长剑",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 20
}
]
}
]
}
},
"银月弓": {
"Id": 11545,
"Name": "银月弓",
"Description": "增加 20 点攻击力。",
"BackgroundStory": "由稀有银月材料制成,精准无比。",
"ItemType": 1,
"WeaponType": 3,
"Price": 0,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7003,
"Name": "银月弓",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 20
}
]
}
]
}
},
"风暴步枪": {
"Id": 11546,
"Name": "风暴步枪",
"Description": "增加 20 点攻击力。",
"BackgroundStory": "捕捉风暴之力的武器,射速惊人。",
"ItemType": 1,
"WeaponType": 5,
"Price": 0,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7004,
"Name": "风暴步枪",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 20
}
]
}
]
}
},
"幽灵拳套": {
"Id": 11547,
"Name": "幽灵拳套",
"Description": "增加 20 点攻击力。",
"BackgroundStory": "无形的力量增强拳套,适合迅捷攻击。",
"ItemType": 1,
"WeaponType": 11,
"Price": 0,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7005,
"Name": "幽灵拳套",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 20
}
]
}
]
}
},
"雷霆之刃": {
"Id": 11548,
"Name": "雷霆之刃",
"Description": "增加 40 点攻击力。",
"BackgroundStory": "蕴含雷霆之力的神秘之剑,斩击时带有雷电。",
"ItemType": 1,
"WeaponType": 1,
"Price": 0,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7006,
"Name": "雷霆之刃",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 40
}
]
}
]
}
},
"龙骨重剑": {
"Id": 11549,
"Name": "龙骨重剑",
"Description": "增加 40 点攻击力。",
"BackgroundStory": "由远古龙骨锻造而成的巨剑,威力无比。",
"ItemType": 1,
"WeaponType": 2,
"Price": 0,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7007,
"Name": "龙骨重剑",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 40
}
]
}
]
}
},
"暗影弓": {
"Id": 11550,
"Name": "暗影弓",
"Description": "增加 40 点攻击力。",
"BackgroundStory": "能够穿透黑暗的弓,适合隐匿射击。",
"ItemType": 1,
"WeaponType": 3,
"Price": 0,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7008,
"Name": "暗影弓",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 40
}
]
}
]
}
},
"赤焰手枪": {
"Id": 11551,
"Name": "赤焰手枪",
"Description": "增加 40 点攻击力。",
"BackgroundStory": "能够发射赤焰的手枪,近距离威力极大。",
"ItemType": 1,
"WeaponType": 4,
"Price": 0,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7009,
"Name": "赤焰手枪",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 40
}
]
}
]
}
},
"苍穹法杖": {
"Id": 11552,
"Name": "苍穹法杖",
"Description": "增加 40 点攻击力。",
"BackgroundStory": "据说能够召唤天空之力的法杖,拥有强大魔力。",
"ItemType": 1,
"WeaponType": 8,
"Price": 0,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7010,
"Name": "苍穹法杖",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 40
}
]
}
]
}
},
"炽炎剑": {
"Id": 11553,
"Name": "炽炎剑",
"Description": "增加 60 点攻击力。",
"BackgroundStory": "这把剑燃烧着永恒的火焰,传说可以焚尽一切。",
"ItemType": 1,
"WeaponType": 1,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7011,
"Name": "炽炎剑",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 60
}
]
}
]
}
},
"狂风弓": {
"Id": 11554,
"Name": "狂风弓",
"Description": "增加 60 点攻击力。",
"BackgroundStory": "每次射击都能引发狂风,传说它由风神亲手打造。",
"ItemType": 1,
"WeaponType": 3,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7012,
"Name": "狂风弓",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 60
}
]
}
]
}
},
"破晓枪": {
"Id": 11555,
"Name": "破晓枪",
"Description": "增加 60 点攻击力。",
"BackgroundStory": "在破晓时分,这把长枪能够穿透任何黑暗。",
"ItemType": 1,
"WeaponType": 9,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7013,
"Name": "破晓枪",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 60
}
]
}
]
}
},
"幽冥匕首": {
"Id": 11556,
"Name": "幽冥匕首",
"Description": "增加 60 点攻击力。",
"BackgroundStory": "这对匕首闪烁着死亡的光芒,专为刺客所用。",
"ItemType": 1,
"WeaponType": 6,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7014,
"Name": "幽冥匕首",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 60
}
]
}
]
}
},
"天雷杖": {
"Id": 11557,
"Name": "天雷杖",
"Description": "增加 60 点攻击力。",
"BackgroundStory": "召唤天雷的法杖,拥有毁天灭地的力量。",
"ItemType": 1,
"WeaponType": 8,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7015,
"Name": "天雷杖",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 60
}
]
}
]
}
},
"飞雷剑": {
"Id": 11558,
"Name": "飞雷剑",
"Description": "增加 80 点攻击力。",
"BackgroundStory": "此剑驾驭飞雷之力,能引发猛烈的雷击。",
"ItemType": 1,
"WeaponType": 1,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7016,
"Name": "雷霆之刃",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 80
}
]
}
]
}
},
"烈焰法杖": {
"Id": 11559,
"Name": "烈焰法杖",
"Description": "增加 80 点攻击力。",
"BackgroundStory": "法杖中燃烧着不灭的火焰,象征着无尽的力量。",
"ItemType": 1,
"WeaponType": 8,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7017,
"Name": "烈焰法杖",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 80
}
]
}
]
}
},
"龙骨枪": {
"Id": 11560,
"Name": "龙骨枪",
"Description": "增加 80 点攻击力。",
"BackgroundStory": "由远古龙骨制成的长柄武器,坚不可摧。",
"ItemType": 1,
"WeaponType": 9,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7018,
"Name": "龙骨枪",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 80
}
]
}
]
}
},
"疾风双刀": {
"Id": 11561,
"Name": "疾风双刀",
"Description": "增加 80 点攻击力。",
"BackgroundStory": "双持短刀,速度如疾风般迅捷。",
"ItemType": 1,
"WeaponType": 6,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7019,
"Name": "疾风双刀",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 80
}
]
}
]
}
},
"冰晶手枪": {
"Id": 11562,
"Name": "冰晶手枪",
"Description": "增加 80 点攻击力。",
"BackgroundStory": "由冰晶打造的手枪,子弹带有极寒之力。",
"ItemType": 1,
"WeaponType": 4,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7020,
"Name": "冰晶手枪",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 80
}
]
}
]
}
},
"影刃": {
"Id": 11563,
"Description": "增加 105 点攻击力。",
"Name": "影刃",
"BackgroundStory": "藏于黑暗中的锋利刀刃,只在敌人未察觉时现身。",
"ItemType": 1,
"WeaponType": 11,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7021,
"Name": "影刃",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 105
}
]
}
]
}
},
"寒霜之弓": {
"Id": 11564,
"Name": "寒霜之弓",
"Description": "增加 105 点攻击力。",
"BackgroundStory": "弓弦上凝聚寒霜,箭矢能冻结一切。",
"ItemType": 1,
"WeaponType": 3,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7022,
"Name": "寒霜之弓",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 105
}
]
}
]
}
},
"雷鸣战斧": {
"Id": 11565,
"Name": "雷鸣战斧",
"Description": "增加 105 点攻击力。",
"BackgroundStory": "携带雷电之力的巨斧,一击之下,雷声轰鸣。",
"ItemType": 1,
"WeaponType": 2,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7023,
"Name": "雷鸣战斧",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 105
}
]
}
]
}
},
"狂怒拳套": {
"Id": 11566,
"Name": "狂怒拳套",
"Description": "增加 105 点攻击力。",
"BackgroundStory": "拳套内的力量能激发佩戴者的狂怒,造成大量伤害。",
"ItemType": 1,
"WeaponType": 10,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7024,
"Name": "狂怒拳套",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 105
}
]
}
]
}
},
"星辰法器": {
"Id": 11567,
"Name": "星辰法器",
"Description": "增加 105 点攻击力。",
"BackgroundStory": "法器中蕴含着星辰之力,每一次攻击都如天外陨石降临。",
"ItemType": 1,
"WeaponType": 7,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7025,
"Name": "星辰法器",
"SkillType": 3,
"Effects": [
{
"Id": 8001,
"exatk": 105
}
]
}
]
}
},
"圣洁之盾": {
"Id": 20001,
"Name": "圣洁之盾",
"Description": "受到的物理伤害减少 25%。",
"BackgroundStory": "传说中由圣光祝福的盾牌,能够抵挡邪恶的力量。",
"ItemType": 2,
"WeaponType": 0,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7100,
"Name": "圣光护佑",
"SkillType": 3,
"Effects": [
{
"Id": 8019,
"expdr": 0.25
}
]
}
]
}
},
"魔能法袍": {
"Id": 20005,
"Name": "魔能法袍",
"Description": "提高 20% 魔抗,增加 15 点智力。",
"BackgroundStory": "法袍蕴含着神秘的魔力,穿戴者能增强魔法威力。",
"ItemType": 2,
"WeaponType": 0,
"Skills": {
"Active": null,
"Passives": [
{
"Id": 7104,
"Name": "魔力增幅",
"SkillType": 3,
"Effects": [
{
"Id": 8005,
"exint": 15
},
{
"Id": 8020,
"mdftype": 0,
"mdfvalue": 0.2
}
]
}
]
}
}
}