新的战技魔法路线图

This commit is contained in:
milimoe 2025-06-23 23:25:26 +08:00
parent 4737780742
commit 8d7154e212
Signed by: milimoe
GPG Key ID: 9554D37E4B8991D0
5 changed files with 196 additions and 30 deletions

View File

@ -7,7 +7,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
{
public override long Id => 4109;
public override string Name => "气绝";
public override string Description => $"此角色处于气绝状态,行动受限并且每{GameplayEquilibriumConstant.InGameTime}持续流失 {(_isPercentage ? $"{_durationDamagePercent * 100:0.##}% [ {Damage:0.##} ]" : Damage.ToString("0.##"))} 点当前生命值。来自:[ {Source} ] 的 [ {Skill.Name} ]";
public override string Description => $"此角色处于气绝状态,行动受限并且每{GameplayEquilibriumConstant.InGameTime}持续流失 {(_isPercentage ? $"{_durationDamagePercent * 100:0.##}% [ {Damage:0.##} ]" : Damage.ToString("0.##"))} 点当前生命值,此生命流失效果不会导致角色死亡。来自:[ {Source} ] 的 [ {Skill.Name} ]";
public override EffectType EffectType => EffectType.Bleed;
public override DispelledType DispelledType => DispelledType.Strong;
public override bool IsDebuff => true;
@ -73,8 +73,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
damage += GetDamage(hp, elapsed);
}
}
WriteLine($"[ {character} ] 因气绝而流失生命值!");
DamageToEnemy(Source, character, DamageType.True, MagicType, damage);
character.HP -= damage;
if (character.HP <= 0)
{
character.HP = 1;
}
GamingQueue?.CalculateCharacterDamageStatistics(Source, character, damage, DamageType.True);
WriteLine($"[ {character} ] 因气绝而流失了 {damage:0.##} 点生命值!");
}
}

View File

