完善瓶颈和效能;修复装备主动技能无法触发的问题

This commit is contained in:
milimoe 2026-01-19 01:34:30 +08:00
parent e8af2eb243
commit 86b86a19e2
Signed by: milimoe
GPG Key ID: 9554D37E4B8991D0
31 changed files with 33 additions and 7 deletions

View File

@ -135,7 +135,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
damage *= ;
foreach (Character target in targets)
{
DamageToEnemy(character, target, damageType, magicType, damage, new()
DamageToEnemy(character, target, damageType, magicType, damage, new(character)
{
CalculateCritical = false,
CalculateReduction = true,

View File

@ -80,7 +80,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
double = actualDamage * ;
foreach (Character target in targets)
{
DamageToEnemy(character, target, damageType, magicType, , new()
DamageToEnemy(character, target, damageType, magicType, , new(character)
{
CalculateCritical = false,
CalculateReduction = true,

View File

@ -79,7 +79,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override void AfterDeathCalculation(Character death, bool hasMaster, Character? killer, Dictionary<Character, int> continuousKilling, Dictionary<Character, int> earnedMoney, Character[] assists)
{
if (Skill.Character != null && death != Skill.Character && (killer == Skill.Character || assists.Contains(Skill.Character)) && Skill is skill)
if (Skill.Character != null && death != Skill.Character && !hasMaster && (killer == Skill.Character || assists.Contains(Skill.Character)) && Skill is skill)
{
WriteLine($"[ {Skill.Character} ] 进行概念投掷:“此乃,神之概念。”");
bool result = false;

View File

@ -75,7 +75,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
double damage = * 2 / enemies.Count;
foreach (Character enemy in enemies)
{
DamageToEnemy(character, enemy, DamageType.True, MagicType, damage, new()
DamageToEnemy(character, enemy, DamageType.True, MagicType, damage, new(character)
{
CalculateShield = false,
IgnoreImmune = true,

View File

@ -48,7 +48,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
= true;
= true;
WriteLine($"[ {character} ] 发动了征服者的满层效果!");
DamageToEnemy(character, enemy, DamageType.True, magicType, , new()
DamageToEnemy(character, enemy, DamageType.True, magicType, , new(character)
{
TriggerEffects = false
});
@ -82,7 +82,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{
= true;
WriteLine($"[ {character} ] 发动了征服者!");
DamageToEnemy(character, enemy, DamageType.True, magicType, * , new()
DamageToEnemy(character, enemy, DamageType.True, magicType, * , new(character)
{
TriggerEffects = false
});

View File

@ -14,6 +14,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CastTime => 10;
public override double HardnessTime { get; set; } = 5;
public override int CanSelectTargetCount => 3;
public override double MagicBottleneck => 20 + 22 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -11,8 +11,9 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override string Description => Effects.Count > 0 ? Effects.First().Description : "";
public override double MPCost => Level > 0 ? 50 + (50 * (Level - 1)) : 50;
public override double CD => 25;
public override double CastTime => 8;
public override double CastTime => 5;
public override double HardnessTime { get; set; } = 3;
public override double MagicBottleneck => 20 + 22 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CastTime => 11;
public override double HardnessTime { get; set; } = 4;
public override int CanSelectTargetCount => 1;
public override double MagicBottleneck => 15 + 16 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -33,6 +33,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override bool IsNonDirectional => true;
public override SkillRangeType SkillRangeType => SkillRangeType.Sector;
public override int CanSelectTargetRange => 4;
public override double MagicBottleneck => 15 + 20 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CastTime => Level > 0 ? 3 + (0.5 * (Level - 1)) : 3;
public override double HardnessTime { get; set; } = 8;
public override bool SelectAllEnemies => true;
public override double MagicBottleneck => 28 + 24 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override bool IsNonDirectional => true;
public override SkillRangeType SkillRangeType => SkillRangeType.LinePass;
public override int CanSelectTargetRange => 2;
public override double MagicBottleneck => 12 + 13 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -14,6 +14,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CastTime => 8;
public override double HardnessTime { get; set; } = 6;
public override int CanSelectTargetCount => 3;
public override double MagicBottleneck => 12 + 13 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -13,6 +13,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CD => 30;
public override double CastTime => 6;
public override double HardnessTime { get; set; } = 3;
public override double MagicBottleneck => 25 + 22 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -13,6 +13,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CD => 40;
public override double CastTime => 10;
public override double HardnessTime { get; set; } = 4;
public override double MagicBottleneck => 16 + 17 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -15,6 +15,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CD => Level > 0 ? 35 - (1.5 * (Level - 1)) : 35;
public override double CastTime => 12;
public override double HardnessTime { get; set; } = 5;
public override double MagicBottleneck => 15 + 21 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -30,6 +30,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
};
}
}
public override double MagicBottleneck => 20 + 24 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -13,6 +13,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CD => 20;
public override double CastTime => 6;
public override double HardnessTime { get; set; } = 3;
public override double MagicBottleneck => 16 + 17 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override bool IsNonDirectional => true;
public override SkillRangeType SkillRangeType => SkillRangeType.Circle;
public override int CanSelectTargetRange => 3;
public override double MagicBottleneck => 16 + 17 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CastTime => 4;
public override double HardnessTime { get; set; } = 5;
public override int CanSelectTargetCount => 1;
public override double MagicBottleneck => 15 + 15 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -13,6 +13,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CD => 20;
public override double CastTime => 6;
public override double HardnessTime { get; set; } = 3;
public override double MagicBottleneck => 16 + 17 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -17,6 +17,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override bool IsNonDirectional => true;
public override SkillRangeType SkillRangeType => SkillRangeType.Circle;
public override int CanSelectTargetRange => 3;
public override double MagicBottleneck => 16 + 17 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -33,6 +33,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
};
}
}
public override double MagicBottleneck => 15 + 20 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -13,6 +13,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CD => 22;
public override double CastTime => 6;
public override double HardnessTime { get; set; } = 4;
public override double MagicBottleneck => 12 + 13 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -14,6 +14,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CastTime => 10;
public override double HardnessTime { get; set; } = 6;
public override int CanSelectTargetCount => 3;
public override double MagicBottleneck => 16 + 17 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -30,6 +30,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
};
}
}
public override double MagicBottleneck => 20 + 22 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -14,6 +14,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CastTime => 9;
public override double HardnessTime { get; set; } = 3;
public override int CanSelectTargetCount => 3;
public override double MagicBottleneck => 15 + 22 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -16,6 +16,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CastTime => 8;
public override double HardnessTime { get; set; } = 3;
public override bool SelectAllEnemies => true;
public override double MagicBottleneck => 15 + 15 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -29,6 +29,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override bool IsNonDirectional => true;
public override SkillRangeType SkillRangeType => SkillRangeType.Circle;
public override int CanSelectTargetRange => 2;
public override double MagicBottleneck => 35 + 24 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -31,6 +31,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
};
}
}
public override double MagicBottleneck => 20 + 24 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -13,6 +13,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override double CD => 30;
public override double CastTime => 10;
public override double HardnessTime { get; set; } = 4;
public override double MagicBottleneck => 12 + 13 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{

View File

@ -30,6 +30,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
};
}
}
public override double MagicBottleneck => 20 + 24 * (Level - 1);
public (Character? character = null) : base(SkillType.Magic, character)
{