Exemple #1
0
    public void DistributeCards()
    {
        Dictionary <string, List <int> > _shuffleAllCoinAndTreasurePositions = ResourceManager.m_Instance.ShuffleAllCoinAndTreasurePositions();
        List <int> _playerInstantiationPositions = GetPlayerInstantiationPositions();

        List <Card>     _shufflePowerHourCards = CardManager.m_Instance.ShufflePowerOrHourCards();
        List <TrapCard> _shuffleTrapCards      = CardManager.m_Instance.ShuffleTrapCards();

        Queue <Card>     _queueOfPowerHourCards = new Queue <Card>();
        Queue <TrapCard> _queueOfTrapCards      = new Queue <TrapCard>();

        _shufflePowerHourCards.ForEach((x) => _queueOfPowerHourCards.Enqueue(x));
        _shuffleTrapCards.ForEach((x) => _queueOfTrapCards.Enqueue(x));

        if (GameManager.m_Instance.m_GameType == GameType.Offline)
        {
            for (int i = 0; i < GameManager.m_Instance.m_JoinedPlayersInfo.Count; i++)
            {
                PawnInfo _pawnInfo = new PawnInfo();
                _pawnInfo.m_InstantiationPosition = new Vector2Int(0, _playerInstantiationPositions[i]);
                _pawnInfo.m_PlayerInfo            = GameManager.m_Instance.m_JoinedPlayersInfo[i];
                _pawnInfo.m_NumberOfFuelCards     = m_initialNumberOfFuelCards;
                m_allPawnInfos.Add(_pawnInfo);
            }
            foreach (var _pawnInfo in m_allPawnInfos)
            {
                _pawnInfo.m_PowerAndHourCards = new Card[r_numberOfPowerHourCardInHand];
                _pawnInfo.m_TrapCards         = new TrapCard[r_numberOfTrapCardInHand];
                for (int i = 0; i < r_numberOfPowerHourCardInHand; i++)
                {
                    _pawnInfo.m_PowerAndHourCards[i] = _queueOfPowerHourCards.Dequeue();
                }

                for (int i = 0; i < r_numberOfTrapCardInHand; i++)
                {
                    _pawnInfo.m_TrapCards[i] = _queueOfTrapCards.Dequeue();
                }
            }

            CardManager.m_Instance.SetRemainingCards(_queueOfPowerHourCards.ToList(), _queueOfTrapCards.ToList());
            ResourceManager.m_Instance.SetAllCoinAndTreasuresPositions(_shuffleAllCoinAndTreasurePositions[ResourceManager.r_CoinKey], _shuffleAllCoinAndTreasurePositions[ResourceManager.r_TreasureKey]);
            m_currentTimeOfGMT0 = Random.Range(1, r_TotalLongitude + 1);
            StartGameplay();
        }
        else if (GameManager.m_Instance.m_GameType == GameType.Online)
        {
            Dictionary <string, Dictionary <string, string> > _playerUIDWithCards = new Dictionary <string, Dictionary <string, string> >();
            foreach (var _joinedPlayer in GameManager.m_Instance.m_JoinedPlayersInfo)
            {
                Dictionary <string, string> _cards = new Dictionary <string, string>();
                for (int i = 0; i < r_numberOfPowerHourCardInHand; i++)
                {
                    Card _card = _queueOfPowerHourCards.Dequeue();
                    _cards.Add(_card.name, _card.GetType().ToString());
                }

                for (int i = 0; i < r_numberOfTrapCardInHand; i++)
                {
                    TrapCard _trapCard = _queueOfTrapCards.Dequeue();
                    _cards.Add(_trapCard.name, _trapCard.GetType().ToString());
                }
                _playerUIDWithCards.Add(_joinedPlayer.m_PlayerUID, _cards);
            }
            Toast.m_Instance.ShowMessage("Adding game info to database...");
            int _currentTimeOfGMT0 = Random.Range(1, r_TotalLongitude + 1);
            FirebaseRealtimeDatabase.m_Instance.AddGameInfoToDatabase(GameManager.m_Instance.m_GameInfo, _queueOfPowerHourCards.ToList(), _queueOfTrapCards.ToList(), _shuffleAllCoinAndTreasurePositions, _playerInstantiationPositions, _playerUIDWithCards, _currentTimeOfGMT0);
        }
    }
