修复问题

This commit is contained in:
milimoe 2024-10-30 02:14:35 +08:00
parent fd2bf430c3
commit 2d74f76bd4
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E

View File

@ -322,15 +322,27 @@ namespace Oshima.Core.Utils
// 团队模式 // 团队模式
if (isTeam) if (isTeam)
{ {
// 打乱原始数组的顺序 // 打乱角色列表
IEnumerable<Character> shuffledCharacters = characters.OrderBy(c => Random.Shared.Next()); List<Character> shuffledCharacters = characters.OrderBy(c => Random.Shared.Next()).ToList();
// 计算分割点 // 创建两个团队
int splitIndex = shuffledCharacters.Count() / 2; List<Character> group1 = [];
List<Character> group2 = [];
// 分成两个数组 // 将角色交替分配到两个团队中
List<Character> group1 = shuffledCharacters.Take(splitIndex).ToList(); for (int cid = 0; cid < shuffledCharacters.Count; cid++)
List<Character> group2 = shuffledCharacters.Skip(splitIndex).ToList(); {
if (cid % 2 == 0)
{
group1.Add(shuffledCharacters[cid]);
}
else
{
group2.Add(shuffledCharacters[cid]);
}
}
// 添加到团队字典
actionQueue.Teams.Add("队伍一", group1); actionQueue.Teams.Add("队伍一", group1);
actionQueue.Teams.Add("队伍二", group2); actionQueue.Teams.Add("队伍二", group2);
} }
@ -346,23 +358,31 @@ namespace Oshima.Core.Utils
Msg = ""; Msg = "";
if (i == 998) if (i == 998)
{ {
WriteLine($"=== 终局审判 ==="); if (isTeam)
Dictionary<Character, double> = [];
foreach (Character c in characters)
{ {
.TryAdd(c, c.HP / c.MaxHP); WriteLine("两队打到天昏地暗,流局了!!");
break;
} }
double max = .Values.Max(); else
Character winner = .Keys.Where(c => [c] == max).First();
WriteLine("[ " + winner + " ] 成为了天选之人!!");
foreach (Character c in characters.Where(c => c != winner && c.HP > 0))
{ {
WriteLine("[ " + winner + " ] 对 [ " + c + " ] 造成了 99999999999 点真实伤害。"); WriteLine($"=== 终局审判 ===");
actionQueue.DeathCalculation(winner, c); Dictionary<Character, double> = [];
foreach (Character c in characters)
{
.TryAdd(c, c.HP / c.MaxHP);
}
double max = .Values.Max();
Character winner = .Keys.Where(c => [c] == max).First();
WriteLine("[ " + winner + " ] 成为了天选之人!!");
foreach (Character c in characters.Where(c => c != winner && c.HP > 0))
{
WriteLine("[ " + winner + " ] 对 [ " + c + " ] 造成了 99999999999 点真实伤害。");
actionQueue.DeathCalculation(winner, c);
}
actionQueue.EndGameInfo(winner);
result.Add(Msg);
break;
} }
actionQueue.EndGameInfo(winner);
result.Add(Msg);
break;
} }
// 检查是否有角色可以行动 // 检查是否有角色可以行动