diff --git a/shiftos_next/API.vb b/shiftos_next/API.vb new file mode 100644 index 0000000..16cb502 --- /dev/null +++ b/shiftos_next/API.vb @@ -0,0 +1,94 @@ +Module API + 'Terminal + + Public txtterm As TextBox = Terminal.txtterm + + Public Sub wrongcommand() + AddLine("Invalid command! Type ""help"" for a list of commands.") + End Sub + + Public Sub AddLine(text As String) + txtterm.Text += vbNewLine + text + SelectBottom() + End Sub + + Public Sub openfile(file As String) + Dim filinfo As New IO.FileInfo(file) + Select Case filinfo.Extension + Case ".txt" + If boughttextpad = True Then + Dim sr As New IO.StreamReader(file) + TextPad.txtfilebody.Text = sr.ReadToEnd() + sr.Close() + TextPad.Show() + Else + wrongcommand() + End If + Case Else + wrongcommand() + End Select + End Sub + + + Public Sub showterminalcolors() + AddLine(" ==== SUPPORTED TERMINAL COLORS ==== " & vbNewLine) + AddLine("Below is a list of values that you can specify in arguments. Note that only certain colors are supported; and if the video driver can output a color but it isn't on this list, it is not supported by the Terminal display engine." & vbNewLine) + If boughtgray Then AddLine("gray") + AddLine("white") + AddLine("black") + If boughtred Then AddLine("red") + If boughtgreen Then AddLine("green") + If boughtblue Then AddLine("blue") + If boughtyellow Then AddLine("yellow") + If boughtorange Then AddLine("orange") + If boughtpink Then AddLine("pink") + If boughtpurple Then AddLine("purple") + If boughtbrown Then AddLine("brown") + End Sub + + Public Sub ShowHelp() + AddLine("ShiftOS Help" & vbNewLine) + AddLine("Usage tips: " & vbNewLine) + AddLine(" - The terminal runs in full-screen.") + If boughttextpad = True Then AddLine(" - Typing the path to a text file will open it in Textpad.") + AddLine(" - There are no window managers or desktop environments.") + If boughtbasicgui = True Then + AddLine(" - Applications can use the GUI server to display a proper GUI.") + Else + AddLine(" - Applications are fully text-based.") + End If + AddLine(" - Terminal commands are case-insensitive." & vbNewLine) + AddLine("Commands: " & vbNewLine) + If boughtdirectorysurfing Then + AddLine(" - cd: Change to the specified directory.") + AddLine(" - mkdir: Create a directory inside the current directory (marked before the %)") + AddLine(" - ls, dir: View the contents of the current directory.") + End If + If boughtbasicsettings Then + AddLine(" - set : Change some minimal settings in ShiftOS.") + If boughtcustomusername Then + AddLine(" Settings: ") + AddLine(" username : Set the username of the OS.") + End If + If boughtterminalsettextcolor = True Then + AddLine(" textcolor : Set the terminal text color.") + End If + End If + AddLine(" - codepoints: Shows the current amount of codepoints.") + AddLine(" - shutdown: Shuts the system down.") + AddLine(" - colors: Shows the colors supported by both the Terminal display engine, and the video driver.") + AddLine(" - help: Shows this screen." & vbNewLine) + AddLine("Installed Programs:" & vbNewLine) + AddLine("Below is a list of all the programs on your computer, followed by what they do. You can open one by typing ""open ""." & vbNewLine) + AddLine(" - shiftorium: Upgrade the OS with Codepoints using this application.") + If boughtfileskimmer Then AddLine(" - file skimmer: A handy little file browser.") + If boughttextpad Then AddLine(" - textpad: An application that allows for creating and editing text files.") + AddLine(" - MathQuiz: Earn Codepoints by solving math questions.") + AddLine(" - Guess the Number: Earn Codepoints by guessing a random number between 1 and 100.") + End Sub + + Public Sub SelectBottom() + txtterm.Select(txtterm.Text.Length, 0) + End Sub + +End Module diff --git a/shiftos_next/Terminal.vb b/shiftos_next/Terminal.vb index a365071..a4d5304 100644 --- a/shiftos_next/Terminal.vb +++ b/shiftos_next/Terminal.vb @@ -15,9 +15,7 @@ End If End Sub - Public Sub SelectBottom() - txtterm.Select(txtterm.Text.Length, 0) - End Sub + Public Sub Interpret(command As String) command = command.ToLower @@ -177,8 +175,16 @@ ElseIf command Like "shutdown" Then savegame() Me.Close() + ElseIf command Like "math*" Then + mathquiz = True + changeinterpreter() + ElseIf command Like "guess the number" Or command Like "guess" Then + guessthenumber = True + changeinterpreter() + ElseIf command Like "code*" Or command = "code points" Then + AddLine("You have " & codepoints & " Codepoints.") ElseIf command = "colors" Then - ShowTerminalColors() + showterminalcolors() ElseIf command Like "" Then 'This is here to make it so that the Terminal doesn't say "Wrong Command" if the user doesn't input anything. Else @@ -192,85 +198,11 @@ End If End Sub - Public Sub openfile(file As String) - Dim filinfo As New IO.FileInfo(file) - Select Case filinfo.Extension - Case ".txt" - If boughttextpad = True Then - Dim sr As New IO.StreamReader(file) - TextPad.txtfilebody.Text = sr.ReadToEnd() - sr.Close() - TextPad.Show() - Else - wrongcommand() - End If - Case Else - wrongcommand() - End Select - End Sub - Public Sub wrongcommand() - AddLine("Invalid command! Type ""help"" for a list of commands.") - End Sub - Public Sub showterminalcolors() - AddLine(" ==== SUPPORTED TERMINAL COLORS ==== " & vbNewLine) - AddLine("Below is a list of values that you can specify in arguments. Note that only certain colors are supported; and if the video driver can output a color but it isn't on this list, it is not supported by the Terminal display engine." & vbNewLine) - If boughtgray Then AddLine("gray") - AddLine("white") - AddLine("black") - If boughtred Then AddLine("red") - If boughtgreen Then AddLine("green") - If boughtblue Then AddLine("blue") - If boughtyellow Then AddLine("yellow") - If boughtorange Then AddLine("orange") - If boughtpink Then AddLine("pink") - If boughtpurple Then AddLine("purple") - If boughtbrown Then AddLine("brown") - End Sub - Public Sub ShowHelp() - AddLine("ShiftOS Help" & vbNewLine) - AddLine("Usage tips: " & vbNewLine) - AddLine(" - The terminal runs in full-screen.") - If boughttextpad = True Then AddLine(" - Typing the path to a text file will open it in Textpad.") - AddLine(" - There are no window managers or desktop environments.") - If boughtbasicgui = True Then - AddLine(" - Applications can use the GUI server to display a proper GUI.") - Else - AddLine(" - Applications are fully text-based.") - End If - AddLine(" - Terminal commands are case-insensitive." & vbNewLine) - AddLine("Commands: " & vbNewLine) - If boughtdirectorysurfing Then - AddLine(" - cd: Change to the specified directory.") - AddLine(" - mkdir: Create a directory inside the current directory (marked before the %)") - AddLine(" - ls, dir: View the contents of the current directory.") - End If - If boughtbasicsettings Then - AddLine(" - set : Change some minimal settings in ShiftOS.") - If boughtcustomusername Then - AddLine(" Settings: ") - AddLine(" username : Set the username of the OS.") - End If - If boughtterminalsettextcolor = True Then - AddLine(" textcolor : Set the terminal text color.") - End If - End If - AddLine(" - shutdown: Shuts the system down.") - AddLine(" - colors: Shows the colors supported by both the Terminal display engine, and the video driver.") - AddLine(" - help: Shows this screen." & vbNewLine) - AddLine("Installed Programs:" & vbNewLine) - AddLine("Below is a list of all the programs on your computer, followed by what they do. You can open one by typing ""open ""." & vbNewLine) - AddLine(" - shiftorium: Upgrade the OS with Codepoints using this application.") - If boughtfileskimmer Then AddLine(" - file skimmer: A handy little file browser.") - If boughttextpad Then AddLine(" - textpad: An application that allows for creating and editing text files.") - End Sub - Public Sub AddLine(text As String) - txtterm.Text += vbNewLine + text - SelectBottom() - End Sub + Dim firstuseconversation As Integer = 0 @@ -337,24 +269,56 @@ If e.KeyCode = Keys.Enter Then e.SuppressKeyPress = True - Dim command As String = txtterm.Lines(txtterm.Lines.Length - 1).Replace(username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ", "").ToLower - Interpret(command) - - If command = "clear" Then - txtterm.Text = username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> " - txtterm.Select(txtterm.Text.Length, 0) - + If mathquiz = True Then + Dim question As String = txtterm.Lines(txtterm.Lines.Length - 2) + Dim answer As String = txtterm.Lines(txtterm.Lines.Length - 1).Replace("> ", "") + If answer = "exit" Then + mathquiz = False + AddLine(username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ") + Else + Try + MQInterpret(question, answer) + Catch ex As Exception + AddLine("The answer provided isn't a proper number!") + End Try + AddLine("> ") + End If + ElseIf guessthenumber = True Then + Dim answer As String = txtterm.Lines(txtterm.Lines.Length - 1).Replace("> ", "") + If answer = "exit" Then + guessthenumber = False + AddLine(username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ") + Else + Try + GTNInterpret(answer) + Catch ex As Exception + AddLine("The answer provided isn't a proper number.") + End Try + AddLine("> ") + End If Else - AddLine(username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ") - txtterm.Select(txtterm.Text.Length, 0) - End If + Dim command As String = txtterm.Lines(txtterm.Lines.Length - 1).Replace(username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ", "").ToLower + Interpret(command) - trackpos = 0 + If mathquiz Or guessthenumber Then + AddLine("> ") + Else + If command = "clear" Then + txtterm.Text = username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> " + txtterm.Select(txtterm.Text.Length, 0) + + Else + AddLine(username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ") + txtterm.Select(txtterm.Text.Length, 0) + End If + End If + End If + trackpos = 0 Else - If e.KeyCode = Keys.Back Then - Else - trackpos = trackpos + 1 - End If + If e.KeyCode = Keys.Back Then + Else + trackpos = trackpos + 1 + End If End If If e.KeyCode = Keys.Back Then @@ -379,4 +343,6 @@ AddLine(username + "@" + osname + " " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ") End If End Sub + + End Class \ No newline at end of file diff --git a/shiftos_next/TerminalGames.vb b/shiftos_next/TerminalGames.vb new file mode 100644 index 0000000..fab93b3 --- /dev/null +++ b/shiftos_next/TerminalGames.vb @@ -0,0 +1,110 @@ +Module TerminalGames + + Public mathquiz As Boolean = False + Public guessthenumber As Boolean = False + + Public Sub MQInterpret(question As String, answer As Integer) + Dim random As New Random() + Dim args() As String = question.Replace("What is ", "").Split(" ") + Select Case args(1) + Case "+" + If answer = args(0) + args(2) Then + Dim cptoadd As Integer = random.Next(1, 5) + AddLine("Correct! You have earned " & cptoadd & " Codepoints!") + AddCP(cptoadd) + Else + AddLine("Incorrect! Better luck next time...") + End If + Case "-" + If answer = args(0) - args(2) Then + Dim cptoadd As Integer = random.Next(1, 5) + AddLine("Correct! You have earned " & cptoadd & " Codepoints!") + AddCP(cptoadd) + Else + AddLine("Incorrect! Better luck next time...") + End If + Case "*" + If answer = args(0) * args(2) Then + Dim cptoadd As Integer = random.Next(1, 5) + AddLine("Correct! You have earned " & cptoadd & " Codepoints!") + AddCP(cptoadd) + Else + AddLine("Incorrect! Better luck next time...") + End If + Case "/" + If answer = args(0) / args(2) Then + Dim cptoadd As Integer = random.Next(1, 5) + AddLine("Correct! You have earned " & cptoadd & " Codepoints!") + AddCP(cptoadd) + Else + AddLine("Incorrect! Better luck next time...") + End If + End Select + MQCreateQuestion() + End Sub + + Public Sub MQCreateQuestion() + Dim rand As New Random + Dim num1 As Integer = rand.Next(1, 10) + Dim num2 As Integer = rand.Next(1, 10) + Dim operandchooser As Integer = rand.Next(1, 4) + Dim operand As String + Select Case operandchooser + Case 1 + operand = " + " + Case 2 + While num2 > num1 + num2 = rand.Next(1, 10) + End While + operand = " - " + Case 3 + operand = " * " + Case 4 + operand = " / " + Case Else + operand = " + " + End Select + AddLine("What is " & num1 & operand & num2 & " ?") + End Sub + + Public Sub changeinterpreter() + If mathquiz = True Then + AddLine(" === MathQuiz ===" & vbNewLine) + AddLine("MathQuiz is a basic game for ShiftOS that allows you to earn Codepoints for solving math " & vbNewLine & "questions. These questions will always be (num1) (operand) (num2) = (answer)." & vbNewLine) + AddLine("(num1) and (num2) will always be integers between 1 and 10.") + AddLine("(operand) Will always be either a +, -, * (times) or / (division) statement that can change the answer.") + MQCreateQuestion() + End If + If guessthenumber = True Then + AddLine(" -= Guess The Number =-" & vbNewLine) + AddLine("Guess the Number is a game that allows you to earn Codepoints for") + AddLine("guessing a number between 1 and 100." & vbNewLine) + GTNStart() + End If + End Sub + + Public GTNCorrect As Integer + + Public Sub GTNStart() + Dim rand As New Random() + GTNCorrect = rand.Next(1, 100) + AddLine("Choose a number between 1 and 100:") + End Sub + + Public Sub GTNInterpret(num As Integer) + If num < 100 And num > 0 Then + If GTNCorrect = num Then + Dim rand As New Random() + Dim cptoadd As Integer = rand.Next(1, 10) + AddLine("Correct! You have earned " & cptoadd & " Codepoints.") + GTNStart() + ElseIf num > GTNCorrect Then + AddLine("Lower!") + ElseIf num < GTNCorrect Then + AddLine("Higher!") + End If + Else + AddLine("Number isn't between 1 and 100!") + End If + End Sub +End Module diff --git a/shiftos_next/bin/Debug/shiftos_next.exe b/shiftos_next/bin/Debug/shiftos_next.exe index 86135f0..cc05bb7 100644 Binary files a/shiftos_next/bin/Debug/shiftos_next.exe and b/shiftos_next/bin/Debug/shiftos_next.exe differ diff --git a/shiftos_next/bin/Debug/shiftos_next.pdb b/shiftos_next/bin/Debug/shiftos_next.pdb index 4f77b51..0461de9 100644 Binary files a/shiftos_next/bin/Debug/shiftos_next.pdb and b/shiftos_next/bin/Debug/shiftos_next.pdb differ diff --git a/shiftos_next/file skimmer.vb b/shiftos_next/file skimmer.vb index 0d5ff98..3e3e726 100644 --- a/shiftos_next/file skimmer.vb +++ b/shiftos_next/file skimmer.vb @@ -61,6 +61,8 @@ FileType = "Data File" Case ".dri" FileType = "Driver" + Case Else + FileType = "Unknown File" End Select Return FileType End Function diff --git a/shiftos_next/obj/Debug/shiftos_next.exe b/shiftos_next/obj/Debug/shiftos_next.exe index 86135f0..cc05bb7 100644 Binary files a/shiftos_next/obj/Debug/shiftos_next.exe and b/shiftos_next/obj/Debug/shiftos_next.exe differ diff --git a/shiftos_next/obj/Debug/shiftos_next.pdb b/shiftos_next/obj/Debug/shiftos_next.pdb index 4f77b51..0461de9 100644 Binary files a/shiftos_next/obj/Debug/shiftos_next.pdb and b/shiftos_next/obj/Debug/shiftos_next.pdb differ diff --git a/shiftos_next/shiftos_next.vbproj b/shiftos_next/shiftos_next.vbproj index 47f12ca..92a3fa7 100644 --- a/shiftos_next/shiftos_next.vbproj +++ b/shiftos_next/shiftos_next.vbproj @@ -70,6 +70,7 @@ + basicwm_infobox.vb @@ -120,6 +121,7 @@ Form + TextPad.vb