Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
 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));
 }
Exemplo n.º 3
0
 public void CancelBuild()
 {
     if (buildQueue != null)
     {
         available.Add(buildQueue);
         buildQueue = null;
     }
     unitQueue = null;
 }
Exemplo n.º 4
0
    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;
    }
Exemplo n.º 5
0
 private void Start()
 {
     panel = BuildingPanel.instance;
     train = GetComponent <TrainUnit>();
 }