diff --git a/Entity/Skill/NormalAttack.cs b/Entity/Skill/NormalAttack.cs
index 1cf8c98..25f3af3 100644
--- a/Entity/Skill/NormalAttack.cs
+++ b/Entity/Skill/NormalAttack.cs
@@ -273,6 +273,22 @@ namespace Milimoe.FunGame.Core.Entity
return selectable;
}
+ ///
+ /// 实际可选取的目标数量
+ ///
+ public int RealCanSelectTargetCount(List enemys, List teammates)
+ {
+ int count = CanSelectTargetCount;
+ if (SelectAllTeammates)
+ {
+ return teammates.Count + 1;
+ }
+ if (SelectAllEnemies)
+ {
+ return enemys.Count;
+ }
+ return count;
+ }
///
/// 选取普攻目标
diff --git a/Entity/Skill/Skill.cs b/Entity/Skill/Skill.cs
index 01c8675..65c315c 100644
--- a/Entity/Skill/Skill.cs
+++ b/Entity/Skill/Skill.cs
@@ -377,6 +377,23 @@ namespace Milimoe.FunGame.Core.Entity
return selectable;
}
+ ///
+ /// 实际可选取的目标数量
+ ///
+ public int RealCanSelectTargetCount(List enemys, List teammates)
+ {
+ int count = CanSelectTargetCount;
+ if (SelectAllTeammates)
+ {
+ return teammates.Count + 1;
+ }
+ if (SelectAllEnemies)
+ {
+ return enemys.Count;
+ }
+ return count;
+ }
+
///
/// 选取技能目标
///
diff --git a/Interface/Entity/Typical/ISkill.cs b/Interface/Entity/Typical/ISkill.cs
index 4ac6619..8d1ce21 100644
--- a/Interface/Entity/Typical/ISkill.cs
+++ b/Interface/Entity/Typical/ISkill.cs
@@ -110,5 +110,13 @@ namespace Milimoe.FunGame.Core.Interface.Entity
///
///
public List GetSelectableTargets(Character caster, List enemys, List teammates);
+
+ ///
+ /// 实际可选取的目标数量
+ ///
+ ///
+ ///
+ ///
+ public int RealCanSelectTargetCount(List enemys, List teammates);
}
}
diff --git a/Model/GamingQueue.cs b/Model/GamingQueue.cs
index c063a88..575a064 100644
--- a/Model/GamingQueue.cs
+++ b/Model/GamingQueue.cs
@@ -580,19 +580,12 @@ namespace Milimoe.FunGame.Core.Model
{
if (_queue.Count == 0) return null;
- // 硬直时间为 0 的角色或预释放爆发技的角色先行动,取第一个
- Character? character = _queue.FirstOrDefault(c => c.CharacterState == CharacterState.PreCastSuperSkill);
- if (character is null)
+ // 硬直时间为 0 的角色
+ Character? character = null;
+ Character temp = _queue[0];
+ if (_hardnessTimes[temp] == 0)
{
- Character temp = _queue[0];
- if (_hardnessTimes[temp] == 0)
- {
- character = temp;
- }
- }
- else
- {
- _hardnessTimes[character] = 0;
+ character = temp;
}
if (character != null)
@@ -1282,8 +1275,8 @@ namespace Milimoe.FunGame.Core.Model
character.CharacterState == CharacterState.ActionRestricted ||
character.CharacterState == CharacterState.BattleRestricted)
{
- baseTime += 5;
- WriteLine($"[ {character} ] {CharacterSet.GetCharacterState(character.CharacterState)},放弃行动将额外获得 5 {GameplayEquilibriumConstant.InGameTime}硬直时间!");
+ baseTime += 3;
+ WriteLine($"[ {character} ] {CharacterSet.GetCharacterState(character.CharacterState)},放弃行动将额外获得 3 {GameplayEquilibriumConstant.InGameTime}硬直时间!");
}
decided = true;
WriteLine($"[ {character} ] 结束了回合!");
@@ -1305,7 +1298,7 @@ namespace Milimoe.FunGame.Core.Model
}
else
{
- if (baseTime == 0) baseTime += 10;
+ if (baseTime == 0) baseTime += 8;
decided = true;
WriteLine($"[ {character} ] 完全行动不能!");
}
@@ -2228,6 +2221,7 @@ namespace Milimoe.FunGame.Core.Model
Skill? skill = item.Skills.Active;
if (skill != null)
{
+ skill.GamingQueue = this;
List targets = await SelectTargetsAsync(character, skill, enemys, teammates);
if (targets.Count > 0)
{