private IEnumerator SpeciesUnitTrainerUpdate(SpeciesUnitTrainer mobTrainer) { bool deploy = false; if (mobTrainer.GetGarrisonedUnitsCount() > 0) { deploy = true; } while (gameObject.activeSelf) { if (!button.interactable && mobTrainer.GetCurrentUnits() > 0 && !mobTrainer.garrisoningUnits) { button.interactable = true; SetText(mobTrainer.GetFunctionButton1Text()); } else if (button.interactable && (mobTrainer.GetCurrentUnits() == 0 || mobTrainer.garrisoningUnits)) { button.interactable = false; SetText(mobTrainer.GetFunctionButton1Text()); } if (mobTrainer.GetGarrisonedUnitsCount() > 0 && !deploy || mobTrainer.GetGarrisonedUnitsCount() == 0 && deploy) { SetText(mobTrainer.GetFunctionButton1Text()); deploy = !deploy; } yield return(null); } }
public void PlaceBuilding() { player.AddBuilding(name, transform.position); Building newBuilding = player.buildings.currentBuildings [player.buildings.currentBuildings.Count - 1]; newBuilding.buildingSlot = SetBuildingSlot(); currBuildingSlot.currBuilding = newBuilding; SpeciesUnitTrainer newSpeciesUnitTrainer = newBuilding.GetComponent <SpeciesUnitTrainer>(); if (newSpeciesUnitTrainer) { newSpeciesUnitTrainer.SetMainStratPoint(currBuildingSlot.stratPoint); } gameObject.SetActive(false); }
protected override void OnEnable() { base.OnEnable(); if (wo) { button.interactable = true; mainText.text = wo.GetFunctionButton1Text(); button.onClick.RemoveAllListeners(); if (wo as SpeciesUnitTrainer) { SpeciesUnitTrainer mobTrainer = wo as SpeciesUnitTrainer; button.onClick.AddListener(mobTrainer.DeployGarrisonUnits); if (mobTrainer.GetCurrentUnits() == 0) { button.interactable = false; } StartCoroutine(SpeciesUnitTrainerUpdate(mobTrainer)); } } }
public override void SetMobTrainer(MobTrainer thisMobTrainer) { base.SetMobTrainer(thisMobTrainer); unitTrainer = thisMobTrainer as SpeciesUnitTrainer; }