Files
5.24BuYu/Assets/MyGame/Scripts/Net/WebResponses/ChineseChess/ChineseChessGameClassList.cs
T
2026-03-09 09:25:01 +08:00

174 lines
4.9 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
namespace Assets.MyGame.Scripts.Net.WebResponses.ChineseChess
{
[Serializable]
public class ChineseChessGameClassList
{
/// <summary>
/// 创建房间参数
/// </summary>
public class CreateRoomParam
{
/// <summary>
/// 房间id
/// </summary>
public string roomId { get; set; }
/// <summary>
/// 用户ID
/// </summary>
public string userId { get; set; }
/// <summary>
/// 游戏类型 1 我方黑 2 我方红
/// </summary>
public int gameType { get; set; }
/// <summary>
/// 密码,可为空字符串
/// </summary>
public string password { get; set; }
/// <summary>
/// 金币数量
/// </summary>
public int gold { get; set; } = 1000;
}
[Serializable]
/// <summary>
/// 游戏房间
/// </summary>
public class ChessGameRoom
{
/// <summary>
/// 用户列表
/// </summary>
public List<RedisGameUser> users { get; set; } = new List<RedisGameUser>();
/// <summary>
/// 房间id
/// </summary>
public string roomId { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime createTime { get; set; }
/// <summary>
/// 游戏类型 1 房主黑 2 房主红
/// </summary>
public int gameType { get; set; }
/// <summary>
/// 密码,可为空字符串
/// </summary>
public string password { get; set; }
/// <summary>
/// 创建者id
/// </summary>
public string createUserId { get; set; }
/// <summary>
/// 状态 1 未开始 2 进行中 3 已结束
/// </summary>
public int state { get; set; } = 1;
/// <summary>
/// 金币数量
/// </summary>
public int gold { get; set; } = 1000;
}
[Serializable]
/// <summary>
/// 缓存中的游戏用户模型
/// </summary>
public class RedisGameUser
{
//下载头像 失败最多重试5次
public IEnumerator DownTexture2d(System.Action<Texture2D> action)
{
string url = userAvatar;
int downCount = 5;
Texture2D avatarTexture2D = new Texture2D(100, 100);
//if (avatarTexture2D == null)
for (int i = 0; i < downCount; i++)
{
using (UnityWebRequest www = UnityWebRequestTexture.GetTexture(url))
{
yield return www.SendWebRequest();
if (www.result == UnityWebRequest.Result.ConnectionError ||
www.result == UnityWebRequest.Result.ProtocolError)
{
Debug.LogError("下载失败: " + www.error);
downCount++;
if (downCount == 5)
{
action.Invoke(new Texture2D(100, 100));
yield break;
}
}
else
{
avatarTexture2D = DownloadHandlerTexture.GetContent(www);
break;
}
}
}
action.Invoke(avatarTexture2D);
}
/// <summary>
/// 链接Id
/// </summary>
public string cid { get; set; }
/// <summary>
/// 用户ID
/// </summary>
public string userId { get; set; }
/// <summary>
/// 用户名称
/// </summary>
public string userName { get; set; }
/// <summary>
/// 用户头像
/// </summary>
public string userAvatar { get; set; }
/// <summary>
/// 用户类型 1 黑方 2 红方
/// </summary>
public int type { get; set; }
/// <summary>
/// 是否掉线
/// </summary>
public bool isLeave { get; set; } = false;
/// <summary>
/// 是否准备
/// </summary>
public bool isReady { get; set; } = false;
/// <summary>
/// 金币数量
/// </summary>
public int gold { get; set; } = 0;
}
}
}