Exemple #2
0
    public void DecodeAllShuffleCardsAndPlayerInstantiationPositions(
        Dictionary <string, object> _remainingPowerHourCardsDict,
        Dictionary <string, object> _remaininTrapCardsDict,
        Dictionary <string, object> _shuffleAllCoinAndTreasurePositionsDict,
        Dictionary <string, object> _playerUIDWithInstantiationPositionAndCardsDict,
        object _currentGMTTimeAt0Object
        )
    {
        List <Card> _remainigPowerHourCards = new List <Card>();

        foreach (var _cardName in _remainingPowerHourCardsDict)
        {
            Card _card = CardManager.m_Instance.GetPowerOrHourCardByName(_cardName.Key);
            if (_card != null)
            {
                _remainigPowerHourCards.Add(_card);
            }
        }
        List <TrapCard> _remainingTrapCards = new List <TrapCard>();

        foreach (var _cardName in _remaininTrapCardsDict)
        {
            TrapCard _trapCard = CardManager.m_Instance.GetTrapCardByName(_cardName.Key);
            if (_trapCard != null)
            {
                _remainingTrapCards.Add(_trapCard);
            }
        }

        Dictionary <string, List <int> > _shuffleAllCoinAndTreasurePositions = new Dictionary <string, List <int> >();

        foreach (var _value in _shuffleAllCoinAndTreasurePositionsDict)
        {
            List <object> _objs      = _value.Value as List <object>;
            List <int>    _listOfInt = new List <int>();
            foreach (var _position in _objs)
            {
                int i = 0;
                if (int.TryParse(_position.ToString(), out i))
                {
                    _listOfInt.Add(i);
                }
            }
            _shuffleAllCoinAndTreasurePositions.Add(_value.Key, _listOfInt);
        }

        CardManager.m_Instance.SetRemainingCards(_remainigPowerHourCards, _remainingTrapCards);
        ResourceManager.m_Instance.SetAllCoinAndTreasuresPositions(_shuffleAllCoinAndTreasurePositions[ResourceManager.r_CoinKey], _shuffleAllCoinAndTreasurePositions[ResourceManager.r_TreasureKey]);

        foreach (var _playerUID in _playerUIDWithInstantiationPositionAndCardsDict)
        {
            PlayerInfo _playerInfo = null;
            foreach (var _joinedPlayer in GameManager.m_Instance.m_JoinedPlayersInfo)
            {
                if (_playerUID.Key == _joinedPlayer.m_PlayerUID)
                {
                    _playerInfo = _joinedPlayer;
                }
            }
            if (_playerInfo != null)
            {
                PawnInfo _pawnInfo = new PawnInfo();
                _pawnInfo.m_PlayerInfo = _playerInfo;
                Dictionary <string, object> _dict = _playerUID.Value as Dictionary <string, object>;
                int result = 0;
                int.TryParse(_dict[FirebaseRealtimeDatabase.r_initialFuelCardNumber].ToString(), out result);
                _pawnInfo.m_NumberOfFuelCards = result;

                result = 0;
                int.TryParse(_dict[FirebaseRealtimeDatabase.r_playerInstantiationPosition].ToString(), out result);
                _pawnInfo.m_InstantiationPosition = new Vector2Int(0, result);

                _dict = _dict[FirebaseRealtimeDatabase.r_cards] as Dictionary <string, object>;
                int p = 0;
                int t = 0;
                _pawnInfo.m_PowerAndHourCards = new Card[r_numberOfPowerHourCardInHand];
                _pawnInfo.m_TrapCards         = new TrapCard[r_numberOfTrapCardInHand];
                foreach (var _cardKeyValue in _dict)
                {
                    if (_cardKeyValue.Value.ToString() == typeof(PowerCard).ToString() || _cardKeyValue.Value.ToString() == typeof(HourCard).ToString())
                    {
                        Card _card = CardManager.m_Instance.GetPowerOrHourCardByName(_cardKeyValue.Key);

                        if (_card != null)
                        {
                            if (p < r_numberOfPowerHourCardInHand)
                            {
                                _pawnInfo.m_PowerAndHourCards[p] = _card;
                                p++;
                            }
                        }
                    }
                    else if (_cardKeyValue.Value.ToString() == typeof(TrapCard).ToString())
                    {
                        TrapCard _trapCard = CardManager.m_Instance.GetTrapCardByName(_cardKeyValue.Key);
                        if (_trapCard != null)
                        {
                            if (t < r_numberOfTrapCardInHand)
                            {
                                _pawnInfo.m_TrapCards[t] = _trapCard;
                                t++;
                            }
                        }
                    }
                }

                m_allPawnInfos.Add(_pawnInfo);
            }
        }
        int _result = 0;

        if (int.TryParse(_currentGMTTimeAt0Object.ToString(), out _result))
        {
            m_currentTimeOfGMT0 = _result;
        }

        StartGameplay();
    }
