添加了伤害类特效和回复生命特效;为伤害类技能统一了特效

This commit is contained in:
milimoe 2024-11-07 00:50:23 +08:00
parent 91196ff656
commit 200cee9e84
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
19 changed files with 381 additions and 208 deletions

View File

@ -752,7 +752,7 @@ namespace Oshima.Core.Utils
Skills.AddRange([new ()]);
Magics.AddRange([new (), new (), new (), new (), new (), new (), new (), new ()]);
Magics.AddRange([new (), new (), new (), new (), new (), new (), new (), new (), new (), new ()]);
}
public static void UpdateStatistics(CharacterStatistics totalStats, CharacterStatistics stats)

View File

@ -0,0 +1,61 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{
public class : Effect
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标{(TargetCount > 1 ? $" {TargetCount} " : "")}敌人造成 {BaseDamage:0.##} + {AttributeCoefficient * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(基于属性)} [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。";
public override bool TargetSelf => false;
public override int TargetCount { get; set; } = 1;
private double BaseDamage => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double AttributeCoefficient => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double Damage
{
get
{
if (Skill.Character != null)
{
double paValue = switch
{
PrimaryAttribute.STR => Skill.Character.STR,
PrimaryAttribute.AGI => Skill.Character.AGI,
_ => Skill.Character.INT,
};
return BaseDamage + AttributeCoefficient * paValue;
}
return BaseDamage;
}
}
private PrimaryAttribute { get; set; } = PrimaryAttribute.INT;
private double { get; set; } = 100;
private double { get; set; } = 50;
private double { get; set; } = 0.4;
private double { get; set; } = 0.4;
private bool IsMagic { get; set; } = true;
public (Skill skill, PrimaryAttribute , double , double , double , double , bool isMagic = true, MagicType magicType = MagicType.None, int targetCount = 1) : base(skill)
{
GamingQueue = skill.GamingQueue;
this. = ;
this. = ;
this. = ;
this. = ;
this. = ;
IsMagic = isMagic;
MagicType = magicType;
TargetCount = targetCount;
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
foreach (Character enemy in targets)
{
DamageToEnemy(caster, enemy, IsMagic, MagicType, Damage);
}
}
}
}

View File

@ -0,0 +1,43 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{
public class _带基础伤害 : Effect
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标{(TargetCount > 1 ? $" {TargetCount} " : "")}敌人造成 {BaseDamage:0.##} + {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。";
public override bool TargetSelf => false;
public override int TargetCount { get; set; } = 1;
private double BaseDamage => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double ATKCoefficient => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double Damage => BaseDamage + (ATKCoefficient * Skill.Character?.ATK ?? 0);
private double { get; set; } = 100;
private double { get; set; } = 50;
private double { get; set; } = 0.2;
private double { get; set; } = 0.2;
private bool IsMagic { get; set; } = true;
public _带基础伤害(Skill skill, double , double , double , double , bool isMagic = true, MagicType magicType = MagicType.None, int targetCount = 1) : base(skill)
{
GamingQueue = skill.GamingQueue;
this. = ;
this. = ;
this. = ;
this. = ;
IsMagic = isMagic;
MagicType = magicType;
TargetCount = targetCount;
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
foreach (Character enemy in targets)
{
DamageToEnemy(caster, enemy, IsMagic, MagicType, Damage);
}
}
}
}

View File

@ -0,0 +1,38 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{
public class _无基础伤害 : Effect
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标{(TargetCount > 1 ? $" {TargetCount} " : "")}敌人造成 {ATKCoefficient * 100:0.##}% 攻击力 [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。";
public override bool TargetSelf => false;
public override int TargetCount { get; set; } = 1;
private double ATKCoefficient => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double Damage => ATKCoefficient * Skill.Character?.ATK ?? 0;
private double { get; set; } = 1.5;
private double { get; set; } = 0.25;
private bool IsMagic { get; set; } = true;
public _无基础伤害(Skill skill, double , double , bool isMagic = true, MagicType magicType = MagicType.None, int targetCount = 1) : base(skill)
{
GamingQueue = skill.GamingQueue;
this. = ;
this. = ;
IsMagic = isMagic;
MagicType = magicType;
TargetCount = targetCount;
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
foreach (Character enemy in targets)
{
DamageToEnemy(caster, enemy, IsMagic, MagicType, Damage);
}
}
}
}

View File

