Exemple #1
0
 public bool Enqueue(BuildingOperation operation)
 {
     if (OperationQueue.Count == QUEUE_SIZE)
     {
         return(false);
     }
     OperationQueue.Add(operation);
     return(true);
 }
Exemple #2
0
 public ActionError DoOperation(BuildingOperation op)
 {
     if (OperationQueue.Count == QUEUE_SIZE)
     {
         return(ActionError.NoQueueSpace);
     }
     if (!OwnerPlayer.CheckResources(op.ResourceConsumation))
     {
         return(ActionError.NoResources);
     }
     if (!OwnerPlayer.CheckEnergy(op.EnergyConsumation))
     {
         return(ActionError.NoEnergy);
     }
     if (op.CanBeDone())
     {
         return(ActionError.InvalidParam);
     }
     op.StartOperation();//здесь снимаются ресурсы и энергия
     Enqueue(op);
     return(ActionError.Succeed);
 }
Exemple #3
0
 protected void FinalizeOperation(BuildingOperation op)
 {
     op.FinalizeOperation();
 }
Exemple #4
0
        public ActionError DoLocalResearch(LocalResearch type)
        {
            BuildingOperation op = BuildingOperation.NewLocalResearch(this, type);

            return(DoOperation(op));
        }