using System;
using System.Threading;
using OpenCvSharp;
namespace BetterGenshinImpact.GameTask.AutoFight.Model;
public class MultiGameStatus
{
///
/// 是否在联机状态
///
public bool IsInMultiGame { get; set; } = false;
///
/// 是不是房主
/// 我是房主的情况下
/// 1人联机:最多控制4名角色
/// 2人联机:最多控制2名角色
/// 3人联机:最多控制2名角色
/// 4人联机:最多控制1名角色
/// 我不是房主的情况下
/// 2人联机:最多控制2名角色
/// 3人联机:最多控制1名角色
/// 4人联机:最多控制1名角色
///
public bool IsHost { get; set; } = false;
///
/// 玩家数量,最少1人(我自己)
///
public int PlayerCount { get; set; } = 1;
///
/// 我能控制的最大角色数量
///
public int MaxControlAvatarCount
{
get
{
if (!IsInMultiGame)
{
return 4;
}
if (IsHost)
{
return PlayerCount switch
{
1 => 4,
2 => 2,
3 => 2,
4 => 1,
_ => throw new ArgumentOutOfRangeException(nameof(PlayerCount), "自己为主机时,联机总人数异常")
};
}
else
{
return PlayerCount switch
{
2 => 2,
3 => 1,
4 => 1,
_ => throw new ArgumentOutOfRangeException(nameof(PlayerCount), "进入别人世界时,联机总人数异常")
};
}
}
}
}