public bool Train(TrainUnit unit) { bool canTrain = false; Entity temp = (Entity)PrefabHolder.Instance.GetInfo(unit.entityType); if (!Manager.Instance.HasEnoughMana(temp.BuildCost)) { EventLog.Instance.AddAction(LogType.Error, "You need " + temp.BuildCost + " " + Manager.Instance.CurrencyName + " to train " + temp.FriendlyName, transform.position); return(canTrain); } else if (!Manager.Instance.HasEnoughFood(temp.FoodValue)) { EventLog.Instance.AddAction(LogType.Error, "You need " + temp.FoodValue + " " + Manager.Instance.FoodName + " to train " + temp.FriendlyName, transform.position); return(canTrain); } else if (building.IsUpgrading) { EventLog.Instance.AddAction(LogType.Error, "You can't train while the building is upgrading", transform.position); return(canTrain); } canTrain = true; Entity entityToTrain = PoolHolder.Instance.GetObject(unit.entityType).GetComponent <Entity>(); entityToTrain.MarkedForTraining = true; queue.Put(entityToTrain); EventManager.Instance.EntityTrain(entityToTrain); if (!Alreadytraining) { entitiesToTrain.Add(entityToTrain.gameObject); TryTrainUnit(); return(canTrain); } entitiesToTrain.Add(entityToTrain.gameObject); return(canTrain); }
public int CompareTo(Train other) //Sort list by number { if (other == null) { return(1); // All instances are greater than null } return(TrainUnit.CompareTo(other.TrainUnit)); }
public void CancelBuild() { if (buildQueue != null) { available.Add(buildQueue); buildQueue = null; } unitQueue = null; }
public void UpdateTrainQueue() { City city = PlayerController.instance.currentCity; TrainUnit train = city.GetTrainQueue(); if (train != null) { int amount = train.ProduceAmount(city.GetTot(Res.PROCESS) + city.GetProd(Res.PROCESS)); buildTime.text = "Training " + amount + " per turn"; } else { buildTime.text = ""; } buildQueue.text = (train != null) ? train.type.ToString() : "---"; buildList.ClearOptions(); buildList.AddOptions(GetTrainablesNames()); buildingButton.interactable = true; unitButton.interactable = false; }
private void Start() { panel = BuildingPanel.instance; train = GetComponent <TrainUnit>(); }