public override void _Ready() { _sidebar = (RichTextLabel)GetNode("CanvasLayer/Sidebar/Text"); _deityPopup = (DeityPopup)GetNode("CanvasLayer/DeityPopup"); _characterPopup = (CharacterPopup)GetNode("CanvasLayer/CharacterPopup"); _helpPopup = (HelpPopup)GetNode("CanvasLayer/HelpPopup"); _alterPopup = (AlterPopup)GetNode("CanvasLayer/AlterPopup"); _messagePopup = (MessagesPopup)GetNode("CanvasLayer/MessagesPopup"); _retryPopup = (Control)GetNode("CanvasLayer/RetryPopup"); _camera = (Camera2D)GetNode("Camera2D"); var catalog = new Catalog(); _level = (Level)GetNode("Level"); _level.Setup(catalog, 32, 32); Globals.OnEventCallbacks.Add(OnEvent); _player = Globals.Player ?? catalog.NewPlayer(3, 4); _player.Messages.Add("[color=#ccffff][b]Welcome![/b] You may want to press [?] for help or [tab] to see the current deities.[/color]"); _level.Add(_player); RemoveChild(_camera); _player.AddChild(_camera); PopulateLevel(); }
public void OnEvent(IEvent e) { if (e is EnteredAlter alter) { if (alter.Agent == _player) { _alterPopup.Show(alter.Level, alter.Agent); } } else if (e is WentDownStairs down) { if (down.Agent == _player) { _player.RemoveChild(_camera); _level.Remove(_player, false); _level.Setup(32 + _level.Depth * 2, 32 + _level.Depth * 2); _level.Add(_player); _player.AddChild(_camera); _camera.Current = true; PopulateLevel(); } } }