コード例 #1
0
        /// <summary>
        /// This function creates a screen object and inserts it in an internal
        /// list and also inserts it in an interface list for external use
        /// </summary>
        public void CreateScreens()
        {
            fadeArea       = new Rectangle(0, 0, Globals.ScreenWidth, Globals.ScreenHeight);
            selectedScreen = EScreen.MainScreen;
            Screen screen = new MainScreen(this);

            screens.Add(screen);
            iScreens.Add((IScreen)screen);
            screen = new GameScreen(this);
            screens.Add(screen);
            iScreens.Add((IScreen)screen);
            screen = new CreditsScreen(this);
            screens.Add(screen);
            iScreens.Add((IScreen)screen);
            screen = new SetupScreen(this);
            screens.Add(screen);
            iScreens.Add((IScreen)screen);
            screen = new MenuScreen(this);
            screens.Add(screen);
            iScreens.Add((IScreen)screen);
            screen = new WinScreen(this);
            screens.Add(screen);
            iScreens.Add((IScreen)screen);
            screen = new DialogScreen(this, ExitGame, LeaveDialog);
            iDialogScreens.Add((IScreen)screen);
        }
コード例 #2
0
        public void SwitchScreens(string screenName)//can it be changed to GameScreen NextScreen?
        {
            switch (screenName.ToLower())
            {
            case "titlescreen":
                CurrentScreen = new TitleScreen();
                break;

            case "dialogscreen":
                CurrentScreen = new DialogScreen();
                break;

            case "mainmapscreen":
                CurrentScreen = new MainMapScreen();
                break;

            default:
                CurrentScreen = new SplashScreen();
                break;
            }
            //NextScreen = (GameScreen)Activator.CreateInstance(Type.GetType("Gangstarz.Models.Screens." + screenName));
            xmlGameScreenManager      = new XMLManager <GameScreen>();
            xmlGameScreenManager.Type = CurrentScreen.Type;
            CurrentScreen             = xmlGameScreenManager.Load(Path.Combine(ScreensConfig.PathToFolder,
                                                                               CurrentScreen.Type.Name + "." + ScreensConfig.FileExtension));
            CurrentScreen.LoadContent();
        }
