using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Rokojori { // Drives a dialog without any UI - auto-answers PlayerChoice blocks and logs // the path taken, so DialogProcessor can be exercised in isolation. public class HeadlessDialogDisplay : IDialogDisplay { public List visitedBlocks = new List(); public Func chooseOption = choice => 0; public Task Show( DialogBlock block ) { visitedBlocks.Add( block ); var answer = new DialogAnswer(); if ( block is PlayerChoice choice ) { answer.selectedOptionIndex = chooseOption( choice ); } return Task.FromResult( answer ); } } }