コード例 #1
0
        protected override async Task <IEnumerable <Cell> > OnLoadModelAsync()
        {
            Cell[]      items;
            List <Cell> result;
            Planet      planet;
            int         x, y;

            planet = await PIOClient.GetPlanetAsync(planetID);

            result = new List <Cell>();
            x      = 0;
            while (x < planet.Width)
            {
                y = 0;
                while (y <= planet.Height)
                {
                    items = await PIOClient.GetCellsAsync(planetID, x, y, maxQueryWidth, maxQueryHeight);

                    result.AddRange(items);
                    y += maxQueryHeight;
                }
                x += maxQueryWidth;
            }

            return(result);
        }
コード例 #2
0
 public async System.Threading.Tasks.Task RunCommandAsync(int X, int Y)
 {
     foreach (WorkerViewModel worker in Workers.Where(item => (item.Bot == null) && (item.IsSelected)))
     {
         await TryAsync(PIOClient.MoveToAsync(worker.Model.WorkerID, X, Y));
     }
 }
コード例 #3
0
        public async System.Threading.Tasks.Task OnTaskEnded(PIO.Models.Task Task)
        {
            Building          building;
            BuildingViewModel factoryViewModel;



            await Workers.RefreshWorker(Task.WorkerID);

            switch (Task.TaskTypeID)
            {
            case Models.TaskTypeIDs.MoveTo:
                break;

            case Models.TaskTypeIDs.Store:
                await Buildings.RefreshBuilding(Task.X, Task.Y);

                break;

            case Models.TaskTypeIDs.Produce:
                await Buildings.RefreshBuilding(Task.X, Task.Y);

                break;

            case Models.TaskTypeIDs.Harvest:
                await Buildings.RefreshBuilding(Task.X, Task.Y);

                break;

            case Models.TaskTypeIDs.Build:
                await Buildings.RefreshBuilding(Task.X, Task.Y);

                break;

            case Models.TaskTypeIDs.CreateBuilding:
                try
                {
                    building = PIOClient.GetBuildingAtPos(1, Task.X, Task.Y);
                    if (building != null)
                    {
                        factoryViewModel = new BuildingViewModel(PIOClient, BotsClient, TranslationModule, ProduceOrders, HarvestOrders);
                        await factoryViewModel.LoadAsync(building);

                        Buildings.Add(factoryViewModel);
                        MapItems.Insert(Cells.Count, factoryViewModel);
                    }
                }
                catch (Exception ex)
                {
                    ErrorMessage = ex.Message;
                }


                //await Buildings.RefreshBuilding(Task.X.Value, Task.Y.Value);
                break;
            }
        }
コード例 #4
0
ファイル: WorkerViewModel.cs プロジェクト: dfgs/PIO
        private async void HarvestCommandExecute(object obj)
        {
            PIO.Models.Task result;

            result = await TryAsync(PIOClient.HarvestAsync(Model.WorkerID));

            if (result == null)
            {
                return;
            }
        }
コード例 #5
0
ファイル: WorkersViewModel.cs プロジェクト: dfgs/PIO
 protected override async Task <IEnumerable <Worker> > OnLoadModelAsync()
 {
     return(await PIOClient.GetWorkersAsync(planetID));
 }
コード例 #6
0
ファイル: WorkerViewModel.cs プロジェクト: dfgs/PIO
 protected override async Task <Worker> OnLoadModelAsync()
 {
     return(await PIOClient.GetWorkerAsync(Model.WorkerID));
 }
コード例 #7
0
 protected override async Task <IEnumerable <Building> > OnLoadModelAsync()
 {
     return(await PIOClient.GetBuildingsAsync(planetID));
 }
コード例 #8
0
 protected override async Task <IEnumerable <PIO.Models.Task> > OnLoadModelAsync()
 {
     return(await PIOClient.GetTasksAsync(workerID));
 }
コード例 #9
0
ファイル: BuildingViewModel.cs プロジェクト: dfgs/PIO
 protected override async Task <Building> OnLoadModelAsync()
 {
     return(await PIOClient.GetBuildingAsync(Model.BuildingID));
 }
コード例 #10
0
 protected override async Task <IEnumerable <Stack> > OnLoadModelAsync()
 {
     return(await PIOClient.GetStacksAsync(buildingID));
 }
コード例 #11
0
ファイル: StackViewModel.cs プロジェクト: dfgs/PIO
 protected override async Task <Stack> OnLoadModelAsync()
 {
     return(await PIOClient.GetStackAsync(Model.StackID));
 }
コード例 #12
0
 protected override async Task <Cell> OnLoadModelAsync()
 {
     return(await PIOClient.GetCellAsync(((Cell)Model).CellID));
 }
コード例 #13
0
ファイル: TaskViewModel.cs プロジェクト: dfgs/PIO
 protected override async Task <PIO.Models.Task> OnLoadModelAsync()
 {
     return(await PIOClient.GetTaskAsync(Model.TaskID));
 }