Exemple #3
0
        protected override void Update(GameTime gameTime)
        {
            Camera.Update(gameTime);

            /*
             * if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed ||
             *  Keyboard.GetState().IsKeyDown(Keys.Escape))
             *  Exit();
             */

            // Mouse
            //ToDo 1 Fix mouse getting 'stuck' in fullscreen mode
            MouseCoordinates = Cursor.GetMouseCoordinates();
            Cursor.GetMouseCoordinates();
            Cursor.UpdateCursorRectangleLocation();

            //Update Tree Foliage Transparency
            Trees.ChangeTreeFoliageTransparency();


            if (Debug.Debug.IsDebugEnabled)
            {
                fps.Update(gameTime);
            }


            if (ResolutionChanged)
            {
                ResolutionHandler.SetResolution();
                Graphics.ApplyChanges();
            }


            Camera.Position = CameraPosition;


            #region User Interface

            if (BuildMenuPane.IsBuildMenuWindowVisible)
            {
                BuildMenuRollOverText.GenerateRollOverText();
                BuildMenuPane.CloseBuildMenu();
            }


            if (BuildingPlacementHandler.IsPlacingBuilding)
            {
                BuildingPlacementHandler.CheckIfGroundClear(Blueprint);
                BuildingPlacementHandler.PlaceAStructure(BuildingPlacementHandler.SetBuildingTexture());
            }


            //Menu
            if (!Bulldozer.IsBulldozerActive)
            {
                BuildMenuInteraction.CheckCursorMenuInteraction(Cursor.CursorRectangle);
            }

            if (BuildMenuInteraction.IsBuildMenuOpen && !Bulldozer.IsBulldozerActive)
            {
                BuildMenuInteraction.CheckBuildIconInteraction();
            }

            if (BuildMenuPane.IsBuildMenuWindowVisible && !Bulldozer.IsBulldozerActive)
            {
                BuildMenuPane.UpdateBuildMenuWindowLocation();
            }


            // Details Pane
            DetailsPaneInteraction.CheckForDetailsPaneInteraction();
            DetailsPaneMovement.UpdateDetailsPaneLocation();

            // Selected Pawn
            if (SelectedPawn.SelectedHuman != null)
            {
                SelectedPawn.UpdateIndicator(SelectedPawn.SelectedHuman);
                ExtendIconChecks.CheckExtendHandClicked();
                PawnInfo.UpdatePawnInfo();
            }
            #endregion

            #region PawnInfoSB
            PawnCursorInteraction.CheckForCursorPawnInteraction();

            if (PawnInfo.IsPawnInfoVisible)
            {
                PawnInfo.ClosePawnInfo();
            }

            if (ExtendIconChecks.IsWeaponIconListVisible)
            {
                EquipWeapon.CheckWeaponIconInteraction();
                CreateItemIcons.UpdateWeaponIconList();
            }

            #endregion

            ZedDeath.CheckZedsHealth();
            RuinedBuilding.CheckBuildingsHealth();
            HumanDeath.CheckHumansHealth();

            ZedController.IncreaseZeds();


            //Building Removal
            if (Bulldozer.IsBulldozerActive)
            {
                Bulldozer.DemolishStructure();
            }

            //Movement
            //HumanMovement.RunFromZeds();
            PathFind.MovePawns();


            CheckMouseStateChange.UpdateMouseState();
            KeyBindings.CheckForKeyInput();
            KeyBindings.CheckForMouseInput();

            Resource.SetResourcesForGathering();


            base.Update(gameTime);
        }