예제 #1
0
        private void onEditButtonClicked(string name)
        {
            var dialog = new UIConfirmDialog(gameSystem, "confirm", "edit game world?");

            dialog.okButtonClicked = () =>
            {
                dialog.Close();

                uiEditGameWorldDialog.Close();

                gameSystem.sceneToWaiting();

                Task.Run(async() =>
                {
                    try
                    {
                        var gw = await GameWorldHelper.loadGameWorldData <GameWorldSystem>(name);

                        gw.camera = new Camera(gameSystem.option.screenWidth, gameSystem.option.screenHeight);

                        gameSystem.dispatchSceneToEditGame(gw);
                    }
                    catch (Exception e)
                    {
                        Debug.WriteLine(e);

                        throw;
                    }
                });
            };

            dialog.ShowDialog(formMain);
        }
예제 #2
0
        private async ValueTask <bool> onCreateGameWorld(string name, string txtWidth, string txtHeight)
        {
            name = name.Trim();

            if (string.IsNullOrWhiteSpace(name))
            {
                new UIDialog(gameSystem, "error", "game_world_name").ShowDialog(formMain);
                return(false);
            }
            if (!int.TryParse(txtWidth.Trim(), out var width))
            {
                new UIDialog(gameSystem, "error", "width_number").ShowDialog(formMain);
                return(false);
            }
            if (!int.TryParse(txtHeight.Trim(), out var height))
            {
                new UIDialog(gameSystem, "error", "height_number").ShowDialog(formMain);
                return(false);
            }

            if (width < GameConstant.mapMinSize || height < GameConstant.mapMinSize)
            {
                new UIDialog(gameSystem, "error", $"map size > {GameConstant.mapMinSize}").ShowDialog(formMain);
                return(false);
            }

            if (width > GameConstant.mapMaxSize || height > GameConstant.mapMaxSize)
            {
                new UIDialog(gameSystem, "error", $"map size < {GameConstant.mapMaxSize}").ShowDialog(formMain);
                return(false);
            }

            if (!await GameWorldHelper.create(name, width, height))
            {
                new UIDialog(gameSystem, "error", "create_failed").ShowDialog(formMain);
                return(false);
            }

            return(true);
        }
예제 #3
0
        private void onRemoveButtonClicked(string name)
        {
            var dialog = new UIConfirmDialog(gameSystem, "confirm", "delete?");

            dialog.okButtonClicked = () =>
            {
                dialog.Close();

                try
                {
                    GameWorldHelper.delete(name);
                }
                catch (Exception e)
                {
                    MessageBox.Show("create_failed:" + e.Message);
                    return;
                }

                _ = loadGameWorldMapList();
            };

            dialog.ShowDialog(formMain);
        }
예제 #4
0
 private async Task save()
 {
     await GameWorldHelper.saveGameWorldData(gameWorld.name, gameMap);
 }
예제 #5
0
 public async Task load(string gameWorldFileName, string gameScenarioFile)
 {
     var gameWorld = await GameWorldHelper.loadGameWorldData <GameWorld>(gameWorldFileName);
 }
예제 #6
0
 private async Task loadGameWorldMapList() => uiEditGameWorldDialog.setData(await GameWorldHelper.getInfoList());
예제 #7
0
 private async Task loadGameScenarioList() => uiSelectGameScenarioDialog.setData(await GameWorldHelper.getGameScenarioInfoList());