コード例 #1
0
ファイル: KuaFuData.cs プロジェクト: chenchungit/ky
        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);
            }
        }
コード例 #2
0
        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);
        }