Example #1
0
 static Caches()
 {
     UserCache         = new UserCache();
     RoomCache         = new RoomCache();
     PasseServiceCache = new PasseServiceCache();
     FivebombsWithSixbombsServiceCache = new FivebombsWithSixbombsServiceCache();
     MahjongServiceCache = new MahjongServiceCache();
 }
        public void Add(string room, ICollection <MessageViewModel> messages)
        {
            var roomCache = new RoomCache(_numberOfMessages);

            if (_cache.TryAdd(room, roomCache))
            {
                roomCache.Populate(messages);
            }
        }
        public void Add(string room, ICollection<MessageViewModel> messages)
        {
            var roomCache = new RoomCache(_numberOfMessages);

            if (_cache.TryAdd(room, roomCache))
            {
                roomCache.Populate(messages);
            }
        }
Example #4
0
    public void StartBattle()
    {
        // Get Enemy + Reward info from BSP Cache info
        Vector2Int playerPos = new Vector2Int((int)player.transform.position.x, (int)player.transform.position.y);
        RoomCache  roomCache = currentBSPMap.FindCache(playerPos);

        Vector2Int cachePos = roomCache.position;

        if (cachePos == playerPos)
        {
            Debug.Log("We have info from the cache at: X: " + cachePos.x + ", Y: " + cachePos.y);
        }

        foreach (var mi in roomCache.guardians)
        {
            GameManager.Instance.AddToEnemyMonsterParty(mi);
        }

        GameManager.Instance.SetCacheBattleBounty(roomCache.goldLoot);
        GameManager.Instance.SetCacheBattleConsumableLoot(roomCache.consumableLoot);

        GameManager.Instance.StartBattle();
    }
Example #5
0
        /// <summary>
        /// 结束游戏
        /// </summary>
        /// <param name="room">房间模型</param>
        /// <param name="uid">获胜角色id</param>
        private void GameOver(FightRoomModel room, int uid)
        {
            //获取获胜者身份
            int identity = room.GetPlayerIdentity(uid);

            if (identity == Identity.LANDLORD)
            {
                //地主获胜
                #region 更新地主玩家的信息,增加豆子,增加经验
                UserModel userModel = userModelCache.GetModelByUid(uid);
                userModel.Been += room.Multiple * 100 * 2;
                userModel.AddExp(20);
                userModel.Win++;
                userModelCache.Update(userModel);
                #endregion

                #region 更新农民玩家的信息,减少豆子,增加经验
                room.GetSameIdentityUids(Identity.FARMER).ForEach(u =>
                {
                    UserModel user = userModelCache.GetModelByUid(u.Uid);
                    user.Been     -= room.Multiple * 100;
                    user.Fail++;
                    user.AddExp(10);
                    userModelCache.Update(user);
                });
                #endregion
            }
            else
            {
                //农民获胜
                #region 更新农民玩家的信息,增加豆子,增加经验
                room.GetSameIdentityUids(Identity.FARMER).ForEach(u =>
                {
                    UserModel user = userModelCache.GetModelByUid(u.Uid);
                    user.Been     += room.Multiple * 100;
                    user.Win++;
                    user.AddExp(20);
                    userModelCache.Update(user);
                });
                #endregion

                #region 更新地主玩家的信息,减少豆子,增加经验
                room.GetSameIdentityUids(Identity.LANDLORD).ForEach(u =>
                {
                    UserModel user = userModelCache.GetModelByUid(u.Uid);
                    user.Been     -= room.Multiple * 100 * 2;
                    user.Fail++;
                    user.AddExp(10);
                    userModelCache.Update(user);
                });
                #endregion
            }

            //惩罚逃跑者
            userModelCache.GetModelsByUids(room.EscapePlayerId).ForEach(u =>
            {
                u.Been -= room.Multiple * 100;
                u.Escape++;
                userModelCache.Update(u);
            });


            OverDto overDto = new OverDto();
            overDto.WinIdentity = identity;
            List <PlayerDto> playerDtos = room.GetSameIdentityUids(identity);
            List <int>       uids       = new List <int>();
            foreach (var item in playerDtos)
            {
                uids.Add(item.Uid);
            }
            overDto.WinUidList = uids;
            overDto.BeenCount  = room.Multiple * 100;
            //广播游戏结束消息
            Brocast(room, OpCode.FIGHT, FightCode.OVER, overDto);

            //摧毁匹配房间
            RoomCache roomCache = Caches.RoomCache;
            roomCache.DestoryRoom(roomCache.GetRoomModelByUid(uid));

            //摧毁战斗房间
            fightRoomCache.DestoryRoom(room);
        }
Example #6
0
 static CacheFactory()
 {
     USER_CACHE = new UserCache();
     HALL_CACHE = new HallCache();
     ROOM_CACHE = new RoomCache();
 }
Example #7
0
 static Factory()
 {
     accountCache = new AccountsCache();
     chatCache    = new RoomCache();
 }