void advanceDialog() { Debug.Assert(currentItem != null); var next = currentItem.next(this); while (next != null && next != currentItem) { Debug.Log("advance dialog " + next); next.enter(this); currentItem = next; next = currentItem.next(this); } ; if (next == null) { Debug.Log("end conversation"); currentItem = null; Debug.Assert(player != null); player.GetComponent <Actor>().SetState(EActorState.Walking); endDialog.Invoke(); } }