public Heidi(int id) : base(id) { Texture = "heidi.png"; Name = "Heidi"; Icon = "heidiicon.png"; OnInteract = DoInteract; // Einstiegssatz dialog = new Dialog() { Message = "Hallo junger Held.", CanExit = true, }; // Option 1 dialog.Options.Add(new Dialog() { Option = "Erzaehl mal was ueber das Dorf", Message = "Hier war alles friedlich bis zuletzt. Jetzt haben wir Orcs hier.", Back = dialog, }); // Option 2 (vor dem Quest) dialog.Options.Add(before = new Dialog() { Option = "Kann ich was tun?", Message = "Ja bitte. Mir wurde meine goldene Muenze geraubt.", Back = dialog, OnShow = (game, item) => { // Questfortschritt setzen game.Simulation.SetQuestProgress("Heidis Quest", "search"); before.Visible = false; } }); dialog.Options.Add(after = new Dialog() { Option = "Hier ist deine Muenze", Message = "Wow! Ich und das Dorf werden dir das nicht vergessen! *schmatz*", Back = dialog, OnShow = (game, item) => { // Questgegenstand entfernen Player player = item as Player; var coin = player.Inventory.SingleOrDefault(i => i is GoldenCoin); if (coin != null) game.Simulation.Transfer(coin, player, null); // Quest Fortschritt auf Success game.Simulation.SetQuestSuccess("Heidis Quest", "success"); after.Visible = false; } }); }
public DialogScreen(ScreenComponent manager, Item speaker, Player player, Dialog entry) : base(manager) { this.speaker = speaker; this.player = player; current = entry; Controls.Add(new Icon(manager) { Position = new Rectangle(10, 10, 24, 24), Texture = speaker.Icon }); Controls.Add(message = new Label(manager) { Position = new Rectangle(40, 10, manager.GraphicsDevice.Viewport.Width - 50, 30) }); Controls.Add(list = new DialogList(manager) { }); list.OnInteract += OnInteract; Refill(); }
private void OnInteract(ListItem item) { Dialog dialog = item.Tag as Dialog; if (dialog != null) { // Auswahl einer Dialog-Option current = dialog; Refill(); } else { // Beenden-Eitnrag ausgewählt Manager.CloseScreen(); } }