start_text = "Adventurer@AIDungeon:~$ ./EnterDungeon \n
" // Used to control the terminal like screen typing var Typer={ text: null, inputStr: "", index:0, speed:2, acceptInput: false, inputReady: false, content:function(){ return $("#console").html() }, appendToText:function(str){ str = str.replace(".", "." + "") typing = true Typer.text = Typer.text + str; }, removeChar:function(){ var cont=Typer.content() $("#console").html($("#console").html().substring(0,cont.length-1)) Typer.text = Typer.text.substring(0, Typer.text.length-1) Typer.index = Typer.index - 1 }, addText:function(){ if (Typer.index <= Typer.text.length) { var cont=Typer.content() if(cont.substring(cont.length-1,cont.length)=="|") $("#console").html($("#console").html().substring(0,cont.length-1)) if (Typer.text.substring(Typer.index, Typer.index + Typer.speed).includes(".")){ Typer.index += 1 } else{ Typer.index+=Typer.speed } var text=Typer.text.substring(0,Typer.index) var rtn= new RegExp("\n", "g") $("#console").html(text.replace(rtn,"
")) } else{ typing = false } }, sendInput:function(){ $.post("/generate", {Typer.inputStr}, receiveResponse) Typer.inputStr = "" }, startTyping:function(){ addTextTimer = setInterval("Typer.addText()", 20) }, KeyCheck:function(evt) { evt = evt || window.event var charCode = evt.keyCode || evt.which if(charCode == 8){ if(inputStr.length > 0){ console.log(inputStr) inputStr = inputStr.substring(0, inputStr.length-1) console.log(inputStr) Typer.removeChar() } } }, onKeyPressFunc:function(evt) { if(acceptInput && !isMobileDevice()){ evt = evt || window.event var charCode = evt.keyCode || evt.which if(charCode == 13){ acceptInput = false Typer.sendInput() } else{ var charStr = String.fromCharCode(charCode) Typer.appendToText(charStr) Typer.inputStr = Typer.inputStr + charStr } } }, onButtonClick:function(num){ document.getElementById('buttons').style.visibility='hidden'; if (acceptInput == true){ acceptInput = false num = String(num) Typer.appendToText(num) Typer.inputStr = num Typer.sendInput } }, } function receiveResponse(text){ Typer.appendToText(text) Typer.acceptInput = true } function start(){ Typer.speed=1 Typer.text = "" Typer.appendToText(start_text) Typer.startTyping() $.post("/generate", {""}, receiveResponse) console.log("Not mobile device"); document.getElementById('buttons').style.visibility='hidden'; } document.onkeypress = Typer.onKeyPressFunc document.addEventListener("keydown", Typer.KeyCheck); $(document).ready(function() { start() })