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); } }
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(); }
/// <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); }
static CacheFactory() { USER_CACHE = new UserCache(); HALL_CACHE = new HallCache(); ROOM_CACHE = new RoomCache(); }
static Factory() { accountCache = new AccountsCache(); chatCache = new RoomCache(); }