@ -0,0 +1,43 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{
public class : Effect
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标{(TargetCount > 1 ? $" {TargetCount} " : "")}敌人造成 {BaseDamage:0.##} + {AttributeCoefficient * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(Skill.Character?.PrimaryAttribute ?? PrimaryAttribute.INT)} [ {Damage:0.##} ] 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。";
public override bool TargetSelf => false;
public override int TargetCount { get; set; } = 1;
private double BaseDamage => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double AttributeCoefficient => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double Damage => BaseDamage + (AttributeCoefficient * Skill.Character?.PrimaryAttributeValue ?? 0);
private double { get; set; } = 100;
private double { get; set; } = 50;
private double { get; set; } = 0.4;
private double { get; set; } = 0.4;
private bool IsMagic { get; set; } = true;
public (Skill skill, double , double , double , double , bool isMagic = true, MagicType magicType = MagicType.None, int targetCount = 1) : base(skill)
{
GamingQueue = skill.GamingQueue;
this. = ;
this. = ;
this. = ;
this. = ;
IsMagic = isMagic;
MagicType = magicType;
TargetCount = targetCount;
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
foreach (Character enemy in targets)
{
DamageToEnemy(caster, enemy, IsMagic, MagicType, Damage);
}
}
}
}

View File

@ -0,0 +1,36 @@
using Milimoe.FunGame.Core.Entity;
namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{
public class : Effect
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"为{(TargetCount > 1 ? $" {TargetCount} " : "")}目标回复其最大生命值 {百分比 * 100:0.##}% [ {Heal:0.##} ] 点生命值。";
public override bool TargetSelf => true;
public override int TargetCount { get; set; } = 1;
private double Heal => Skill.Level > 0 ? * (Skill.Character?.MaxHP ?? 0) : 0;
private double { get; set; } = 0.03;
private double { get; set; } = 0.03;
private double => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private bool CanRespawn { get; set; } = false;
public (Skill skill, double , double , int targetCount = 1, bool canRespawn = false) : base(skill)
{
GamingQueue = skill.GamingQueue;
this. = ;
this. = ;
TargetCount = targetCount;
CanRespawn = canRespawn;
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
foreach (Character target in targets)
{
HealToTarget(caster, target, Heal, CanRespawn);
}
}
}
}

View File

@ -0,0 +1,37 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{
public class : Effect
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标{(TargetCount > 1 ? $" {TargetCount} " : "")}敌人造成 {Damage:0.##} 点{(IsMagic ? CharacterSet.GetMagicDamageName(MagicType) : "")}。";
public override bool TargetSelf => false;
public override int TargetCount { get; set; } = 1;
private double Damage => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double { get; set; } = 200;
private double { get; set; } = 100;
private bool IsMagic { get; set; } = true;
public (Skill skill, double , double , bool isMagic = true, MagicType magicType = MagicType.None, int targetCount = 1) : base(skill)
{
GamingQueue = skill.GamingQueue;
this. = ;
this. = ;
IsMagic = isMagic;
MagicType = magicType;
TargetCount = targetCount;
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
foreach (Character enemy in targets)
{
DamageToEnemy(caster, enemy, IsMagic, MagicType, Damage);
}
}
}
}

View File

@ -0,0 +1,35 @@
using Milimoe.FunGame.Core.Entity;
namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{
public class : Effect
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"为{(TargetCount > 1 ? $" {TargetCount} " : "")}目标回复 {Heal:0.##} 点生命值。";
public override bool TargetSelf => true;
public override int TargetCount { get; set; } = 1;
private double Heal => Skill.Level > 0 ? + * (Skill.Level - 1) : ;
private double { get; set; } = 100;
private double { get; set; } = 30;
private bool CanRespawn { get; set; } = false;
public (Skill skill, double , double , int targetCount = 1, bool canRespawn = false) : base(skill)
{
GamingQueue = skill.GamingQueue;
this. = ;
this. = ;
TargetCount = targetCount;
CanRespawn = canRespawn;
}
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
foreach (Character target in targets)
{
HealToTarget(caster, target, Heal, CanRespawn);
}
}
}
}

View File

