Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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;
         }
     }
 }
Esempio n. 3
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="SActor"></param>
 public Role(SActor SActor)
 {
     Client_SActor = SActor;
     roleTempData  = new RoleTempData();
 }