using System.Collections.Generic;
using System.Linq;
namespace Funique
{
///
/// Extensions: Player Information
/// ------------------------------------------------
/// 擴充: 用戶資訊 Hash
///
public static class PlayerInformationExtensions
{
public static int RandomID(this Dictionary PlayerInfoDic, int memberLimit)
{
int LastID = UnityEngine.Random.Range(0, memberLimit);
int stopNum = 0;
while (!CheckRepeatID(PlayerInfoDic, LastID) && stopNum < 100)
{
stopNum++;
LastID = UnityEngine.Random.Range(0, memberLimit);
}
if (stopNum >= 100)
LastID = -1;
return LastID;
}
public static string RandomIP(this Dictionary PlayerInfoDic, int memberLimit)
{
int LastID = UnityEngine.Random.Range(0, memberLimit);
string IP = "192.168.1." + (LastID + 1).ToString();
int stopNum = 0;
while (!CheckRepeatIP(PlayerInfoDic, IP) && stopNum < 100)
{
stopNum++;
LastID = UnityEngine.Random.Range(0, memberLimit);
IP = "192.168.1." + (LastID + 1).ToString();
}
return IP;
}
public static bool CheckRepeatID(this Dictionary PlayerInfoDic, int ID)
{
return PlayerInfoDic.ToList().FindIndex(x => x.Value.ID == ID) != -1;
}
public static bool CheckRepeatIP(this Dictionary PlayerInfoDic, string IP)
{
return PlayerInfoDic.ToList().FindIndex(x => x.Value.IP == IP) != -1;
}
}
}