public bool AddRole(Role role) { //避免多线程同时修改list. lock (RoleList) { if (RoleList.Count >= MaxRoleNum) { return(false); } //初始化角色在房间中的临时数据 RoleTempData roleTempData = role.roleTempData; roleTempData.room = this; roleTempData.status = EnumRoleStatus.Room; roleTempData.Camp = SelectCamp(); if (RoleList.Count == 0) { roleTempData.isOwner = true; } RoleList.Add(role); } return(true); }
public void RemoveRole(Role role) { //避免多线程同时修改list. lock (RoleList) { if (!RoleList.Contains(role)) { return; } RoleTempData roleTempData = role.roleTempData; roleTempData.room = null; roleTempData.status = EnumRoleStatus.None; roleTempData.Camp = 1; RoleList.Remove(role); //如果玩家当前是房主,那么退出的时候更新房主信息。 if (roleTempData.isOwner) { UpdateOwner(); roleTempData.isOwner = false; } } }
/// <summary> /// 构造函数 /// </summary> /// <param name="SActor"></param> public Role(SActor SActor) { Client_SActor = SActor; roleTempData = new RoleTempData(); }