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; }
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; }
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>(); }
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(); }
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); }