public bool Enqueue(BuildingOperation operation) { if (OperationQueue.Count == QUEUE_SIZE) { return(false); } OperationQueue.Add(operation); return(true); }
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); }
protected void FinalizeOperation(BuildingOperation op) { op.FinalizeOperation(); }
public ActionError DoLocalResearch(LocalResearch type) { BuildingOperation op = BuildingOperation.NewLocalResearch(this, type); return(DoOperation(op)); }