mirror of
https://github.com/TheUltimateHacker/ShiftOS.git
synced 2025-01-22 16:12:14 +00:00
4caacce50c
ShiftOS is a game about evolving an experimental operating system called "ShiftOS" from a completely black and white text based command line based OS to a fully graphical operating system filled with advanced features and beautiful colours. The level of customization will exceed the levels of real world operating systems
322 lines
14 KiB
VB.net
322 lines
14 KiB
VB.net
Module Viruses
|
|
'Zero Varibles
|
|
Public WithEvents zerogravitytimer As New Timer
|
|
Public zerogravity As Boolean = True
|
|
Public zerogravitythreatlevel As Integer = 1
|
|
Public zerogravityxspeed(20) As Integer
|
|
Public zerogravityyspeed(20) As Integer
|
|
Public zerogravityspeedth1 = 1
|
|
Public zerogravityspeedth2 = 2
|
|
Public zerogravityspeedth3 = 4
|
|
Public zerogravityspeedth4 = 8
|
|
|
|
|
|
'Mouse Trap Varibles
|
|
Public WithEvents mousetraptimer As New Timer
|
|
Public WithEvents cooldowntraptimer As New Timer
|
|
Public mousetrap As Boolean = True
|
|
Public mousetrapthreatlevel As Integer = 1
|
|
Public mousetraped As Boolean = False
|
|
Public bangstoescape As Integer = 20
|
|
Public trappedwindow As Integer = 0
|
|
Public bangvelocity As Integer
|
|
Public bangforceneeded As Integer = 30
|
|
Public trapcooldown As Integer = 20
|
|
Public trap1 As Boolean = False
|
|
Public trap2 As Boolean = False
|
|
Public trap3 As Boolean = False
|
|
Public trap4 As Boolean = False
|
|
Public alreadytrapped As Boolean = False
|
|
Public trappedprogram As Form
|
|
Public bangstoescapeth1 As Integer = 20
|
|
Public bangstoescapeth2 As Integer = 40
|
|
Public bangstoescapeth3 As Integer = 60
|
|
Public bangstoescapeth4 As Integer = 80
|
|
Public bangforceneeded1 As Integer = 30
|
|
Public bangforceneeded2 As Integer = 50
|
|
Public bangforceneeded3 As Integer = 80
|
|
Public bangforceneeded4 As Integer = 120
|
|
Public trapcooldown1 As Integer = 60
|
|
Public trapcooldown2 As Integer = 30
|
|
Public trapcooldown3 As Integer = 15
|
|
Public trapcooldown4 As Integer = 10
|
|
|
|
'Beeper Varibles
|
|
Public WithEvents beepertimer As New Timer
|
|
Public beeper As Boolean = True
|
|
Public beeperthreatlevel As Integer = 1
|
|
Public beepercountdown As Integer
|
|
Dim ResourceFilePath As String
|
|
Dim soundplayer As AxWMPLib.AxWindowsMediaPlayer
|
|
Dim beeperinterval As Integer = 5
|
|
|
|
'Zero Virus
|
|
Public Sub setupzerovirus()
|
|
setupzerogravityspeeds()
|
|
zerogravitytimer.Start()
|
|
zerogravitytimer.Interval = 20
|
|
End Sub
|
|
|
|
Public Sub setupzerogravityspeeds()
|
|
For i = 0 To 20
|
|
If i Mod 2 <> 0 Then
|
|
Select Case zerogravitythreatlevel
|
|
Case 1
|
|
zerogravityxspeed(i) = zerogravityspeedth1
|
|
zerogravityyspeed(i) = zerogravityspeedth1
|
|
Case 2
|
|
zerogravityxspeed(i) = zerogravityspeedth2
|
|
zerogravityyspeed(i) = zerogravityspeedth2
|
|
Case 3
|
|
zerogravityxspeed(i) = zerogravityspeedth3
|
|
zerogravityyspeed(i) = zerogravityspeedth3
|
|
Case 4
|
|
zerogravityxspeed(i) = zerogravityspeedth4
|
|
zerogravityyspeed(i) = zerogravityspeedth4
|
|
End Select
|
|
|
|
Else
|
|
Select Case zerogravitythreatlevel
|
|
Case 1
|
|
zerogravityxspeed(i) = -zerogravityspeedth1
|
|
zerogravityyspeed(i) = -zerogravityspeedth1
|
|
Case 2
|
|
zerogravityxspeed(i) = -zerogravityspeedth2
|
|
zerogravityyspeed(i) = -zerogravityspeedth2
|
|
Case 3
|
|
zerogravityxspeed(i) = -zerogravityspeedth3
|
|
zerogravityyspeed(i) = -zerogravityspeedth3
|
|
Case 4
|
|
zerogravityxspeed(i) = -zerogravityspeedth4
|
|
zerogravityyspeed(i) = -zerogravityspeedth4
|
|
End Select
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Public Sub floatingwindows() Handles zerogravitytimer.Tick
|
|
If Knowledge_Input.Visible = True Then calculatelocations(Knowledge_Input, 0)
|
|
If Shiftorium.Visible = True Then calculatelocations(Shiftorium, 1)
|
|
If Clock.Visible = True Then calculatelocations(Clock, 2)
|
|
If Shifter.Visible = True Then calculatelocations(Shifter, 3)
|
|
If Colour_Picker.Visible = True Then calculatelocations(Colour_Picker, 4)
|
|
If infobox.Visible = True Then calculatelocations(infobox, 5)
|
|
If Pong.Visible = True Then calculatelocations(Pong, 6)
|
|
If File_Skimmer.Visible = True Then calculatelocations(File_Skimmer, 7)
|
|
If File_Opener.Visible = True Then calculatelocations(File_Opener, 8)
|
|
If File_Saver.Visible = True Then calculatelocations(File_Saver, 9)
|
|
If TextPad.Visible = True Then calculatelocations(TextPad, 10)
|
|
If Graphic_Picker.Visible = True Then calculatelocations(Graphic_Picker, 11)
|
|
If Skin_Loader.Visible = True Then calculatelocations(Skin_Loader, 12)
|
|
If ArtPad.Visible = True Then calculatelocations(ArtPad, 13)
|
|
If Calculator.Visible = True Then calculatelocations(Calculator, 14)
|
|
If Audio_Player.Visible = True Then calculatelocations(Audio_Player, 15)
|
|
If Web_Browser.Visible = True Then calculatelocations(Web_Browser, 16)
|
|
If Video_Player.Visible = True Then calculatelocations(Video_Player, 17)
|
|
If Name_Changer.Visible = True Then calculatelocations(Name_Changer, 18)
|
|
If Icon_Manager.Visible = True Then calculatelocations(Icon_Manager, 19)
|
|
If Terminal.Visible = True Then calculatelocations(Terminal, 20)
|
|
End Sub
|
|
|
|
Public Sub calculatelocations(ByVal program As Form, ByVal number As Integer)
|
|
If zerogravityxspeed(number) > 0 Then
|
|
If (program.Location.X + program.Size.Width) > Screen.PrimaryScreen.Bounds.Width Then
|
|
zerogravityxspeed(number) = zerogravityxspeed(number) * -1
|
|
End If
|
|
End If
|
|
If zerogravityxspeed(number) < 0 Then
|
|
If program.Location.X < 0 Then
|
|
zerogravityxspeed(number) = zerogravityxspeed(number) * -1
|
|
End If
|
|
End If
|
|
If zerogravityyspeed(number) > 0 Then
|
|
If (program.Location.Y + program.Size.Height) > Screen.PrimaryScreen.Bounds.Height Then
|
|
zerogravityyspeed(number) = zerogravityyspeed(number) * -1
|
|
End If
|
|
End If
|
|
If zerogravityyspeed(number) < 0 Then
|
|
If program.Location.Y < 0 Then
|
|
zerogravityyspeed(number) = zerogravityyspeed(number) * -1
|
|
End If
|
|
End If
|
|
program.Location = New Point(program.Location.X + zerogravityxspeed(number), program.Location.Y + zerogravityyspeed(number))
|
|
End Sub
|
|
|
|
Public Sub removezerovirus()
|
|
zerogravitytimer.Stop()
|
|
Viruses.zerogravity = False
|
|
End Sub
|
|
|
|
'Mouse Trap Virus
|
|
Public Sub setupmousetrapvirus()
|
|
mousetraptimer.Start()
|
|
mousetraptimer.Interval = 20
|
|
cooldowntraptimer.Start()
|
|
cooldowntraptimer.Interval = 1000
|
|
Select Case mousetrapthreatlevel
|
|
Case 1
|
|
trapcooldown = trapcooldown1
|
|
bangforceneeded = bangforceneeded1
|
|
bangstoescape = bangstoescapeth1
|
|
Case 2
|
|
trapcooldown = trapcooldown2
|
|
bangforceneeded = bangforceneeded2
|
|
bangstoescape = bangstoescapeth2
|
|
Case 3
|
|
trapcooldown = trapcooldown3
|
|
bangforceneeded = bangforceneeded3
|
|
bangstoescape = bangstoescapeth3
|
|
Case 4
|
|
trapcooldown = trapcooldown4
|
|
bangforceneeded = bangforceneeded4
|
|
bangstoescape = bangstoescapeth4
|
|
End Select
|
|
|
|
End Sub
|
|
|
|
Public Sub seeifcantrap(ByVal sender As Object, ByVal e As EventArgs) Handles cooldowntraptimer.Tick
|
|
If trapcooldown < 0 Then
|
|
mousetraped = True
|
|
Else
|
|
trapcooldown = trapcooldown - 1
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub trapmouse(ByVal sender As Object, ByVal e As EventArgs) Handles mousetraptimer.Tick
|
|
If mousetraped = True Then
|
|
If alreadytrapped = False Then detectprogramtotrap(Knowledge_Input)
|
|
If alreadytrapped = False Then detectprogramtotrap(Shiftorium)
|
|
If alreadytrapped = False Then detectprogramtotrap(Clock)
|
|
If alreadytrapped = False Then detectprogramtotrap(Shifter)
|
|
If alreadytrapped = False Then detectprogramtotrap(Colour_Picker)
|
|
If alreadytrapped = False Then detectprogramtotrap(infobox)
|
|
If alreadytrapped = False Then detectprogramtotrap(Pong)
|
|
If alreadytrapped = False Then detectprogramtotrap(File_Skimmer)
|
|
If alreadytrapped = False Then detectprogramtotrap(File_Opener)
|
|
If alreadytrapped = False Then detectprogramtotrap(File_Saver)
|
|
If alreadytrapped = False Then detectprogramtotrap(TextPad)
|
|
If alreadytrapped = False Then detectprogramtotrap(Graphic_Picker)
|
|
If alreadytrapped = False Then detectprogramtotrap(Skin_Loader)
|
|
If alreadytrapped = False Then detectprogramtotrap(ArtPad)
|
|
If alreadytrapped = False Then detectprogramtotrap(Calculator)
|
|
If alreadytrapped = False Then detectprogramtotrap(Audio_Player)
|
|
If alreadytrapped = False Then detectprogramtotrap(Web_Browser)
|
|
If alreadytrapped = False Then detectprogramtotrap(Video_Player)
|
|
If alreadytrapped = False Then detectprogramtotrap(Name_Changer)
|
|
If alreadytrapped = False Then detectprogramtotrap(Icon_Manager)
|
|
If alreadytrapped = False Then detectprogramtotrap(Terminal)
|
|
|
|
If trappedprogram Is Nothing Then Else trapmouseinprogram(trappedprogram)
|
|
If bangstoescape < 0 Then
|
|
mousetraped = False
|
|
Select Case mousetrapthreatlevel
|
|
Case 1
|
|
trapcooldown = trapcooldown1
|
|
bangstoescape = bangstoescapeth1
|
|
Case 2
|
|
trapcooldown = trapcooldown2
|
|
bangstoescape = bangstoescapeth2
|
|
Case 3
|
|
trapcooldown = trapcooldown3
|
|
bangstoescape = bangstoescapeth3
|
|
Case 4
|
|
trapcooldown = trapcooldown4
|
|
bangstoescape = bangstoescapeth4
|
|
End Select
|
|
alreadytrapped = False
|
|
trappedprogram = Nothing
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub detectprogramtotrap(ByVal program As Form)
|
|
If program.Visible = True Then
|
|
If Cursor.Position.X < program.Location.X + program.Width - ShiftOSDesktop.windowbordersize Then
|
|
trap1 = True
|
|
End If
|
|
If Cursor.Position.X > program.Location.X + ShiftOSDesktop.windowbordersize Then
|
|
trap2 = True
|
|
End If
|
|
If Cursor.Position.Y > program.Location.Y + ShiftOSDesktop.titlebarheight Then
|
|
trap3 = True
|
|
End If
|
|
If Cursor.Position.Y < program.Location.Y + program.Height - ShiftOSDesktop.windowbordersize Then
|
|
trap4 = True
|
|
End If
|
|
If trap1 = True AndAlso trap2 = True AndAlso trap3 = True AndAlso trap4 = True Then
|
|
alreadytrapped = True
|
|
trappedprogram = program
|
|
End If
|
|
End If
|
|
trap1 = False
|
|
trap2 = False
|
|
trap3 = False
|
|
trap4 = False
|
|
End Sub
|
|
|
|
Public Sub trapmouseinprogram(ByVal program As Form)
|
|
If Cursor.Position.X > program.Location.X + program.Width - ShiftOSDesktop.windowbordersize Then
|
|
bangvelocity = Math.Abs(Cursor.Position.X - (program.Location.X + program.Width - ShiftOSDesktop.windowbordersize))
|
|
Cursor.Position = New Point(program.Location.X + program.Width - ShiftOSDesktop.windowbordersize, Cursor.Position.Y)
|
|
If bangvelocity > bangforceneeded Then bangstoescape = bangstoescape - 1
|
|
End If
|
|
If Cursor.Position.X < program.Location.X + ShiftOSDesktop.windowbordersize Then
|
|
bangvelocity = Math.Abs(Cursor.Position.X - (program.Location.X + ShiftOSDesktop.windowbordersize))
|
|
Cursor.Position = New Point(program.Location.X + ShiftOSDesktop.windowbordersize, Cursor.Position.Y)
|
|
If bangvelocity > bangforceneeded Then bangstoescape = bangstoescape - 1
|
|
End If
|
|
If Cursor.Position.Y < program.Location.Y + ShiftOSDesktop.titlebarheight Then
|
|
bangvelocity = Math.Abs(Cursor.Position.Y - (program.Location.Y + ShiftOSDesktop.titlebarheight))
|
|
Cursor.Position = New Point(Cursor.Position.X, program.Location.Y + ShiftOSDesktop.titlebarheight)
|
|
If bangvelocity > bangforceneeded Then bangstoescape = bangstoescape - 1
|
|
End If
|
|
If Cursor.Position.Y > program.Location.Y + program.Height - ShiftOSDesktop.windowbordersize Then
|
|
bangvelocity = Math.Abs(Cursor.Position.Y - (program.Location.Y + program.Height - ShiftOSDesktop.windowbordersize))
|
|
Cursor.Position = New Point(Cursor.Position.X, program.Location.Y + program.Height - ShiftOSDesktop.windowbordersize)
|
|
If bangvelocity > bangforceneeded Then bangstoescape = bangstoescape - 1
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub removemousetrapvirus()
|
|
Viruses.mousetrap = False
|
|
mousetraptimer.Stop()
|
|
mousetraped = False
|
|
cooldowntraptimer.Stop()
|
|
End Sub
|
|
|
|
'Beeper Virus
|
|
Public Sub setupbeepervirus()
|
|
setupbeeperintervals()
|
|
'If System.Diagnostics.Debugger.IsAttached() Then
|
|
' ResourceFilePath = System.IO.Path.GetFullPath(Application.StartupPath & "\..\..\resources\")
|
|
'Else
|
|
' ResourceFilePath = Application.StartupPath & "\resources\"
|
|
'End If
|
|
beepertimer.Start()
|
|
beepertimer.Interval = 500
|
|
beepercountdown = beeperinterval
|
|
End Sub
|
|
|
|
Private Sub setupbeeperintervals()
|
|
Select Case beeperthreatlevel
|
|
Case 1 : beeperinterval = 60
|
|
Case 2 : beeperinterval = 24
|
|
Case 3 : beeperinterval = 8
|
|
Case 4 : beeperinterval = 1
|
|
End Select
|
|
End Sub
|
|
|
|
Public Sub beepermakesound(ByVal sender As Object, ByVal e As EventArgs) Handles beepertimer.Tick
|
|
If beepercountdown = 0 Then
|
|
My.Computer.Audio.Play(My.Resources._3beepvirus, AudioPlayMode.Background)
|
|
beepercountdown = beeperinterval
|
|
Else
|
|
beepercountdown = beepercountdown - 1
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub removebeepervirus()
|
|
Viruses.beeper = False
|
|
beepertimer.Stop()
|
|
End Sub
|
|
End Module
|