RoomMessage.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using Mirror;
  2. using System;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using UnityEngine;
  6. namespace DTYJ
  7. {
  8. [Flags]
  9. public enum RoleName
  10. {
  11. 值班站长 = 1 << 1,
  12. 车站值班员 = 1 << 2,
  13. 站务员_站台 = 1 << 3,
  14. 站务员_站厅 = 1 << 4,
  15. }
  16. /// <summary>
  17. /// 用户信息
  18. /// </summary>
  19. public struct ServerUserInfoMessage : NetworkMessage
  20. {
  21. public Guid userId;
  22. public string name;
  23. }
  24. /// <summary>
  25. /// Client Send to server
  26. /// </summary>
  27. public struct ServerRoomMessage : NetworkMessage
  28. {
  29. public ServerRoomOperation Operation;
  30. public RoleName roleName;
  31. public bool isMan;
  32. }
  33. public enum ServerRoomOperation
  34. {
  35. None = 0,
  36. Join,
  37. RoleQuit,
  38. }
  39. /// <summary>
  40. /// Server send to client
  41. /// </summary>
  42. public struct ClientRoomMessage : NetworkMessage
  43. {
  44. public ClientRoomOperation operation;
  45. /// <summary>
  46. /// 所有已经选择了的角色列表
  47. /// </summary>
  48. public RoleName roleNameList_Joined;
  49. /// <summary>
  50. /// 客户端加入的角色
  51. /// </summary>
  52. public RoleName roleName_Joined;
  53. }
  54. public enum ClientRoomOperation
  55. {
  56. None = 0,
  57. Joined,
  58. JoinedList,
  59. }
  60. public class RoomInfo
  61. {
  62. RoleName roleJoined;
  63. //public Guid roomId;
  64. //public string roomName;
  65. //public uint zuoyeConfigID;//作业配置文件ID
  66. //public List<User> joinedUsers = new List<User>();
  67. ///// <summary>
  68. ///// 需要由用户扮演的真实角色
  69. ///// </summary>
  70. //public RoleName realRoleName;
  71. ///// <summary>
  72. ///// 电脑自动控制的角色
  73. ///// </summary>
  74. //public RoleName aiRoleName { get { return zuoYeConfig.RoleNames ^ realRoleName; } }
  75. //public ZuoYeConfig zuoYeConfig { get { return OnlineCtrl.Instance.GetZuoYeConfig(zuoyeConfigID); } }
  76. //public int maxPlayerCount { get { return Utility.GetFlagEnumCount((int)realRoleName); } }
  77. //public int joinedPlayerCount { get { return joinedUsers.Count; } }
  78. //public bool isFull { get { return joinedPlayerCount >= maxPlayerCount; } }
  79. //public bool isAI(RoleName roleName)
  80. //{
  81. // return (aiRoleName & roleName) == roleName;
  82. //}
  83. //public string GetPrettyName(RoleName roleName)
  84. //{
  85. // string prettyName = $"{roleName}({(isAI(roleName) ? "电脑" : joinedUsers.Where(u => u.roleName == roleName).First()?.name)})";
  86. // return prettyName;
  87. //}
  88. ///// <summary>
  89. ///// 创建的网络物体
  90. ///// </summary>
  91. //[NonSerialized]
  92. //public readonly List<GameObject> gameObjects = new List<GameObject>();
  93. //public override string ToString()
  94. //{
  95. // return $"roomId:{roomId} \nroomName:{roomName} \nzuoYeConfigID:{zuoyeConfigID} \nmaxPlayerCount:{maxPlayerCount} \njoinedPlayerCount:{joinedPlayerCount}";
  96. //}
  97. }
  98. }