@ -35,6 +35,8 @@ namespace Oshima.FunGame.OshimaModules
(long)MagicID. => new (),
(long)MagicID. => new (),
(long)MagicID. => new (),
(long)MagicID. => new (),
(long)MagicID. => new (),
(long)SkillID. => new (),
(long)SuperSkillID. => new (),
(long)SuperSkillID. => new (),

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.SkillEffects;
namespace Oshima.FunGame.OshimaModules.Skills
{
@ -8,37 +9,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)MagicID.;
public override string Name => "冰霜攻击";
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => 30 + (50 * (Level - 1));
public override double MPCost => Level > 0 ? 50 + (50 * (Level - 1)) : 50;
public override double CD => 25;
public override double CastTime => 8;
public override double HardnessTime { get; set; } = 3;
public (Character? character = null) : base(SkillType.Magic, character)
{
Effects.Add(new (this));
}
}
public class (Skill skill) : Effect(skill)
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标敌人造成 {基础伤害:0.##} + {系数 * 100:0.##}% 智力 {(Skill.Level == 0 ? $"(+{ * 100:0.##}%/Lv)" : "")} [ {Damage:0.##} ] 点{CharacterSet.GetMagicDamageName(MagicType)}。";
public override bool TargetSelf => false;
public override int TargetCount => 1;
private static double => 0.4;
private double => Skill.Level != 0 ? 90 + 60 * (Skill.Level - 1) : 90;
private double => Skill.Level != 0 ? 0.35 + * (Skill.Level - 1) : 0.35;
private double Damage => + * Skill.Character?.INT ?? 0;
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
if (targets.Count > 0)
{
Character enemy = targets[0];
DamageToEnemy(caster, enemy, true, MagicType, Damage);
}
Effects.Add(new (this, PrimaryAttribute.INT, 90, 60, 0.35, 0.4));
}
}
}

View File

