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

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 = "";
(actionQueue);
(actionQueue, true);
if (isWeb) result.Add("=== 空投 ===\r\n" + Msg);
double = 80;
@ -506,17 +506,22 @@ namespace Oshima.Core.Utils
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)];
a.SetGamingQueue(queue);
if (first)
{
a = Items.Where(row => row.Name == "魔能法袍").FirstOrDefault() ?? a;
}
Item[] = [a];
WriteLine($"社区送温暖了,现在向所有人发放 [ {a.Name} ]");
foreach (Character character in queue.Queue)
{
foreach (Item item in )
{
queue.Equip(character, item.Copy(1));
Item realItem = item.Copy(1);
realItem.SetGamingQueue(queue);
queue.Equip(character, realItem);
}
}
WriteLine("");

View File

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

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 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 Oshima.FunGame.OshimaModules.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 Oshima.FunGame.OshimaModules.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));
}

View File

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

View File

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

View File

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

View File

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

View File

@ -516,7 +516,7 @@ namespace Oshima.FunGame.OshimaServers
= [new 50()];
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
}
]
}
]
}
}
}