示例#1
0
        private BaseWave GenerateWave()
        {
            var pointsAvailable = 0.0;

            if (PlayerDataManager.PlayerHasBeatGame)
            {
                _availableEnemyTypes = null;

                var minPoints = AvailableEnemyTypes.Min(t => t.PointValue());
                var addPoints = StartingSatoshis * CurrentWaveNumber * (CurrentWaveNumber / 15f);
                pointsAvailable = minPoints + addPoints;
            }
            else
            {
                pointsAvailable = LastWave.PointValue + (StartingSatoshis * CurrentWaveNumber * (CurrentWaveNumber / 30));
            }

            var generatedWave = MachineLearningManager.GenerateWave(AvailableEnemyTypes, pointsAvailable);

            if (generatedWave.EnemyTypes.Count == 0 || generatedWave.EnemyCounts.TotalEnemies == 0)
            {
                var doh = 1;
            }
            return(generatedWave);
        }
        private void AssignGumButtonEvents()
        {
            SetInfoBarControls();

            //Assign buildings to build buttons
            var listOfAllTowerTypes       = GameStateManager.GetAllTowers();
            var listOfAvailableTowerTypes = PlayerDataManager.GetAvailableTowers();

            var listOfAllInstantiatedTowers = new List <BaseStructure>();

            var listOfAvailableTowers         = new List <BaseStructure>();
            var listOfAvailableTowerFactories = new List <IEntityFactory>();

            foreach (var towerType in listOfAllTowerTypes)
            {
                var towerInstantiation = StructureFactories.GetNewObject(towerType) as BaseStructure;
                MachineLearningManager.LearnMaxTowerValues(towerInstantiation);
                _CheapestTowerCost = towerInstantiation.SatoshiCost < _CheapestTowerCost
                    ? towerInstantiation.SatoshiCost
                    : _CheapestTowerCost;
                listOfAllInstantiatedTowers.Add(towerInstantiation);

                if (listOfAvailableTowerTypes.Contains(towerType))
                {
                    listOfAvailableTowers.Add(towerInstantiation);
                    listOfAvailableTowerFactories.Add(StructureFactories.GetFactory(towerType.Name));
                }
            }

            BuildMenuInstance.AssociateTowers(listOfAvailableTowers, listOfAvailableTowerFactories, StructureInfoInstance, CurrentSatoshis);

            for (var i = listOfAllInstantiatedTowers.Count - 1; i >= 0; i--)
            {
                listOfAllInstantiatedTowers[i].Destroy();
            }

            ChatBoxInstance.ChatHistoryButtonClick += delegate(object sender, EventArgs args)
            {
                ChatHistoryInstance.PopulateWithRecentChatHistory();
                GameScreenGumInstance.ShowChatHistoryAnimation.Play();
            };

            ChatHistoryInstance.CloseButtonClick += delegate(object sender, EventArgs args)
            {
                if (GameScreenGumInstance.CurrentChatHistoryShowingState == GameScreenGumRuntime.ChatHistoryShowing.ChatHistoryShown)
                {
                    GameScreenGumInstance.HideChatHistoryAnimation.Play();
                }
            };
            GameScreenGumInstance.HideChatHistoryAnimation.AddAction("SetupResponseAvailability", ChatBoxInstance.SetupResponseAvailability);

            StructureInfoInstance.OnUpgradeAction = HandleUpgradeTower;

            ReadyButtonInstance.Click += OnStartButtonInstanceClick;
        }