コード例 #1
0
ファイル: Building.cs プロジェクト: DCNick3/MineBotGame
 public bool Enqueue(BuildingOperation operation)
 {
     if (OperationQueue.Count == QUEUE_SIZE)
     {
         return(false);
     }
     OperationQueue.Add(operation);
     return(true);
 }
コード例 #2
0
ファイル: Building.cs プロジェクト: DCNick3/MineBotGame
 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);
 }
コード例 #3
0
ファイル: Building.cs プロジェクト: DCNick3/MineBotGame
 protected void FinalizeOperation(BuildingOperation op)
 {
     op.FinalizeOperation();
 }
コード例 #4
0
ファイル: Building.cs プロジェクト: DCNick3/MineBotGame
        public ActionError DoLocalResearch(LocalResearch type)
        {
            BuildingOperation op = BuildingOperation.NewLocalResearch(this, type);

            return(DoOperation(op));
        }