Пример #1
0
        private static void Init()
        {
            var player = map.Actors.Single(a => a is Player) as Player;

            var mapConsole     = new MapConsole(game, true, new AStarPathFinder());
            var logConsole     = new LogConsole();
            var messageConsole = new MessageConsole();
            var statusConsole  = new StatusConsole(player);
            var menuConsole    = new MenuConsole(Width, Height);

            var inventory = new InventoryConsole(player);

            var keyboardHandler = new KeyboardHandler(mapConsole, logConsole, messageConsole, player, inventory, menuConsole, game, () => StartGame(rnd));

            var mainConsole = new MainConsole(mapConsole, logConsole, messageConsole, statusConsole, keyboardHandler, inventory);

            mainConsole.Children.Add(mapConsole);
            mainConsole.Children.Add(logConsole);
            mainConsole.Children.Add(messageConsole);
            mainConsole.Children.Add(statusConsole);
            mainConsole.Children.Add(inventory);
            mainConsole.Children.Add(menuConsole);

            SadConsole.Game.Instance.Screen = mainConsole;
        }
Пример #2
0
        public DungeonScreen(Game gameRef, GameStateManager manager) : base(gameRef, manager)
        {
            //TODO: Get these values dynamically.
            int width  = 80;
            int height = 45;

            messageConsole = new MessagePanel((int)(width), (int)(height * 0.30));
            Add(messageConsole);
            dungeonViewConsole     = new DungeonViewConsole((int)(width * 0.80), (int)(height * 0.70), 30, 30);
            characterStatusPanel   = new CharacterStatusPanel((int)(width * 0.20), (int)(height * 0.70));
            inventoryConsole       = new InventoryConsole((int)(width * 0.30), (int)(height * 0.60));
            characterStatusConsole = new CharacterStatusConsole((int)(width * 0.30), (int)(height * 0.60));


            characterStatusPanel.Position   = new Point((int)(width * 0.80), 0);
            messageConsole.Position         = new Point(0, (int)(height * 0.70));
            inventoryConsole.Position       = new Point((int)(width * 0.80) / 2, (int)(width * 0.30) / 2);
            characterStatusConsole.Position = new Point((int)(width * 0.10), (int)(width * 0.30) / 2);
            Add(characterStatusPanel);
            Add(dungeonViewConsole);

            BaseEntity test_item = new BaseEntity();

            test_item.NAME = "Test Item";
            test_item.AddComponent(new Item(ItemType.Food));
            test_item.AddComponent(new SpriteAnimation('Y', Color.Red, Color.Yellow));

            BaseEntity test_eq = new BaseEntity();

            test_eq.NAME = "Test Sword";
            test_eq.AddComponent(new Item(ItemType.Equipment, "A Really Sharp Sword."));
            test_eq.AddComponent(new Statistic(EquipmentSlot.Hand));
            test_eq.GetComponent <Statistic>(ComponentType.Stats).attack.AddMod("add", 10);
            test_eq.AddComponent(new Attack());
            test_eq.AddComponent(new SpriteAnimation('/', Color.Green, Color.Black));

            inventoryConsole.Hide();
            characterStatusConsole.Hide();
            inventoryConsole.inventoryUser           = dungeonViewConsole.Player;
            characterStatusConsole.StatusConsoleUser = dungeonViewConsole.Player;
            dungeonViewConsole.mapLevel.ItemContainer.Add(test_item);
            dungeonViewConsole.mapLevel.ItemContainer.Add(test_eq);

            inventoryConsole.inventory.AddItem(test_item);
            inventoryConsole.inventory.AddItem(test_eq);
            //TODO: Find a way to init those dynamically.

            dungeonViewConsole.Player.GetComponent <Actor>(ComponentType.Actor).Stats.StatsChanged += characterStatusPanel.StatusChanged;
            dungeonViewConsole.Player.GetComponent <Actor>(ComponentType.Actor).Stats.StatsChanged += characterStatusConsole.StatusChanged;
            dungeonViewConsole.mapLevel.EntityContainer[0].GetComponent <Actor>(ComponentType.Actor).Stats.StatsChanged += characterStatusPanel.actor_StatusChanged;
        }
