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; }