@ -8,7 +8,7 @@ namespace Oshima.FunGame.OshimaModules.Effects.SkillEffects
{
public override long Id => Skill.Id;
public override string Name => Skill.Name;
public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成气绝 {气绝时间}。气绝期间,目标行动受限且持续{DamageString}。";
public override string Description => $"对目标{(Skill.CanSelectTargetCount > 1 ? $" {Skill.CanSelectTargetCount} " : "")}敌人造成气绝 {气绝时间}。气绝期间,目标行动受限且每{GameplayEquilibriumConstant.InGameTime}持续{DamageString},此生命流失效果不会导致角色死亡。";
public override DispelledType DispelledType => DispelledType.Strong;
private string => _durative && _duration > 0 ? + $" {GameplayEquilibriumConstant.InGameTime}" : (!_durative && _durationTurn > 0 ? + " 回合" : $"0 {GameplayEquilibriumConstant.InGameTime}");

View File

@ -1,4 +1,5 @@
namespace Oshima.FunGame.OshimaModules.Skills
// 注:绝大多数技能名称来自《英雄传说 空之轨迹》
namespace Oshima.FunGame.OshimaModules.Skills
{
/**
* =
@ -7,28 +8,32 @@
* =
* =
* =
* = +()
* = +()
* =
*
* = ·,
* = ·,
* = ·++,
* = ·++,
* = ·(),
* = (),
* = ()+
* = ()+
* = (++),
* = (+),
* = (++),
* = ·
* = ·
* = ·++
* = ·++
* = ·()
* = ()
* = ()+
* = ()+
* = (++)
* = (+)
* = (++)
*
* = ·+(),
* = ·+,
* = ·+(),
* = ·+(),
* = ·(),
* = ·+()
* = ·+
* = ·+()
* = ·+()
* = ·()
* = ·++()
*/
* = ·+()
*
* = +()
* = 90%(AI控制行动)
*/
public enum MagicID : long
{
= 1001,
@ -57,12 +62,159 @@
= 1022,
= 1023,
= 1024,
= 1025
= 1025,
= 1026,
= 1027,
= 1028
}
/**
* = ·/()++
* = ·()
* = ()
* =
* = +
* =
* = +
* = 2
* = +()
* = 20%(+)
* = ()30%(AI控制行动)
* =
* =
* = +
* = ·()
* =
* = +(++)
* = +()/(AI控制行动)/(+)
* =
* = +
* = ·
* =
* = +
* = +
* = ·+20%10010
* =
* = ·+
* = +()+
* = ()
* =
* =
* = ·+
* = ·+++
* = ·
* =
* = 20%(+)
* = ·+()
* = ·+()
* = 50%(AI控制行动)
* =
* =
* = +()
* = ·+()
* = ·
* = +()
* =
* = ·100100
* =
* =
* =
* = +()
* = ·+
* = ()
* =
* = ++
* = +(+)
* = 30%(+)
* =
* = ()30%(+)
* = ·20%(AI控制行动)
* = +
* =
* = ·
* = ·
* =
* =
* = ·++
* =
* = 10%
* = 10%
* = 50%
*/
public enum SkillID : long
{
= 2001,
= 2002,
= 2003,
= 2004,
= 2005,
= 2006,
= 2007,
= 2008,
= 2009,
= 2010,
= 2011,
= 2012,
= 2013,
= 2014,
= 2015,
= 2016,
= 2017,
= 2018,
= 2019,
= 2020,
= 2021,
= 2022,
= 2023,
= 2024,
= 2025,
= 2026,
= 2027,
= 2028,
= 2029,
= 2030,
= 2031,
= 2032,
= 2033,
= 2034,
= 2035,
= 2036,
= 2037,
= 2038,
= 2039,
= 2040,
= 2041,
= 2042,
= 2043,
= 2044,
= 2045,
= 2046,
= 2047,
= 2048,
= 2049,
= 2050,
= 2051,
= 2052,
= 2053,
= 2054,
= 2055,
= 2056,
= 2057,
= 2058,
= 2059,
= 2060,
= 2061,
= 2062,
= 2063,
= 2064,
= 2065,
= 2066,
= 2067,
= 2068,
= 2069,
= 2070,
= 2071
}
public enum SuperSkillID : long

View File

@ -1306,6 +1306,11 @@ namespace Oshima.FunGame.OshimaServers.Service
{
int genCount = 10 - Bosses.Count;
Item[] weapons = [.. FunGameConstant.Equipment.Where(i => i.Id.ToString().StartsWith("11") && (int)i.QualityType == 5)];
Item[] armors = [.. FunGameConstant.Equipment.Where(i => i.Id.ToString().StartsWith("12") && (int)i.QualityType == 5)];
Item[] shoes = [.. FunGameConstant.Equipment.Where(i => i.Id.ToString().StartsWith("13") && (int)i.QualityType == 5)];
Item[] accessory = [.. FunGameConstant.Equipment.Where(i => i.Id.ToString().StartsWith("14") && (int)i.QualityType == 4)];
Item[] consumables = [.. FunGameConstant.AllItems.Where(i => i.ItemType == ItemType.Consumable && i.IsInGameItem)];
for (int i = 0; i < genCount; i++)
{
int nowIndex = Bosses.Count > 0 ? Bosses.Keys.Max() + 1 : 1;
@ -1324,10 +1329,6 @@ namespace Oshima.FunGame.OshimaServers.Service
boss.Level = cLevel;
boss.NormalAttack.Level = naLevel;
boss.NormalAttack.ExHardnessTime = -4;
Item[] weapons = [.. FunGameConstant.Equipment.Where(i => i.Id.ToString().StartsWith("11") && (int)i.QualityType == 4)];
Item[] armors = [.. FunGameConstant.Equipment.Where(i => i.Id.ToString().StartsWith("12") && (int)i.QualityType == 1)];
Item[] shoes = [.. FunGameConstant.Equipment.Where(i => i.Id.ToString().StartsWith("13") && (int)i.QualityType == 1)];
Item[] accessory = [.. FunGameConstant.Equipment.Where(i => i.Id.ToString().StartsWith("14") && (int)i.QualityType == 3)];
Item? a = null, b = null, c = null, d = null, d2 = null;
if (weapons.Length > 0)
{
@ -1358,7 +1359,7 @@ namespace Oshima.FunGame.OshimaServers.Service
Item? magicCardPack = GenerateMagicCardPack(5, (QualityType)4);
if (magicCardPack != null)
{
magicCardPack.QualityType = QualityType.Red;
magicCardPack.QualityType = QualityType.Gold;
foreach (Skill magic in magicCardPack.Skills.Magics)
{
magic.Level = mLevel;
@ -1370,6 +1371,14 @@ namespace Oshima.FunGame.OshimaServers.Service
Item realItem = item.Copy();
boss.Equip(realItem);
}
if (consumables.Length > 0 && boss.Items.Count < 5)
{
for (int j = 0; j < 2; j++)
{
Item consumable = consumables[Random.Shared.Next(consumables.Length)].Copy();
boss.Items.Add(consumable);
}
}
Skill bossSkill = Factory.OpenFactory.GetInstance<Skill>(0, "BOSS专属被动", []);
bossSkill.Level = 1;
bossSkill.Character = boss;

View File

@ -1007,7 +1007,7 @@ namespace Oshima.FunGame.OshimaServers.Service
Item[] shoes = [.. FunGameConstant.Equipment.Where(i => i.Id.ToString().StartsWith("13") && (int)i.QualityType == sQuality)];
Item[] accessories = [.. FunGameConstant.Equipment.Where(i => i.Id.ToString().StartsWith("14") && (int)i.QualityType == acQuality)];
Item[] consumables = [.. FunGameConstant.AllItems.Where(i => i.ItemType == ItemType.Consumable && i.IsInGameItem)];
foreach (Character character in queue.HardnessTime.Keys)
foreach (Character character in queue.AllCharacters)
{
if (addLevel)
{