Example #1
0
        public ExtSupport(ExtStep step, WCFSupport wcfSupport)
        {
            Step       = step;
            WCFSupport = wcfSupport;
            User       = step.ExtGameUser;

            UpdateView();
        }
 private void ExtGame_GameUserEvent(ExtGameUser user, bool isAdd)
 {
     if (isAdd)
     {
         if (user.WCFGameUser.HomeType == null)
         {
             Items.Add(new GamePersonItemViewModel()
             {
                 GameUserId = user.WCFGameUser.Id, User = user.GPUser
             });
         }
         else
         {
             Items.Insert(0, new GamePersonItemViewModel()
             {
                 GameUserId = user.WCFGameUser.Id, User = user.GPUser, HomeType = user.ExtHomeType
             });
         }
     }
     else
     {
         Items.Remove(Items.SingleOrDefault(p => p.GameUserId == user.WCFGameUser.Id));
     }
 }
        //проверяет возможность переброски
        private bool rCheckTransfer(ExtTerrain startTerrain, ExtTerrain endTerrain, List <ExtTerrain> checkedTerrain, ExtGameUser holder)
        {
            //цикл по своим соседним морям
            foreach (var item in startTerrain.JoinTerrainCol.Where(p => p.WCFTerrain.TerrainType == "Море" && p.ExtHolderUser == holder))
            {
                //игнорируем ранее проверенные моря
                if (checkedTerrain.Contains(item))
                {
                    continue;
                }

                //граничит?
                if (item.JoinTerrainCol.Contains(endTerrain))
                {
                    return(true);
                }

                //добавляем в игнор
                checkedTerrain.Add(item);

                //рекурсия
                if (rCheckTransfer(item, endTerrain, checkedTerrain, holder))
                {
                    return(true);
                }
            }

            return(false);
        }
Example #4
0
 private void OnGameUserEvent(ExtGameUser user, bool type)
 {
     GameUserEvent?.Invoke(user, type);
 }