Beispiel #1
0
 public void SetUser(int userId)
 {
     m_UserId = userId;
     m_Chess  = CacheSet.PlayerChessCache.FindKey(userId.ToString(), userId);
     if (m_Chess == null)
     {
         Init();
     }
 }
Beispiel #2
0
        private void Init()
        {
            PlayerChess newChess = new PlayerChess();

            newChess.UserId = m_UserId;
            CacheSet.PlayerChessCache.Add(newChess);
            m_Chess = newChess;
            HeroTeamLogic heroTeam = new HeroTeamLogic();

            heroTeam.SetUser(m_UserId);
            ChangeTeam(heroTeam.GetTeam());
            ResetToken();
            Reset();
        }
Beispiel #3
0
        private void SetResponseData(PlayerChess playerChess)
        {
            m_ResponsePacket.GotCoin       = playerChess.GotCoin;
            m_ResponsePacket.GotMoney      = playerChess.GotMoney;
            m_ResponsePacket.GotStarEnergy = playerChess.GotStarEnergy;
            foreach (var item in playerChess.GotItems)
            {
                m_ResponsePacket.GotItems.Add(new PBItemInfo()
                {
                    Type = item.Key, Count = item.Value
                });
            }
            GearLogic gears = new GearLogic();

            foreach (int gearId in playerChess.GotGears)
            {
                gears.SetGear(gearId);
                m_ResponsePacket.GotGears.Add(new PBGearInfo()
                {
                    Id = gears.MyGear.Id, Level = gears.MyGear.Level, Type = gears.MyGear.TypeId
                });
            }
            SoulLogic souls = new SoulLogic();

            foreach (int soulId in playerChess.GotSouls)
            {
                souls.SetSoul(soulId);
                m_ResponsePacket.GotSouls.Add(new PBSoulInfo()
                {
                    Id = souls.MySoul.Id, Type = souls.MySoul.TypeId
                });
            }
            foreach (int epigraphId in playerChess.GotEpigraphs)
            {
                m_ResponsePacket.GotEpigraphs.Add(new PBEpigraphInfo()
                {
                    Level = 1, Type = epigraphId
                });
            }
            foreach (var heroHP in playerChess.HP)
            {
                m_ResponsePacket.HeroStatus.Add(new PBLobbyHeroStatus()
                {
                    Type = heroHP.Key, CurHP = heroHP.Value
                });
            }
            m_ResponsePacket.PlayCount  = playerChess.Count;
            m_ResponsePacket.Anger      = playerChess.Anger;
            m_ResponsePacket.TokenCount = playerChess.Token;
            m_ResponsePacket.Width      = GameConsts.PlayerChess.ChessBoardWidth;
            PlayerLogic player = new PlayerLogic();

            foreach (var chessField in playerChess.ChessBoard)
            {
                PBChessField cf = new PBChessField();
                cf.Color = chessField.Color == ChessFieldColor.Empty || chessField.Color == ChessFieldColor.EmptyGray || chessField.Color == ChessFieldColor.RewardGray ?
                           (int)ChessFieldColor.EmptyGray : (int)chessField.Color;
                if (chessField.Color == ChessFieldColor.Empty || chessField.Color == ChessFieldColor.EmptyGray || chessField.Color == ChessFieldColor.RewardGray)
                {
                    var curField = chessField as RewardChessField;
                    cf.IsOpened = curField.IsOpened;
                    if (!cf.IsOpened)
                    {
                        cf.IsFree = curField.IsFree;
                        if (cf.IsFree)
                        {
                            cf.Parent = curField.ParentId;
                        }
                    }
                }
                else
                {
                    var curField = chessField as BattleChessField;
                    player.SetUser(curField.EnemyPlayerId);
                    cf.IsOpened = curField.IsOpened;
                    if (cf.IsOpened)
                    {
                        cf.FreeCount = curField.Count;
                        cf.Children.AddRange(curField.ChildrenId);
                    }
                }
                m_ResponsePacket.ChessBoard.Add(cf);
            }
            if (playerChess.MyTeam != null)
            {
                m_ResponsePacket.HeroTeam.AddRange(playerChess.MyTeam);
            }
        }