public void StartTraining() { NonRelatedUnitTrainer inanimateMT = (mobTrainer as NonRelatedUnitTrainer); if (HUD.EnoughResources(inanimateMT.costArray, resTexts)) { inanimateMT.StartTraining(); } }
private IEnumerator InanimateTrainer() { plusButton.onClick.AddListener(delegate { StartTraining(); }); minusButton.onClick.AddListener(delegate { CancelTraining(); }); NonRelatedUnitTrainer inanimateMT = mobTrainer as NonRelatedUnitTrainer; float[] currCostArray = GameManager.DuplicateArray(inanimateMT.costArray); int resCount = 0; for (int i = 0; i < inanimateMT.costArray.Length; i++) { if (inanimateMT.costArray[i] > 0) { resTexts[resCount].text = inanimateMT.costArray[i].ToString("0"); resImages[resCount].sprite = HUD.speciesResourceSpriteDick[inanimateMT.GetSpecies()][GameManager.resourceTypeArraytoDick[i]]; resCount++; } } // set res positions float resTextWidth = 0.2f; float resImageWidth = 0.1f; for (int i = 0; i < inanimateMT.costArray.Length; i++) { if (i < resCount) { float totalWidth = resImageWidth + resTextWidth; float resImageMinX = 0.5f - (totalWidth / 2f) - (resCount - 1) * (totalWidth / 2f) + totalWidth * i; float resTextMinX = resImageMinX + resImageWidth; resImages[i].gameObject.SetActive(true); resImages[i].rectTransform.anchorMin = new Vector2(resImageMinX, resImages[i].rectTransform.anchorMin.y); resImages[i].rectTransform.anchorMax = new Vector2(resTextMinX, resImages[i].rectTransform.anchorMax.y); resTexts[i].gameObject.SetActive(true); resTexts[i].rectTransform.anchorMin = new Vector2(resTextMinX, resTexts[i].rectTransform.anchorMin.y); resTexts[i].rectTransform.anchorMax = new Vector2(resTextMinX + resTextWidth, resTexts[i].rectTransform.anchorMax.y); } else { resImages[i].gameObject.SetActive(false); resTexts[i].gameObject.SetActive(false); } } while (gameObject.activeSelf) { CheckTrainer(); for (int i = 0; i < currCostArray.Length; i++) { if (currCostArray[i] != inanimateMT.costArray[i]) { resTexts[i].text = inanimateMT.costArray[i].ToString(); currCostArray[i] = inanimateMT.costArray[i]; } } if (inanimateMT.currentMobCount + inanimateMT.GetTrainingQueueCount() >= inanimateMT.mobTrainerStatsArray[0] && plusButton.gameObject.activeSelf) { plusButton.gameObject.SetActive(false); } else if (inanimateMT.currentMobCount + inanimateMT.GetTrainingQueueCount() < inanimateMT.mobTrainerStatsArray[0] && !plusButton.gameObject.activeSelf) { plusButton.gameObject.SetActive(true); } if (!mobTrainer.training && minusButton.gameObject.activeSelf) { minusButton.gameObject.SetActive(false); } else if (mobTrainer.training && !minusButton.gameObject.activeSelf) { minusButton.gameObject.SetActive(true); } yield return(null); } }