package Ġcom . na os im . r pg lib . model . script Ċ Ċ import Ġcom . na os im . r pg lib . model . view model . Message ViewModel Ċ import Ġcom . na os im . r pg lib . model . view model . On Next Listener ĊĊ Ċ class ĠMessage Script Looper ( ĊĠĠĠĠĠĠĠ Ġval Ġmessage ViewModel : ĠMessage ViewModel , ĊĠĠĠĠĠĠĠ Ġval Ġscript Set : ĠScript Set Ċ ): ĠOnNext Listener Ġ{ ĊĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ; ĊĊĠĠĠ Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġnext () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnext () Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( count Ġ>= Ġscript Set . message Script List . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage ViewModel . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscript Set . on End . invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= Ġscript Set . message Script List . get ( count ) ĊĠĠĠĠĠĠĠ Ġif ( script Ġis ĠSimple Message Script ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage ViewModel . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage ViewModel . append Text ( script . message , Ġ{ Ġwait Next () Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġis Waiting Next Ġ= Ġfalse ; ĊĠĠĠ Ġfun Ġwait Next () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Waiting Next Ġ= Ġtrue ; ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġon Next () Ġ{ ĊĠĠĠĠĠĠĠ Ġif (! is Waiting Next ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnext () ĊĠĠĠĠĠĠĠ Ġis Waiting Next Ġ= Ġfalse ĊĠĠĠ Ġ} Ċ }