public int RemoveKuaFuFuBenRoleData(int roleId, GameFuBenRoleCountChanged handler) { int roleCount; bool changed = false; lock (this) { KuaFuFuBenRoleData kuaFuFuBenRoleData; if (RoleDict.TryGetValue(roleId, out kuaFuFuBenRoleData)) { RoleDict.Remove(roleId); changed = true; if (kuaFuFuBenRoleData.Side == 1) { RoleCountSide1--; } else { RoleCountSide2--; } } roleCount = RoleDict.Count; if (changed && null != handler) { handler(this, roleCount); } return(roleCount); } }
public int AddKuaFuFuBenRoleData(KuaFuFuBenRoleData kuaFuFuBenRoleData, GameFuBenRoleCountChanged handler) { int roleCount = -1; lock (this) { if (this.RoleDict.Count < Consts.HuanYingSiYuanRoleCountTotal && !this.RoleDict.ContainsKey(kuaFuFuBenRoleData.RoleId)) { if (this.RoleCountSide1 < Consts.HuanYingSiYuanRoleCountPerSide) { this.RoleCountSide1++; kuaFuFuBenRoleData.Side = 1; } else { if (this.RoleCountSide2 >= Consts.HuanYingSiYuanRoleCountPerSide) { return(roleCount); } this.RoleCountSide2++; kuaFuFuBenRoleData.Side = 2; } this.RoleDict[kuaFuFuBenRoleData.RoleId] = kuaFuFuBenRoleData; roleCount = this.RoleDict.Count; if (null != handler) { handler(this, roleCount); } return(roleCount); } } return(roleCount); }