ShiftOS-TheRevival-Old/ShiftOS-TheRevival/MainForms/Applications/Universal/Knowledge Input/Uni_KnowledgeInput.vb

249 lines
13 KiB
VB.net
Raw Normal View History

Imports System.IO
Public Class Uni_KnowledgeInput
2022-11-27 20:58:48 +07:00
Public Countries(194) As String
Public Animals(226) As String
Public Fruits(75) As String
2022-11-27 20:58:48 +07:00
Public US_States(50) As String
Public TotalGuessed As Integer
Public CurrentCategory As String
Public Level As Integer
Public ForNextLevel As Integer
Public JustStarted As Boolean = True
2022-11-23 08:36:50 +07:00
2022-11-23 10:32:09 +07:00
Private Sub Uni_KnowledgeInput_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput") = True Then
If File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\Animals.kin") = True Then
Else
If Strings.AvailableFeature(38) = 1 Then
File.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\Animals.kin", My.Resources.KnowledgeInputContent.Animals)
End If
End If
If File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\Fruits.kin") = True Then
Else
If Strings.AvailableFeature(39) = 1 Then
File.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\Fruits.kin", My.Resources.KnowledgeInputContent.Fruits)
End If
End If
2022-11-27 20:58:48 +07:00
If File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\US_States.kin") = True Then
Else
If Strings.AvailableFeature(42) = 1 Then
File.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\US_States.kin", My.Resources.KnowledgeInputContent.US_States)
End If
End If
Else
Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput")
File.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\Countries.kin", My.Resources.KnowledgeInputContent.Countries)
End If
CurrentCategory = "Select Category"
LoadCategory()
End Sub
Private Sub lst_Guessed_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles lst_Guessed.DrawItem
e.DrawBackground()
If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
e.Graphics.FillRectangle(Brushes.Black, e.Bounds)
End If
Dim sf As New StringFormat
Using b As New SolidBrush(e.ForeColor)
e.Graphics.DrawString(lst_Guessed.GetItemText(lst_Guessed.Items(e.Index)), e.Font, b, e.Bounds, sf)
End Using
e.DrawFocusRectangle()
End Sub
Private Sub cmb_Category_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles cmb_Category.DrawItem
e.DrawBackground()
If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
e.Graphics.FillRectangle(Brushes.Black, e.Bounds)
End If
Dim sf As New StringFormat
Using b As New SolidBrush(e.ForeColor)
e.Graphics.DrawString(cmb_Category.GetItemText(cmb_Category.Items(e.Index)), e.Font, b, e.Bounds, sf)
End Using
e.DrawFocusRectangle()
2022-11-23 10:32:09 +07:00
End Sub
Private Sub txt_InputWord_TextChanged(sender As Object, e As KeyEventArgs) Handles txt_InputWord.KeyDown
Select Case e.KeyCode
Case Keys.Enter
CheckCorrect(txt_InputWord.Text.ToLower)
txt_InputWord.Text = Nothing
JustStarted = False
End Select
End Sub
Private Sub cmb_Category_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmb_Category.SelectedIndexChanged
Dim Available As Boolean = False
JustStarted = True
lbl_TotalGuess.Text = "Guessed : 0/0"
lst_Guessed.Items.Clear()
Select Case cmb_Category.SelectedItem.ToString
Case "Countries"
If File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\CurrentCountries.kin") = True Then
lst_Guessed.Items.AddRange(File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\CurrentCountries.kin"))
End If
Available = True
Countries = File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\Countries.kin")
Case "Animals"
If File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\CurrentAnimals.kin") = True Then
lst_Guessed.Items.AddRange(File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\CurrentAnimals.kin"))
End If
Available = True
Animals = File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\Animals.kin")
Case "Fruits"
If File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\CurrentFruits.kin") = True Then
lst_Guessed.Items.AddRange(File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\CurrentFruits.kin"))
End If
Available = True
Fruits = File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\Fruits.kin")
2022-11-27 20:58:48 +07:00
Case "US States"
If File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\CurrentUS_States.kin") = True Then
lst_Guessed.Items.AddRange(File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\CurrentUS_States.kin"))
End If
Available = True
US_States = File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\US_States.kin")
End Select
If Available = True Then
TotalGuessed = lst_Guessed.Items.Count
lbl_TotalGuess.Text = "Guessed : " & TotalGuessed & "/"
Select Case cmb_Category.SelectedItem.ToString
Case "Countries"
lbl_TotalGuess.Text = lbl_TotalGuess.Text & Countries.Length
Case "Animals"
lbl_TotalGuess.Text = lbl_TotalGuess.Text & Animals.Length
Case "Fruits"
lbl_TotalGuess.Text = lbl_TotalGuess.Text & Fruits.Length
2022-11-27 20:58:48 +07:00
Case "US States"
lbl_TotalGuess.Text = lbl_TotalGuess.Text & US_States.Length
End Select
Level = Math.Ceiling((TotalGuessed / 10))
CheckLevel()
CurrentCategory = cmb_Category.SelectedItem.ToString
End If
End Sub
Private Sub LoadCategory()
If Strings.AvailableFeature(38) = 0 Then
cmb_Category.Items.Remove("Animals")
End If
If Strings.AvailableFeature(39) = 0 Then
cmb_Category.Items.Remove("Fruits")
End If
2022-11-27 20:58:48 +07:00
If Strings.AvailableFeature(42) = 0 Then
cmb_Category.Items.Remove("US States")
End If
End Sub
Private Sub CheckLevel()
lbl_Level.Text = "Level " & Level
ForNextLevel = Math.Abs(TotalGuessed - (Level * 10))
If ForNextLevel = 0 Then
If JustStarted = False Then
ChangeCP(True, Level * 25)
End If
Level = Level + 1
lbl_Level.Text = "Level " & Level
ForNextLevel = 10
End If
lbl_NextLevel.Text = "Words until next level (" & Level * 25 & " CP) : " & ForNextLevel
End Sub
Private Sub CheckCorrect(Input As String)
Dim Correct As Boolean = False
Select Case cmb_Category.SelectedItem.ToString
Case "Countries"
Dim Lines As Integer = 0
Do
If Lines = Countries.Length Then
Exit Do
End If
If Countries(Lines) = Input Then
Countries(Lines) = "null"
Correct = True
Exit Do
Else
Lines = Lines + 1
End If
Loop
Case "Animals"
Dim Lines As Integer = 0
Do
If Lines = Animals.Length Then
Exit Do
End If
If Animals(Lines) = Input Then
Animals(Lines) = "null"
Correct = True
Exit Do
Else
Lines = Lines + 1
End If
Loop
Case "Fruits"
Dim Lines As Integer = 0
Do
If Lines = Fruits.Length Then
Exit Do
End If
If Fruits(Lines) = Input Then
Fruits(Lines) = "null"
Correct = True
Exit Do
Else
Lines = Lines + 1
End If
Loop
2022-11-27 20:58:48 +07:00
Case "US States"
Dim Lines As Integer = 0
Do
If Lines = US_States.Length Then
Exit Do
End If
If US_States(Lines) = Input Then
US_States(Lines) = "null"
Correct = True
Exit Do
Else
Lines = Lines + 1
End If
Loop
End Select
If Correct = True Then
lst_Guessed.Items.Add(Input)
TotalGuessed = lst_Guessed.Items.Count
lbl_TotalGuess.Text = "Guessed : " & TotalGuessed & "/"
Select Case cmb_Category.SelectedItem.ToString
Case "Countries"
lbl_TotalGuess.Text = lbl_TotalGuess.Text & Countries.Length
Case "Animals"
lbl_TotalGuess.Text = lbl_TotalGuess.Text & Animals.Length
Case "Fruits"
lbl_TotalGuess.Text = lbl_TotalGuess.Text & Fruits.Length
2022-11-27 20:58:48 +07:00
Case "US States"
lbl_TotalGuess.Text = lbl_TotalGuess.Text & US_States.Length
End Select
CheckLevel()
SaveCategory()
End If
End Sub
Private Sub SaveCategory()
Select Case CurrentCategory
Case "Countries"
File.WriteAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\Countries.kin", Countries)
File.WriteAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\CurrentCountries.kin", lst_Guessed.Items.Cast(Of String).ToArray)
Case "Animals"
File.WriteAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\Animals.kin", Animals)
File.WriteAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\CurrentAnimals.kin", lst_Guessed.Items.Cast(Of String).ToArray)
Case "Fruits"
File.WriteAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\Fruits.kin", Fruits)
File.WriteAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\CurrentFruits.kin", lst_Guessed.Items.Cast(Of String).ToArray)
2022-11-27 20:58:48 +07:00
Case "US States"
File.WriteAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\US_States.kin", US_States)
File.WriteAllLines(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\ShiftOS\SysShiftFS\KnowledgeInput\CurrentUS_States.kin", lst_Guessed.Items.Cast(Of String).ToArray)
End Select
2022-11-23 10:32:09 +07:00
End Sub
2022-11-23 08:36:50 +07:00
End Class