@ -0,0 +1,27 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.SkillEffects;
namespace Oshima.FunGame.OshimaModules.Skills
{
public class : Skill
{
public override long Id => (long)MagicID.;
public override string Name => "回复术";
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 40 + (60 * (Level - 1)) : 40;
public override double CD => 35;
public override double CastTime => 3;
public override double HardnessTime { get; set; } = 5;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public override bool CanSelectTeammate => true;
public override int CanSelectTargetCount => 1;
public (Character? character = null) : base(SkillType.Magic, character)
{
SelectTargetPredicates.Add(c => c.HP > 0 && c.HP < c.MaxHP);
Effects.Add(new (this, 70, 120));
}
}
}

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.SkillEffects;
namespace Oshima.FunGame.OshimaModules.Skills
{
@ -8,37 +9,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)MagicID.;
public override string Name => "心灵之霞";
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => 30 + (50 * (Level - 1));
public override double CD => 25;
public override double MPCost => Level > 0 ? 35 + (50 * (Level - 1)) : 35;
public override double CD => 30;
public override double CastTime => 6;
public override double HardnessTime { get; set; } = 3;
public (Character? character = null) : base(SkillType.Magic, character)
{
Effects.Add(new (this));
}
}
public class (Skill skill) : Effect(skill)
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标敌人造成 {基础伤害:0.##} + {系数 * 100:0.##}% 智力 {(Skill.Level == 0 ? $"(+{ * 100:0.##}%/Lv)" : "")} [ {Damage:0.##} ] 点{CharacterSet.GetMagicDamageName(MagicType)}。";
public override bool TargetSelf => false;
public override int TargetCount => 1;
private static double => 0.6;
private double => Skill.Level != 0 ? 90 + 60 * (Skill.Level - 1) : 90;
private double => Skill.Level != 0 ? 0.5 + * (Skill.Level - 1) : 0.5;
private double Damage => + * Skill.Character?.INT ?? 0;
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
if (targets.Count > 0)
{
Character enemy = targets[0];
DamageToEnemy(caster, enemy, true, MagicType, Damage);
}
Effects.Add(new (this, PrimaryAttribute.INT, 80, 55, 0.5, 0.6));
}
}
}

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.SkillEffects;
namespace Oshima.FunGame.OshimaModules.Skills
{
@ -8,37 +9,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)MagicID.;
public override string Name => "暗物质";
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => 30 + (50 * (Level - 1));
public override double CD => 25;
public override double CastTime => 6;
public override double HardnessTime { get; set; } = 3;
public override double MPCost => Level > 0 ? 65 + (80 * (Level - 1)) : 65;
public override double CD => 35;
public override double CastTime => 10;
public override double HardnessTime { get; set; } = 4;
public (Character? character = null) : base(SkillType.Magic, character)
{
Effects.Add(new (this));
}
}
public class (Skill skill) : Effect(skill)
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标敌人造成 {基础伤害:0.##} + {系数 * 100:0.##}% 智力 {(Skill.Level == 0 ? $"(+{ * 100:0.##}%/Lv)" : "")} [ {Damage:0.##} ] 点{CharacterSet.GetMagicDamageName(MagicType)}。";
public override bool TargetSelf => false;
public override int TargetCount => 1;
private static double => 0.6;
private double => Skill.Level != 0 ? 90 + 60 * (Skill.Level - 1) : 90;
private double => Skill.Level != 0 ? 0.5 + * (Skill.Level - 1) : 0.5;
private double Damage => + * Skill.Character?.INT ?? 0;
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
if (targets.Count > 0)
{
Character enemy = targets[0];
DamageToEnemy(caster, enemy, true, MagicType, Damage);
}
Effects.Add(new _无基础伤害(this, 1.5, 0.35, true));
}
}
}

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.SkillEffects;
namespace Oshima.FunGame.OshimaModules.Skills
{
@ -8,37 +9,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)MagicID.;
public override string Name => "次元上升";
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => 30 + (50 * (Level - 1));
public override double CD => 25;
public override double CastTime => 6;
public override double HardnessTime { get; set; } = 3;
public override double MPCost => Level > 0 ? 60 + (45 * (Level - 1)) : 60;
public override double CD => 30;
public override double CastTime => 10;
public override double HardnessTime { get; set; } = 5;
public (Character? character = null) : base(SkillType.Magic, character)
{
Effects.Add(new (this));
}
}
public class (Skill skill) : Effect(skill)
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标敌人造成 {基础伤害:0.##} + {系数 * 100:0.##}% 智力 {(Skill.Level == 0 ? $"(+{ * 100:0.##}%/Lv)" : "")} [ {Damage:0.##} ] 点{CharacterSet.GetMagicDamageName(MagicType)}。";
public override bool TargetSelf => false;
public override int TargetCount => 1;
private static double => 0.6;
private double => Skill.Level != 0 ? 90 + 60 * (Skill.Level - 1) : 90;
private double => Skill.Level != 0 ? 0.5 + * (Skill.Level - 1) : 0.5;
private double Damage => + * Skill.Character?.INT ?? 0;
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
if (targets.Count > 0)
{
Character enemy = targets[0];
DamageToEnemy(caster, enemy, true, MagicType, Damage);
}
Effects.Add(new _带基础伤害(this, 90, 110, 0.5, 0.3));
}
}
}

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.SkillEffects;
namespace Oshima.FunGame.OshimaModules.Skills
{
@ -8,37 +9,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)MagicID.;
public override string Name => "水之矢";
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => 30 + (40 * (Level - 1));
public override double MPCost => Level > 0 ? 30 + (40 * (Level - 1)) : 30;
public override double CD => 20;
public override double CastTime => 6;
public override double HardnessTime { get; set; } = 3;
public (Character? character = null) : base(SkillType.Magic, character)
{
Effects.Add(new (this));
}
}
public class (Skill skill) : Effect(skill)
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标敌人造成 {基础伤害:0.##} + {系数 * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(Skill.Character?.PrimaryAttribute ?? PrimaryAttribute.INT)} {(Skill.Level == 0 ? $"(+{ * 100:0.##}%/Lv)" : "")} [ {Damage:0.##} ] 点{CharacterSet.GetMagicDamageName(MagicType)}。";
public override bool TargetSelf => false;
public override int TargetCount => 1;
private static double => 0.45;
private double => Skill.Level != 0 ? 85 + 65 * (Skill.Level - 1) : 85;
private double => Skill.Level != 0 ? 0.35 + * (Skill.Level - 1) : 0.35;
private double Damage => + * Skill.Character?.PrimaryAttributeValue ?? 0;
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
if (targets.Count > 0)
{
Character enemy = targets[0];
DamageToEnemy(caster, enemy, true, MagicType, Damage);
}
Effects.Add(new (this, 85, 65, 0.35, 0.45));
}
}
}

View File