Пример #3
0
 public KeyboardHandler(MapConsole mapConsole, LogConsole logConsole, MessageConsole messageConsole, Player player, InventoryConsole inventory, MenuConsole menuConsole, Game game, Action startGame)
 {
     this.mapConsole     = mapConsole;
     this.logConsole     = logConsole;
     this.messageConsole = messageConsole;
     this.player         = player;
     this.inventory      = inventory;
     this.menuConsole    = menuConsole;
     this.game           = game;
     this.startGame      = startGame;
     state = InputState.Idle;
     mapConsole.IsFocused = true;
     actions = new List <Action>();
 }
Пример #4
0
        internal override void Start()
        {
            base.Start();
            if (!control.instance.TabConsole.Tabs.ContainsKey(INVNAME))
            {
                return;
            }

            control.listener.ActivateGrammar(INVNAME);

            invTab = (InventoryConsole)control.instance.TabConsole.Tabs[INVNAME].Control;
            tree   = invTab.invTree;

            tree.AfterSelect   += new TreeViewEventHandler(OnItemChange);
            tree.AfterExpand   += new TreeViewEventHandler(tree_AfterExpand);
            tree.AfterCollapse += new TreeViewEventHandler(tree_AfterCollapse);

            Talker.SayMore("Inventory");
            SayWhere();
        }
Пример #5
0
        public MainTestSelectorConsole() : base(Global.CurrentScreen.Width, Global.CurrentScreen.Height)
        {
            UseKeyboard     = true;
            Cursor.Position = Point.Zero;

            SelectionConsole = new ControlsConsole(Global.CurrentScreen.Width, 6);

            // Test health and mana progress bars.
            SelectionConsole.Add(MakeTestButtonFor <TestHealthConsole>("Health bars", "BtnTestHealth",
                                                                       creator: () =>
            {
                HUDConsole myHUDConsole;
                InventoryConsole myInventoryConsole;

                Children.Add(myHUDConsole       = new HUDConsole(Global.CurrentScreen.Width, 4));
                Children.Add(myInventoryConsole = new InventoryConsole()
                {
                    Position  = new Point(0, 8),
                    IsVisible = false
                });
                myHUDConsole.InventoryBtn.Click += (s, e) => myInventoryConsole.IsVisible = !myInventoryConsole.IsVisible;

                TestHealthConsole[] testHPConsoles = new[] {
                    new TestHealthConsole(80, 20, myHUDConsole.HpProgressBar)
                    {
                        Position = new Point(0, 5)
                    },
                    new TestHealthConsole(80, 20, myHUDConsole.ManaProgressBar)
                    {
                        Position = new Point(30, 5)
                    }
                };

                foreach (TestHealthConsole cli in testHPConsoles)
                {
                    Children.Add(cli);
                }
            },
                                                                       disposer: () =>
            {
                Children.Clear();
            }));

            // Test pixel offset.
            SelectionConsole.Add(MakeTestButtonFor <TestPixelOffsetConsole>("Pixel Offset", "BtnTestPixelOffsetConsole",
                                                                            creator: () =>
            {
                Children.Add(new TestPixelOffsetConsole(10, 5));
            },
                                                                            disposer: () =>
            {
                Children.Clear();
            }));

            // Test animated entities.
            SelectionConsole.Add(MakeTestButtonFor <TestAnimatedEntitiesConsole>("Animated Entities", "BtnTestAnimatedEntities",
                                                                                 creator: () =>
            {
                Children.Add(new TestAnimatedEntitiesConsole());
            },
                                                                                 disposer: () =>
            {
                Children.Clear();
            }));

            Children.Add(SelectionConsole);
        }