更新技能

This commit is contained in:
milimoe 2025-04-14 01:29:38 +08:00
parent 1328fd45f9
commit 11fe82ea71
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E

View File

@ -440,7 +440,7 @@ namespace Milimoe.FunGame.Testing.Tests
} }
} }
private static async Task ActionQueue_QueueUpdated(ActionQueue queue, List<Character> characters, Character character, QueueUpdatedReason reason, string msg) private static async Task ActionQueue_QueueUpdated(ActionQueue queue, List<Character> characters, Character character, double hardnessTime, QueueUpdatedReason reason, string msg)
{ {
if (IsPlayer_OnlyTest(queue, character)) if (IsPlayer_OnlyTest(queue, character))
{ {
@ -679,10 +679,10 @@ namespace Milimoe.FunGame.Testing.Tests
private static async Task ActionQueue_TurnEnd(ActionQueue queue, Character character) private static async Task ActionQueue_TurnEnd(ActionQueue queue, Character character)
{ {
if (IsPlayer_OnlyTest(queue, character)) if (IsRoundHasPlayer_OnlyTest(queue, character))
{ {
// 暂停让玩家查看本回合日志 // 暂停让玩家查看本回合日志
Console.WriteLine("你的回合已结束,按任意键继续. . ."); Console.WriteLine("你的回合(或与你相关的回合)已结束,请查看本回合日志,然后按任意键继续. . .");
await Console.In.ReadLineAsync(); await Console.In.ReadLineAsync();
} }
await Task.CompletedTask; await Task.CompletedTask;
@ -695,6 +695,7 @@ namespace Milimoe.FunGame.Testing.Tests
{ {
await Task.Run(() => await Task.Run(() =>
{ {
Console.WriteLine(character.GetSimpleInfo());
while (type == CharacterActionType.None) while (type == CharacterActionType.None)
{ {
Console.Write("现在是你的回合1普通攻击2使用技能5使用物品6直接结束回合\r\n请告诉我你的行动"); Console.Write("现在是你的回合1普通攻击2使用技能5使用物品6直接结束回合\r\n请告诉我你的行动");
@ -745,6 +746,11 @@ namespace Milimoe.FunGame.Testing.Tests
return queue.CustomData.TryGetValue("player", out object? value) && value is Character player && player == current; return queue.CustomData.TryGetValue("player", out object? value) && value is Character player && player == current;
} }
private static bool IsRoundHasPlayer_OnlyTest(ActionQueue queue, Character current)
{
return queue.CustomData.TryGetValue("player", out object? value) && value is Character player && (player == current || (current.CharacterState != CharacterState.Casting && queue.LastRound.Targets.Any(c => c == player)));
}
public static void WriteLine(string str) public static void WriteLine(string str)
{ {
Msg += str + "\r\n"; Msg += str + "\r\n";