@ -0,0 +1,27 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.SkillEffects;
namespace Oshima.FunGame.OshimaModules.Skills
{
public class : Skill
{
public override long Id => (long)MagicID.;
public override string Name => "治愈术";
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 60 + (65 * (Level - 1)) : 60;
public override double CD => 40;
public override double CastTime => 5;
public override double HardnessTime { get; set; } = 7;
public override bool CanSelectSelf => true;
public override bool CanSelectEnemy => false;
public override bool CanSelectTeammate => true;
public override int CanSelectTargetCount => 1;
public (Character? character = null) : base(SkillType.Magic, character)
{
SelectTargetPredicates.Add(c => c.HP > 0 && c.HP < c.MaxHP);
Effects.Add(new (this, 0.3, 0.3));
}
}
}

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.SkillEffects;
namespace Oshima.FunGame.OshimaModules.Skills
{
@ -8,37 +9,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)MagicID.;
public override string Name => "火之矢";
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => 30 + (40 * (Level - 1));
public override double MPCost => Level > 0 ? 30 + (40 * (Level - 1)) : 30;
public override double CD => 20;
public override double CastTime => 6;
public override double HardnessTime { get; set; } = 3;
public (Character? character = null) : base(SkillType.Magic, character)
{
Effects.Add(new (this));
}
}
public class (Skill skill) : Effect(skill)
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标敌人造成 {基础伤害:0.##} + {系数 * 100:0.##}% {CharacterSet.GetPrimaryAttributeName(Skill.Character?.PrimaryAttribute ?? PrimaryAttribute.INT)} {(Skill.Level == 0 ? $"(+{ * 100:0.##}%/Lv)" : "")} [ {Damage:0.##} ] 点{CharacterSet.GetMagicDamageName(MagicType)}。";
public override bool TargetSelf => false;
public override int TargetCount => 1;
private static double => 0.35;
private double => Skill.Level != 0 ? 80 + 65 * (Skill.Level - 1) : 80;
private double => Skill.Level != 0 ? 0.45 + * (Skill.Level - 1) : 0.45;
private double Damage => + * Skill.Character?.PrimaryAttributeValue ?? 0;
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
if (targets.Count > 0)
{
Character enemy = targets[0];
DamageToEnemy(caster, enemy, true, MagicType, Damage);
}
Effects.Add(new (this, 80, 65, 0.45, 0.35));
}
}
}

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.SkillEffects;
namespace Oshima.FunGame.OshimaModules.Skills
{
@ -8,37 +9,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)MagicID.;
public override string Name => "石之锤";
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => 30 + (30 * (Level - 1));
public override double MPCost => Level > 0 ? 35 + (30 * (Level - 1)) : 35;
public override double CD => 22;
public override double CastTime => 6;
public override double HardnessTime { get; set; } = 4;
public (Character? character = null) : base(SkillType.Magic, character)
{
Effects.Add(new (this));
}
}
public class (Skill skill) : Effect(skill)
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标敌人造成 {基础伤害:0.##} + {系数 * 100:0.##}% 力量 {(Skill.Level == 0 ? $"(+{ * 100:0.##}%/Lv)" : "")} [ {Damage:0.##} ] 点{CharacterSet.GetMagicDamageName(MagicType)}。";
public override bool TargetSelf => false;
public override int TargetCount => 1;
private static double => 0.4;
private double => Skill.Level != 0 ? 100 + 50 * (Skill.Level - 1) : 100;
private double => Skill.Level != 0 ? 0.7 + * (Skill.Level - 1) : 0.7;
private double Damage => + * Skill.Character?.STR ?? 0;
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
if (targets.Count > 0)
{
Character enemy = targets[0];
DamageToEnemy(caster, enemy, true, MagicType, Damage);
}
Effects.Add(new (this, PrimaryAttribute.STR, 100, 50, 0.55, 0.4));
}
}
}

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Oshima.FunGame.OshimaModules.Effects.SkillEffects;
namespace Oshima.FunGame.OshimaModules.Skills
{
@ -8,37 +9,14 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override long Id => (long)MagicID.;
public override string Name => "风之轮";
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => 50 + (60 * (Level - 1));
public override double MPCost => Level > 0 ? 50 + (60 * (Level - 1)) : 50;
public override double CD => 30;
public override double CastTime => 10;
public override double HardnessTime { get; set; } = 4;
public (Character? character = null) : base(SkillType.Magic, character)
{
Effects.Add(new (this));
}
}
public class (Skill skill) : Effect(skill)
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标敌人造成 {基础伤害:0.##} + {系数 * 100:0.##}% 敏捷 {(Skill.Level == 0 ? $"(+{ * 100:0.##}%/Lv)" : "")} [ {Damage:0.##} ] 点{CharacterSet.GetMagicDamageName(MagicType)}。";
public override bool TargetSelf => false;
public override int TargetCount => 1;
private static double => 0.4;
private double => Skill.Level != 0 ? 120 + 80 * (Skill.Level - 1) : 120;
private double => Skill.Level != 0 ? 0.4 + * (Skill.Level - 1) : 0.4;
private double Damage => + * Skill.Character?.AGI ?? 0;
public override void OnSkillCasted(Character caster, List<Character> targets, Dictionary<string, object> others)
{
if (targets.Count > 0)
{
Character enemy = targets[0];
DamageToEnemy(caster, enemy, true, MagicType, Damage);
}
Effects.Add(new (this, PrimaryAttribute.AGI, 120, 80, 0.4, 0.4));
}
}
}