コード例 #3
0
        private void RegisterViewModels()
        {
            SearchPageViewModel.Register(_searchPage);
            PrivacyModeViewModel.Register(_privacyMode);
            AddWalletPageViewModel.Register(_addWalletPage);
            SettingsPageViewModel.Register(_settingsPage);

            GeneralSettingsTabViewModel.RegisterLazy(
                () =>
            {
                _settingsPage.SelectedTab = 0;
                return(_settingsPage);
            });

            PrivacySettingsTabViewModel.RegisterLazy(
                () =>
            {
                _settingsPage.SelectedTab = 1;
                return(_settingsPage);
            });

            NetworkSettingsTabViewModel.RegisterLazy(
                () =>
            {
                _settingsPage.SelectedTab = 2;
                return(_settingsPage);
            });

            BitcoinTabSettingsViewModel.RegisterLazy(
                () =>
            {
                _settingsPage.SelectedTab = 3;
                return(_settingsPage);
            });

            AboutViewModel.RegisterLazy(() => new AboutViewModel());

            BroadcastTransactionViewModel.RegisterAsyncLazy(
                async() =>
            {
                var dialogResult = await DialogScreen.NavigateDialog(new LoadTransactionViewModel(_global.Network));

                if (dialogResult.Result is { })
                {
                    while (_global.TransactionBroadcaster is null)
                    {
                        await Task.Delay(100);
                    }

                    return(new BroadcastTransactionViewModel(
                               _global.BitcoinStore,
                               _global.Network,
                               _global.TransactionBroadcaster,
                               dialogResult.Result));
                }

                return(null);
            });
コード例 #4
0
ファイル: MainViewModel.cs プロジェクト: yahiheb/WalletWasabi
        private void RegisterViewModels()
        {
            SearchPageViewModel.Register(_searchPage);
            PrivacyModeViewModel.Register(_privacyMode);
            AddWalletPageViewModel.Register(_addWalletPage);
            SettingsPageViewModel.Register(_settingsPage);

            GeneralSettingsTabViewModel.RegisterLazy(
                () =>
            {
                _settingsPage.SelectedTab = 0;
                return(_settingsPage);
            });

            PrivacySettingsTabViewModel.RegisterLazy(
                () =>
            {
                _settingsPage.SelectedTab = 1;
                return(_settingsPage);
            });

            NetworkSettingsTabViewModel.RegisterLazy(
                () =>
            {
                _settingsPage.SelectedTab = 2;
                return(_settingsPage);
            });

            BitcoinTabSettingsViewModel.RegisterLazy(
                () =>
            {
                _settingsPage.SelectedTab = 3;
                return(_settingsPage);
            });

            AboutViewModel.RegisterLazy(() => new AboutViewModel());

            BroadcastTransactionViewModel.RegisterAsyncLazy(
                async() =>
            {
                var dialogResult = await DialogScreen.NavigateDialogAsync(new LoadTransactionViewModel(Services.Config.Network));

                if (dialogResult.Result is { })
                {
                    return(new BroadcastTransactionViewModel(Services.Config.Network,
                                                             dialogResult.Result));
                }

                return(null);
            });
コード例 #5
0
        public static void Main()
        {
            //Console.WriteLine("Good luck, you will need it.");
            string fontFileName = "terminal8x8.png";
            int    seed         = (int)DateTime.UtcNow.Ticks;
            string consoleTitle = $"RoguelikeGame - Level {MapLevel}";

            Random           = new DotNetRandom(seed);
            MessageLog       = new MessageLog();
            SchedulingSystem = new SchedulingSystem();
            MapGenerator mapGenerator = new MapGenerator(_mapWidth, _mapHeight, 20, 13, 7, MapLevel);

            DungeonMap = mapGenerator.CreateForrest();
            DungeonMaps.Add(DungeonMap);

            _rootConsole      = new RLRootConsole(fontFileName, _screenWidth, _screenHeight, 8, 8, 1f, consoleTitle);
            _mapConsole       = new RLConsole(_mapWidth, _mapHeight);
            _messageConsole   = new RLConsole(_messageWidth, _messageHeight);
            _statConsole      = new RLConsole(_statWidth, _statHeight);
            _inventoryConsole = new RLConsole(_inventoryWidth, _inventoryHeight);

            CommandSystem       = new CommandSystem();
            TargetingSystem     = new TargetingSystem();
            InputSystem         = new InputSystemPlaying();
            InventoryScreen     = new InventoryScreen(_popupWidth, _popupHeight);
            DialogScreen        = new DialogScreen(_popupWidth, _dialogHeight);
            ShopSelectionScreen = new ShopSelectionScreen(_popupWidth, _dialogHeight);
            BuyScreen           = new BuyScreen(_popupWidth, _popupHeight);
            SellScreen          = new SellScreen(_popupWidth, _popupHeight);

            if (Player.GreetMessages != null)
            {
                Random random = new Random();
                int    i      = random.Next(0, Player.GreetMessages.Length);
                MessageLog.Add($"{Player.GreetMessages[i]}", Colors.Gold);
            }
            else
            {
                MessageLog.Add("Good luck on your quest ", Colors.Gold);
            }
            // MessageLog.Add($"Level created with seed '{seed}'"); // debug

            _rootConsole.Update += OnIntroUpdate;
            _rootConsole.Render += OnIntroRender;

            Timer t = new Timer(UpdateColoredText, null, 0, 200);

            _rootConsole.Run();
        }
コード例 #6
0
    public async ValueTask <T?> ShowDialogAsync <T>(DialogScreen <T> dialogScreen)
    {
        var view = _viewManager.CreateAndBindViewForModelIfNecessary(dialogScreen);

        void OnDialogOpened(object?sender, DialogOpenedEventArgs openArgs)
        {
            void OnScreenClosed(object?o, EventArgs closeArgs)
            {
                openArgs.Session.Close();
                dialogScreen.Closed -= OnScreenClosed;
            }

            dialogScreen.Closed += OnScreenClosed;
        }

        await DialogHost.Show(view, OnDialogOpened);

        return(dialogScreen.DialogResult);
    }
コード例 #7
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        if (dialog == null)
        {
            return;
        }
        if (oneTime && hasRun)
        {
            return;
        }
        if (collider.isTrigger)
        {
            return;
        }
        if (collider.gameObject != GameManager.Instance.Player?.gameObject)
        {
            return;
        }

        DialogScreen.Open(dialog);

        this.hasRun = true;
    }
コード例 #8
0
    public override void Bind(CityViewModel model)
    {
        base.Bind(model);
        ds = CityModel.GetDS;
        Name?.Bind(new BoundModel <string>(Model, nameof(Model.PortName)));

        Ask?.Bind(ValueModel.New(new ButtonViewModel {
            Label   = "Select",
            OnClick = () =>
            {
                //CityModel.GUI_BuyHint
                ds.Storage.SetValue("$known_city", Model.PortName);
                ds.Storage.SetValue("$known_city_ID", Model.City.settlementID);
                Debug.Log("We have clicked on button.");
                Globals.UI.Hide <TavernView>();
            }
        }));

        /*Hire?.Bind(ValueModel.New(new ButtonViewModel {
         *      Label = CityModel.CostToHire + " dr",
         *      OnClick = CityModel.GUI_HireANavigator
         * }));*/
    }
コード例 #9
0
 public void ClearStacks()
 {
     MainScreen.Clear();
     DialogScreen.Clear();
     FullScreen.Clear();
 }
コード例 #10
0
 void OnValidate()
 {
     ds = GetComponent <DialogScreen>();
 }
コード例 #11
0
ファイル: Dialog.ci.cs プロジェクト: Matthewism/manicdigger
 GameScreen ConvertDialog(Game game, Packet_Dialog p)
 {
     DialogScreen s = new DialogScreen();
     s.widgets = new MenuWidget[p.WidgetsCount];
     s.WidgetCount = p.WidgetsCount;
     for (int i = 0; i < p.WidgetsCount; i++)
     {
         Packet_Widget a = p.Widgets[i];
         MenuWidget b = new MenuWidget();
         if (a.Type == Packet_WidgetTypeEnum.Text)
         {
             b.type = WidgetType.Label;
         }
         if (a.Type == Packet_WidgetTypeEnum.Image)
         {
             b.type = WidgetType.Button;
         }
         if (a.Type == Packet_WidgetTypeEnum.TextBox)
         {
             b.type = WidgetType.Textbox;
         }
         b.x = a.X;
         b.y = a.Y;
         b.sizex = a.Width;
         b.sizey = a.Height_;
         b.text = a.Text;
         if (b.text != null)
         {
             b.text = game.platform.StringReplace(b.text, "!SERVER_IP!", game.ServerInfo.connectdata.Ip);
         }
         if (b.text != null)
         {
             b.text = game.platform.StringReplace(b.text, "!SERVER_PORT!", game.platform.IntToString(game.ServerInfo.connectdata.Port));
         }
         b.color = a.Color;
         if (a.Font != null)
         {
             b.font = new FontCi();
             b.font.family = game.ValidFont(a.Font.FamilyName);
             b.font.size = game.DeserializeFloat(a.Font.SizeFloat);
             b.font.style = a.Font.FontStyle;
         }
         b.id = a.Id;
         b.isbutton = a.ClickKey != 0;
         if (a.Image == "Solid")
         {
             b.image = null;
         }
         else if (a.Image != null)
         {
             b.image = StringTools.StringAppend(game.platform, a.Image, ".png");
         }
         s.widgets[i] = b;
     }
     for (int i = 0; i < s.WidgetCount; i++)
     {
         if (s.widgets[i] == null) { continue; }
         if (s.widgets[i].type == WidgetType.Textbox)
         {
             s.widgets[i].editing = true;
             break;
         }
     }
     return s;
 }
コード例 #12
0
 public TavernViewModel(DialogScreen d)
 {
     Cities = ValueModel.Wrap(GameVars.playerShipVariables.ship.playerJournal.knownSettlements)
              //.Where(id => id != GameVars.currentSettlement.settlementID)
              .Select(id => new TavernCityViewModel(GameVars.GetSettlementFromID(id), d) as CityViewModel);
 }
コード例 #13
0
    GameScreen ConvertDialog(Game game, Packet_Dialog p)
    {
        DialogScreen s = new DialogScreen();

        s.widgets     = new MenuWidget[p.WidgetsCount];
        s.WidgetCount = p.WidgetsCount;
        for (int i = 0; i < p.WidgetsCount; i++)
        {
            Packet_Widget a = p.Widgets[i];
            MenuWidget    b = new MenuWidget();
            if (a.Type == Packet_WidgetTypeEnum.Text)
            {
                b.type = WidgetType.Label;
            }
            if (a.Type == Packet_WidgetTypeEnum.Image)
            {
                b.type = WidgetType.Button;
            }
            if (a.Type == Packet_WidgetTypeEnum.TextBox)
            {
                b.type = WidgetType.Textbox;
            }
            b.x     = a.X;
            b.y     = a.Y;
            b.sizex = a.Width;
            b.sizey = a.Height_;
            b.text  = a.Text;
            if (b.text != null)
            {
                b.text = game.platform.StringReplace(b.text, "!SERVER_IP!", game.ServerInfo.connectdata.Ip);
            }
            if (b.text != null)
            {
                b.text = game.platform.StringReplace(b.text, "!SERVER_PORT!", game.platform.IntToString(game.ServerInfo.connectdata.Port));
            }
            b.color = a.Color;
            if (a.Font != null)
            {
                b.font        = new FontCi();
                b.font.family = game.ValidFont(a.Font.FamilyName);
                b.font.size   = game.DeserializeFloat(a.Font.SizeFloat);
                b.font.style  = a.Font.FontStyle;
            }
            b.id       = a.Id;
            b.isbutton = a.ClickKey != 0;
            if (a.Image == "Solid")
            {
                b.image = null;
            }
            else if (a.Image != null)
            {
                b.image = StringTools.StringAppend(game.platform, a.Image, ".png");
            }
            s.widgets[i] = b;
        }
        for (int i = 0; i < s.WidgetCount; i++)
        {
            if (s.widgets[i] == null)
            {
                continue;
            }
            if (s.widgets[i].type == WidgetType.Textbox)
            {
                s.widgets[i].editing = true;
                break;
            }
        }
        return(s);
    }
コード例 #14
0
 public TavernCityViewModel(Settlement city, DialogScreen d) : base(city, null)
 {
     ds = d;
 }
コード例 #15
0
            /// <summary>
            /// Initializes a new instance of the <see cref="DialogScreenVM"/> class.
            /// </summary>
            /// <param name="screen">The dialog screen that owns the view model.</param>
            internal DialogScreenVM(DialogScreen screen)
            {
                Contract.Require(screen, nameof(screen));

                this.screen = screen;
            }
コード例 #16
0
 internal void Awake()
 {
     // Start by hiding the container
     ds = GetComponent <DialogScreen>();
 }
コード例 #17
0
            /// <summary>
            /// Initializes a new instance of the <see cref="DialogScreenVM"/> class.
            /// </summary>
            /// <param name="screen">The dialog screen that owns the view model.</param>
            internal DialogScreenVM(DialogScreen screen)
            {
                Contract.Require(screen, "screen");

                this.screen = screen;
            }
コード例 #18
0
            /// <summary>
            /// Initializes a new instance of the <see cref="DialogScreenVM"/> class.
            /// </summary>
            /// <param name="screen">The dialog screen that owns the view model.</param>
            internal DialogScreenVM(DialogScreen screen)
            {
                Contract.Require(screen, nameof(screen));

                this.screen = screen;
            }
コード例 #19
0
ファイル: MainScreen.cs プロジェクト: mxgmn/GENW
    public void LoadTextures()
    {
        editor = new Editor(size - new ZPoint(66, 62), new ZPoint(56, 52));
        ZPoint dialogSize = new ZPoint(400, 200);
        dialogScreen = new DialogScreen(new ZPoint((int)(0.5f * (size.x - dialogSize.x)), size.y - 8 - dialogSize.y), dialogSize);

        fonts.ambient = game.Content.Load<SpriteFont>("fonts/ambient");
        fonts.small = game.Content.Load<SpriteFont>("fonts/small");
        fonts.verySmall = game.Content.Load<SpriteFont>("fonts/verySmall");
        fonts.superSmall = game.Content.Load<SpriteFont>("fonts/superSmall");
        fonts.verdana = game.Content.Load<SpriteFont>("fonts/verdana");
        fonts.verdanaBold = game.Content.Load<SpriteFont>("fonts/verdanaBold");
    }
コード例 #20
0
            /// <summary>
            /// Initializes a new instance of the <see cref="DialogScreenVM"/> class.
            /// </summary>
            /// <param name="screen">The dialog screen that owns the view model.</param>
            internal DialogScreenVM(DialogScreen screen)
            {
                Contract.Require(screen, "screen");

                this.screen = screen;
            }
コード例 #21
0
ファイル: EscMenuDialog.cs プロジェクト: RUSshy/ultraviolet
        /// <summary>
        /// Initializes a new instance of the <see cref="EscMenuDialog"/> class.
        /// </summary>
        /// <param name="owner">The screen that owns the dialog box.</param>
        public EscMenuDialog(GameScreenBase owner)
        {
            Contract.Require(owner, "owner");

            this.screen = new DialogScreen(this, owner.GlobalContent);
        }