From 918b0696120dde8a8f149eebe7947479f6d1fb51 Mon Sep 17 00:00:00 2001 From: Rumps Date: Fri, 14 Apr 2017 08:50:05 +0100 Subject: [PATCH] Consolidated both simulators --- .../CharacterCreation.vb | 109 ++ Presidency Simulator 2013/DeathForm.vb | 196 +++ Presidency Simulator 2013/DefaultView.vb | 871 ++++++++++++ Presidency Simulator 2013/Intro.vb | 40 + Presidency Simulator 2013/LICENSE.txt | 674 +++++++++ Presidency Simulator 2013/MainMenu.vb | 39 + Presidency Simulator 2013/MusicPlayer.vb | 22 + Presidency Simulator 2013/PublicVars.vb | 271 ++++ Presidency Simulator 2013/README.md | 5 + Presidency Simulator 2013/Recreation.vb | 438 ++++++ Presidency Simulator 2013/SplashScreen.vb | 139 ++ Presidency Simulator 2013/ViewCharacter.vb | 142 ++ Royalty Simulator 2013/CharacterCreation.vb | 111 ++ Royalty Simulator 2013/DeathForm.vb | 282 ++++ Royalty Simulator 2013/DefaultView.vb | 1199 +++++++++++++++++ Royalty Simulator 2013/Intro.vb | 55 + Royalty Simulator 2013/LICENSE.txt | 674 +++++++++ Royalty Simulator 2013/MainMenu.vb | 96 ++ Royalty Simulator 2013/MusicPlayer.vb | 46 + Royalty Simulator 2013/PublicVars.vb | 298 ++++ Royalty Simulator 2013/README.md | 5 + Royalty Simulator 2013/Recreation.vb | 442 ++++++ Royalty Simulator 2013/SplashScreen.vb | 147 ++ Royalty Simulator 2013/ViewCharacter.vb | 203 +++ Royalty Simulator 2013/[Controls].vb | 3 + 25 files changed, 6507 insertions(+) create mode 100644 Presidency Simulator 2013/CharacterCreation.vb create mode 100644 Presidency Simulator 2013/DeathForm.vb create mode 100644 Presidency Simulator 2013/DefaultView.vb create mode 100644 Presidency Simulator 2013/Intro.vb create mode 100644 Presidency Simulator 2013/LICENSE.txt create mode 100644 Presidency Simulator 2013/MainMenu.vb create mode 100644 Presidency Simulator 2013/MusicPlayer.vb create mode 100644 Presidency Simulator 2013/PublicVars.vb create mode 100644 Presidency Simulator 2013/README.md create mode 100644 Presidency Simulator 2013/Recreation.vb create mode 100644 Presidency Simulator 2013/SplashScreen.vb create mode 100644 Presidency Simulator 2013/ViewCharacter.vb create mode 100644 Royalty Simulator 2013/CharacterCreation.vb create mode 100644 Royalty Simulator 2013/DeathForm.vb create mode 100644 Royalty Simulator 2013/DefaultView.vb create mode 100644 Royalty Simulator 2013/Intro.vb create mode 100644 Royalty Simulator 2013/LICENSE.txt create mode 100644 Royalty Simulator 2013/MainMenu.vb create mode 100644 Royalty Simulator 2013/MusicPlayer.vb create mode 100644 Royalty Simulator 2013/PublicVars.vb create mode 100644 Royalty Simulator 2013/README.md create mode 100644 Royalty Simulator 2013/Recreation.vb create mode 100644 Royalty Simulator 2013/SplashScreen.vb create mode 100644 Royalty Simulator 2013/ViewCharacter.vb create mode 100644 Royalty Simulator 2013/[Controls].vb diff --git a/Presidency Simulator 2013/CharacterCreation.vb b/Presidency Simulator 2013/CharacterCreation.vb new file mode 100644 index 0000000..8da5858 --- /dev/null +++ b/Presidency Simulator 2013/CharacterCreation.vb @@ -0,0 +1,109 @@ +Public Class CharacterCreation + + Private Sub CharacterCreation_Load(sender As Object, e As EventArgs) Handles MyBase.Load + NewPlayer() + radMale.Checked = True + radDem.Checked = True + End Sub + Private Sub radMale_CheckedChanged(sender As Object, e As EventArgs) Handles radMale.CheckedChanged + ThePlayer.Gender = 1 + picMonarch.Image = My.Resources.King + End Sub + Private Sub radFemale_CheckedChanged(sender As Object, e As EventArgs) Handles radFemale.CheckedChanged + ThePlayer.Gender = 0 + picMonarch.Image = My.Resources.Queen + End Sub + Private Sub btnQuitGame_Click(sender As Object, e As EventArgs) Handles btnMainMenu.Click + MainMenu.Show() + Me.Close() + End Sub + Private Sub btnPlay_Click(sender As Object, e As EventArgs) Handles btnPlay.Click + ThePlayer.CurrYear = Year(Now) + + ThePlayer.DeathAge = 100 + CInt(Int((50) * Rnd()) + 1) + + If txtName.Text <> "" Then + ThePlayer.Name = txtName.Text + ElseIf txtName.Text = "" Then + ThePlayer.Name = "The Nameless One" + End If + ThePlayer.Age = numAge.Text + If cmboBirthplace.Text = "" Then + ThePlayer.Birthplace = "Death Valley, USA" + ElseIf cmboBirthplace.Text <> "" Then + ThePlayer.Birthplace = cmboBirthplace.SelectedItem + End If + + If ThePlayer.Gender = 1 Then + ThePlayer.Partner = "First Lady" + ElseIf ThePlayer.Gender = 0 Then + ThePlayer.Partner = "First Gentleman" + End If + + ThePlayer.Elections() + + Intro.Show() + Me.Close() + End Sub + Private Sub CharacterCreation_Resize(sender As Object, e As EventArgs) Handles Me.Resize + + + pnlMenu.Height = Screen.PrimaryScreen.Bounds.Height + pnlMenu.Width = (Screen.PrimaryScreen.Bounds.Width - picMonarch.Width) + pnlMenu.Location = New Point(picMonarch.Width, pnlMenu.Location.Y) + + picMonarch.Height = pnlMenu.Height + picMonarch.Width = Screen.PrimaryScreen.Bounds.Height + + lblName.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 40) + ResizeText(lblName) + + txtName.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + txtName.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 45) + + lblAge.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 50) + ResizeText(lblAge) + + lblParty.Location = New Point((pnlMenu.Width / 100) * 50, (pnlMenu.Height / 100) * 50) + ResizeText(lblParty) + + radDem.Location = New Point((pnlMenu.Width / 100) * 50, (pnlMenu.Height / 100) * 55) + + radRep.Location = New Point((pnlMenu.Width / 100) * 75, (pnlMenu.Height / 100) * 55) + + numAge.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 60) + numAge.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 55) + + lblBirthplace.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 60) + ResizeText(lblBirthplace) + + cmboBirthplace.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + cmboBirthplace.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 65) + cmboBirthplace.DropDownHeight = (pnlMenu.Height / 100) * 100 + + lblGender.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 70) + ResizeText(lblGender) + + radMale.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 75) + + radFemale.Location = New Point((pnlMenu.Width / 100) * 45, (pnlMenu.Height / 100) * 75) + + btnPlay.Width = txtName.Width + btnPlay.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 82) + + btnMainMenu.Width = btnPlay.Width / 2 + btnMainMenu.Location = New Point(btnPlay.Location.X + (btnPlay.Width / 4), (pnlMenu.Height / 100) * 90) + + picRoyaltySimulatorLogo.Width = txtName.Width + picRoyaltySimulatorLogo.Height = (pnlMenu.Height / 100) * 30 + picRoyaltySimulatorLogo.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 10) + End Sub + + Private Sub radDem_CheckedChanged(sender As Object, e As EventArgs) Handles radDem.CheckedChanged + ThePlayer.Party = "Democrat" + End Sub + + Private Sub radRep_CheckedChanged(sender As Object, e As EventArgs) Handles radRep.CheckedChanged + ThePlayer.Party = "Republican" + End Sub +End Class \ No newline at end of file diff --git a/Presidency Simulator 2013/DeathForm.vb b/Presidency Simulator 2013/DeathForm.vb new file mode 100644 index 0000000..46f8536 --- /dev/null +++ b/Presidency Simulator 2013/DeathForm.vb @@ -0,0 +1,196 @@ +Public Class DeathForm + Dim RankVal As Integer = 0 + Dim Rank As Char + Private Sub DeathForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Populate() + + GetRank() + If RankVal < 15 Then + Rank = "F" + picRank.Image = My.Resources.RankF + ElseIf (RankVal < 30) And (RankVal >= 15) Then + Rank = "E" + picRank.Image = My.Resources.RankE + ElseIf (RankVal < 45) And (RankVal >= 30) Then + Rank = "D" + picRank.Image = My.Resources.RankD + ElseIf (RankVal < 60) And (RankVal >= 45) Then + Rank = "C" + picRank.Image = My.Resources.RankC + ElseIf (RankVal < 75) And (RankVal >= 60) Then + Rank = "B" + picRank.Image = My.Resources.RankB + ElseIf (RankVal < 90) And (RankVal >= 75) Then + Rank = "A" + picRank.Image = My.Resources.RankA + ElseIf RankVal > 90 Then + Rank = "S" + picRank.Image = My.Resources.RankS + End If + End Sub + + Private Sub DeathForm_Resize(sender As Object, e As EventArgs) Handles Me.Resize + lblCauseofDeath.Location = New Point((Me.Width / 100) * 5, (Me.Height / 100) * 1) + + lstStats.Width = (Me.Width / 100) * 90 + lstStats.Height = (Me.Height / 100) * 80 + lstStats.Location = New Point((Me.Width / 100) * 5, (Me.Height / 100) * 6) + lstStats.ColumnWidth = lstStats.Width / 2 - ((Me.Width / 100) * 5) + + btnMainMenu.Width = (Me.Width / 7) * 5 + btnMainMenu.Height = (Me.Height / 100) * 10 + btnMainMenu.Location = New Point((Me.Width / 100) * 5, (Me.Height / 100) * 87) + + lblRank.Location = New Point((Me.Width / 5) * 4, (Me.Height / 100) * 95) + + picRank.Height = Me.Height / 7 + picRank.Width = picRank.Height + picRank.Location = New Point((Me.Width / 10) * 9, (Me.Height / 100) * 85) + End Sub + Sub GetRank() + If ThePlayer.Happiness > 100 Then + ThePlayer.Happiness = 100 + End If + RankVal = RankVal + (ThePlayer.Happiness / 10) + + If ThePlayer.Respect > 150 Then + ThePlayer.Respect = 150 + End If + RankVal = RankVal + (ThePlayer.Respect / 10) + + If ThePlayer.Knowledge > 100 Then + ThePlayer.Knowledge = 100 + End If + RankVal = RankVal + (ThePlayer.Happiness / 10) + + If (ThePlayer.PlebspottingTrips > 0) Then + RankVal = RankVal + 2.5 + End If + If (ThePlayer.ResearchSeshes > 0) Then + RankVal = RankVal + 1.5 + End If + If (ThePlayer.Holidays > 0) Then + RankVal = RankVal + 1.5 + End If + If (ThePlayer.PoloGames > 0) Then + RankVal = RankVal + 1.5 + End If + If (ThePlayer.PartiesHosted > 0) Then + RankVal = RankVal + 1.5 + End If + If (ThePlayer.FilmNights > 0) Then + RankVal = RankVal + 1.5 + End If + If ThePlayer.ParliamentDissolved = True Then + RankVal = RankVal + 10 + If ThePlayer.UnifiedIreland = True Then + RankVal = RankVal + 5 + End If + If ThePlayer.WorldTaken = True Then + RankVal = RankVal + 35 + End If + End If + If ThePlayer.ArgieButthurtLevel = 13 Then + RankVal = RankVal + 5 + End If + End Sub + Sub Populate() + Dim Title As String = "" + Title = "President" + With lstStats.Items + .Add("--GENERAL--") + .Add("Name: " & Title & " " & ThePlayer.Name) + .Add(Title & " for : " & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years") + .Add("Party: " & ThePlayer.Party) + .Add("Happiness: " & ThePlayer.Happiness) + .Add("Respect: " & ThePlayer.Respect) + .Add("Knowledge: " & ThePlayer.Knowledge) + .Add("Birthplace: " & ThePlayer.Birthplace) + .Add(ThePlayer.GDPTerm & ThePlayer.GDP.ToString("###,###,###,###")) + If ThePlayer.ParliamentDissolved = False Then + .Add("Current government: " & Government(ThePlayer.CurrGovernment)) + ElseIf ThePlayer.ParliamentDissolved = True Then + .Add("Current government: Congress dissolved in " & ThePlayer.YearParliamentDissolved) + End If + .Add("Number of elections held during reign: " & ThePlayer.ElectionNum) + .Add("Number of resignation threats: " & ThePlayer.AbdicationThreats) + .Add("--RECREATION--") + .Add("Equalspotting trips: " & ThePlayer.PlebspottingTrips) + .Add("Research sessions: " & ThePlayer.ResearchSeshes) + .Add("Holidays gone on: " & ThePlayer.Holidays) + .Add("Good holidays: " & ThePlayer.GoodHolidays) + .Add("Bad holidays: " & ThePlayer.BadHolidays) + .Add("NFL games played: " & ThePlayer.PoloGames) + .Add("NFL games won: " & ThePlayer.PoloGamesWon) + .Add("NFL games lost: " & ThePlayer.PoloGamesLost) + .Add("Sick White House parties hosted: " & ThePlayer.PartiesHosted) + .Add("Successful parties: " & ThePlayer.GoodPartiesHosted) + .Add("Unsuccessful parties: " & ThePlayer.BadPartiesHosted) + .Add("Film nights in with the " & ThePlayer.Partner & ": " & ThePlayer.FilmNights) + .Add("Good film nights: " & ThePlayer.GoodFilmNights) + .Add("Bad film nights: " & ThePlayer.GoodFilmNights) + .Add("--DECREES--") + .Add("Commoners executed: " & ThePlayer.CommonersExecuted) + If ThePlayer.AtWarWithFrance = True Then + .Add("At war with Communism: Of course!") + .Add("At war with Communism for: " & ThePlayer.AtWarWithFranceFor) + .Add("Lives lost in the unending America-Communism War of " & ThePlayer.YearWarDeclared & ": " & ThePlayer.LivesLost) + ElseIf (ThePlayer.AtWarWithFrance = False) And (ThePlayer.WorldTaken = True) And (ThePlayer.AtWarWithFranceForDays > 0) Then + .Add("At war with Communism: Communism? Do you mean New Capitalism?") + .Add("At war with France for: " & ThePlayer.AtWarWithFranceFor) + .Add("Lives lost in the now-ended America-Communism War of " & ThePlayer.YearWarDeclared & ": " & ThePlayer.LivesLost) + ElseIf (ThePlayer.AtWarWithFrance = False) And (ThePlayer.WorldTaken = True) And (ThePlayer.AtWarWithFranceForDays = 0) Then + .Add("At war with Communism: Communism? Do you mean New Capitalism?") + ElseIf (ThePlayer.AtWarWithFrance = False) And (ThePlayer.WorldTaken = False) Then + .Add("At war with Communism: No") + End If + If ThePlayer.MonumentsErected > 0 Then + If ThePlayer.SunkFalklands = False Then + .Add("Monuments erected on Texas: " & ThePlayer.MonumentsErected) + .Add("Weight of Texas monuments: " & ThePlayer.FalklandMonumentsWeight & "kg") + ElseIf ThePlayer.SunkFalklands = True Then + .Add("Monuments erected on the former Texas: " & ThePlayer.MonumentsErected) + .Add("Weight of Texas monuments: Unknown") + End If + .Add("Mexican butthurt level: " & ArgieButthurt(ThePlayer.ArgieButthurtLevel)) + End If + If ThePlayer.UnifiedIreland = True Then + .Add("Dakotas united: Finally") + .Add("Year Dakotas unified: " & ThePlayer.YearIrelandUnified) + .Add("Attempts to unify Dakotas: " & ThePlayer.AttemptstoUnifyIreland) + .Add("Lives lost attempting to unify the Dakotas: " & ThePlayer.LivesLostIreland) + .Add("Dakotan nationalist assassinations: " & ThePlayer.IRAAssassinations) + ElseIf ThePlayer.UnifiedIreland = False Then + .Add("Dakotas united: No") + If ThePlayer.AttemptstoUnifyIreland > 0 Then + .Add("Attempts to unify Dakotas: " & ThePlayer.AttemptstoUnifyIreland) + .Add("Lives lost attempting to unify the Dakotas: " & ThePlayer.LivesLostIreland) + End If + End If + .Add("Percentage of equine consuls: " & ThePlayer.PercentageofHorseConsuls & "%") + If ThePlayer.WorldTaken = 1 Then + .Add("World taken: USA! USA!") + ElseIf ThePlayer.WorldTaken = 0 Then + .Add("World taken: Working on it") + End If + .Add("Attempts to take over the world: " & ThePlayer.AttemptstoTakeWorld) + .Add("Lives lost taking over the world: " & ThePlayer.LivesLostTakeWorld) + If ThePlayer.WorldTaken = 1 Then + .Add("Year world taken over: " & ThePlayer.YearWorldTaken) + End If + + .Add("Churches formed: " & ThePlayer.ChurchesFormed) + If ThePlayer.MadeofGlass = True Then + .Add("Gone snooker loopy: Yes") + ElseIf ThePlayer.MadeofGlass = False Then + .Add("Gone snooker loopy: Not completely") + End If + .Add(ThePlayer.Partner & "s beheaded: " & ThePlayer.WivesBeheaded) + .Add("Things declared punishable by death: " & ThePlayer.ThingsDeclaredPunishableByDeath) + End With + End Sub + Private Sub btnMainMenu_Click(sender As Object, e As EventArgs) Handles btnMainMenu.Click + MainMenu.Show() + Me.Close() + End Sub +End Class \ No newline at end of file diff --git a/Presidency Simulator 2013/DefaultView.vb b/Presidency Simulator 2013/DefaultView.vb new file mode 100644 index 0000000..283fdd6 --- /dev/null +++ b/Presidency Simulator 2013/DefaultView.vb @@ -0,0 +1,871 @@ +Public Class DefaultView + Dim Count As Integer = 10 + Dim DispGDP As String + Dim ChurchNames1(10) As String + Dim ChurchNames2(10) As String + Dim ChurchNames3(10) As String + Dim Prophets(10) As String + Dim Values1(10) As String + Dim Values2(10) As String + Dim Values3(10) As String + Dim ChurchArrayed As Boolean = False + Dim DeathAction(10) As String + Dim DeathAdjective(10) As String + Dim DeathCondition(10) As String + Dim DeathArrayed As Boolean = False + Private Sub DefaultView_Load(sender As Object, e As EventArgs) Handles Me.Load + If ThePlayer.CurrYear Mod 4 = 0 Then + Months(1) = 29 + ElseIf ThePlayer.CurrYear Mod 4 <> 0 Then + Months(1) = 28 + End If + + picAbdicator.BackgroundImage = My.Resources.Abdicator + + If ThePlayer.Gender = 1 Then + picMonarch.Image = My.Resources.King + ElseIf ThePlayer.Gender = 0 Then + picMonarch.Image = My.Resources.Queen + End If + + If ThePlayer.ParliamentDissolved = False Then + grpDecrees.Enabled = False + lblCurrentParty.Text = "Gov't: " & Government(ThePlayer.CurrGovernment) + ElseIf ThePlayer.ParliamentDissolved = True Then + lblCurrentParty.Visible = False + grpDecrees.Enabled = True + btnDissolveParliament.Visible = False + + btnExecuteCommoner.Text = "Execute a Commoner" + btnFrance.Text = "Declare War on Communism" + btnFalklands.Text = "Erect Monument on Texas" + btnFalklands.Font = New Font("Times New Roman", 9) + btnIreland.Text = "Unify Dakotas" + btnPromote.Text = "Promote Horse as Consul" + btnEmpire.Text = "Take Over the World" + If ThePlayer.WorldTaken = 1 Then + btnEmpire.Enabled = False + End If + btnChurch.Text = "Create New Church" + btnGlass.Text = "Become Made of Glass" + btnWife.Text = "Behead " & ThePlayer.Partner + btnDeath.Text = "Declare Something Punishable by Death" + btnDeath.Font = New Font("Times New Roman", 7) + If ThePlayer.UnifiedIreland = True Then + btnIreland.Enabled = False + End If + If ThePlayer.MadeofGlass = True Then + btnGlass.Enabled = False + End If + End If + + lblRespect.Text = "Respect: " & ThePlayer.Respect + + lblName.Text = "President " + lblRuleLength.Text = "President for: " + + lblName.Text = lblName.Text & ThePlayer.Name + + lblRuleLength.Text = lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + + lblGDP.Text = ThePlayer.GDPTerm & ThePlayer.GDP.ToString("###,###,###,###") + + tmrAdvanceDay.Enabled = True + End Sub + Private Sub DefaultView_Resize(sender As Object, e As EventArgs) Handles MyBase.Resize + picMonarch.Width = Screen.PrimaryScreen.Bounds.Height + + pnlMenu.Height = Screen.PrimaryScreen.Bounds.Height + pnlMenu.Width = (Screen.PrimaryScreen.Bounds.Width - picMonarch.Width) + pnlMenu.Location = New Point(picMonarch.Width, pnlMenu.Location.Y) + + lblName.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 6) + + lblRuleLength.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 9) + + lblDate.Location = New Point((pnlMenu.Width - lblDate.Width) - ((pnlMenu.Width / 100) * 10), (pnlMenu.Height / 100) * 6) + + btnCalendar.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnCalendar.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 12) + + grpInfo.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + grpInfo.Height = (pnlMenu.Width / 100) * 20 + grpInfo.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 19) + + lblGDP.Location = New Point((grpInfo.Width / 100) * 5, (grpInfo.Height / 100) * 20) + + lblRespect.Location = New Point((grpInfo.Width / 100) * 5, (grpInfo.Height / 100) * 45) + + lblCurrentParty.Location = New Point((grpInfo.Width / 100) * 5, (grpInfo.Height / 100) * 70) + + btnCharacter.Width = (grpInfo.Width / 100) * 47.5 + btnCharacter.Height = (grpInfo.Height / 100) * 80 + btnCharacter.Location = New Point((grpInfo.Width / 100) * 50, (grpInfo.Height / 100) * 12.5) + + btnRecreation.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnRecreation.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 38) + + btnDissolveParliament.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnDissolveParliament.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 44) + + grpDecrees.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 30) + grpDecrees.Height = (pnlMenu.Width / 100) * 40 + grpDecrees.Location = New Point((pnlMenu.Width / 100) * 15, (pnlMenu.Height / 100) * 50) + + btnExecuteCommoner.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnExecuteCommoner.Height = (grpDecrees.Height / 100) * 16 + btnExecuteCommoner.Location = New Point((grpDecrees.Width / 100) * 5, (grpDecrees.Height / 100) * 12) + + btnFrance.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnFrance.Height = (grpDecrees.Height / 100) * 16 + btnFrance.Location = New Point((grpDecrees.Width / 100) * 55, (grpDecrees.Height / 100) * 12) + + btnFalklands.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnFalklands.Height = (grpDecrees.Height / 100) * 16 + btnFalklands.Location = New Point((grpDecrees.Width / 100) * 5, (grpDecrees.Height / 100) * 28) + + btnIreland.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnIreland.Height = (grpDecrees.Height / 100) * 16 + btnIreland.Location = New Point((grpDecrees.Width / 100) * 55, (grpDecrees.Height / 100) * 28) + + btnPromote.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnPromote.Height = (grpDecrees.Height / 100) * 16 + btnPromote.Location = New Point((grpDecrees.Width / 100) * 5, (grpDecrees.Height / 100) * 44) + + btnEmpire.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnEmpire.Height = (grpDecrees.Height / 100) * 16 + btnEmpire.Location = New Point((grpDecrees.Width / 100) * 55, (grpDecrees.Height / 100) * 44) + + btnChurch.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnChurch.Height = (grpDecrees.Height / 100) * 16 + btnChurch.Location = New Point((grpDecrees.Width / 100) * 5, (grpDecrees.Height / 100) * 60) + + btnGlass.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnGlass.Height = (grpDecrees.Height / 100) * 16 + btnGlass.Location = New Point((grpDecrees.Width / 100) * 55, (grpDecrees.Height / 100) * 60) + + btnWife.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnWife.Height = (grpDecrees.Height / 100) * 16 + btnWife.Location = New Point((grpDecrees.Width / 100) * 5, (grpDecrees.Height / 100) * 76) + + btnDeath.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnDeath.Height = (grpDecrees.Height / 100) * 16 + btnDeath.Location = New Point((grpDecrees.Width / 100) * 55, (grpDecrees.Height / 100) * 76) + + btnAbdicate.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnAbdicate.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 86) + + btnMainMenu.Width = pnlMenu.Width / 2 + btnMainMenu.Location = New Point((pnlMenu.Width / 100) * 25, (pnlMenu.Height / 100) * 92) + + pnlAbdication.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlAbdication.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlAbdication.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picAbdicator.Width = pnlAbdication.Height + picAbdicator.Height = picAbdicator.Width + + lblAbdicationAreYouSure.Width = pnlAbdication.Width - picAbdicator.Width + lblAbdicationAreYouSure.Location = New Point(picAbdicator.Width, (pnlAbdication.Height / 100) * 10) + ResizeText(lblAbdicationAreYouSure) + + lblAbdication.Width = pnlAbdication.Width - picAbdicator.Width + lblAbdication.Height = (pnlAbdication.Height / 100) * 50 + lblAbdication.Location = New Point(picAbdicator.Width, (pnlAbdication.Height / 100) * 25) + ResizeText(lblAbdication) + + btnAbdicationYes.Width = (pnlAbdication.Width - picAbdicator.Width) / 4 + btnAbdicationYes.Location = New Point(picAbdicator.Width + ((pnlAbdication.Width - picAbdicator.Width) / 4), (pnlAbdication.Height / 100) * 80) + + btnAbdicationNo.Width = (pnlAbdication.Width - picAbdicator.Width) / 4 + btnAbdicationNo.Location = New Point(picAbdicator.Width + ((pnlAbdication.Width - picAbdicator.Width) / 2), (pnlAbdication.Height / 100) * 80) + + pnlDissolve.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlDissolve.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlDissolve.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picDissolve.Width = pnlDissolve.Height + picDissolve.Height = picDissolve.Width + + lblDissolve.Width = pnlDissolve.Width - picDissolve.Width + lblDissolve.Location = New Point(picDissolve.Width, (pnlDissolve.Height / 100) * 10) + ResizeText(lblDissolve) + + lblDissolveDesc.Width = pnlDissolve.Width - picDissolve.Width + lblDissolveDesc.Height = (pnlDissolve.Height / 100) * 50 + lblDissolveDesc.Location = New Point(picDissolve.Width, (pnlDissolve.Height / 100) * 25) + ResizeText(lblDissolveDesc) + + btnDissolveYes.Width = lblDissolveDesc.Width / 2 + btnDissolveYes.Location = New Point(lblDissolveDesc.Location.X, (pnlDissolve.Height / 100) * 80) + + btnDissolveNo.Width = lblDissolveDesc.Width / 2 + btnDissolveNo.Location = New Point(lblDissolveDesc.Location.X + (lblDissolveDesc.Width / 2), (pnlDissolve.Height / 100) * 80) + + btnDissolveOK.Width = (pnlDissolve.Width - picDissolve.Width) / 4 + btnDissolveOK.Location = New Point(picDissolve.Width + (((pnlDissolve.Width - picDissolve.Width) / 8) * 3), (pnlDissolve.Height / 100) * 80) + + pnlExecute.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlExecute.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlExecute.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picExecute.Width = pnlExecute.Height + picExecute.Height = picExecute.Width + + lblExecute.Width = pnlExecute.Width - picExecute.Width + lblExecute.Location = New Point(picExecute.Width, (pnlExecute.Height / 100) * 10) + ResizeText(lblExecute) + + lblExecuteDesc.Width = pnlExecute.Width - picExecute.Width + lblExecuteDesc.Height = (pnlExecute.Height / 100) * 50 + lblExecuteDesc.Location = New Point(picExecute.Width, (pnlExecute.Height / 100) * 25) + ResizeText(lblExecuteDesc) + + btnExecuteOK.Width = (pnlExecute.Width - picExecute.Width) / 4 + btnExecuteOK.Location = New Point(picExecute.Width + (((pnlExecute.Width - picExecute.Width) / 8) * 3), (pnlExecute.Height / 100) * 80) + + pnlFrance.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlFrance.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlFrance.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picFrance.Width = pnlFrance.Height + picFrance.Height = picFrance.Width + + lblFrance.Width = pnlFrance.Width - picFrance.Width + lblFrance.Location = New Point(picFrance.Width, (pnlFrance.Height / 100) * 10) + ResizeText(lblFrance) + + lblFranceDesc.Width = pnlFrance.Width - picFrance.Width + lblFranceDesc.Height = (pnlFrance.Height / 100) * 50 + lblFranceDesc.Location = New Point(picFrance.Width, (pnlFrance.Height / 100) * 25) + ResizeText(lblFranceDesc) + + btnFranceOK.Width = (pnlFrance.Width - picFrance.Width) / 4 + btnFranceOK.Location = New Point(picFrance.Width + (((pnlFrance.Width - picFrance.Width) / 8) * 3), (pnlFrance.Height / 100) * 80) + + pnlFalklands.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlFalklands.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlFalklands.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picFalklands.Width = pnlFalklands.Height + picFalklands.Height = picFalklands.Width + + lblFalklands.Width = pnlFalklands.Width - picFalklands.Width + lblFalklands.Location = New Point(picFalklands.Width, (pnlFalklands.Height / 100) * 10) + ResizeText(lblFalklands) + + lblFalklandsDesc.Width = pnlFalklands.Width - picFalklands.Width + lblFalklandsDesc.Height = (pnlFalklands.Height / 100) * 50 + lblFalklandsDesc.Location = New Point(picFalklands.Width, (pnlFalklands.Height / 100) * 25) + ResizeText(lblFalklandsDesc) + + btnFalklandsOK.Width = (pnlFalklands.Width - picFalklands.Width) / 4 + btnFalklandsOK.Location = New Point(picFalklands.Width + (((pnlFalklands.Width - picFalklands.Width) / 8) * 3), (pnlFalklands.Height / 100) * 80) + + pnlIreland.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlIreland.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlIreland.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picIreland.Width = pnlIreland.Height + picIreland.Height = picIreland.Width + + lblIreland.Width = pnlIreland.Width - picIreland.Width + lblIreland.Location = New Point(picIreland.Width, (pnlIreland.Height / 100) * 10) + ResizeText(lblIreland) + + lblIrelandDesc.Width = pnlIreland.Width - picIreland.Width + lblIrelandDesc.Height = (pnlIreland.Height / 100) * 50 + lblIrelandDesc.Location = New Point(picIreland.Width, (pnlIreland.Height / 100) * 25) + ResizeText(lblIrelandDesc) + + btnIrelandOK.Width = (pnlIreland.Width - picIreland.Width) / 4 + btnIrelandOK.Location = New Point(picIreland.Width + (((pnlIreland.Width - picIreland.Width) / 8) * 3), (pnlIreland.Height / 100) * 80) + + pnlHorse.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlHorse.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlHorse.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picHorse.Width = pnlHorse.Height + picHorse.Height = picHorse.Width + + lblHorse.Width = pnlHorse.Width - picHorse.Width + lblHorse.Location = New Point(picHorse.Width, (pnlHorse.Height / 100) * 10) + ResizeText(lblHorse) + + lblHorseDesc.Width = pnlHorse.Width - picHorse.Width + lblHorseDesc.Height = (pnlHorse.Height / 100) * 50 + lblHorseDesc.Location = New Point(picHorse.Width, (pnlHorse.Height / 100) * 25) + ResizeText(lblHorseDesc) + + btnHorseOK.Width = (pnlHorse.Width - picHorse.Width) / 4 + btnHorseOK.Location = New Point(picHorse.Width + (((pnlHorse.Width - picHorse.Width) / 8) * 3), (pnlHorse.Height / 100) * 80) + + pnlChurch.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlChurch.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlChurch.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picChurch.Width = pnlChurch.Height + picChurch.Height = picChurch.Width + + lblChurch.Width = pnlChurch.Width - picChurch.Width + lblChurch.Location = New Point(picChurch.Width, (pnlChurch.Height / 100) * 10) + ResizeText(lblChurch) + + lblChurchDesc.Width = pnlChurch.Width - picChurch.Width + lblChurchDesc.Height = (pnlChurch.Height / 100) * 50 + lblChurchDesc.Location = New Point(picChurch.Width, (pnlChurch.Height / 100) * 25) + ResizeText(lblChurchDesc) + + btnChurchOK.Width = (pnlChurch.Width - picChurch.Width) / 4 + btnChurchOK.Location = New Point(picChurch.Width + (((pnlChurch.Width - picChurch.Width) / 8) * 3), (pnlChurch.Height / 100) * 80) + + pnlGlass.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlGlass.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlGlass.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picGlass.Width = pnlGlass.Height + picGlass.Height = picGlass.Width + + lblGlass.Width = pnlGlass.Width - picGlass.Width + lblGlass.Location = New Point(picGlass.Width, (pnlGlass.Height / 100) * 10) + ResizeText(lblGlass) + + lblGlassDesc.Width = pnlGlass.Width - picGlass.Width + lblGlassDesc.Height = (pnlGlass.Height / 100) * 50 + lblGlassDesc.Location = New Point(picGlass.Width, (pnlGlass.Height / 100) * 25) + ResizeText(lblGlassDesc) + + btnGlassOK.Width = (pnlGlass.Width - picGlass.Width) / 4 + btnGlassOK.Location = New Point(picGlass.Width + (((pnlGlass.Width - picGlass.Width) / 8) * 3), (pnlGlass.Height / 100) * 80) + + pnlWife.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlWife.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlWife.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picWife.Width = pnlWife.Height + picWife.Height = picWife.Width + + lblWife.Width = pnlWife.Width - picWife.Width + lblWife.Location = New Point(picWife.Width, (pnlWife.Height / 100) * 10) + If ThePlayer.Gender = 1 Then + lblWife.Text = "BEHEAD WIFE" + ElseIf ThePlayer.Gender = 0 Then + lblWife.Text = "BEHEAD HUSBAND" + End If + ResizeText(lblWife) + + lblWifeDesc.Width = pnlWife.Width - picWife.Width + lblWifeDesc.Height = (pnlWife.Height / 100) * 50 + lblWifeDesc.Location = New Point(picWife.Width, (pnlWife.Height / 100) * 25) + ResizeText(lblWifeDesc) + + btnWifeOK.Width = (pnlWife.Width - picWife.Width) / 4 + btnWifeOK.Location = New Point(picWife.Width + (((pnlWife.Width - picWife.Width) / 8) * 3), (pnlWife.Height / 100) * 80) + + pnlDeath.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlDeath.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlDeath.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picDeath.Width = pnlDeath.Height + picDeath.Height = picDeath.Width + + lblDeath.Width = pnlDeath.Width - picDeath.Width + lblDeath.Location = New Point(picDeath.Width, (pnlDeath.Height / 100) * 10) + ResizeText(lblDeath) + + lblDeathDesc.Width = pnlDeath.Width - picDeath.Width + lblDeathDesc.Height = (pnlDeath.Height / 100) * 50 + lblDeathDesc.Location = New Point(picDeath.Width, (pnlDeath.Height / 100) * 25) + ResizeText(lblDeathDesc) + + btnDeathOK.Width = (pnlDeath.Width - picDeath.Width) / 4 + btnDeathOK.Location = New Point(picDeath.Width + (((pnlDeath.Width - picDeath.Width) / 8) * 3), (pnlDeath.Height / 100) * 80) + + pnlEmpire.Height = Screen.PrimaryScreen.Bounds.Height - (Screen.PrimaryScreen.Bounds.Height / 4) + pnlEmpire.Width = Screen.PrimaryScreen.Bounds.Width / 2 + pnlEmpire.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picEmpire.Width = pnlEmpire.Width + picEmpire.Height = (pnlEmpire.Height / 100) * 45 + + pnlEmpireRetaken.Width = pnlEmpire.Width / 4 + pnlEmpireRetaken.Height = (pnlEmpire.Height - picEmpire.Height) - (pnlEmpire.Height / 100) * 10 + pnlEmpireRetaken.Location = New Point((pnlEmpire.Width / 100) * 4, pnlEmpire.Height / 2) + + lblEmpire.Width = (pnlEmpire.Width / 3) + lblEmpire.Location = New Point(pnlEmpire.Width / 3, (pnlEmpire.Height / 100) * 45) + ResizeText(lblEmpire) + + lblWhichCountry.Width = (pnlEmpire.Width / 5) * 3 + lblWhichCountry.Location = New Point(pnlEmpire.Width / 3, (pnlEmpire.Height / 100) * 54) + ResizeText(lblWhichCountry) + + cmboCountry.Width = (pnlEmpire.Width / 5) * 2.5 + cmboCountry.Location = New Point(pnlEmpire.Width / 3, (pnlEmpire.Height / 100) * 60) + + lblChanceofSuccess.Width = (pnlEmpire.Width / 6) + lblChanceofSuccess.Location = New Point((pnlEmpire.Width / 6) * 5, (pnlEmpire.Height / 100) * 57) + ResizeText(lblChanceofSuccess) + + lblDifficulty.Width = (pnlEmpire.Width / 6) + lblDifficulty.Location = New Point((pnlEmpire.Width / 6) * 5, (pnlEmpire.Height / 100) * 59) + ResizeText(lblDifficulty) + + btnAttack.Width = (pnlEmpire.Width / 5) * 3 + btnAttack.Location = New Point(pnlEmpire.Width / 3, (pnlEmpire.Height / 100) * 68) + + lblEmpireDesc.Width = (pnlEmpire.Width / 5) * 3.25 + lblEmpireDesc.Height = (pnlEmpire.Height / 100) * 36 + lblEmpireDesc.Location = New Point(pnlEmpire.Width / 3, (pnlEmpire.Height / 100) * 50) + ResizeText(lblEmpireDesc) + + btnEmpireOK.Width = pnlEmpire.Width / 4 + btnEmpireOK.Location = New Point((pnlEmpire.Width / 2) - (btnEmpireOK.Width / 2), (pnlEmpire.Height / 100) * 90) + End Sub + + Private Sub btnMainMenu_Click(sender As Object, e As EventArgs) Handles btnMainMenu.Click + MainMenu.Show() + Me.Close() + End Sub + + Private Sub tmrAdvanceDay_Tick(sender As Object, e As EventArgs) Handles tmrAdvanceDay.Tick + ThePlayer.GoingsOn() + End Sub + + Private Sub btnAbdicate_Click(sender As Object, e As EventArgs) Handles btnAbdicate.Click + tmrAdvanceDay.Enabled = False + MusicPlayer.PlayAbdication() + pnlAbdication.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + ThePlayer.AbdicationThreats = ThePlayer.AbdicationThreats + 1 + End Sub + Private Sub btnAbdicationYes_Click(sender As Object, e As EventArgs) Handles btnAbdicationYes.Click + ThePlayer.Death("You Resigned") + End Sub + Private Sub btnAbdicationNo_Click(sender As Object, e As EventArgs) Handles btnAbdicationNo.Click + tmrAdvanceDay.Enabled = True + pnlAbdication.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnRecreation_Click(sender As Object, e As EventArgs) Handles btnRecreation.Click + Recreation.Show() + Me.Close() + End Sub + + Private Sub btnCharacter_Click(sender As Object, e As EventArgs) Handles btnCharacter.Click + ViewCharacter.Show() + Me.Close() + End Sub + + Private Sub btnDissolveParliament_Click(sender As Object, e As EventArgs) Handles btnDissolveParliament.Click + If ThePlayer.Respect >= 100 Then + ThePlayer.YearParliamentDissolved = ThePlayer.CurrYear + ThePlayer.ParliamentDissolved = True + lblCurrentParty.Visible = False + grpDecrees.Enabled = True + btnDissolveParliament.Visible = False + btnDissolveYes.Visible = False + btnDissolveNo.Visible = False + btnDissolveOK.Visible = True + + ThePlayer.GDPTerm = "Wealth: $" + + btnExecuteCommoner.Text = "Execute a Commoner" + btnFrance.Text = "Declare War on Communism" + btnFalklands.Text = "Erect Monument on Texas" + btnFalklands.Font = New Font("Times New Roman", 9) + btnIreland.Text = "Unify Dakotas" + btnPromote.Text = "Promote Horse as Consul" + btnEmpire.Text = "Take Over the World" + btnChurch.Text = "Create New Church" + btnGlass.Text = "Become Made of Glass" + btnWife.Text = "Behead " & ThePlayer.Partner + btnDeath.Text = "Declare Something Punishable by Death" + btnDeath.Font = New Font("Times New Roman", 7) + + If ThePlayer.Gender = 1 Then + picDissolve.BackgroundImage = My.Resources.King + ElseIf ThePlayer.Gender = 0 Then + picDissolve.BackgroundImage = My.Resources.Queen + End If + lblDissolveDesc.Text = "You attempt to dissolve Congress and rule by decree. Thanks to the huge amount of respect you have accrued, it all goes off without a hitch." + ElseIf ThePlayer.Respect < 100 Then + lblDissolveDesc.Text = "You consider attempting to dissolve Congress and ruling by decree. Your lack of respect gives you pause, however. Are you sure you want to try this?" + btnDissolveYes.Visible = True + btnDissolveNo.Visible = True + btnDissolveOK.Visible = False + picDissolve.BackgroundImage = My.Resources.CharlesI + End If + + pnlDissolve.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnDissolveYes_Click(sender As Object, e As EventArgs) Handles btnDissolveYes.Click + ThePlayer.Death("It All Went a Bit King Charles I for You") + End Sub + Private Sub btnDissolveNo_Click(sender As Object, e As EventArgs) Handles btnDissolveNo.Click + pnlDissolve.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + Private Sub btnDissolveOK_Click(sender As Object, e As EventArgs) Handles btnDissolveOK.Click + pnlDissolve.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnExecuteCommoner_Click(sender As Object, e As EventArgs) Handles btnExecuteCommoner.Click + lblExecute.Font = New Font("Times New Roman", 20) + Dim RespectVal As Integer = CInt(Int(20 * Rnd())) + ThePlayer.CommonersExecuted = ThePlayer.CommonersExecuted + 1 + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblRespect.Text = "Respect: " & ThePlayer.Respect + lblExecuteDesc.Text = "You execute a lowly commoner right in front of his peers for little reason. You lose -" & RespectVal & " respect." + pnlExecute.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnExecuteOK_Click(sender As Object, e As EventArgs) Handles btnExecuteOK.Click + pnlExecute.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnFrance_Click(sender As Object, e As EventArgs) Handles btnFrance.Click + ThePlayer.AtWarWithFrance = True + ThePlayer.YearWarDeclared = ThePlayer.CurrYear + pnlFrance.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnFranceOK_Click(sender As Object, e As EventArgs) Handles btnFranceOK.Click + pnlFrance.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnFalklands_Click(sender As Object, e As EventArgs) Handles btnFalklands.Click + If ThePlayer.SunkFalklands = False Then + If ThePlayer.ArgieButthurtLevel < 13 Then + ThePlayer.MonumentsErected = ThePlayer.MonumentsErected + 1 + ThePlayer.FalklandMonumentsWeight = ThePlayer.FalklandMonumentsWeight + CInt(Int(1000 * Rnd())) + ThePlayer.ArgieButthurtLevel = ThePlayer.ArgieButthurtLevel + 1 + ElseIf ThePlayer.ArgieButthurtLevel = 13 Then + lblFalklandsDesc.Text = "You erect another monument on Texas. So enraged, the Mexicans launch an invasion of the state. The combined weight of the monuments and a single Mexican soldier called Paco sinks the state into the ocean." + ThePlayer.SunkFalklands = True + picFalklands.BackgroundImage = My.Resources.SinkingFalklands + ResizeText(lblFalklandsDesc) + End If + ElseIf ThePlayer.SunkFalklands = True Then + lblFalklandsDesc.Text = "You drop a monument into the rough area of ocean where Texas used to be. It causes a satisfying splash." + picFalklands.BackgroundImage = My.Resources.SunkFalklands + ResizeText(lblFalklandsDesc) + End If + pnlFalklands.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnFalklandsOK_Click(sender As Object, e As EventArgs) Handles btnFalklandsOK.Click + pnlFalklands.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnIreland_Click(sender As Object, e As EventArgs) Handles btnIreland.Click + If ThePlayer.CurrMonth < 11 Then + ThePlayer.AtWarWithFranceForMonths = ThePlayer.AtWarWithFranceForMonths + 1 + ThePlayer.CurrMonth = ThePlayer.CurrMonth + 1 + ThePlayer.RuleMonths = ThePlayer.RuleMonths + 1 + ElseIf ThePlayer.CurrMonth >= 12 Then + ThePlayer.AtWarWithFranceForMonths = 0 + ThePlayer.AtWarWithFranceForYears = ThePlayer.AtWarWithFranceForYears + 1 + ThePlayer.CurrMonth = 0 + ThePlayer.CurrYear = ThePlayer.CurrYear + 1 + ThePlayer.RuleYears = ThePlayer.RuleYears + 1 + ThePlayer.Age = ThePlayer.Age + 1 + If ThePlayer.Age = ThePlayer.DeathAge Then + ThePlayer.Death("Died of Old Age") + End If + End If + + lblRuleLength.Text = "President for: " + + lblRuleLength.Text = lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + lblDate.Text = ThePlayer.RuleDays & " " & TheMonth(ThePlayer.CurrMonth) & " " & ThePlayer.CurrYear + + Dim IrelandUnified As Integer = CInt(Int(3 * Rnd()) + 1) + If IrelandUnified <> 1 Then + Dim RespectVal As Integer = CInt(Int(30 * Rnd())) + Dim DeadSoldiers As Integer = CInt(Int(200 * Rnd()) + 1) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblRespect.Text = "Respect: " & ThePlayer.Respect + ThePlayer.LivesLostIreland = ThePlayer.LivesLostIreland + DeadSoldiers + ThePlayer.AttemptstoUnifyIreland = ThePlayer.AttemptstoUnifyIreland + 1 + picIreland.BackgroundImage = My.Resources.Irelandlose + lblIrelandDesc.Text = "You attempt to unify the Dakotas. It goes poorly, " & DeadSoldiers & " American soldiers die and you lose -" & RespectVal & " respect." + ElseIf IrelandUnified = 1 Then + Dim RespectVal As Integer = CInt(Int(60 * Rnd())) + Dim DeadSoldiers As Integer = CInt(Int(50 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect + RespectVal + lblRespect.Text = "Respect: " & ThePlayer.Respect + ThePlayer.LivesLostIreland = ThePlayer.LivesLostIreland + DeadSoldiers + ThePlayer.AttemptstoUnifyIreland = ThePlayer.AttemptstoUnifyIreland + 1 + ThePlayer.YearIrelandUnified = ThePlayer.CurrYear + picIreland.BackgroundImage = My.Resources.Irelandwin + lblIrelandDesc.Text = "You attempt to unify the Dakotas. It goes well, only " & DeadSoldiers & " American soldiers die and you gain +" & RespectVal & " respect." + ThePlayer.UnifiedIreland = True + btnIreland.Enabled = False + End If + pnlIreland.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnIrelandOK_Click(sender As Object, e As EventArgs) Handles btnIrelandOK.Click + pnlIreland.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnPromote_Click(sender As Object, e As EventArgs) Handles btnPromote.Click + If ThePlayer.PercentageofHorseConsuls <> 100 Then + ThePlayer.PercentageofHorseConsuls = ThePlayer.PercentageofHorseConsuls + 50 + lblHorseDesc.Text = "You promote a horse to the position of consul. " & ThePlayer.PercentageofHorseConsuls & "% of all consuls in the land are now horses, as it should be." + ElseIf ThePlayer.PercentageofHorseConsuls = 100 Then + lblHorseDesc.Font = New Font("Times New Roman", 18) + lblHorseDesc.Text = "You attempt to promote another horse to the position of consul before realising every consul is a horse already. You try replacing one horse with a different horse but alas, the magic is gone." + ResizeText(lblHorseDesc) + End If + pnlHorse.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnHorseOK_Click(sender As Object, e As EventArgs) Handles btnHorseOK.Click + pnlHorse.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnEmpire_Click(sender As Object, e As EventArgs) Handles btnEmpire.Click + cmboCountry.Items.Clear() + cmboCountry.Text = "" + lblDifficulty.Text = "" + + lblTheWorld.Visible = True + cmboCountry.Items.Add("The World") + lblTheWorld.ForeColor = Color.Red + + lblRetaken.Text = "0%" + + cmboCountry.Enabled = True + btnAttack.Visible = True + lblEmpireDesc.Visible = False + btnEmpireOK.Visible = False + btnAttack.Enabled = False + + pnlEmpire.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 4, Screen.PrimaryScreen.Bounds.Height / 8) + End Sub + Private Sub btnAttack_Click(sender As Object, e As EventArgs) Handles btnAttack.Click + Dim DeadSoldiers As Integer = 0 + Dim RespectVal As Integer = 0 + Dim Result As Integer = 0 + + cmboCountry.Enabled = False + btnAttack.Visible = False + lblEmpireDesc.Visible = True + btnEmpireOK.Visible = True + + Result = CInt(Int(100 * Rnd()) + 1) + + If cmboCountry.SelectedItem = "The World" Then + ThePlayer.CurrYear = ThePlayer.CurrYear + 6 + ThePlayer.RuleYears = ThePlayer.RuleYears + 6 + ThePlayer.Age = ThePlayer.Age + 6 + ThePlayer.AtWarWithFranceForYears = ThePlayer.AtWarWithFranceForYears + 6 + If ThePlayer.Age = ThePlayer.DeathAge Then + ThePlayer.Death("Died of Old Age") + End If + lblRuleLength.Text = "President for: " + lblRuleLength.Text = lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + lblDate.Text = ThePlayer.RuleDays & " " & TheMonth(ThePlayer.CurrMonth) & " " & ThePlayer.CurrYear + + If Result <= 20 Then + ThePlayer.AtWarWithFrance = False + btnFrance.Enabled = False + DeadSoldiers = CInt(Int(10000 * Rnd())) + RespectVal = CInt(Int(400 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect + RespectVal + lblEmpireDesc.Text = "You attempt to do the same thing you do every night, Pinky: Try to take over the world. Against all the odds, it goes well, only " & DeadSoldiers.ToString("##,###") & " American soldiers are killed and you gain +" & RespectVal & " respect." + ThePlayer.WorldTaken = 1 + lblTheWorld.ForeColor = Color.Green + ThePlayer.YearWorldTaken = ThePlayer.CurrYear + ElseIf Result > 20 Then + DeadSoldiers = CInt(Int(50000 * Rnd())) + RespectVal = CInt(Int(30 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblEmpireDesc.Text = "You attempt to do the same thing you do every night, Pinky: Try to take over the world. As is so often the way, it goes poorly. " & DeadSoldiers.ToString("##,###") & " American soldiers are killed and you lose -" & RespectVal & " respect." + End If + ThePlayer.AttemptstoTakeWorld = ThePlayer.AttemptstoTakeWorld + 1 + ThePlayer.LivesLostTakeWorld = ThePlayer.LivesLostTakeWorld + DeadSoldiers + End If + + lblRespect.Text = "Respect: " & ThePlayer.Respect + End Sub + Private Sub btnEmpireOK_Click(sender As Object, e As EventArgs) Handles btnEmpireOK.Click + If ThePlayer.WorldTaken = 1 Then + btnEmpire.Enabled = False + End If + pnlEmpire.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + Private Sub cmboCountry_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmboCountry.SelectedIndexChanged + If cmboCountry.SelectedItem = "The World" Then + lblDifficulty.Text = "20%" + End If + + If cmboCountry.SelectedItem <> "" Then + btnAttack.Enabled = True + ElseIf cmboCountry.SelectedItem = "" Then + btnAttack.Enabled = False + End If + End Sub + + Private Sub btnChurch_Click(sender As Object, e As EventArgs) Handles btnChurch.Click + If ChurchArrayed = False Then + ChurchArray() + ChurchArrayed = True + End If + ThePlayer.ChurchesFormed = ThePlayer.ChurchesFormed + 1 + lblChurchDesc.Text = "You create a new church, the " & ChurchNames1(10 * Rnd()) & " " & ChurchNames2(10 * Rnd()) & " of " & ChurchNames3(10 * Rnd()) & ", based around the teachings of " & Prophets(10 * Rnd()) & " and the values of " & Values1(10 * Rnd()) & ", " & Values2(10 * Rnd()) & " and " & Values3(10 * Rnd()) & "." + ResizeText(lblChurchDesc) + + pnlChurch.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnChurchOK_Click(sender As Object, e As EventArgs) Handles btnChurchOK.Click + pnlChurch.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnGlass_Click(sender As Object, e As EventArgs) Handles btnGlass.Click + ThePlayer.MadeofGlass = True + pnlGlass.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + btnGlass.Enabled = False + End Sub + Private Sub btnGlassOK_Click(sender As Object, e As EventArgs) Handles btnGlassOK.Click + pnlGlass.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnWife_Click(sender As Object, e As EventArgs) Handles btnWife.Click + lblWifeDesc.Text = "The current " & ThePlayer.Partner & " gets the chop, but luckily for your love life, nothing's a bigger turn-on than absolute dictatorship, and you have a new partner before the last one's head has even hit the floor." + ThePlayer.WivesBeheaded = ThePlayer.WivesBeheaded + 1 + pnlWife.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnWifeOK_Click(sender As Object, e As EventArgs) Handles btnWifeOK.Click + pnlWife.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnDeath_Click(sender As Object, e As EventArgs) Handles btnDeath.Click + If DeathArrayed = False Then + DeathArray() + DeathArrayed = True + End If + lblDeathDesc.Text = "You decide there are too many things out there not punishable by death. To alleviate this, you declare that " & DeathAction(10 * Rnd()) & " " & DeathAdjective(10 * Rnd()) & " " & DeathCondition(10 * Rnd()) & " is now a capital offence." + ThePlayer.ThingsDeclaredPunishableByDeath = ThePlayer.ThingsDeclaredPunishableByDeath + 1 + ResizeText(lblDeathDesc) + pnlDeath.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnDeathOK_Click(sender As Object, e As EventArgs) Handles btnDeathOK.Click + pnlDeath.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Sub ChurchArray() + ChurchNames1(0) = "Blessed" + ChurchNames1(1) = "Holy" + ChurchNames1(2) = "Pungent" + ChurchNames1(3) = "Fast" + ChurchNames1(4) = "Indomitable" + ChurchNames1(5) = "Unfathomable" + ChurchNames1(6) = "Rotund" + ChurchNames1(7) = "Compelling" + ChurchNames1(8) = "Thrilling" + ChurchNames1(9) = "Believing" + + ChurchNames2(0) = "Brothers" + ChurchNames2(1) = "Sisters" + ChurchNames2(2) = "Chums" + ChurchNames2(3) = "Friends" + ChurchNames2(4) = "Pals" + ChurchNames2(5) = "Gentlemen" + ChurchNames2(6) = "Bros" + ChurchNames2(7) = "Chaps" + ChurchNames2(8) = "Buggerers" + ChurchNames2(9) = "lads" + + ChurchNames3(0) = "Zanzibar" + ChurchNames3(1) = "Eternity" + ChurchNames3(2) = "God" + ChurchNames3(3) = "the Lord" + ChurchNames3(4) = "Foreveriality" + ChurchNames3(5) = "Time" + ChurchNames3(6) = "Nature" + ChurchNames3(7) = "Gaia" + ChurchNames3(8) = "Spacetime" + ChurchNames3(9) = ThePlayer.Name + + Prophets(0) = "Rumps" + Prophets(1) = "Phil" + Prophets(2) = "Mr Brown" + Prophets(3) = "some guy" + Prophets(4) = "Bill and Ted" + Prophets(5) = "the voices in your head" + Prophets(6) = "Albert Camus" + Prophets(7) = "Plato" + Prophets(8) = "Thomas Aquinas" + Prophets(9) = "Ludwig Wittgenstein" + + Values1(0) = "nihilism" + Values1(1) = "being excellent to each other" + Values1(2) = "existentialism" + Values1(3) = "fundamentalism" + Values1(4) = "ismism" + Values1(5) = "Islamism" + Values1(6) = "pacifism" + Values1(7) = "being an arsehole" + Values1(8) = "stuff" + Values1(9) = "militarism" + + Values2(0) = "partying on" + Values2(1) = "being a nice guy" + Values2(2) = "anarchism" + Values2(3) = "statism" + Values2(4) = "things" + Values2(5) = "quietism" + Values2(6) = "minarchism" + Values2(7) = "absurdism" + Values2(8) = "surrealism" + Values2(9) = "Dadaism" + + Values3(0) = "whatever" + Values3(1) = "farts" + Values3(2) = "dudes" + Values3(3) = "abandonment" + Values3(4) = "homelessness" + Values3(5) = "sillyness" + Values3(6) = "seriousness" + Values3(7) = "chips" + Values3(8) = "value" + Values3(9) = "up" + End Sub + Sub DeathArray() + DeathAction(0) = "eating" + DeathAction(1) = "looking" + DeathAction(2) = "feeling" + DeathAction(3) = "existing" + DeathAction(4) = "jumping" + DeathAction(5) = "thinking" + DeathAction(6) = "considering things" + DeathAction(7) = "talking" + DeathAction(8) = "chewing" + DeathAction(9) = "running" + + DeathAdjective(0) = "loudly" + DeathAdjective(1) = "irritatingly" + DeathAdjective(2) = "thoroughly" + DeathAdjective(3) = "quietly" + DeathAdjective(4) = "upwardly" + DeathAdjective(5) = "positively" + DeathAdjective(6) = "negatively" + DeathAdjective(7) = "ambiguously" + DeathAdjective(8) = "randomly" + DeathAdjective(9) = "without provocation" + + DeathCondition(0) = "on a Tuesday" + DeathCondition(1) = "on the Sabbath" + DeathCondition(2) = "without a permit" + DeathCondition(3) = "without humming the national anthem" + DeathCondition(4) = "whilst slapping yourself" + DeathCondition(5) = "whilst jumping" + DeathCondition(6) = "whilst existing" + DeathCondition(7) = "without rotating" + DeathCondition(8) = "and eating a turtle" + DeathCondition(9) = "whilst looking in the direction of Mecca" + End Sub + + Private Sub btnCalendar_Click(sender As Object, e As EventArgs) Handles btnCalendar.Click + MsgBox("Calendar and event scheduling coming soon") + End Sub +End Class \ No newline at end of file diff --git a/Presidency Simulator 2013/Intro.vb b/Presidency Simulator 2013/Intro.vb new file mode 100644 index 0000000..50df40c --- /dev/null +++ b/Presidency Simulator 2013/Intro.vb @@ -0,0 +1,40 @@ +Public Class Intro + Dim Count As Integer = 1 + Dim IntroText As String + Dim CurrLetter As String + Dim Letter As Integer = 1 + Private Sub Intro_Load(sender As Object, e As EventArgs) Handles MyBase.Load + My.Computer.Audio.Stop() + MusicPlayer.PlayGodSavetheKing() + IntroText = "You are " & ThePlayer.Name & ", the " & ThePlayer.Party & " Presidential candidate." & vbCrLf & vbCrLf _ + & "The former president is ousted as a crook, and you go on to win the next election in a landslide." & vbCrLf & vbCrLf & "The year is " & ThePlayer.CurrYear & "." & vbCrLf _ + & "So begins the presidency of " & ThePlayer.Name & "." & vbCrLf & vbCrLf & "My country, 'tis of thee." + lblIntro.Text = "" + tmrText.Enabled = True + End Sub + Private Sub tmrText_Tick(sender As Object, e As EventArgs) Handles tmrText.Tick + Count = Count - 1 + If Count = 0 Then + Try + CurrLetter = Mid(IntroText, Letter, 3) + lblIntro.Text = lblIntro.Text & CurrLetter + Count = 1 + Letter = Letter + 3 + Catch + tmrText.Enabled = False + End Try + End If + End Sub + Private Sub Intro_Resize(sender As Object, e As EventArgs) Handles Me.Resize + lblIntro.Width = Screen.PrimaryScreen.Bounds.Width - ((Screen.PrimaryScreen.Bounds.Width / 100) * 20) + lblIntro.Height = Screen.PrimaryScreen.Bounds.Height - ((Screen.PrimaryScreen.Bounds.Height / 100) * 30) + lblIntro.Location = New Point((Screen.PrimaryScreen.Bounds.Width / 100) * 10, (Screen.PrimaryScreen.Bounds.Height / 100) * 15) + btnContinue.Width = (Screen.PrimaryScreen.Bounds.Width / 100) * 30 + btnContinue.Location = New Point(((Screen.PrimaryScreen.Bounds.Width / 2) - (btnContinue.Width / 2)), (Screen.PrimaryScreen.Bounds.Height - ((Screen.PrimaryScreen.Bounds.Height / 100) * 10))) + End Sub + + Private Sub btnContinue_Click(sender As Object, e As EventArgs) Handles btnContinue.Click + DefaultView.Show() + Me.Close() + End Sub +End Class \ No newline at end of file diff --git a/Presidency Simulator 2013/LICENSE.txt b/Presidency Simulator 2013/LICENSE.txt new file mode 100644 index 0000000..ef7e7ef --- /dev/null +++ b/Presidency Simulator 2013/LICENSE.txt @@ -0,0 +1,674 @@ +GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Presidency Simulator 2013/MainMenu.vb b/Presidency Simulator 2013/MainMenu.vb new file mode 100644 index 0000000..064ff3a --- /dev/null +++ b/Presidency Simulator 2013/MainMenu.vb @@ -0,0 +1,39 @@ +Public Class MainMenu + Private Sub btnQuitGame_Click(sender As Object, e As EventArgs) Handles btnQuitGame.Click + SplashScreen.Close() + End Sub + + Private Sub btnNewGame_Click(sender As Object, e As EventArgs) Handles btnNewGame.Click + CharacterCreation.Show() + Me.Close() + End Sub + + Private Sub MainMenu_Resize(sender As Object, e As EventArgs) Handles Me.Resize + picCoatofArms.Width = Screen.PrimaryScreen.Bounds.Height + + pnlMenu.Height = Screen.PrimaryScreen.Bounds.Height + pnlMenu.Width = (Screen.PrimaryScreen.Bounds.Width - picCoatofArms.Width) + pnlMenu.Location = New Point(picCoatofArms.Width, pnlMenu.Location.Y) + + btnNewGame.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnNewGame.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 44) + + btnLoadGame.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnLoadGame.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 58) + + btnQuitGame.Width = btnNewGame.Width / 2 + btnQuitGame.Location = New Point(btnNewGame.Location.X + (btnNewGame.Width / 4), (pnlMenu.Height / 100) * 86) + + picRoyaltySimulatorLogo.Width = btnNewGame.Width + picRoyaltySimulatorLogo.Height = (pnlMenu.Height / 100) * 30 + picRoyaltySimulatorLogo.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 10) + End Sub + + Private Sub btnLoadGame_Click(sender As Object, e As EventArgs) Handles btnLoadGame.Click + MsgBox("Saving and loading coming soon") + End Sub + + Private Sub MainMenu_Load(sender As Object, e As EventArgs) Handles MyBase.Load + MusicPlayer.PlayRuleBritannia() + End Sub +End Class diff --git a/Presidency Simulator 2013/MusicPlayer.vb b/Presidency Simulator 2013/MusicPlayer.vb new file mode 100644 index 0000000..cec7904 --- /dev/null +++ b/Presidency Simulator 2013/MusicPlayer.vb @@ -0,0 +1,22 @@ +Public Class MusicPlayer + Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer + Dim musicAlias As String + Dim musicPath As String + Dim Track As Integer + Sub PlayRuleBritannia() + My.Computer.Audio.Stop() + My.Computer.Audio.Play(My.Resources.battle_hymn_of_the_republic, AudioPlayMode.BackgroundLoop) + End Sub + Sub PlayGodSavetheKing() + My.Computer.Audio.Stop() + My.Computer.Audio.Play(My.Resources.Mormon_Tabernacle_Choir___The_Star_Spangled_Banner, AudioPlayMode.BackgroundLoop) + End Sub + Sub PlayAbdication() + My.Computer.Audio.Play(My.Resources.AutoDestructSequenceArmed, AudioPlayMode.WaitToComplete) + PlayGodSavetheKing() + End Sub + Sub PlayDeath() + My.Computer.Audio.Stop() + My.Computer.Audio.Play(My.Resources.taps, AudioPlayMode.BackgroundLoop) + End Sub +End Class \ No newline at end of file diff --git a/Presidency Simulator 2013/PublicVars.vb b/Presidency Simulator 2013/PublicVars.vb new file mode 100644 index 0000000..af3ff13 --- /dev/null +++ b/Presidency Simulator 2013/PublicVars.vb @@ -0,0 +1,271 @@ +Module PublicVars + + Public Months(12) As Integer + Public PhilMode As Boolean = False + Public Class Player + Public Name As String + Public Party As String = "" + Public Age As Integer + Public DeathAge As Integer = 0 + '1 = male, 0 = female + Public Gender As Integer + Public Birthplace As String + Public Respect As Integer = 50 + Public RuleDays As Integer = 0 + Public RuleMonths As Integer = 0 + Public RuleYears As Integer = 0 + Public Knowledge As Integer = 0 + Public Happiness As Integer = 50 + Public PlebspottingTrips, ResearchSeshes, Holidays, GoodHolidays, BadHolidays, PoloGames, PoloGamesWon, PoloGamesLost, PartiesHosted, GoodPartiesHosted, BadPartiesHosted, FilmNights, GoodFilmNights, BadFilmNights As Integer + Public CurrGovernment As Integer = 0 + Public ElectionNum As Integer = 0 + Public CurrYear As Integer = 0 + Public CurrMonth As Integer = 0 + Public GDP As Long = 0 + Public Partner As String + Dim CCount As Integer = 1 + Dim YearsTilElection As Integer = 0 + Dim YearsofGovt As Integer = 0 + Public AbdicationThreats As Integer = 0 + Public GDPTerm As String + Sub Elections() + ElectionNum = ElectionNum + 1 + YearsTilElection = 4 + YearsofGovt = 0 + CurrGovernment = 0 + If Government(CurrGovernment) <> ThePlayer.Party Then + If ThePlayer.Respect <= 0 Then + Death("Your Party Lost the Election") + ElseIf ThePlayer.Respect > 0 Then + CurrGovernment = 1 + End If + End If + DefaultView.lblCurrentParty.Text = "Gov't: " & Government(CurrGovernment) + End Sub + Sub GoingsOn() + CCount = CCount - 1 + If CCount = 0 Then + ThePlayer.RuleDays = ThePlayer.RuleDays + 1 + If AtWarWithFrance = True Then + LivesLost = LivesLost + CInt(Int(40 * Rnd())) + AtWarWithFranceForDays = AtWarWithFranceForDays + 1 + End If + If UnifiedIreland = True Then + Dim IRAattack As Integer = CInt(Int(10 * Rnd())) + If IRAattack = 1 Then + IRAAssassinations = IRAAssassinations + 1 + End If + End If + If ThePlayer.RuleDays > Months(CurrMonth) Then + CurrMonth = CurrMonth + 1 + ThePlayer.RuleDays = 1 + ThePlayer.RuleMonths = ThePlayer.RuleMonths + 1 + If AtWarWithFrance = True Then + + AtWarWithFranceForDays = 1 + AtWarWithFranceForMonths = AtWarWithFranceForMonths + 1 + End If + If CurrMonth > 11 Then + YearsofGovt = YearsofGovt + 1 + CurrYear = CurrYear + 1 + ThePlayer.RuleMonths = 0 + ThePlayer.RuleYears = ThePlayer.RuleYears + 1 + CurrMonth = 0 + If (YearsofGovt > YearsTilElection) And (ParliamentDissolved = False) Then + Elections() + End If + If AtWarWithFrance = True Then + AtWarWithFranceForMonths = 0 + AtWarWithFranceForYears = AtWarWithFranceForYears + 1 + End If + ThePlayer.Age = ThePlayer.Age + 1 + If ThePlayer.Age = ThePlayer.DeathAge Then + ThePlayer.Death("Died of Old Age") + End If + End If + End If + DefaultView.lblRuleLength.Text = "President for: " + Recreation.lblRuleLength.Text = "President for: " + ViewCharacter.lblRuleLength.Text = "President for: " + + DefaultView.lblRuleLength.Text = DefaultView.lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + DefaultView.lblDate.Text = ThePlayer.RuleDays & " " & TheMonth(CurrMonth) & " " & CurrYear + Recreation.lblRuleLength.Text = Recreation.lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + Recreation.lblDate.Text = ThePlayer.RuleDays & " " & TheMonth(CurrMonth) & " " & CurrYear + ViewCharacter.lblRuleLength.Text = ViewCharacter.lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + ViewCharacter.lblDate.Text = ThePlayer.RuleDays & " " & TheMonth(CurrMonth) & " " & CurrYear + + If AtWarWithFrance = True Then + AtWarWithFranceFor = AtWarWithFranceForDays & " days, " & AtWarWithFranceForMonths & " months, " & AtWarWithFranceForYears & " years" + End If + + CCount = 10 + + Randomize() + + '0 = increase, 1 = decrease + Dim IncDecGDP As Integer = CInt(Int(2 * Rnd())) + If IncDecGDP = 0 Then + GDP = GDP + CInt(Int(100000 * Rnd())) + ElseIf IncDecGDP = 1 Then + GDP = GDP - CInt(Int(100000 * Rnd())) + End If + + DefaultView.lblGDP.Text = GDPTerm & GDP.ToString("###,###,###,###") + End If + End Sub + Public Sub Death(ByVal CauseofDeath As String) + MusicPlayer.PlayDeath() + DefaultView.Close() + ViewCharacter.Close() + Recreation.Close() + DeathForm.lblCauseofDeath.Text = "GAME OVER: " & CauseofDeath + DeathForm.Show() + End Sub + '//DECREES\\ + Public ParliamentDissolved As Boolean = False + Public YearParliamentDissolved As Integer + Public CommonersExecuted As Integer = 0 + Public AtWarWithFrance As Boolean = False + Public AtWarWithFranceForDays As Integer = 0 + Public AtWarWithFranceForMonths As Integer = 0 + Public AtWarWithFranceForYears As Integer = 0 + Public AtWarWithFranceFor As String = "0 days, 0 months, 0 years" + Public YearWarDeclared As Integer = 0 + Public LivesLost As Integer = 0 + Public MonumentsErected As Integer = 0 + Public ArgieButthurtLevel As Integer = -1 + Public FalklandMonumentsWeight As Integer = 0 + Public SunkFalklands As Boolean = False + Public UnifiedIreland As Boolean = False + Public AttemptstoUnifyIreland As Integer = 0 + Public LivesLostIreland As Integer = 0 + Public YearIrelandUnified As Integer = 0 + Public IRAAssassinations As Integer = 0 + Public PercentageofHorseConsuls As Integer = 0 + Public WorldTaken As Integer = 0 + Public AttemptstoTakeWorld As Integer = 0 + Public LivesLostTakeWorld As Integer = 0 + Public YearWorldTaken As Integer = 0 + Public ChurchesFormed As Integer + Public MadeofGlass As Boolean = False + Public WivesBeheaded As Integer = 0 + Public ThingsDeclaredPunishableByDeath As Integer = 0 + End Class + Public CanadaVal As Integer = 15 + Public ColoniesVal As Integer = 9 + Public CarribeanVal As Integer = 8 + Public SouthAfricaVal As Integer = 12 + Public OtherAfricaVal As Integer = 14 + Public MiddleEastVal As Integer = 13 + Public IndiaVal As Integer = 15 + Public OtherAsiaVal As Integer = 9 + Public AustraliaVal As Integer = 5 + Public Government(2) As String + Public TheMonth(12) As String + Public ArgieButthurt(14) As String + Public ThePlayer As New Player + Sub ResizeText(ByVal lblLabel As Label) + Dim f As Font + Dim g As Graphics + Dim s As SizeF + Dim Faktor, FaktorX, FaktorY As Single + + If lblLabel.Text.Length = 0 Then Return + + g = lblLabel.CreateGraphics + s = g.MeasureString(lblLabel.Text, lblLabel.Font, lblLabel.Width) + g.Dispose() + + FaktorX = lblLabel.Width / s.Width + FaktorY = lblLabel.Height / s.Height + + If FaktorX > FaktorY Then + Faktor = FaktorY + Else + Faktor = FaktorX + End If + + f = lblLabel.Font + lblLabel.Font = New Font(f.Name, f.SizeInPoints * Faktor) + End Sub + Public Sub HappinessCheck() + If ThePlayer.Happiness <= 0 Then + ThePlayer.Death("You Committed Suicide") + End If + End Sub + Public Sub RespectCheck() + If ThePlayer.Respect <= 0 Then + If ThePlayer.ParliamentDissolved = False Then + ThePlayer.Death("Impeached") + ElseIf ThePlayer.ParliamentDissolved = True Then + ThePlayer.Death("Second American Revolution, Dictator Beheaded") + End If + End If + End Sub + Public Sub NewPlayer() + With ThePlayer + .Party = "" + .DeathAge = 0 + .Respect = 100 + .RuleDays = 1 + .RuleMonths = 0 + .RuleYears = 0 + .Knowledge = 0 + .Happiness = 50 + .PlebspottingTrips = 0 + .ResearchSeshes = 0 + .Holidays = 0 + .GoodHolidays = 0 + .BadHolidays = 0 + .PoloGames = 0 + .PoloGamesWon = 0 + .PoloGamesLost = 0 + .PartiesHosted = 0 + .GoodPartiesHosted = 0 + .BadPartiesHosted = 0 + .FilmNights = 0 + .GoodFilmNights = 0 + .BadFilmNights = 0 + .CurrGovernment = 0 + .ElectionNum = 0 + .CurrYear = 0 + .CurrMonth = 0 + .GDP = 15900000000000 + .AbdicationThreats = 0 + .GDPTerm = "GDP: $" + '//DECREES\\ + .ParliamentDissolved = False + .YearParliamentDissolved = 0 + .CommonersExecuted = 0 + .AtWarWithFrance = False + .AtWarWithFranceForDays = 0 + .AtWarWithFranceForMonths = 0 + .AtWarWithFranceForYears = 0 + .AtWarWithFranceFor = "0 days, 0 months, 0 years" + .YearWarDeclared = 0 + .LivesLost = 0 + .MonumentsErected = 0 + .ArgieButthurtLevel = -1 + .FalklandMonumentsWeight = 0 + .SunkFalklands = False + .UnifiedIreland = False + .AttemptstoUnifyIreland = 0 + .LivesLostIreland = 0 + .YearIrelandUnified = 0 + .IRAAssassinations = 0 + .PercentageofHorseConsuls = 0 + .WorldTaken = 0 + .AttemptstoTakeWorld = 0 + .LivesLostTakeWorld = 0 + .YearWorldTaken = 0 + .ChurchesFormed = 0 + .MadeofGlass = False + .WivesBeheaded = 0 + .ThingsDeclaredPunishableByDeath = 0 + End With + Dim CCount As Integer = 1 + Dim YearsTilElection = 0 + Dim YearsofGovt = 0 + End Sub +End Module diff --git a/Presidency Simulator 2013/README.md b/Presidency Simulator 2013/README.md new file mode 100644 index 0000000..d5ca37e --- /dev/null +++ b/Presidency Simulator 2013/README.md @@ -0,0 +1,5 @@ +Presidency Simulator 2013 +====================== + +The republican answer to the hit Royalty Simulator 2013, made in a day after the royalty simulator was refused. Still not allowed. +Materials used: VB.NET \ No newline at end of file diff --git a/Presidency Simulator 2013/Recreation.vb b/Presidency Simulator 2013/Recreation.vb new file mode 100644 index 0000000..c611eed --- /dev/null +++ b/Presidency Simulator 2013/Recreation.vb @@ -0,0 +1,438 @@ +Public Class Recreation + Dim Count As Integer = 10 + Dim DispGDP As String + Dim Positiveadjective(10) As String + Dim Negativeadjective(10) As String + Dim TooManyParties As Integer + Dim PartyCount As Integer = 0 + Private Sub Recreation_Load(sender As Object, e As EventArgs) Handles MyBase.Load + tmrAdvanceDay.Enabled = True + + If ThePlayer.Gender = 1 Then + picMonarch.Image = My.Resources.King + ElseIf ThePlayer.Gender = 0 Then + picMonarch.Image = My.Resources.Queen + End If + + btnFilmNight.Text = "Film Night with the " & ThePlayer.Partner & ", Maybe Get Some McDonalds in or Something" + If ThePlayer.Gender = 1 Then + lblFilmNight.Text = "FILM NIGHT WITH THE FIRST LADY" + ElseIf ThePlayer.Gender = 0 Then + lblFilmNight.Text = "FILM NIGHT WITH THE FIRST GENTLEMAN" + End If + + lblFilmNightPizzas.Text = "MAYBE GET SOME MCDONALDS IN OR SOMETHING" + + Positiveadjective(0) = " fab" + Positiveadjective(1) = " jolly" + Positiveadjective(2) = " good" + Positiveadjective(3) = " pleasant" + Positiveadjective(4) = "n enjoyable" + Positiveadjective(5) = " fun" + Positiveadjective(6) = "n aight" + Positiveadjective(7) = "n okay" + Positiveadjective(8) = " lovely" + Positiveadjective(9) = " brill" + + Negativeadjective(0) = " negative" + Negativeadjective(1) = " blunderous" + Negativeadjective(2) = " naff" + Negativeadjective(3) = "n unpleasant" + Negativeadjective(4) = " shoddy" + Negativeadjective(5) = " poor" + Negativeadjective(6) = "n awful" + Negativeadjective(7) = " neutral" + Negativeadjective(8) = " gypsy-filled" + Negativeadjective(9) = " shambolic" + + TooManyParties = CInt(Int(10 * Rnd()) + 1) + End Sub + + Private Sub Recreation_Resize(sender As Object, e As EventArgs) Handles MyBase.Resize + picMonarch.Width = Screen.PrimaryScreen.Bounds.Height + + pnlMenu.Height = Screen.PrimaryScreen.Bounds.Height + pnlMenu.Width = (Screen.PrimaryScreen.Bounds.Width - picMonarch.Width) + pnlMenu.Location = New Point(picMonarch.Width, pnlMenu.Location.Y) + + lblName.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 6) + + lblRuleLength.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 9) + + lblDate.Location = New Point((pnlMenu.Width - lblDate.Width) - ((pnlMenu.Width / 100) * 10), (pnlMenu.Height / 100) * 6) + + lblRecreation.Location = New Point((pnlMenu.Width / 2) - (lblRecreation.Width / 2), (pnlMenu.Height / 100) * 12) + + btnPlebspotting.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnPlebspotting.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 20) + + btnResearch.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnResearch.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 32) + + btnHoliday.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnHoliday.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 44) + + btnPolo.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnPolo.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 56) + + btnParty.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnParty.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 68) + + btnFilmNight.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnFilmNight.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 80) + + btnBack.Width = pnlMenu.Width / 2 + btnBack.Location = New Point((pnlMenu.Width / 100) * 25, (pnlMenu.Height / 100) * 92) + + '//RESEARCH\\ + + pnlResearch.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlResearch.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlResearch.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picResearch.Width = pnlResearch.Height + picResearch.Height = picResearch.Width + + lblResearch.Width = pnlResearch.Width - picResearch.Width + lblResearch.Location = New Point(picResearch.Width, (pnlResearch.Height / 100) * 10) + ResizeText(lblResearch) + + lblResearchDesc.Width = pnlResearch.Width - picResearch.Width + lblResearchDesc.Height = (pnlResearch.Height / 100) * 50 + lblResearchDesc.Location = New Point(picResearch.Width, (pnlResearch.Height / 100) * 25) + ResizeText(lblResearchDesc) + + btnResearchOK.Width = (pnlResearch.Width - picResearch.Width) / 4 + btnResearchOK.Location = New Point(picResearch.Width + (((pnlResearch.Width - picResearch.Width) / 8) * 3), (pnlResearch.Height / 100) * 80) + + + '//HOLIDAY\\ + + pnlHoliday.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlHoliday.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlHoliday.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picHoliday.Width = pnlHoliday.Height + picHoliday.Height = pnlHoliday.Width + + lblHoliday.Width = pnlHoliday.Width - picHoliday.Width + lblHoliday.Location = New Point(picHoliday.Width, (pnlHoliday.Height / 100) * 10) + ResizeText(lblHoliday) + + lblHolidayWhere.Width = pnlHoliday.Width - picHoliday.Width + lblHolidayWhere.Location = New Point(picHoliday.Width, (pnlHoliday.Height / 100) * 25) + ResizeText(lblHolidayWhere) + + cmboHoliday.Width = (pnlHoliday.Width - picHoliday.Width) - ((pnlHoliday.Width - picHoliday.Width) / 100) * 20 + cmboHoliday.Location = New Point(picHoliday.Width + (((pnlHoliday.Width - picHoliday.Width) / 100) * 10), (pnlHoliday.Height / 100) * 40) + + btnHolidayGo.Width = (pnlHoliday.Width - picHoliday.Width) / 4 + btnHolidayGo.Location = New Point(picHoliday.Width + (((pnlHoliday.Width - picHoliday.Width) / 8) * 3), (pnlHoliday.Height / 100) * 55) + + lblHolidayDesc.Width = pnlHoliday.Width - picHoliday.Width + lblHolidayDesc.Height = (pnlHoliday.Height / 100) * 50 + lblHolidayDesc.Location = New Point(picHoliday.Width, (pnlHoliday.Height / 100) * 25) + ResizeText(lblHolidayDesc) + + btnHolidayOK.Width = (pnlHoliday.Width - picHoliday.Width) / 4 + btnHolidayOK.Location = New Point(picHoliday.Width + (((pnlHoliday.Width - picHoliday.Width) / 8) * 3), (pnlHoliday.Height / 100) * 80) + + '//POLO\\ + + pnlPolo.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlPolo.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlPolo.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picPolo.Width = pnlPolo.Height + picPolo.Height = picPolo.Width + + lblPolo.Width = pnlPolo.Width - picPolo.Width + lblPolo.Location = New Point(picPolo.Width, (pnlPolo.Height / 100) * 10) + ResizeText(lblPolo) + + lblPoloDesc.Width = pnlPolo.Width - picPolo.Width + lblPoloDesc.Height = (pnlPolo.Height / 100) * 50 + lblPoloDesc.Location = New Point(picPolo.Width, (pnlPolo.Height / 100) * 25) + ResizeText(lblPoloDesc) + + btnPoloOK.Width = (pnlPolo.Width - picPolo.Width) / 4 + btnPoloOK.Location = New Point(picPolo.Width + (((pnlPolo.Width - picPolo.Width) / 8) * 3), (pnlPolo.Height / 100) * 80) + + '//PARTY\\ + + pnlParty.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlParty.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlParty.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picParty.Width = pnlParty.Height + picParty.Height = picParty.Width + + lblParty.Width = pnlParty.Width - picParty.Width + lblParty.Location = New Point(picParty.Width, (pnlParty.Height / 100) * 10) + ResizeText(lblParty) + + lblPartyDesc.Width = pnlParty.Width - picParty.Width + lblPartyDesc.Height = (pnlParty.Height / 100) * 50 + lblPartyDesc.Location = New Point(picParty.Width, (pnlParty.Height / 100) * 25) + ResizeText(lblPartyDesc) + + btnPartyOK.Width = (pnlParty.Width - picParty.Width) / 4 + btnPartyOK.Location = New Point(picParty.Width + (((pnlParty.Width - picParty.Width) / 8) * 3), (pnlParty.Height / 100) * 80) + + '//FILM NIGHT\\ + + If ThePlayer.Gender = 1 Then + picFilmNight.Image = My.Resources.FilmNightKing + ElseIf ThePlayer.Gender = 0 Then + picFilmNight.Image = My.Resources.FilmNightQueen + End If + + pnlFilmNight.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlFilmNight.Width = Screen.PrimaryScreen.Bounds.Width / 2 + pnlFilmNight.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picFilmNight.Width = pnlFilmNight.Height + picFilmNight.Height = picFilmNight.Width + + lblFilmNight.Width = pnlFilmNight.Width - picFilmNight.Width + lblFilmNight.Location = New Point(picFilmNight.Width, (pnlFilmNight.Height / 100) * 8) + ResizeText(lblFilmNight) + + lblFilmNightPizzas.Width = pnlFilmNight.Width - picFilmNight.Width + lblFilmNightPizzas.Location = New Point(picFilmNight.Width, (pnlFilmNight.Height / 100) * 20) + ResizeText(lblFilmNightPizzas) + + lblFilmNightDesc.Width = pnlFilmNight.Width - picFilmNight.Width + lblFilmNightDesc.Height = (pnlFilmNight.Height / 100) * 50 + lblFilmNightDesc.Location = New Point(picFilmNight.Width, (pnlFilmNight.Height / 100) * 25) + ResizeText(lblFilmNightDesc) + + btnFilmNightOK.Width = (pnlFilmNight.Width - picFilmNight.Width) / 4 + btnFilmNightOK.Location = New Point(picFilmNight.Width + (((pnlFilmNight.Width - picFilmNight.Width) / 8) * 3), (pnlFilmNight.Height / 100) * 80) + End Sub + + Private Sub tmrAdvanceDay_Tick(sender As Object, e As EventArgs) Handles tmrAdvanceDay.Tick + ThePlayer.GoingsOn() + End Sub + + Private Sub btnBack_Click(sender As Object, e As EventArgs) Handles btnBack.Click + DefaultView.Show() + Me.Close() + End Sub + + '//RESEARCH\\ + Private Sub btnResearch_Click(sender As Object, e As EventArgs) Handles btnResearch.Click + Dim RespectVal As Integer + Dim KnowledgeVal As Integer + + ThePlayer.Researchseshes = ThePlayer.Researchseshes + 1 + + KnowledgeVal = CInt(Int(6 * Rnd()) + 1) + RespectVal = CInt(Int(6 * Rnd()) + 1) + + ThePlayer.Respect = ThePlayer.Respect - RespectVal + ThePlayer.Knowledge = ThePlayer.Knowledge + KnowledgeVal + + lblResearchDesc.Text = "You study intently for days. Your reclusiveness results in a -" & RespectVal & " drop in respect, but you gain +" & KnowledgeVal & " knowledge" + + pnlResearch.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnResearchOK_Click(sender As Object, e As EventArgs) Handles btnResearchOK.Click + pnlResearch.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + '//HOLIDAY\\ + Private Sub btnHoliday_Click(sender As Object, e As EventArgs) Handles btnHoliday.Click + lblHolidayDesc.Visible = False + btnHolidayOK.Visible = False + lblHolidayWhere.Visible = True + cmboHoliday.Visible = True + btnHolidayGo.Visible = True + cmboHoliday.SelectedItem = Nothing + btnHolidayGo.Enabled = False + pnlHoliday.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnHolidayGo_Click(sender As Object, e As EventArgs) Handles btnHolidayGo.Click + lblHolidayWhere.Visible = False + cmboHoliday.Visible = False + btnHolidayGo.Visible = False + lblHolidayDesc.Visible = True + btnHolidayOK.Visible = True + + If ThePlayer.CurrMonth < 11 Then + ThePlayer.AtWarWithFranceForMonths = ThePlayer.AtWarWithFranceForMonths + 1 + ThePlayer.CurrMonth = ThePlayer.CurrMonth + 1 + ThePlayer.RuleMonths = ThePlayer.RuleMonths + 1 + ElseIf ThePlayer.CurrMonth >= 12 Then + ThePlayer.AtWarWithFranceForMonths = 0 + ThePlayer.AtWarWithFranceForYears = ThePlayer.AtWarWithFranceForYears + 1 + ThePlayer.CurrMonth = 0 + ThePlayer.CurrYear = ThePlayer.CurrYear + 1 + ThePlayer.RuleYears = ThePlayer.RuleYears + 1 + ThePlayer.Age = ThePlayer.Age + 1 + If ThePlayer.Age = ThePlayer.DeathAge Then + ThePlayer.Death("Died of Old Age") + End If + End If + + lblRuleLength.Text = "President for: " + + lblRuleLength.Text = lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + lblDate.Text = ThePlayer.RuleDays & " " & TheMonth(ThePlayer.CurrMonth) & " " & ThePlayer.CurrYear + + Dim Country As String = cmboHoliday.SelectedItem + Dim HappinessVal As Integer = CInt(Int(15 * Rnd()) + 1) + + ThePlayer.Holidays = ThePlayer.Holidays + 1 + + If (ThePlayer.AtWarWithFrance = True) And ((Country = "China") Or (Country = "Cuba") Or (Country = "Vietnam") Or (Country = "North Korea")) Then + Dim RespectVal As Integer = CInt(Int(25 * Rnd()) + 1) + lblHolidayDesc.Text = "You foolishly go on on holiday to " & Country & ". For percieved consorting with the enemy, you lose -" & RespectVal & " respect and -" & HappinessVal & " happiness." + ResizeText(lblHolidayDesc) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + ThePlayer.Happiness = ThePlayer.Happiness - HappinessVal + HappinessCheck() + ThePlayer.Respect = ThePlayer.Respect - 20 + ElseIf Country = "United States" Then + Dim SatOnByAmerican As Integer = CInt(Int(100 * Rnd())) + If SatOnByAmerican = 1 Then + lblHolidayDesc.Text = "You have a lovely holiday in the US until you are sat on by a rotund American gentleman/woman/blob. You are dead." + ThePlayer.Death("You Were Crushed to Death by a Fattie") + End If + Else + Dim HolidayResult As Integer = CInt(Int(3 * Rnd()) + 1) + Dim Adjective As Integer = CInt(Int(10 * Rnd())) + If (HolidayResult = 1) Or (HolidayResult = 2) Then + ThePlayer.GoodHolidays = ThePlayer.GoodHolidays + 1 + ThePlayer.Happiness = ThePlayer.Happiness + HappinessVal + lblHolidayDesc.Text = "You have a" & Positiveadjective(Adjective) & " holiday in " & Country & ". You gain +" & HappinessVal & " happiness." + ElseIf HolidayResult = 3 Then + ThePlayer.BadHolidays = ThePlayer.BadHolidays + 1 + ThePlayer.Happiness = ThePlayer.Happiness - HappinessVal + lblHolidayDesc.Text = "You have a" & Negativeadjective(Adjective) & " holiday in " & Country & ". You lose -" & HappinessVal & " happiness." + + End If + End If + ResizeText(lblHolidayDesc) + HappinessCheck() + End Sub + Private Sub btnHolidayOK_Click(sender As Object, e As EventArgs) Handles btnHolidayOK.Click + pnlHoliday.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + Private Sub cmboHoliday_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmboHoliday.SelectedIndexChanged + btnHolidayGo.Enabled = True + End Sub + + '//POLO\\ + Private Sub btnPolo_Click(sender As Object, e As EventArgs) Handles btnPolo.Click + Dim DeathByPolo As Integer = CInt(Int(60 * Rnd())) + + ThePlayer.PoloGames = ThePlayer.PoloGames + 1 + + If DeathByPolo = 1 Then + lblPoloDesc.Text = "Farts" + ThePlayer.Death("You Were Killed in a Tragic NFL Accident") + Else + Dim HappinessVal As Integer = CInt(Int(15 * Rnd()) + 1) + Dim PoloResult As Integer = CInt(Int(3 * Rnd()) + 1) + Dim Adjective As Integer = CInt(Int(10 * Rnd())) + + If (PoloResult = 1) Or (PoloResult = 2) Then + ThePlayer.Happiness = ThePlayer.Happiness + HappinessVal + ThePlayer.PoloGamesWon = ThePlayer.PoloGamesWon + 1 + lblPoloDesc.Text = "You have a" & Positiveadjective(Adjective) & " NFL game. You gain +" & HappinessVal & " happiness." + ElseIf PoloResult = 3 Then + ThePlayer.Happiness = ThePlayer.Happiness - HappinessVal + ThePlayer.PoloGamesLost = ThePlayer.PoloGamesLost + 1 + lblPoloDesc.Text = "You have a" & Negativeadjective(Adjective) & " NFL game. You lose -" & HappinessVal & " happiness." + End If + End If + pnlPolo.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + + HappinessCheck() + End Sub + Private Sub btnPoloOK_Click(sender As Object, e As EventArgs) Handles btnPoloOK.Click + pnlPolo.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + '//PARTY\\ + Private Sub btnParty_Click(sender As Object, e As EventArgs) Handles btnParty.Click + Dim DeathByPolo As Integer = CInt(Int(60 * Rnd())) + + PartyCount = PartyCount + 1 + + ThePlayer.PartiesHosted = ThePlayer.PartiesHosted + 1 + + If PartyCount > TooManyParties Then + lblPartyDesc.Text = "Unfortunately, you find out too late that you have a weak and womanly liver. You die of alcohol poisoning." + ThePlayer.Death("You Died of Alcoholism") + Else + Dim HappinessVal As Integer = CInt(Int(20 * Rnd()) + 1) + Dim RespectVal As Integer = CInt(Int(15 * Rnd()) + 1) + Dim PartyResult As Integer = CInt(Int(3 * Rnd()) + 1) + Dim Adjective As Integer = CInt(Int(10 * Rnd())) + + If (PartyResult = 1) Or (PartyResult = 2) Then + ThePlayer.GoodPartiesHosted = ThePlayer.GoodPartiesHosted + 1 + ThePlayer.Happiness = ThePlayer.Happiness + HappinessVal + lblPartyDesc.Text = "You have a" & Positiveadjective(Adjective) & " party. You gain +" & HappinessVal & " happiness." + ElseIf PartyResult = 3 Then + ThePlayer.BadPartiesHosted = ThePlayer.BadPartiesHosted + 1 + ThePlayer.Happiness = ThePlayer.Happiness - HappinessVal + lblPartyDesc.Text = "You have a" & Negativeadjective(Adjective) & " party. You lose -" & HappinessVal & " happiness. Your people judge you for your partying ways, you lose -" & RespectVal & " respect." + End If + End If + + ResizeText(lblPartyDesc) + pnlParty.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + + HappinessCheck() + End Sub + Private Sub btnPartyOK_Click(sender As Object, e As EventArgs) Handles btnPartyOK.Click + pnlParty.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + '//FILM NIGHT\\ + Private Sub btnFilmNight_Click(sender As Object, e As EventArgs) Handles btnFilmNight.Click + Dim HappinessVal As Integer = CInt(Int(5 * Rnd()) + 1) + Dim SadnessVal As Integer = CInt(Int(10 * Rnd()) + 1) + Dim FilmNightResult As Integer = CInt(Int(10 * Rnd()) + 1) + Dim WhatWentWrong(5) As String + + ThePlayer.FilmNights = ThePlayer.FilmNights + 1 + + WhatWentWrong(0) = "punch the " & ThePlayer.Partner & " in the face trying to reach across for a slice of pizza" + WhatWentWrong(1) = "call the " & ThePlayer.Partner & " fat" + WhatWentWrong(2) = "insult the " & ThePlayer.Partner & "'s mother" + WhatWentWrong(3) = "fart out a right rimsplitter during a romantic scene and then attempt to Dutch oven the " & ThePlayer.Partner + WhatWentWrong(4) = "order McDonalds with toppings that the " & ThePlayer.Partner & " is terribly allergic to, and can't restrain your laughter as they start spluttering" + + Dim WentWrong As Integer = CInt(Int(5 * Rnd())) + + If FilmNightResult = 1 Then + ThePlayer.BadFilmNights = ThePlayer.BadFilmNights + 1 + ThePlayer.Happiness = ThePlayer.Happiness - SadnessVal + lblFilmNightDesc.Text = "You accidentally " & WhatWentWrong(WentWrong) & ". You both go to bed angry and you lose -" & SadnessVal & " happiness. Also you dress up as a king." + Else + ThePlayer.GoodFilmNights = ThePlayer.GoodFilmNights + 1 + ThePlayer.Happiness = ThePlayer.Happiness + HappinessVal + lblFilmNightDesc.Text = " You have a sweet yet uneventful night in. You gain +" & HappinessVal & " happiness. Also you dress up as a king." + End If + + ResizeText(lblFilmNightDesc) + ResizeText(lblFilmNight) + + pnlFilmNight.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + + HappinessCheck() + End Sub + Private Sub btnFilmNightOK_Click(sender As Object, e As EventArgs) Handles btnFilmNightOK.Click + pnlFilmNight.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnPlebspotting_Click(sender As Object, e As EventArgs) Handles btnPlebspotting.Click + ThePlayer.Respect = ThePlayer.Respect + 20 + ThePlayer.PlebspottingTrips = ThePlayer.PlebspottingTrips + 1 + MsgBox("Equalspotting coming soon" & vbCrLf & vbCrLf & "Here's +20 respect") + End Sub +End Class \ No newline at end of file diff --git a/Presidency Simulator 2013/SplashScreen.vb b/Presidency Simulator 2013/SplashScreen.vb new file mode 100644 index 0000000..9034118 --- /dev/null +++ b/Presidency Simulator 2013/SplashScreen.vb @@ -0,0 +1,139 @@ +Public Class SplashScreen + Dim Count As Integer = 0 + Dim LiesP1(22) As String + Dim LiesP2(22) As String + Dim Check As Integer = 0 + Private Sub SplashScreen_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Lies() + + MonthsSet() + + GovtSet() + + ArgieSet() + + Randomize() + lblLies.Text = LiesP1(22 * Rnd()) & " " & LiesP2(22 * Rnd()) + + tmrLoading.Enabled = True + + MusicPlayer.Hide() + End Sub + Sub Lies() + LiesP1(0) = "undoing" + LiesP1(1) = "triangulating" + LiesP1(2) = "decoding" + LiesP1(3) = "turtling" + LiesP1(4) = "calculating" + LiesP1(5) = "transcoding" + LiesP1(6) = "observing" + LiesP1(7) = "translating" + LiesP1(8) = "hypothesising" + LiesP1(9) = "polymorphing" + LiesP1(10) = "flipping" + LiesP1(11) = "reticulating" + LiesP1(12) = "phalanging" + LiesP1(13) = "turborizing" + LiesP1(14) = "compelling" + LiesP1(15) = "uttering" + LiesP1(16) = "fondling" + LiesP1(17) = "guessing" + LiesP1(18) = "chundling" + LiesP1(19) = "bundling" + LiesP1(20) = "rastafaring" + LiesP1(21) = "ripping" + + LiesP2(0) = "everything" + LiesP2(1) = "code" + LiesP2(2) = "sums" + LiesP2(3) = "hexagons" + LiesP2(4) = "rolls" + LiesP2(5) = "beeps" + LiesP2(6) = "compulsion" + LiesP2(7) = "singularity engine" + LiesP2(8) = "boops" + LiesP2(9) = "the machine spirit" + LiesP2(10) = "observance" + LiesP2(11) = "splines" + LiesP2(12) = "guesses" + LiesP2(13) = "stuff" + LiesP2(14) = "things" + LiesP2(15) = "dreams" + LiesP2(16) = "reticules" + LiesP2(17) = "decoders" + LiesP2(18) = "bipbops" + LiesP2(19) = "kinematics" + LiesP2(20) = "twaddleplops" + LiesP2(21) = "royalty" + End Sub + Sub MonthsSet() + Months(0) = 31 + Months(2) = 31 + Months(3) = 30 + Months(4) = 31 + Months(5) = 30 + Months(6) = 31 + Months(7) = 31 + Months(8) = 30 + Months(9) = 31 + Months(10) = 30 + Months(11) = 31 + + TheMonth(0) = "January" + TheMonth(1) = "February" + TheMonth(2) = "March" + TheMonth(3) = "April" + TheMonth(4) = "May" + TheMonth(5) = "June" + TheMonth(6) = "July" + TheMonth(7) = "August" + TheMonth(8) = "September" + TheMonth(9) = "October" + TheMonth(10) = "November" + TheMonth(11) = "December" + End Sub + Sub GovtSet() + Government(0) = "Democrat" + Government(1) = "Republican" + End Sub + Sub ArgieSet() + ArgieButthurt(0) = "Ruffled" + ArgieButthurt(1) = "Miffed" + ArgieButthurt(2) = "Peeved" + ArgieButthurt(3) = "Irritated" + ArgieButthurt(4) = "Annoyed" + ArgieButthurt(5) = "Affronted" + ArgieButthurt(6) = "Angered" + ArgieButthurt(7) = "Liviv" + ArgieButthurt(8) = "Furious" + ArgieButthurt(9) = "Maddened with rage" + ArgieButthurt(10) = "Frothing at the mouth" + ArgieButthurt(11) = "Eye-twitchingly angry" + ArgieButthurt(12) = "Screaming obscenities at the elderly" + ArgieButthurt(13) = "Colon crucified" + End Sub + + Private Sub tmrLoading_Tick(sender As Object, e As EventArgs) Handles tmrLoading.Tick + If Count < 100 Then + If Count < 95 Then + Count = Count + CInt(Int(5 * Rnd())) + ElseIf Count >= 95 Then + Count = Count + CInt(Int((100 - Count) * Rnd()) + 1) + End If + lblLoading.Text = Count & "%" + If Count > Check Then + Check = Check + 10 + Randomize() + lblLies.Text = LiesP1(12 * Rnd()) & " " & LiesP2(12 * Rnd()) + End If + Else + tmrLoading.Enabled = False + Me.Hide() + MainMenu.Show() + End If + End Sub + + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click + Count = 100 + End Sub +End Class \ No newline at end of file diff --git a/Presidency Simulator 2013/ViewCharacter.vb b/Presidency Simulator 2013/ViewCharacter.vb new file mode 100644 index 0000000..b0564da --- /dev/null +++ b/Presidency Simulator 2013/ViewCharacter.vb @@ -0,0 +1,142 @@ +Public Class ViewCharacter + Dim Count As Integer = 10 + Private Sub ViewCharacter_Load(sender As Object, e As EventArgs) Handles MyBase.Load + If ThePlayer.Gender = 1 Then + picMonarch.Image = My.Resources.King + ElseIf ThePlayer.Gender = 0 Then + picMonarch.Image = My.Resources.Queen + End If + + lblName.Text = "President " + lblRuleLength.Text = "President for: " + + lblName.Text = lblName.Text & ThePlayer.Name + + lblRuleLength.Text = lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + + PopulateListbox() + + tmrAdvanceDay.Enabled = True + End Sub + Private Sub ViewCharacter_Resize(sender As Object, e As EventArgs) Handles Me.Resize + picMonarch.Width = Screen.PrimaryScreen.Bounds.Height + + pnlMenu.Height = Screen.PrimaryScreen.Bounds.Height + pnlMenu.Width = (Screen.PrimaryScreen.Bounds.Width - picMonarch.Width) + pnlMenu.Location = New Point(picMonarch.Width, pnlMenu.Location.Y) + + lblName.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 6) + + lblRuleLength.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 9) + + lblDate.Location = New Point((pnlMenu.Width - lblDate.Width) - ((pnlMenu.Width / 100) * 10), (pnlMenu.Height / 100) * 6) + + btnBack.Width = pnlMenu.Width / 2 + btnBack.Location = New Point((pnlMenu.Width / 100) * 25, (pnlMenu.Height / 100) * 92) + + lstStats.Height = pnlMenu.Height - (pnlMenu.Height / 4) + lstStats.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + lstStats.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 14) + End Sub + + Private Sub tmrAdvanceDay_Tick(sender As Object, e As EventArgs) Handles tmrAdvanceDay.Tick + ThePlayer.GoingsOn() + End Sub + + Sub PopulateListbox() + With lstStats.Items + .Add("--GENERAL--") + .Add("Party: " & ThePlayer.Party) + .Add("Happiness: " & ThePlayer.Happiness) + .Add("Respect: " & ThePlayer.Respect) + .Add("Knowledge: " & ThePlayer.Knowledge) + .Add("Birthplace: " & ThePlayer.Birthplace) + .Add(ThePlayer.GDPTerm & ThePlayer.GDP.ToString("###,###,###,###")) + If ThePlayer.ParliamentDissolved = False Then + .Add("Current government: " & Government(ThePlayer.CurrGovernment)) + ElseIf ThePlayer.ParliamentDissolved = True Then + .Add("Current government: Congress dissolved in " & ThePlayer.YearParliamentDissolved) + End If + .Add("Number of elections held during reign: " & ThePlayer.ElectionNum) + .Add("Number of resignation threats: " & ThePlayer.AbdicationThreats) + .Add("--RECREATION--") + .Add("Equalspotting trips: " & ThePlayer.PlebspottingTrips) + .Add("Research sessions: " & ThePlayer.ResearchSeshes) + .Add("Holidays gone on: " & ThePlayer.Holidays) + .Add("Good holidays: " & ThePlayer.GoodHolidays) + .Add("Bad holidays: " & ThePlayer.BadHolidays) + .Add("NFL games played: " & ThePlayer.PoloGames) + .Add("NFL games won: " & ThePlayer.PoloGamesWon) + .Add("NFL games lost: " & ThePlayer.PoloGamesLost) + .Add("Sick White House parties hosted: " & ThePlayer.PartiesHosted) + .Add("Successful parties: " & ThePlayer.GoodPartiesHosted) + .Add("Unsuccessful parties: " & ThePlayer.BadPartiesHosted) + .Add("Film nights in with the " & ThePlayer.Partner & ": " & ThePlayer.FilmNights) + .Add("Good film nights: " & ThePlayer.GoodFilmNights) + .Add("Bad film nights: " & ThePlayer.GoodFilmNights) + .Add("--DECREES--") + .Add("Commoners executed: " & ThePlayer.CommonersExecuted) + If ThePlayer.AtWarWithFrance = True Then + .Add("At war with Communism: Of course!") + .Add("At war with Communism for: " & ThePlayer.AtWarWithFranceFor) + .Add("Lives lost in the unending America-Communism War of " & ThePlayer.YearWarDeclared & ": " & ThePlayer.LivesLost) + ElseIf (ThePlayer.AtWarWithFrance = False) And (ThePlayer.WorldTaken = True) And (ThePlayer.AtWarWithFranceForDays > 0) Then + .Add("At war with Communism: Communism? Do you mean New Capitalism?") + .Add("At war with France for: " & ThePlayer.AtWarWithFranceFor) + .Add("Lives lost in the now-ended America-Communism War of " & ThePlayer.YearWarDeclared & ": " & ThePlayer.LivesLost) + ElseIf (ThePlayer.AtWarWithFrance = False) And (ThePlayer.WorldTaken = True) And (ThePlayer.AtWarWithFranceForDays = 0) Then + .Add("At war with Communism: Communism? Do you mean New Capitalism?") + ElseIf (ThePlayer.AtWarWithFrance = False) And (ThePlayer.WorldTaken = False) Then + .Add("At war with Communism: No") + End If + If ThePlayer.MonumentsErected > 0 Then + If ThePlayer.SunkFalklands = False Then + .Add("Monuments erected on Texas: " & ThePlayer.MonumentsErected) + .Add("Weight of Texas monuments: " & ThePlayer.FalklandMonumentsWeight & "kg") + ElseIf ThePlayer.SunkFalklands = True Then + .Add("Monuments erected on the former Texas: " & ThePlayer.MonumentsErected) + .Add("Weight of Texas monuments: Unknown") + End If + .Add("Mexican butthurt level: " & ArgieButthurt(ThePlayer.ArgieButthurtLevel)) + End If + If ThePlayer.UnifiedIreland = True Then + .Add("Dakotas united: Finally") + .Add("Year Dakotas unified: " & ThePlayer.YearIrelandUnified) + .Add("Attempts to unify Dakotas: " & ThePlayer.AttemptstoUnifyIreland) + .Add("Lives lost attempting to unify the Dakotas: " & ThePlayer.LivesLostIreland) + .Add("Dakotan nationalist assassinations: " & ThePlayer.IRAAssassinations) + ElseIf ThePlayer.UnifiedIreland = False Then + .Add("Dakotas united: No") + If ThePlayer.AttemptstoUnifyIreland > 0 Then + .Add("Attempts to unify Dakotas: " & ThePlayer.AttemptstoUnifyIreland) + .Add("Lives lost attempting to unify the Dakotas: " & ThePlayer.LivesLostIreland) + End If + End If + .Add("Percentage of equine consuls: " & ThePlayer.PercentageofHorseConsuls & "%") + If ThePlayer.WorldTaken = 1 Then + .Add("World taken: USA! USA!") + ElseIf ThePlayer.WorldTaken = 0 Then + .Add("World taken: Working on it") + End If + .Add("Attempts to take over the world: " & ThePlayer.AttemptstoTakeWorld) + .Add("Lives lost taking over the world: " & ThePlayer.LivesLostTakeWorld) + If ThePlayer.WorldTaken = 1 Then + .Add("Year world taken over: " & ThePlayer.YearWorldTaken) + End If + + .Add("Churches formed: " & ThePlayer.ChurchesFormed) + If ThePlayer.MadeofGlass = True Then + .Add("Gone snooker loopy: Yes") + ElseIf ThePlayer.MadeofGlass = False Then + .Add("Gone snooker loopy: Not completely") + End If + .Add(ThePlayer.Partner & "s beheaded: " & ThePlayer.WivesBeheaded) + .Add("Things declared punishable by death: " & ThePlayer.ThingsDeclaredPunishableByDeath) + End With + End Sub + + Private Sub btnBack_Click(sender As Object, e As EventArgs) Handles btnBack.Click + DefaultView.Show() + Me.Close() + End Sub +End Class \ No newline at end of file diff --git a/Royalty Simulator 2013/CharacterCreation.vb b/Royalty Simulator 2013/CharacterCreation.vb new file mode 100644 index 0000000..dbbd36c --- /dev/null +++ b/Royalty Simulator 2013/CharacterCreation.vb @@ -0,0 +1,111 @@ +Public Class CharacterCreation + + Private Sub CharacterCreation_Load(sender As Object, e As EventArgs) Handles MyBase.Load + NewPlayer() + ThePlayer.PhilMode = PhilMode + radMale.Checked = True + If ThePlayer.PhilMode = True Then + picMonarch.Image = My.Resources.KingPhil + ThePlayer.Name = "Philip Mountbatten" + txtName.Text = "Philip Mountbatten" + ThePlayer.Age = "91" + numAge.Text = "91" + ThePlayer.Birthplace = "Greece" + cmboBirthplace.SelectedItem = "Greece" + ThePlayer.Gender = 1 + txtName.Enabled = False + numAge.Enabled = False + cmboBirthplace.Enabled = False + radMale.Enabled = False + radFemale.Enabled = False + btnPlay.Enabled = True + End If + End Sub + Private Sub radMale_CheckedChanged(sender As Object, e As EventArgs) Handles radMale.CheckedChanged + ThePlayer.Gender = 1 + picMonarch.Image = My.Resources.King + End Sub + Private Sub radFemale_CheckedChanged(sender As Object, e As EventArgs) Handles radFemale.CheckedChanged + ThePlayer.Gender = 0 + picMonarch.Image = My.Resources.Queen + End Sub + Private Sub btnQuitGame_Click(sender As Object, e As EventArgs) Handles btnMainMenu.Click + MainMenu.Show() + Me.Close() + End Sub + Private Sub btnPlay_Click(sender As Object, e As EventArgs) Handles btnPlay.Click + ThePlayer.CurrYear = Year(Now) + + ThePlayer.DeathAge = 100 + CInt(Int((50) * Rnd()) + 1) + + If ThePlayer.PhilMode = True Then + ThePlayer.Respect = 100 + End If + + If txtName.Text <> "" Then + ThePlayer.Name = txtName.Text + ElseIf txtName.Text = "" Then + ThePlayer.Name = "The Nameless One" + End If + ThePlayer.Age = numAge.Text + If cmboBirthplace.Text = "" Then + ThePlayer.Birthplace = "Death Valley, USA" + ElseIf cmboBirthplace.Text <> "" Then + ThePlayer.Birthplace = cmboBirthplace.SelectedItem + End If + + If ThePlayer.Gender = 1 Then + ThePlayer.Partner = "Queen" + ElseIf ThePlayer.Gender = 0 Then + ThePlayer.Partner = "Queen's consort" + End If + + ThePlayer.Elections() + + Intro.Show() + Me.Close() + End Sub + Private Sub CharacterCreation_Resize(sender As Object, e As EventArgs) Handles Me.Resize + pnlMenu.Height = Screen.PrimaryScreen.Bounds.Height + pnlMenu.Width = (Screen.PrimaryScreen.Bounds.Width - picMonarch.Width) + pnlMenu.Location = New Point(picMonarch.Width, pnlMenu.Location.Y) + + picMonarch.Height = pnlMenu.Height + picMonarch.Width = Screen.PrimaryScreen.Bounds.Height + + lblName.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 40) + ResizeText(lblName) + + txtName.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + txtName.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 45) + + lblAge.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 50) + ResizeText(lblAge) + + numAge.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + numAge.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 55) + + lblBirthplace.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 60) + ResizeText(lblBirthplace) + + cmboBirthplace.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + cmboBirthplace.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 65) + cmboBirthplace.DropDownHeight = (pnlMenu.Height / 100) * 100 + + lblGender.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 70) + ResizeText(lblGender) + radMale.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 75) + + radFemale.Location = New Point((pnlMenu.Width / 100) * 45, (pnlMenu.Height / 100) * 75) + + btnPlay.Width = txtName.Width + btnPlay.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 82) + + btnMainMenu.Width = btnPlay.Width / 2 + btnMainMenu.Location = New Point(btnPlay.Location.X + (btnPlay.Width / 4), (pnlMenu.Height / 100) * 90) + + picRoyaltySimulatorLogo.Width = txtName.Width + picRoyaltySimulatorLogo.Height = (pnlMenu.Height / 100) * 30 + picRoyaltySimulatorLogo.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 10) + End Sub +End Class \ No newline at end of file diff --git a/Royalty Simulator 2013/DeathForm.vb b/Royalty Simulator 2013/DeathForm.vb new file mode 100644 index 0000000..738db07 --- /dev/null +++ b/Royalty Simulator 2013/DeathForm.vb @@ -0,0 +1,282 @@ +Public Class DeathForm + Dim RankVal As Integer = 0 + Dim Rank As Char + Private Sub DeathForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Populate() + + GetRank() + If RankVal < 15 Then + Rank = "F" + picRank.Image = My.Resources.RankF + ElseIf (RankVal < 30) And (RankVal >= 15) Then + Rank = "E" + picRank.Image = My.Resources.RankE + ElseIf (RankVal < 45) And (RankVal >= 30) Then + Rank = "D" + picRank.Image = My.Resources.RankD + ElseIf (RankVal < 60) And (RankVal >= 45) Then + Rank = "C" + picRank.Image = My.Resources.RankC + ElseIf (RankVal < 75) And (RankVal >= 60) Then + Rank = "B" + picRank.Image = My.Resources.RankB + ElseIf (RankVal < 90) And (RankVal >= 75) Then + Rank = "A" + picRank.Image = My.Resources.RankA + ElseIf RankVal > 90 Then + Rank = "S" + picRank.Image = My.Resources.RankS + End If + End Sub + + Private Sub DeathForm_Resize(sender As Object, e As EventArgs) Handles Me.Resize + lblCauseofDeath.Location = New Point((Me.Width / 100) * 5, (Me.Height / 100) * 1) + + lstStats.Width = (Me.Width / 100) * 90 + lstStats.Height = (Me.Height / 100) * 80 + lstStats.Location = New Point((Me.Width / 100) * 5, (Me.Height / 100) * 6) + lstStats.ColumnWidth = lstStats.Width / 2 - ((Me.Width / 100) * 5) + + btnMainMenu.Width = (Me.Width / 7) * 5 + btnMainMenu.Height = (Me.Height / 100) * 10 + btnMainMenu.Location = New Point((Me.Width / 100) * 5, (Me.Height / 100) * 87) + + lblRank.Location = New Point((Me.Width / 5) * 4, (Me.Height / 100) * 95) + + picRank.Height = Me.Height / 7 + picRank.Width = picRank.Height + picRank.Location = New Point((Me.Width / 10) * 9, (Me.Height / 100) * 85) + End Sub + Sub GetRank() + If ThePlayer.Happiness > 100 Then + ThePlayer.Happiness = 100 + End If + RankVal = RankVal + (ThePlayer.Happiness / 10) + + If ThePlayer.Respect > 150 Then + ThePlayer.Respect = 150 + End If + RankVal = RankVal + (ThePlayer.Respect / 10) + + If ThePlayer.Knowledge > 100 Then + ThePlayer.Knowledge = 100 + End If + RankVal = RankVal + (ThePlayer.Happiness / 10) + + If (ThePlayer.PlebspottingTrips > 0) Then + RankVal = RankVal + 2.5 + End If + If (ThePlayer.ResearchSeshes > 0) Then + RankVal = RankVal + 1.5 + End If + If (ThePlayer.Holidays > 0) Then + RankVal = RankVal + 1.5 + End If + If (ThePlayer.PoloGames > 0) Then + RankVal = RankVal + 1.5 + End If + If (ThePlayer.PartiesHosted > 0) Then + RankVal = RankVal + 1.5 + End If + If (ThePlayer.FilmNights > 0) Then + RankVal = RankVal + 1.5 + End If + If ThePlayer.ParliamentDissolved = True Then + RankVal = RankVal + 10 + If ThePlayer.UnifiedIreland = True Then + RankVal = RankVal + 5 + End If + If ThePlayer.CanadaRetaken = True Then + RankVal = RankVal + 1 + End If + If ThePlayer.ColoniesRetaken = True Then + RankVal = RankVal + 2 + End If + If ThePlayer.CarribeanRetaken = True Then + RankVal = RankVal + 1.5 + End If + If ThePlayer.SouthAfricaRetaken = True Then + RankVal = RankVal + 2 + End If + If ThePlayer.OtherAfricaRetaken = True Then + RankVal = RankVal + 2.5 + End If + If ThePlayer.MiddleEastRetaken = True Then + RankVal = RankVal + 2.5 + End If + If ThePlayer.IndiaRetaken = True Then + RankVal = RankVal + 2.5 + End If + If ThePlayer.OtherAsiaRetaken = True Then + RankVal = RankVal + 1.5 + End If + If ThePlayer.AustraliaRetaken = True Then + RankVal = RankVal + 1 + End If + If ThePlayer.PercentageEmpireRetaken = 100 Then + RankVal = RankVal + 5 + End If + If ThePlayer.WorldTaken = True Then + RankVal = RankVal + 13.5 + End If + End If + If ThePlayer.ArgieButthurtLevel = 13 Then + RankVal = RankVal + 5 + End If + End Sub + Sub Populate() + Dim Title As String = "" + If ThePlayer.Gender = 1 Then + Title = "King" + ElseIf ThePlayer.Gender = 0 Then + Title = "Queen" + End If + With lstStats.Items + .Add("--GENERAL--") + .Add("Name: " & Title & " " & ThePlayer.Name) + .Add(Title & " for : " & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years") + .Add("Happiness: " & ThePlayer.Happiness) + .Add("Respect: " & ThePlayer.Respect) + .Add("Knowledge: " & ThePlayer.Knowledge) + .Add("Birthplace: " & ThePlayer.Birthplace) + .Add(ThePlayer.GDPTerm & ThePlayer.GDP.ToString("###,###,###,###")) + If ThePlayer.ParliamentDissolved = False Then + .Add("Current government: " & Government(ThePlayer.CurrGovernment)) + ElseIf ThePlayer.ParliamentDissolved = True Then + .Add("Current government: Parliament dissolved in " & ThePlayer.YearParliamentDissolved) + End If + .Add("Number of elections held during reign: " & ThePlayer.ElectionNum) + .Add("Number of abdication threats: " & ThePlayer.AbdicationThreats) + .Add("--RECREATION--") + .Add("Plebspotting trips: " & ThePlayer.PlebspottingTrips) + .Add("Research sessions: " & ThePlayer.ResearchSeshes) + .Add("Holidays gone on: " & ThePlayer.Holidays) + .Add("Good holidays: " & ThePlayer.GoodHolidays) + .Add("Bad holidays: " & ThePlayer.BadHolidays) + .Add("Polo games played: " & ThePlayer.PoloGames) + .Add("Polo games won: " & ThePlayer.PoloGamesWon) + .Add("Polo games lost: " & ThePlayer.PoloGamesLost) + .Add("Sick castle parties hosted: " & ThePlayer.PartiesHosted) + .Add("Successful parties: " & ThePlayer.GoodPartiesHosted) + .Add("Unsuccessful parties: " & ThePlayer.BadPartiesHosted) + .Add("Film nights in with the " & ThePlayer.Partner & ": " & ThePlayer.FilmNights) + .Add("Good film nights: " & ThePlayer.GoodFilmNights) + .Add("Bad film nights: " & ThePlayer.GoodFilmNights) + .Add("--DECREES--") + .Add("Commoners executed: " & ThePlayer.CommonersExecuted) + If ThePlayer.AtWarWithFrance = True Then + .Add("At war with France: Of course!") + .Add("At war with France for: " & ThePlayer.AtWarWithFranceFor) + .Add("Lives lost in the unending Anglo-French War of " & ThePlayer.YearWarDeclared & ": " & ThePlayer.LivesLost) + ElseIf (ThePlayer.AtWarWithFrance = False) And (ThePlayer.WorldTaken = True) And (ThePlayer.AtWarWithFranceForDays > 0) Then + .Add("At war with France: France? Do you mean New Grimsby?") + .Add("At war with France for: " & ThePlayer.AtWarWithFranceFor) + .Add("Lives lost in the now-ended Anglo-French War of " & ThePlayer.YearWarDeclared & ": " & ThePlayer.LivesLost) + ElseIf (ThePlayer.AtWarWithFrance = False) And (ThePlayer.WorldTaken = True) And (ThePlayer.AtWarWithFranceForDays = 0) Then + .Add("At war with France: France? Do you mean New Grimsby?") + ElseIf (ThePlayer.AtWarWithFrance = False) And (ThePlayer.WorldTaken = False) Then + .Add("At war with France: No") + End If + If ThePlayer.MonumentsErected > 0 Then + If ThePlayer.SunkFalklands = False Then + .Add("Monuments erected on the Falklands: " & ThePlayer.MonumentsErected) + .Add("Weight of Falklands monuments: " & ThePlayer.FalklandMonumentsWeight & "kg") + ElseIf ThePlayer.SunkFalklands = True Then + .Add("Monuments erected on the former Falklands: " & ThePlayer.MonumentsErected) + .Add("Weight of Falklands monuments: Unknown") + End If + .Add("Argentine butthurt level: " & ArgieButthurt(ThePlayer.ArgieButthurtLevel)) + End If + If ThePlayer.UnifiedIreland = True Then + .Add("Ireland united: Finally") + .Add("Year Ireland unified: " & ThePlayer.YearIrelandUnified) + .Add("Attempts to unify Ireland: " & ThePlayer.AttemptstoUnifyIreland) + .Add("Lives lost attempting to unify Ireland: " & ThePlayer.LivesLostIreland) + .Add("Republican assassinations: " & ThePlayer.IRAAssassinations) + ElseIf ThePlayer.UnifiedIreland = False Then + .Add("Ireland united: No") + If ThePlayer.AttemptstoUnifyIreland > 0 Then + .Add("Attempts to unify Ireland: " & ThePlayer.AttemptstoUnifyIreland) + .Add("Lives lost attempting to unify Ireland: " & ThePlayer.LivesLostIreland) + End If + End If + .Add("Percentage of equine consuls: " & ThePlayer.PercentageofHorseConsuls & "%") + .Add("Percentage of Empire retaken: " & ThePlayer.PercentageEmpireRetaken & "%") + If ThePlayer.CanadaRetaken = 0 Then + .Add("Canada status: Free") + ElseIf ThePlayer.CanadaRetaken = 1 Then + .Add("Canada status: Under British control") + End If + + If ThePlayer.ColoniesRetaken = 0 Then + .Add("Thirteen Colonies status: Free") + ElseIf ThePlayer.ColoniesRetaken = 1 Then + .Add("Thirteen Colonies status: Under British control") + End If + If ThePlayer.CarribeanRetaken = 0 Then + .Add("Caribbean status: Free") + ElseIf ThePlayer.CarribeanRetaken = 1 Then + .Add("Caribbean status: Under British control") + End If + If ThePlayer.SouthAfricaRetaken = 0 Then + .Add("South Africa status: Free") + ElseIf ThePlayer.SouthAfricaRetaken = 1 Then + .Add("South Africa status: Under British control") + End If + If ThePlayer.OtherAfricaRetaken = 0 Then + .Add("Other bits of Africa status: Free") + ElseIf ThePlayer.OtherAfricaRetaken = 1 Then + .Add("Other bits of Africa status: Under British control") + End If + If ThePlayer.MiddleEastRetaken = 0 Then + .Add("Middle-East status: Free") + ElseIf ThePlayer.MiddleEastRetaken = 1 Then + .Add("Middle-East status: Under British control") + End If + If ThePlayer.IndiaRetaken = 0 Then + .Add("India status: Free") + ElseIf ThePlayer.IndiaRetaken = 1 Then + .Add("India status: Under British control") + End If + If ThePlayer.OtherAsiaRetaken = 0 Then + .Add("Other bits of Asia status: Free") + ElseIf ThePlayer.OtherAsiaRetaken = 1 Then + .Add("Other bits of Asia status: Under British control") + End If + If ThePlayer.AustraliaRetaken = 0 Then + .Add("Australia status: Free") + ElseIf ThePlayer.AustraliaRetaken = 1 Then + .Add("Australia status: Under British control") + End If + If ThePlayer.AttemptstoRetakeEmpire > 0 Then + .Add("Attempts to retake Empire: " & ThePlayer.AttemptstoRetakeEmpire) + .Add("Lives lost retaking Empire: " & ThePlayer.LivesLostEmpire) + End If + If ThePlayer.PercentageEmpireRetaken = 100 Then + .Add("Year Empire retaken: " & ThePlayer.YearEmpireRetaken) + If ThePlayer.WorldTaken = 1 Then + .Add("World taken: For England") + ElseIf ThePlayer.WorldTaken = 0 Then + .Add("World taken: Working on it") + End If + .Add("Attempts to take over the world: " & ThePlayer.AttemptstoTakeWorld) + .Add("Lives lost taking over the world: " & ThePlayer.LivesLostTakeWorld) + If ThePlayer.WorldTaken = 1 Then + .Add("Year world taken over: " & ThePlayer.YearWorldTaken) + End If + End If + .Add("Churches formed: " & ThePlayer.ChurchesFormed) + If ThePlayer.MadeofGlass = True Then + .Add("Gone snooker loopy: Yes") + ElseIf ThePlayer.MadeofGlass = False Then + .Add("Gone snooker loopy: Not completely") + End If + .Add("Wives beheaded: " & ThePlayer.WivesBeheaded) + .Add("Things declared punishable by death: " & ThePlayer.ThingsDeclaredPunishableByDeath) + End With + End Sub + Private Sub btnMainMenu_Click(sender As Object, e As EventArgs) Handles btnMainMenu.Click + MainMenu.Show() + Me.Close() + End Sub +End Class \ No newline at end of file diff --git a/Royalty Simulator 2013/DefaultView.vb b/Royalty Simulator 2013/DefaultView.vb new file mode 100644 index 0000000..e707b8b --- /dev/null +++ b/Royalty Simulator 2013/DefaultView.vb @@ -0,0 +1,1199 @@ +Public Class DefaultView + Dim Count As Integer = 10 + Dim DispGDP As String + Dim ChurchNames1(10) As String + Dim ChurchNames2(10) As String + Dim ChurchNames3(10) As String + Dim Prophets(10) As String + Dim Values1(10) As String + Dim Values2(10) As String + Dim Values3(10) As String + Dim ChurchArrayed As Boolean = False + Dim DeathAction(10) As String + Dim DeathAdjective(10) As String + Dim DeathCondition(10) As String + Dim DeathArrayed As Boolean = False + Private Sub DefaultView_Load(sender As Object, e As EventArgs) Handles Me.Load + If ThePlayer.CurrYear Mod 4 = 0 Then + Months(1) = 29 + ElseIf ThePlayer.CurrYear Mod 4 <> 0 Then + Months(1) = 28 + End If + + If ThePlayer.PhilMode = True Then + picMonarch.Image = My.Resources.KingPhil + ElseIf ThePlayer.PhilMode = False Then + If ThePlayer.Gender = 1 Then + picMonarch.Image = My.Resources.King + ElseIf ThePlayer.Gender = 0 Then + picMonarch.Image = My.Resources.Queen + End If + End If + If ThePlayer.ParliamentDissolved = False Then + grpDecrees.Enabled = False + + lblCurrentParty.Text = "Gov't: " & Government(ThePlayer.CurrGovernment) + ElseIf ThePlayer.ParliamentDissolved = True Then + lblCurrentParty.Visible = False + grpDecrees.Enabled = True + btnDissolveParliament.Visible = False + + btnExecuteCommoner.Text = "Execute a Commoner" + btnFrance.Text = "Declare War on France" + btnFalklands.Text = "Erect Monument on Falklands" + btnFalklands.Font = New Font("Times New Roman", 9) + btnIreland.Text = "Unify Ireland" + btnPromote.Text = "Promote Horse as Consul" + If ThePlayer.PercentageEmpireRetaken = 100 Then + btnEmpire.Text = "Take Over the World" + If ThePlayer.WorldTaken = 1 Then + btnEmpire.Enabled = False + End If + ElseIf ThePlayer.PercentageEmpireRetaken < 100 Then + btnEmpire.Text = "Recreate Empire" + btnEmpire.Enabled = True + End If + btnChurch.Text = "Create New Church" + btnGlass.Text = "Become Made of Glass" + If ThePlayer.Gender = 1 Then + btnWife.Text = "Behead Wife" + ElseIf ThePlayer.Gender = 0 Then + btnWife.Text = "Behead Husband" + End If + btnDeath.Text = "Declare Something Punishable by Death" + btnDeath.Font = New Font("Times New Roman", 7) + If ThePlayer.UnifiedIreland = True Then + btnIreland.Enabled = False + End If + If ThePlayer.MadeofGlass = True Then + btnGlass.Enabled = False + End If + End If + + lblRespect.Text = "Respect: " & ThePlayer.Respect + + If ThePlayer.Gender = 1 Then + lblName.Text = "King " + lblRuleLength.Text = "King for: " + ElseIf ThePlayer.Gender = 0 Then + lblName.Text = "Queen " + lblRuleLength.Text = "Queen for: " + End If + + lblName.Text = lblName.Text & ThePlayer.Name + + lblRuleLength.Text = lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + + lblGDP.Text = ThePlayer.GDPTerm & ThePlayer.GDP.ToString("###,###,###,###") + + tmrAdvanceDay.Enabled = True + End Sub + Private Sub DefaultView_Resize(sender As Object, e As EventArgs) Handles MyBase.Resize + picMonarch.Width = Screen.PrimaryScreen.Bounds.Height + + pnlMenu.Height = Screen.PrimaryScreen.Bounds.Height + pnlMenu.Width = (Screen.PrimaryScreen.Bounds.Width - picMonarch.Width) + pnlMenu.Location = New Point(picMonarch.Width, pnlMenu.Location.Y) + + lblName.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 6) + + lblRuleLength.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 9) + + lblDate.Location = New Point((pnlMenu.Width - lblDate.Width) - ((pnlMenu.Width / 100) * 10), (pnlMenu.Height / 100) * 6) + + btnCalendar.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnCalendar.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 12) + + grpInfo.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + grpInfo.Height = (pnlMenu.Width / 100) * 20 + grpInfo.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 19) + + lblGDP.Location = New Point((grpInfo.Width / 100) * 5, (grpInfo.Height / 100) * 20) + + lblRespect.Location = New Point((grpInfo.Width / 100) * 5, (grpInfo.Height / 100) * 45) + + lblCurrentParty.Location = New Point((grpInfo.Width / 100) * 5, (grpInfo.Height / 100) * 70) + + btnCharacter.Width = (grpInfo.Width / 100) * 47.5 + btnCharacter.Height = (grpInfo.Height / 100) * 80 + btnCharacter.Location = New Point((grpInfo.Width / 100) * 50, (grpInfo.Height / 100) * 12.5) + + btnRecreation.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnRecreation.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 38) + + btnDissolveParliament.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnDissolveParliament.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 44) + + grpDecrees.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 30) + grpDecrees.Height = (pnlMenu.Width / 100) * 40 + grpDecrees.Location = New Point((pnlMenu.Width / 100) * 15, (pnlMenu.Height / 100) * 50) + + btnExecuteCommoner.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnExecuteCommoner.Height = (grpDecrees.Height / 100) * 16 + btnExecuteCommoner.Location = New Point((grpDecrees.Width / 100) * 5, (grpDecrees.Height / 100) * 12) + + btnFrance.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnFrance.Height = (grpDecrees.Height / 100) * 16 + btnFrance.Location = New Point((grpDecrees.Width / 100) * 55, (grpDecrees.Height / 100) * 12) + + btnFalklands.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnFalklands.Height = (grpDecrees.Height / 100) * 16 + btnFalklands.Location = New Point((grpDecrees.Width / 100) * 5, (grpDecrees.Height / 100) * 28) + + btnIreland.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnIreland.Height = (grpDecrees.Height / 100) * 16 + btnIreland.Location = New Point((grpDecrees.Width / 100) * 55, (grpDecrees.Height / 100) * 28) + + btnPromote.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnPromote.Height = (grpDecrees.Height / 100) * 16 + btnPromote.Location = New Point((grpDecrees.Width / 100) * 5, (grpDecrees.Height / 100) * 44) + + btnEmpire.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnEmpire.Height = (grpDecrees.Height / 100) * 16 + btnEmpire.Location = New Point((grpDecrees.Width / 100) * 55, (grpDecrees.Height / 100) * 44) + + btnChurch.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnChurch.Height = (grpDecrees.Height / 100) * 16 + btnChurch.Location = New Point((grpDecrees.Width / 100) * 5, (grpDecrees.Height / 100) * 60) + + btnGlass.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnGlass.Height = (grpDecrees.Height / 100) * 16 + btnGlass.Location = New Point((grpDecrees.Width / 100) * 55, (grpDecrees.Height / 100) * 60) + + btnWife.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnWife.Height = (grpDecrees.Height / 100) * 16 + btnWife.Location = New Point((grpDecrees.Width / 100) * 5, (grpDecrees.Height / 100) * 76) + + btnDeath.Width = grpDecrees.Width - ((grpDecrees.Width / 100) * 60) + btnDeath.Height = (grpDecrees.Height / 100) * 16 + btnDeath.Location = New Point((grpDecrees.Width / 100) * 55, (grpDecrees.Height / 100) * 76) + + btnAbdicate.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnAbdicate.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 86) + + btnMainMenu.Width = pnlMenu.Width / 2 + btnMainMenu.Location = New Point((pnlMenu.Width / 100) * 25, (pnlMenu.Height / 100) * 92) + + pnlAbdication.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlAbdication.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlAbdication.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picAbdicator.Width = pnlAbdication.Height + picAbdicator.Height = picAbdicator.Width + + lblAbdicationAreYouSure.Width = pnlAbdication.Width - picAbdicator.Width + lblAbdicationAreYouSure.Location = New Point(picAbdicator.Width, (pnlAbdication.Height / 100) * 10) + ResizeText(lblAbdicationAreYouSure) + + lblAbdication.Width = pnlAbdication.Width - picAbdicator.Width + lblAbdication.Height = (pnlAbdication.Height / 100) * 50 + lblAbdication.Location = New Point(picAbdicator.Width, (pnlAbdication.Height / 100) * 25) + ResizeText(lblAbdication) + + btnAbdicationYes.Width = (pnlAbdication.Width - picAbdicator.Width) / 4 + btnAbdicationYes.Location = New Point(picAbdicator.Width + ((pnlAbdication.Width - picAbdicator.Width) / 4), (pnlAbdication.Height / 100) * 80) + + btnAbdicationNo.Width = (pnlAbdication.Width - picAbdicator.Width) / 4 + btnAbdicationNo.Location = New Point(picAbdicator.Width + ((pnlAbdication.Width - picAbdicator.Width) / 2), (pnlAbdication.Height / 100) * 80) + + pnlDissolve.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlDissolve.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlDissolve.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picDissolve.Width = pnlDissolve.Height + picDissolve.Height = picDissolve.Width + + lblDissolve.Width = pnlDissolve.Width - picDissolve.Width + lblDissolve.Location = New Point(picDissolve.Width, (pnlDissolve.Height / 100) * 10) + ResizeText(lblDissolve) + + lblDissolveDesc.Width = pnlDissolve.Width - picDissolve.Width + lblDissolveDesc.Height = (pnlDissolve.Height / 100) * 50 + lblDissolveDesc.Location = New Point(picDissolve.Width, (pnlDissolve.Height / 100) * 25) + ResizeText(lblDissolveDesc) + + btnDissolveYes.Width = lblDissolveDesc.Width / 2 + btnDissolveYes.Location = New Point(lblDissolveDesc.Location.X, (pnlDissolve.Height / 100) * 80) + + btnDissolveNo.Width = lblDissolveDesc.Width / 2 + btnDissolveNo.Location = New Point(lblDissolveDesc.Location.X + (lblDissolveDesc.Width / 2), (pnlDissolve.Height / 100) * 80) + + btnDissolveOK.Width = (pnlDissolve.Width - picDissolve.Width) / 4 + btnDissolveOK.Location = New Point(picDissolve.Width + (((pnlDissolve.Width - picDissolve.Width) / 8) * 3), (pnlDissolve.Height / 100) * 80) + + pnlExecute.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlExecute.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlExecute.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picExecute.Width = pnlExecute.Height + picExecute.Height = picExecute.Width + + lblExecute.Width = pnlExecute.Width - picExecute.Width + lblExecute.Location = New Point(picExecute.Width, (pnlExecute.Height / 100) * 10) + ResizeText(lblExecute) + + lblExecuteDesc.Width = pnlExecute.Width - picExecute.Width + lblExecuteDesc.Height = (pnlExecute.Height / 100) * 50 + lblExecuteDesc.Location = New Point(picExecute.Width, (pnlExecute.Height / 100) * 25) + ResizeText(lblExecuteDesc) + + btnExecuteOK.Width = (pnlExecute.Width - picExecute.Width) / 4 + btnExecuteOK.Location = New Point(picExecute.Width + (((pnlExecute.Width - picExecute.Width) / 8) * 3), (pnlExecute.Height / 100) * 80) + + pnlFrance.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlFrance.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlFrance.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picFrance.Width = pnlFrance.Height + picFrance.Height = picFrance.Width + + lblFrance.Width = pnlFrance.Width - picFrance.Width + lblFrance.Location = New Point(picFrance.Width, (pnlFrance.Height / 100) * 10) + ResizeText(lblFrance) + + lblFranceDesc.Width = pnlFrance.Width - picFrance.Width + lblFranceDesc.Height = (pnlFrance.Height / 100) * 50 + lblFranceDesc.Location = New Point(picFrance.Width, (pnlFrance.Height / 100) * 25) + ResizeText(lblFranceDesc) + + btnFranceOK.Width = (pnlFrance.Width - picFrance.Width) / 4 + btnFranceOK.Location = New Point(picFrance.Width + (((pnlFrance.Width - picFrance.Width) / 8) * 3), (pnlFrance.Height / 100) * 80) + + pnlFalklands.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlFalklands.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlFalklands.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picFalklands.Width = pnlFalklands.Height + picFalklands.Height = picFalklands.Width + + lblFalklands.Width = pnlFalklands.Width - picFalklands.Width + lblFalklands.Location = New Point(picFalklands.Width, (pnlFalklands.Height / 100) * 10) + ResizeText(lblFalklands) + + lblFalklandsDesc.Width = pnlFalklands.Width - picFalklands.Width + lblFalklandsDesc.Height = (pnlFalklands.Height / 100) * 50 + lblFalklandsDesc.Location = New Point(picFalklands.Width, (pnlFalklands.Height / 100) * 25) + ResizeText(lblFalklandsDesc) + + btnFalklandsOK.Width = (pnlFalklands.Width - picFalklands.Width) / 4 + btnFalklandsOK.Location = New Point(picFalklands.Width + (((pnlFalklands.Width - picFalklands.Width) / 8) * 3), (pnlFalklands.Height / 100) * 80) + + pnlIreland.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlIreland.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlIreland.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picIreland.Width = pnlIreland.Height + picIreland.Height = picIreland.Width + + lblIreland.Width = pnlIreland.Width - picIreland.Width + lblIreland.Location = New Point(picIreland.Width, (pnlIreland.Height / 100) * 10) + ResizeText(lblIreland) + + lblIrelandDesc.Width = pnlIreland.Width - picIreland.Width + lblIrelandDesc.Height = (pnlIreland.Height / 100) * 50 + lblIrelandDesc.Location = New Point(picIreland.Width, (pnlIreland.Height / 100) * 25) + ResizeText(lblIrelandDesc) + + btnIrelandOK.Width = (pnlIreland.Width - picIreland.Width) / 4 + btnIrelandOK.Location = New Point(picIreland.Width + (((pnlIreland.Width - picIreland.Width) / 8) * 3), (pnlIreland.Height / 100) * 80) + + pnlHorse.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlHorse.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlHorse.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picHorse.Width = pnlHorse.Height + picHorse.Height = picHorse.Width + + lblHorse.Width = pnlHorse.Width - picHorse.Width + lblHorse.Location = New Point(picHorse.Width, (pnlHorse.Height / 100) * 10) + ResizeText(lblHorse) + + lblHorseDesc.Width = pnlHorse.Width - picHorse.Width + lblHorseDesc.Height = (pnlHorse.Height / 100) * 50 + lblHorseDesc.Location = New Point(picHorse.Width, (pnlHorse.Height / 100) * 25) + ResizeText(lblHorseDesc) + + btnHorseOK.Width = (pnlHorse.Width - picHorse.Width) / 4 + btnHorseOK.Location = New Point(picHorse.Width + (((pnlHorse.Width - picHorse.Width) / 8) * 3), (pnlHorse.Height / 100) * 80) + + pnlChurch.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlChurch.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlChurch.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picChurch.Width = pnlChurch.Height + picChurch.Height = picChurch.Width + + lblChurch.Width = pnlChurch.Width - picChurch.Width + lblChurch.Location = New Point(picChurch.Width, (pnlChurch.Height / 100) * 10) + ResizeText(lblChurch) + + lblChurchDesc.Width = pnlChurch.Width - picChurch.Width + lblChurchDesc.Height = (pnlChurch.Height / 100) * 50 + lblChurchDesc.Location = New Point(picChurch.Width, (pnlChurch.Height / 100) * 25) + ResizeText(lblChurchDesc) + + btnChurchOK.Width = (pnlChurch.Width - picChurch.Width) / 4 + btnChurchOK.Location = New Point(picChurch.Width + (((pnlChurch.Width - picChurch.Width) / 8) * 3), (pnlChurch.Height / 100) * 80) + + pnlGlass.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlGlass.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlGlass.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picGlass.Width = pnlGlass.Height + picGlass.Height = picGlass.Width + + lblGlass.Width = pnlGlass.Width - picGlass.Width + lblGlass.Location = New Point(picGlass.Width, (pnlGlass.Height / 100) * 10) + ResizeText(lblGlass) + + lblGlassDesc.Width = pnlGlass.Width - picGlass.Width + lblGlassDesc.Height = (pnlGlass.Height / 100) * 50 + lblGlassDesc.Location = New Point(picGlass.Width, (pnlGlass.Height / 100) * 25) + ResizeText(lblGlassDesc) + + btnGlassOK.Width = (pnlGlass.Width - picGlass.Width) / 4 + btnGlassOK.Location = New Point(picGlass.Width + (((pnlGlass.Width - picGlass.Width) / 8) * 3), (pnlGlass.Height / 100) * 80) + + pnlWife.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlWife.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlWife.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picWife.Width = pnlWife.Height + picWife.Height = picWife.Width + + lblWife.Width = pnlWife.Width - picWife.Width + lblWife.Location = New Point(picWife.Width, (pnlWife.Height / 100) * 10) + If ThePlayer.Gender = 1 Then + lblWife.Text = "BEHEAD WIFE" + ElseIf ThePlayer.Gender = 0 Then + lblWife.Text = "BEHEAD HUSBAND" + End If + ResizeText(lblWife) + + lblWifeDesc.Width = pnlWife.Width - picWife.Width + lblWifeDesc.Height = (pnlWife.Height / 100) * 50 + lblWifeDesc.Location = New Point(picWife.Width, (pnlWife.Height / 100) * 25) + ResizeText(lblWifeDesc) + + btnWifeOK.Width = (pnlWife.Width - picWife.Width) / 4 + btnWifeOK.Location = New Point(picWife.Width + (((pnlWife.Width - picWife.Width) / 8) * 3), (pnlWife.Height / 100) * 80) + + pnlDeath.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlDeath.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlDeath.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picDeath.Width = pnlDeath.Height + picDeath.Height = picDeath.Width + + lblDeath.Width = pnlDeath.Width - picDeath.Width + lblDeath.Location = New Point(picDeath.Width, (pnlDeath.Height / 100) * 10) + ResizeText(lblDeath) + + lblDeathDesc.Width = pnlDeath.Width - picDeath.Width + lblDeathDesc.Height = (pnlDeath.Height / 100) * 50 + lblDeathDesc.Location = New Point(picDeath.Width, (pnlDeath.Height / 100) * 25) + ResizeText(lblDeathDesc) + + btnDeathOK.Width = (pnlDeath.Width - picDeath.Width) / 4 + btnDeathOK.Location = New Point(picDeath.Width + (((pnlDeath.Width - picDeath.Width) / 8) * 3), (pnlDeath.Height / 100) * 80) + + pnlEmpire.Height = Screen.PrimaryScreen.Bounds.Height - (Screen.PrimaryScreen.Bounds.Height / 4) + pnlEmpire.Width = Screen.PrimaryScreen.Bounds.Width / 2 + pnlEmpire.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picEmpire.Width = pnlEmpire.Width + picEmpire.Height = (pnlEmpire.Height / 100) * 45 + + pnlEmpireRetaken.Width = pnlEmpire.Width / 4 + pnlEmpireRetaken.Height = (pnlEmpire.Height - picEmpire.Height) - (pnlEmpire.Height / 100) * 10 + pnlEmpireRetaken.Location = New Point((pnlEmpire.Width / 100) * 4, pnlEmpire.Height / 2) + + lblEmpire.Width = (pnlEmpire.Width / 3) + lblEmpire.Location = New Point(pnlEmpire.Width / 3, (pnlEmpire.Height / 100) * 45) + ResizeText(lblEmpire) + + lblWhichCountry.Width = (pnlEmpire.Width / 5) * 3 + lblWhichCountry.Location = New Point(pnlEmpire.Width / 3, (pnlEmpire.Height / 100) * 54) + ResizeText(lblWhichCountry) + + cmboCountry.Width = (pnlEmpire.Width / 5) * 2.5 + cmboCountry.Location = New Point(pnlEmpire.Width / 3, (pnlEmpire.Height / 100) * 60) + + lblChanceofSuccess.Width = (pnlEmpire.Width / 6) + lblChanceofSuccess.Location = New Point((pnlEmpire.Width / 6) * 5, (pnlEmpire.Height / 100) * 57) + ResizeText(lblChanceofSuccess) + + lblDifficulty.Width = (pnlEmpire.Width / 6) + lblDifficulty.Location = New Point((pnlEmpire.Width / 6) * 5, (pnlEmpire.Height / 100) * 59) + ResizeText(lblDifficulty) + + btnAttack.Width = (pnlEmpire.Width / 5) * 3 + btnAttack.Location = New Point(pnlEmpire.Width / 3, (pnlEmpire.Height / 100) * 68) + + lblEmpireDesc.Width = (pnlEmpire.Width / 5) * 3.25 + lblEmpireDesc.Height = (pnlEmpire.Height / 100) * 36 + lblEmpireDesc.Location = New Point(pnlEmpire.Width / 3, (pnlEmpire.Height / 100) * 50) + ResizeText(lblEmpireDesc) + + btnEmpireOK.Width = pnlEmpire.Width / 4 + btnEmpireOK.Location = New Point((pnlEmpire.Width / 2) - (btnEmpireOK.Width / 2), (pnlEmpire.Height / 100) * 90) + End Sub + + Private Sub btnMainMenu_Click(sender As Object, e As EventArgs) Handles btnMainMenu.Click + MainMenu.Show() + Me.Close() + End Sub + + Private Sub tmrAdvanceDay_Tick(sender As Object, e As EventArgs) Handles tmrAdvanceDay.Tick + ThePlayer.GoingsOn() + End Sub + + Private Sub btnAbdicate_Click(sender As Object, e As EventArgs) Handles btnAbdicate.Click + tmrAdvanceDay.Enabled = False + MusicPlayer.PlayAbdication() + pnlAbdication.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + ThePlayer.AbdicationThreats = ThePlayer.AbdicationThreats + 1 + End Sub + Private Sub btnAbdicationYes_Click(sender As Object, e As EventArgs) Handles btnAbdicationYes.Click + ThePlayer.Death("You Abdicated") + End Sub + Private Sub btnAbdicationNo_Click(sender As Object, e As EventArgs) Handles btnAbdicationNo.Click + tmrAdvanceDay.Enabled = True + pnlAbdication.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnRecreation_Click(sender As Object, e As EventArgs) Handles btnRecreation.Click + Recreation.Show() + Me.Close() + End Sub + + Private Sub btnCharacter_Click(sender As Object, e As EventArgs) Handles btnCharacter.Click + ViewCharacter.Show() + Me.Close() + End Sub + + Private Sub btnDissolveParliament_Click(sender As Object, e As EventArgs) Handles btnDissolveParliament.Click + If ThePlayer.Respect >= 100 Then + ThePlayer.YearParliamentDissolved = ThePlayer.CurrYear + ThePlayer.ParliamentDissolved = True + lblCurrentParty.Visible = False + grpDecrees.Enabled = True + btnDissolveParliament.Visible = False + btnDissolveYes.Visible = False + btnDissolveNo.Visible = False + btnDissolveOK.Visible = True + + ThePlayer.GDPTerm = "Wealth: $" + + btnExecuteCommoner.Text = "Execute a Commoner" + btnFrance.Text = "Declare War on France" + btnFalklands.Text = "Erect Monument on Falklands" + btnFalklands.Font = New Font("Times New Roman", 9) + btnIreland.Text = "Unify Ireland" + btnPromote.Text = "Promote Horse as Consul" + btnEmpire.Text = "Recreate Empire" + btnChurch.Text = "Create New Church" + btnGlass.Text = "Become Made of Glass" + btnWife.Text = "Behead Wife" + btnDeath.Text = "Declare Something Punishable by Death" + btnDeath.Font = New Font("Times New Roman", 7) + + If ThePlayer.PhilMode = True Then + picDissolve.BackgroundImage = My.Resources.KingPhil + ElseIf ThePlayer.PhilMode = False Then + If ThePlayer.Gender = 1 Then + picDissolve.BackgroundImage = My.Resources.King + ElseIf ThePlayer.Gender = 0 Then + picDissolve.BackgroundImage = My.Resources.Queen + End If + End If + lblDissolveDesc.Text = "You attempt to dissolve Parliament and rule by decree. Thanks to the huge amount of respect you have accrued, it all goes off without a hitch." + ElseIf ThePlayer.Respect < 100 Then + lblDissolveDesc.Text = "You consider attempting to dissolve Parliament and ruling by decree. Your lack of respect gives you pause, however. Are you sure you want to try this?" + btnDissolveYes.Visible = True + btnDissolveNo.Visible = True + btnDissolveOK.Visible = False + picDissolve.BackgroundImage = My.Resources.CharlesI + End If + + pnlDissolve.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnDissolveYes_Click(sender As Object, e As EventArgs) Handles btnDissolveYes.Click + ThePlayer.Death("It All Went a Bit King Charles I for You") + End Sub + Private Sub btnDissolveNo_Click(sender As Object, e As EventArgs) Handles btnDissolveNo.Click + pnlDissolve.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + Private Sub btnDissolveOK_Click(sender As Object, e As EventArgs) Handles btnDissolveOK.Click + pnlDissolve.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnExecuteCommoner_Click(sender As Object, e As EventArgs) Handles btnExecuteCommoner.Click + lblExecute.Font = New Font("Times New Roman", 20) + Dim RespectVal As Integer = CInt(Int(20 * Rnd())) + ThePlayer.CommonersExecuted = ThePlayer.CommonersExecuted + 1 + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblRespect.Text = "Respect: " & ThePlayer.Respect + lblExecuteDesc.Text = "You execute a lowly commoner right in front of his peers for little reason. You lose -" & RespectVal & " respect." + pnlExecute.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnExecuteOK_Click(sender As Object, e As EventArgs) Handles btnExecuteOK.Click + pnlExecute.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnFrance_Click(sender As Object, e As EventArgs) Handles btnFrance.Click + ThePlayer.AtWarWithFrance = True + ThePlayer.YearWarDeclared = ThePlayer.CurrYear + pnlFrance.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnFranceOK_Click(sender As Object, e As EventArgs) Handles btnFranceOK.Click + pnlFrance.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnFalklands_Click(sender As Object, e As EventArgs) Handles btnFalklands.Click + If ThePlayer.SunkFalklands = False Then + If ThePlayer.ArgieButthurtLevel < 13 Then + ThePlayer.MonumentsErected = ThePlayer.MonumentsErected + 1 + ThePlayer.FalklandMonumentsWeight = ThePlayer.FalklandMonumentsWeight + CInt(Int(1000 * Rnd())) + ThePlayer.ArgieButthurtLevel = ThePlayer.ArgieButthurtLevel + 1 + ElseIf ThePlayer.ArgieButthurtLevel = 13 Then + lblFalklandsDesc.Text = "You erect another monument on the Falklands. So enraged, the Argentinians launch an invasion of the islands. The combined weight of the monuments and a single Argentine soldier sinks the island into the ocean." + ThePlayer.SunkFalklands = True + picFalklands.BackgroundImage = My.Resources.SinkingFalklands + ResizeText(lblFalklandsDesc) + End If + ElseIf ThePlayer.SunkFalklands = True Then + lblFalklandsDesc.Text = "You drop a monument into the rough area of ocean where the Falklands used to be. It causes a satisfying splash." + picFalklands.BackgroundImage = My.Resources.SunkFalklands + ResizeText(lblFalklandsDesc) + End If + pnlFalklands.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnFalklandsOK_Click(sender As Object, e As EventArgs) Handles btnFalklandsOK.Click + pnlFalklands.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnIreland_Click(sender As Object, e As EventArgs) Handles btnIreland.Click + If ThePlayer.CurrMonth < 11 Then + ThePlayer.AtWarWithFranceForMonths = ThePlayer.AtWarWithFranceForMonths + 1 + ThePlayer.CurrMonth = ThePlayer.CurrMonth + 1 + ThePlayer.RuleMonths = ThePlayer.RuleMonths + 1 + ElseIf ThePlayer.CurrMonth >= 12 Then + ThePlayer.AtWarWithFranceForMonths = 0 + ThePlayer.AtWarWithFranceForYears = ThePlayer.AtWarWithFranceForYears + 1 + ThePlayer.CurrMonth = 0 + ThePlayer.CurrYear = ThePlayer.CurrYear + 1 + ThePlayer.RuleYears = ThePlayer.RuleYears + 1 + ThePlayer.Age = ThePlayer.Age + 1 + If ThePlayer.Age = ThePlayer.DeathAge Then + ThePlayer.Death("Died of Old Age") + End If + End If + If ThePlayer.Gender = 1 Then + lblRuleLength.Text = "King for: " + ElseIf ThePlayer.Gender = 0 Then + lblRuleLength.Text = "Queen for: " + End If + lblRuleLength.Text = lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + lblDate.Text = ThePlayer.RuleDays & " " & TheMonth(ThePlayer.CurrMonth) & " " & ThePlayer.CurrYear + + Dim IrelandUnified As Integer = CInt(Int(3 * Rnd()) + 1) + If IrelandUnified <> 1 Then + Dim RespectVal As Integer = CInt(Int(30 * Rnd())) + Dim DeadSoldiers As Integer = CInt(Int(200 * Rnd()) + 1) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblRespect.Text = "Respect: " & ThePlayer.Respect + ThePlayer.LivesLostIreland = ThePlayer.LivesLostIreland + DeadSoldiers + ThePlayer.AttemptstoUnifyIreland = ThePlayer.AttemptstoUnifyIreland + 1 + lblIrelandDesc.Text = "You attempt to unify Ireland. It goes poorly, " & DeadSoldiers & " British soldiers die and you lose -" & RespectVal & " respect." + ElseIf IrelandUnified = 1 Then + Dim RespectVal As Integer = CInt(Int(60 * Rnd())) + Dim DeadSoldiers As Integer = CInt(Int(50 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect + RespectVal + lblRespect.Text = "Respect: " & ThePlayer.Respect + ThePlayer.LivesLostIreland = ThePlayer.LivesLostIreland + DeadSoldiers + ThePlayer.AttemptstoUnifyIreland = ThePlayer.AttemptstoUnifyIreland + 1 + ThePlayer.YearIrelandUnified = ThePlayer.CurrYear + picIreland.BackgroundImage = My.Resources.Irelandlose + lblIrelandDesc.Text = "You attempt to unify Ireland. It goes well, only " & DeadSoldiers & " British soldiers die and you gain +" & RespectVal & " respect." + ThePlayer.UnifiedIreland = True + btnIreland.Enabled = False + End If + pnlIreland.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnIrelandOK_Click(sender As Object, e As EventArgs) Handles btnIrelandOK.Click + pnlIreland.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnPromote_Click(sender As Object, e As EventArgs) Handles btnPromote.Click + If ThePlayer.PercentageofHorseConsuls <> 100 Then + ThePlayer.PercentageofHorseConsuls = ThePlayer.PercentageofHorseConsuls + 50 + lblHorseDesc.Text = "You promote a horse to the position of consul. " & ThePlayer.PercentageofHorseConsuls & "% of all consuls in the land are now horses, as it should be." + ElseIf ThePlayer.PercentageofHorseConsuls = 100 Then + lblHorseDesc.Font = New Font("Times New Roman", 18) + lblHorseDesc.Text = "You attempt to promote another horse to the position of consul before realising every consul is a horse already. You try replacing one horse with a different horse but alas, the magic is gone." + ResizeText(lblHorseDesc) + End If + pnlHorse.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnHorseOK_Click(sender As Object, e As EventArgs) Handles btnHorseOK.Click + pnlHorse.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnEmpire_Click(sender As Object, e As EventArgs) Handles btnEmpire.Click + cmboCountry.Items.Clear() + cmboCountry.Text = "" + lblDifficulty.Text = "" + + If ThePlayer.PercentageEmpireRetaken < 100 Then + If ThePlayer.CanadaRetaken = 0 Then + cmboCountry.Items.Add("Canada") + lblCanada.ForeColor = Color.Red + ElseIf ThePlayer.CanadaRetaken = 1 Then + lblCanada.ForeColor = Color.Green + End If + If ThePlayer.ColoniesRetaken = 0 Then + cmboCountry.Items.Add("The Thirteen Colonies") + lblColonies.ForeColor = Color.Red + ElseIf ThePlayer.ColoniesRetaken = 1 Then + lblColonies.ForeColor = Color.Green + End If + If ThePlayer.CarribeanRetaken = 0 Then + cmboCountry.Items.Add("The Caribbean") + lblCarribean.ForeColor = Color.Red + ElseIf ThePlayer.CarribeanRetaken = 1 Then + lblCarribean.ForeColor = Color.Green + End If + If ThePlayer.SouthAfricaRetaken = 0 Then + cmboCountry.Items.Add("South Africa") + lblSouthAfrica.ForeColor = Color.Red + ElseIf ThePlayer.SouthAfricaRetaken = 1 Then + lblSouthAfrica.ForeColor = Color.Green + End If + If ThePlayer.OtherAfricaRetaken = 0 Then + cmboCountry.Items.Add("Other bits of Africa") + lblOtherAfrica.ForeColor = Color.Red + ElseIf ThePlayer.OtherAfricaRetaken = 1 Then + lblOtherAfrica.ForeColor = Color.Green + End If + If ThePlayer.MiddleEastRetaken = 0 Then + cmboCountry.Items.Add("Middle-East") + lblMiddleEast.ForeColor = Color.Red + ElseIf ThePlayer.MiddleEastRetaken = 1 Then + lblMiddleEast.ForeColor = Color.Green + End If + If ThePlayer.IndiaRetaken = 0 Then + cmboCountry.Items.Add("India") + lblIndia.ForeColor = Color.Red + ElseIf ThePlayer.IndiaRetaken = 1 Then + lblIndia.ForeColor = Color.Green + End If + If ThePlayer.OtherAsiaRetaken = 0 Then + cmboCountry.Items.Add("Other bits of Asia") + lblOtherAsia.ForeColor = Color.Red + ElseIf ThePlayer.OtherAsiaRetaken = 1 Then + lblOtherAsia.ForeColor = Color.Green + End If + If ThePlayer.AustraliaRetaken = 0 Then + cmboCountry.Items.Add("Australia") + lblAustralia.ForeColor = Color.Red + ElseIf ThePlayer.AustraliaRetaken = 1 Then + lblAustralia.ForeColor = Color.Green + End If + lblTheWorld.Visible = False + ElseIf ThePlayer.PercentageEmpireRetaken = 100 Then + lblTheWorld.Visible = True + cmboCountry.Items.Add("The World") + lblTheWorld.ForeColor = Color.Red + End If + + lblRetaken.Text = ThePlayer.PercentageEmpireRetaken & "%" + + cmboCountry.Enabled = True + btnAttack.Visible = True + lblEmpireDesc.Visible = False + btnEmpireOK.Visible = False + btnAttack.Enabled = False + + pnlEmpire.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 4, Screen.PrimaryScreen.Bounds.Height / 8) + End Sub + Private Sub btnAttack_Click(sender As Object, e As EventArgs) Handles btnAttack.Click + Dim DeadSoldiers As Integer = 0 + Dim RespectVal As Integer = 0 + Dim Result As Integer = 0 + + ThePlayer.CurrYear = ThePlayer.CurrYear + 2 + ThePlayer.RuleYears = ThePlayer.RuleYears + 2 + ThePlayer.Age = ThePlayer.Age + 2 + ThePlayer.AtWarWithFranceForYears = ThePlayer.AtWarWithFranceForYears + 2 + If ThePlayer.Age = ThePlayer.DeathAge Then + ThePlayer.Death("Died of Old Age") + End If + If ThePlayer.Gender = 1 Then + lblRuleLength.Text = "King for: " + ElseIf ThePlayer.Gender = 0 Then + lblRuleLength.Text = "Queen for: " + End If + lblRuleLength.Text = lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + lblDate.Text = ThePlayer.RuleDays & " " & TheMonth(ThePlayer.CurrMonth) & " " & ThePlayer.CurrYear + + cmboCountry.Enabled = False + btnAttack.Visible = False + lblEmpireDesc.Visible = True + btnEmpireOK.Visible = True + + Result = CInt(Int(100 * Rnd()) + 1) + If cmboCountry.SelectedItem = "Canada" Then + ThePlayer.AttemptstoRetakeEmpire = ThePlayer.AttemptstoRetakeEmpire + 1 + If Result <= 90 Then + RespectVal = CInt(Int(30 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect + RespectVal + lblEmpireDesc.Text = "You attempt to re-add Canada to the glorious British Empire. It goes well, no British soldiers are killed and you gain +" & RespectVal & " respect." + ThePlayer.CanadaRetaken = 1 + lblCanada.ForeColor = Color.Green + ThePlayer.PercentageEmpireRetaken = ThePlayer.PercentageEmpireRetaken + CanadaVal + ElseIf Result > 90 Then + DeadSoldiers = CInt(Int(50 * Rnd())) + RespectVal = CInt(Int(60 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblEmpireDesc.Text = "You attempt to re-add Canada to the glorious British Empire. It somehow goes wrong, " & DeadSoldiers & " British soldiers are killed and you lose -" & RespectVal & " respect." + End If + ThePlayer.LivesLostEmpire = ThePlayer.LivesLostEmpire + DeadSoldiers + lblRetaken.Text = ThePlayer.PercentageEmpireRetaken & "%" + If ThePlayer.PercentageEmpireRetaken = 100 Then + ThePlayer.YearEmpireRetaken = ThePlayer.CurrYear + End If + End If + If cmboCountry.SelectedItem = "The Thirteen Colonies" Then + ThePlayer.AttemptstoRetakeEmpire = ThePlayer.AttemptstoRetakeEmpire + 1 + If Result <= 80 Then + DeadSoldiers = CInt(Int(50 * Rnd())) + RespectVal = CInt(Int(60 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect + RespectVal + lblEmpireDesc.Text = "You attempt to re-add the Thirteen Colonies to the glorious British Empire. It goes well, only " & DeadSoldiers & " British soldiers are killed and you gain +" & RespectVal & " respect." + ThePlayer.ColoniesRetaken = 1 + lblColonies.ForeColor = Color.Green + ThePlayer.PercentageEmpireRetaken = ThePlayer.PercentageEmpireRetaken + ColoniesVal + ElseIf Result > 80 Then + DeadSoldiers = CInt(Int(100 * Rnd())) + RespectVal = CInt(Int(30 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblEmpireDesc.Text = "You attempt to re-add the Thirteen Colonies to the glorious British Empire. It goes poorly, " & DeadSoldiers & " British soldiers are killed and you lose -" & RespectVal & " respect." + End If + ThePlayer.LivesLostEmpire = ThePlayer.LivesLostEmpire + DeadSoldiers + lblRetaken.Text = ThePlayer.PercentageEmpireRetaken & "%" + If ThePlayer.PercentageEmpireRetaken = 100 Then + ThePlayer.YearEmpireRetaken = ThePlayer.CurrYear + End If + End If + If cmboCountry.SelectedItem = "The Caribbean" Then + ThePlayer.AttemptstoRetakeEmpire = ThePlayer.AttemptstoRetakeEmpire + 1 + If Result <= 70 Then + DeadSoldiers = CInt(Int(70 * Rnd())) + RespectVal = CInt(Int(60 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect + RespectVal + lblEmpireDesc.Text = "You attempt to re-add the Caribbean islands to the glorious British Empire. It goes well, only " & DeadSoldiers & " British soldiers are killed and you gain +" & RespectVal & " respect." + ThePlayer.CarribeanRetaken = 1 + lblCarribean.ForeColor = Color.Green + ThePlayer.PercentageEmpireRetaken = ThePlayer.PercentageEmpireRetaken + CarribeanVal + ElseIf Result > 70 Then + DeadSoldiers = CInt(Int(90 * Rnd())) + RespectVal = CInt(Int(40 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblEmpireDesc.Text = "You attempt to re-add the Caribbean islands to the glorious British Empire. It goes poorly, " & DeadSoldiers & " British soldiers are killed and you lose -" & RespectVal & " respect." + End If + ThePlayer.LivesLostEmpire = ThePlayer.LivesLostEmpire + DeadSoldiers + lblRetaken.Text = ThePlayer.PercentageEmpireRetaken & "%" + If ThePlayer.PercentageEmpireRetaken = 100 Then + ThePlayer.YearEmpireRetaken = ThePlayer.CurrYear + End If + End If + If cmboCountry.SelectedItem = "South Africa" Then + ThePlayer.AttemptstoRetakeEmpire = ThePlayer.AttemptstoRetakeEmpire + 1 + If Result <= 50 Then + DeadSoldiers = CInt(Int(80 * Rnd())) + RespectVal = CInt(Int(60 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect + RespectVal + lblEmpireDesc.Text = "You attempt to re-add South Africa to the glorious British Empire. It goes well, only " & DeadSoldiers & " British soldiers are killed and you gain +" & RespectVal & " respect." + ThePlayer.SouthAfricaRetaken = 1 + lblSouthAfrica.ForeColor = Color.Green + ThePlayer.PercentageEmpireRetaken = ThePlayer.PercentageEmpireRetaken + SouthAfricaVal + ElseIf Result > 50 Then + DeadSoldiers = CInt(Int(150 * Rnd())) + RespectVal = CInt(Int(40 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblEmpireDesc.Text = "You attempt to re-add South Africa to the glorious British Empire. It goes poorly, " & DeadSoldiers & " British soldiers are killed and you lose -" & RespectVal & " respect." + End If + ThePlayer.LivesLostEmpire = ThePlayer.LivesLostEmpire + DeadSoldiers + lblRetaken.Text = ThePlayer.PercentageEmpireRetaken & "%" + If ThePlayer.PercentageEmpireRetaken = 100 Then + ThePlayer.YearEmpireRetaken = ThePlayer.CurrYear + End If + End If + If cmboCountry.SelectedItem = "Other bits of Africa" Then + ThePlayer.AttemptstoRetakeEmpire = ThePlayer.AttemptstoRetakeEmpire + 1 + If Result <= 40 Then + DeadSoldiers = CInt(Int(200 * Rnd())) + RespectVal = CInt(Int(80 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect + RespectVal + lblEmpireDesc.Text = "You attempt to re-add the other bits of Africa to the glorious British Empire. It goes well, only " & DeadSoldiers & " British soldiers are killed and you gain +" & RespectVal & " respect." + ThePlayer.OtherAfricaRetaken = 1 + lblOtherAfrica.ForeColor = Color.Green + ThePlayer.PercentageEmpireRetaken = ThePlayer.PercentageEmpireRetaken + OtherAfricaVal + ElseIf Result > 40 Then + DeadSoldiers = CInt(Int(500 * Rnd())) + RespectVal = CInt(Int(40 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblEmpireDesc.Text = "You attempt to re-add the other bits of Africa to the glorious British Empire. It goes poorly, " & DeadSoldiers & " British soldiers are killed and you lose -" & RespectVal & " respect." + End If + ThePlayer.LivesLostEmpire = ThePlayer.LivesLostEmpire + DeadSoldiers + lblRetaken.Text = ThePlayer.PercentageEmpireRetaken & "%" + If ThePlayer.PercentageEmpireRetaken = 100 Then + ThePlayer.YearEmpireRetaken = ThePlayer.CurrYear + End If + End If + If cmboCountry.SelectedItem = "Middle-East" Then + ThePlayer.AttemptstoRetakeEmpire = ThePlayer.AttemptstoRetakeEmpire + 1 + If Result <= 40 Then + DeadSoldiers = CInt(Int(200 * Rnd())) + RespectVal = CInt(Int(80 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect + RespectVal + lblEmpireDesc.Text = "You attempt to re-add the Middle-East to the glorious British Empire. It goes well, only " & DeadSoldiers & " British soldiers are killed and you gain +" & RespectVal & " respect." + ThePlayer.MiddleEastRetaken = 1 + lblMiddleEast.ForeColor = Color.Green + ThePlayer.PercentageEmpireRetaken = ThePlayer.PercentageEmpireRetaken + MiddleEastVal + ElseIf Result > 40 Then + DeadSoldiers = CInt(Int(500 * Rnd())) + RespectVal = CInt(Int(40 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblEmpireDesc.Text = "You attempt to re-add the Middle-East to the glorious British Empire. It goes poorly, " & DeadSoldiers & " British soldiers are killed and you lose -" & RespectVal & " respect." + End If + ThePlayer.LivesLostEmpire = ThePlayer.LivesLostEmpire + DeadSoldiers + lblRetaken.Text = ThePlayer.PercentageEmpireRetaken & "%" + If ThePlayer.PercentageEmpireRetaken = 100 Then + ThePlayer.YearEmpireRetaken = ThePlayer.CurrYear + End If + End If + If cmboCountry.SelectedItem = "India" Then + ThePlayer.AttemptstoRetakeEmpire = ThePlayer.AttemptstoRetakeEmpire + 1 + If Result <= 40 Then + DeadSoldiers = CInt(Int(200 * Rnd())) + RespectVal = CInt(Int(80 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect + RespectVal + lblEmpireDesc.Text = "You attempt to re-add India to the glorious British Empire. It goes well, only " & DeadSoldiers & " British soldiers are killed and you gain +" & RespectVal & " respect." + ThePlayer.IndiaRetaken = 1 + lblIndia.ForeColor = Color.Green + ThePlayer.PercentageEmpireRetaken = ThePlayer.PercentageEmpireRetaken + IndiaVal + ElseIf Result > 40 Then + DeadSoldiers = CInt(Int(500 * Rnd())) + RespectVal = CInt(Int(40 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblEmpireDesc.Text = "You attempt to re-add India to the glorious British Empire. It goes poorly, " & DeadSoldiers & " British soldiers are killed and you lose -" & RespectVal & " respect." + End If + ThePlayer.LivesLostEmpire = ThePlayer.LivesLostEmpire + DeadSoldiers + lblRetaken.Text = ThePlayer.PercentageEmpireRetaken & "%" + If ThePlayer.PercentageEmpireRetaken = 100 Then + ThePlayer.YearEmpireRetaken = ThePlayer.CurrYear + End If + End If + If cmboCountry.SelectedItem = "Other bits of Asia" Then + ThePlayer.AttemptstoRetakeEmpire = ThePlayer.AttemptstoRetakeEmpire + 1 + If Result <= 60 Then + DeadSoldiers = CInt(Int(80 * Rnd())) + RespectVal = CInt(Int(60 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect + RespectVal + lblEmpireDesc.Text = "You attempt to re-add the other bits of Asia to the glorious British Empire. It goes well, only " & DeadSoldiers & " British soldiers are killed and you gain +" & RespectVal & " respect." + ThePlayer.OtherAsiaRetaken = 1 + lblOtherAsia.ForeColor = Color.Green + ThePlayer.PercentageEmpireRetaken = ThePlayer.PercentageEmpireRetaken + OtherAsiaVal + ElseIf Result > 60 Then + DeadSoldiers = CInt(Int(140 * Rnd())) + RespectVal = CInt(Int(40 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblEmpireDesc.Text = "You attempt to re-add the other bits of Asia to the glorious British Empire. It goes poorly, " & DeadSoldiers & " British soldiers are killed and you lose -" & RespectVal & " respect." + End If + ThePlayer.LivesLostEmpire = ThePlayer.LivesLostEmpire + DeadSoldiers + lblRetaken.Text = ThePlayer.PercentageEmpireRetaken & "%" + If ThePlayer.PercentageEmpireRetaken = 100 Then + ThePlayer.YearEmpireRetaken = ThePlayer.CurrYear + End If + End If + If cmboCountry.SelectedItem = "Australia" Then + ThePlayer.AttemptstoRetakeEmpire = ThePlayer.AttemptstoRetakeEmpire + 1 + If Result <= 90 Then + RespectVal = CInt(Int(30 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect + RespectVal + lblEmpireDesc.Text = "You attempt to re-add Australia to the glorious British Empire. It goes well, no British soldiers are killed and you gain +" & RespectVal & " respect." + ThePlayer.AustraliaRetaken = 1 + lblAustralia.ForeColor = Color.Green + ThePlayer.PercentageEmpireRetaken = ThePlayer.PercentageEmpireRetaken + AustraliaVal + ElseIf Result > 90 Then + DeadSoldiers = CInt(Int(50 * Rnd())) + RespectVal = CInt(Int(60 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblEmpireDesc.Text = "You attempt to re-add Australia to the glorious British Empire. It goes poorly, " & DeadSoldiers & " British soldiers are killed and you lose -" & RespectVal & " respect." + End If + ThePlayer.LivesLostEmpire = ThePlayer.LivesLostEmpire + DeadSoldiers + lblRetaken.Text = ThePlayer.PercentageEmpireRetaken & "%" + If ThePlayer.PercentageEmpireRetaken = 100 Then + ThePlayer.YearEmpireRetaken = ThePlayer.CurrYear + End If + End If + + If cmboCountry.SelectedItem = "The World" Then + ThePlayer.CurrYear = ThePlayer.CurrYear + 4 + ThePlayer.RuleYears = ThePlayer.RuleYears + 4 + ThePlayer.Age = ThePlayer.Age + 4 + ThePlayer.AtWarWithFranceForYears = ThePlayer.AtWarWithFranceForYears + 4 + If ThePlayer.Age = ThePlayer.DeathAge Then + ThePlayer.Death("Died of Old Age") + End If + If ThePlayer.Gender = 1 Then + lblRuleLength.Text = "King for: " + ElseIf ThePlayer.Gender = 0 Then + lblRuleLength.Text = "Queen for: " + End If + lblRuleLength.Text = lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + lblDate.Text = ThePlayer.RuleDays & " " & TheMonth(ThePlayer.CurrMonth) & " " & ThePlayer.CurrYear + + If Result <= 20 Then + ThePlayer.AtWarWithFrance = False + ThePlayer.UnifiedIreland = True + ThePlayer.YearIrelandUnified = ThePlayer.CurrYear + ThePlayer.LivesLostIreland = CInt(Int(300 * Rnd())) + btnIreland.Enabled = False + btnFrance.Enabled = False + DeadSoldiers = CInt(Int(10000 * Rnd())) + RespectVal = CInt(Int(400 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect + RespectVal + lblEmpireDesc.Text = "You attempt to do the same thing you do every night, Pinky: Try to take over the world. Against all the odds, it goes well, only " & DeadSoldiers.ToString("##,###") & " British soldiers are killed and you gain +" & RespectVal & " respect." + ThePlayer.WorldTaken = 1 + lblTheWorld.ForeColor = Color.Green + ThePlayer.YearWorldTaken = ThePlayer.CurrYear + ElseIf Result > 20 Then + DeadSoldiers = CInt(Int(50000 * Rnd())) + RespectVal = CInt(Int(30 * Rnd())) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + RespectCheck() + lblEmpireDesc.Text = "You attempt to do the same thing you do every night, Pinky: Try to take over the world. As is so often the way, it goes poorly. " & DeadSoldiers.ToString("##,###") & " British soldiers are killed and you lose -" & RespectVal & " respect." + End If + ThePlayer.AttemptstoTakeWorld = ThePlayer.AttemptstoTakeWorld + 1 + ThePlayer.LivesLostTakeWorld = ThePlayer.LivesLostTakeWorld + DeadSoldiers + End If + + lblRespect.Text = "Respect: " & ThePlayer.Respect + End Sub + Private Sub btnEmpireOK_Click(sender As Object, e As EventArgs) Handles btnEmpireOK.Click + If ThePlayer.PercentageEmpireRetaken = 100 Then + btnEmpire.Text = "Take Over the World" + If ThePlayer.WorldTaken = 1 Then + btnEmpire.Enabled = False + End If + End If + pnlEmpire.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + Private Sub cmboCountry_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmboCountry.SelectedIndexChanged + If cmboCountry.SelectedItem = "Other bits of Asia" Then + lblDifficulty.Text = "60%" + ElseIf cmboCountry.SelectedItem = "Other bits of Africa" Then + lblDifficulty.Text = "40%" + ElseIf cmboCountry.SelectedItem = "The Caribbean" Then + lblDifficulty.Text = "70%" + ElseIf cmboCountry.SelectedItem = "The Thirteen Colonies" Then + lblDifficulty.Text = "80%" + ElseIf cmboCountry.SelectedItem = "Canada" Then + lblDifficulty.Text = "90%" + ElseIf cmboCountry.SelectedItem = "South Africa" Then + lblDifficulty.Text = "60%" + ElseIf cmboCountry.SelectedItem = "Middle-East" Then + lblDifficulty.Text = "40%" + ElseIf cmboCountry.SelectedItem = "India" Then + lblDifficulty.Text = "45%" + ElseIf cmboCountry.SelectedItem = "Australia" Then + lblDifficulty.Text = "85%" + ElseIf cmboCountry.SelectedItem = "The World" Then + lblDifficulty.Text = "20%" + End If + + If cmboCountry.SelectedItem <> "" Then + btnAttack.Enabled = True + ElseIf cmboCountry.SelectedItem = "" Then + btnAttack.Enabled = False + End If + End Sub + + Private Sub btnChurch_Click(sender As Object, e As EventArgs) Handles btnChurch.Click + If ChurchArrayed = False Then + ChurchArray() + ChurchArrayed = True + End If + ThePlayer.ChurchesFormed = ThePlayer.ChurchesFormed + 1 + lblChurchDesc.Text = "You create a new church, the " & ChurchNames1(10 * Rnd()) & " " & ChurchNames2(10 * Rnd()) & " of " & ChurchNames3(10 * Rnd()) & ", based around the teachings of " & Prophets(10 * Rnd()) & " and the values of " & Values1(10 * Rnd()) & ", " & Values2(10 * Rnd()) & " and " & Values3(10 * Rnd()) & "." + ResizeText(lblChurchDesc) + + pnlChurch.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnChurchOK_Click(sender As Object, e As EventArgs) Handles btnChurchOK.Click + pnlChurch.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnGlass_Click(sender As Object, e As EventArgs) Handles btnGlass.Click + ThePlayer.MadeofGlass = True + pnlGlass.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + btnGlass.Enabled = False + End Sub + Private Sub btnGlassOK_Click(sender As Object, e As EventArgs) Handles btnGlassOK.Click + pnlGlass.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnWife_Click(sender As Object, e As EventArgs) Handles btnWife.Click + lblWifeDesc.Text = "The current " & ThePlayer.Partner & " gets the chop, but luckily for your love life, nothing's a bigger turn-on than absolute monarchy, and you have a new partner before the last one's head has even hit the floor." + ThePlayer.WivesBeheaded = ThePlayer.WivesBeheaded + 1 + pnlWife.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnWifeOK_Click(sender As Object, e As EventArgs) Handles btnWifeOK.Click + pnlWife.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnDeath_Click(sender As Object, e As EventArgs) Handles btnDeath.Click + If DeathArrayed = False Then + DeathArray() + DeathArrayed = True + End If + lblDeathDesc.Text = "You decide there are too many things out there not punishable by death. To alleviate this, you declare that " & DeathAction(10 * Rnd()) & " " & DeathAdjective(10 * Rnd()) & " " & DeathCondition(10 * Rnd()) & " is now a capital offence." + ThePlayer.ThingsDeclaredPunishableByDeath = ThePlayer.ThingsDeclaredPunishableByDeath + 1 + ResizeText(lblDeathDesc) + pnlDeath.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnDeathOK_Click(sender As Object, e As EventArgs) Handles btnDeathOK.Click + pnlDeath.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Sub ChurchArray() + ChurchNames1(0) = "Blessed" + ChurchNames1(1) = "Holy" + ChurchNames1(2) = "Pungent" + ChurchNames1(3) = "Fast" + ChurchNames1(4) = "Indomitable" + ChurchNames1(5) = "Unfathomable" + ChurchNames1(6) = "Rotund" + ChurchNames1(7) = "Compelling" + ChurchNames1(8) = "Thrilling" + ChurchNames1(9) = "Believing" + + ChurchNames2(0) = "Brothers" + ChurchNames2(1) = "Sisters" + ChurchNames2(2) = "Chums" + ChurchNames2(3) = "Friends" + ChurchNames2(4) = "Pals" + ChurchNames2(5) = "Gentlemen" + ChurchNames2(6) = "Bros" + ChurchNames2(7) = "Chaps" + ChurchNames2(8) = "Buggerers" + ChurchNames2(9) = "lads" + + ChurchNames3(0) = "Zanzibar" + ChurchNames3(1) = "Eternity" + ChurchNames3(2) = "God" + ChurchNames3(3) = "the Lord" + ChurchNames3(4) = "Foreveriality" + ChurchNames3(5) = "Time" + ChurchNames3(6) = "Nature" + ChurchNames3(7) = "Gaia" + ChurchNames3(8) = "Spacetime" + ChurchNames3(9) = ThePlayer.Name + + Prophets(0) = "Rumps" + Prophets(1) = "Phil" + Prophets(2) = "Mr Brown" + Prophets(3) = "some guy" + Prophets(4) = "Bill and Ted" + Prophets(5) = "the voices in your head" + Prophets(6) = "Albert Camus" + Prophets(7) = "Plato" + Prophets(8) = "Thomas Aquinas" + Prophets(9) = "Ludwig Wittgenstein" + + Values1(0) = "nihilism" + Values1(1) = "being excellent to each other" + Values1(2) = "existentialism" + Values1(3) = "fundamentalism" + Values1(4) = "ismism" + Values1(5) = "Islamism" + Values1(6) = "pacifism" + Values1(7) = "being an arsehole" + Values1(8) = "stuff" + Values1(9) = "militarism" + + Values2(0) = "partying on" + Values2(1) = "being a nice guy" + Values2(2) = "anarchism" + Values2(3) = "statism" + Values2(4) = "things" + Values2(5) = "quietism" + Values2(6) = "minarchism" + Values2(7) = "absurdism" + Values2(8) = "surrealism" + Values2(9) = "Dadaism" + + Values3(0) = "whatever" + Values3(1) = "farts" + Values3(2) = "dudes" + Values3(3) = "abandonment" + Values3(4) = "homelessness" + Values3(5) = "sillyness" + Values3(6) = "seriousness" + Values3(7) = "chips" + Values3(8) = "value" + Values3(9) = "up" + End Sub + Sub DeathArray() + DeathAction(0) = "eating" + DeathAction(1) = "looking" + DeathAction(2) = "feeling" + DeathAction(3) = "existing" + DeathAction(4) = "jumping" + DeathAction(5) = "thinking" + DeathAction(6) = "considering things" + DeathAction(7) = "talking" + DeathAction(8) = "chewing" + DeathAction(9) = "running" + + DeathAdjective(0) = "loudly" + DeathAdjective(1) = "irritatingly" + DeathAdjective(2) = "thoroughly" + DeathAdjective(3) = "quietly" + DeathAdjective(4) = "upwardly" + DeathAdjective(5) = "positively" + DeathAdjective(6) = "negatively" + DeathAdjective(7) = "ambiguously" + DeathAdjective(8) = "randomly" + DeathAdjective(9) = "without provocation" + + DeathCondition(0) = "on a Tuesday" + DeathCondition(1) = "on the Sabbath" + DeathCondition(2) = "without a permit" + DeathCondition(3) = "without humming the national anthem" + DeathCondition(4) = "whilst slapping yourself" + DeathCondition(5) = "whilst jumping" + DeathCondition(6) = "whilst existing" + DeathCondition(7) = "without rotating" + DeathCondition(8) = "and eating a turtle" + DeathCondition(9) = "whilst looking in the direction of Mecca" + End Sub + + Private Sub btnCalendar_Click(sender As Object, e As EventArgs) Handles btnCalendar.Click + MsgBox("Calendar and event scheduling coming soon") + End Sub +End Class \ No newline at end of file diff --git a/Royalty Simulator 2013/Intro.vb b/Royalty Simulator 2013/Intro.vb new file mode 100644 index 0000000..fbb1f01 --- /dev/null +++ b/Royalty Simulator 2013/Intro.vb @@ -0,0 +1,55 @@ +Public Class Intro + Dim Count As Integer = 1 + Dim IntroText As String + Dim CurrLetter As String + Dim Letter As Integer = 1 + Dim Save As String + Private Sub Intro_Load(sender As Object, e As EventArgs) Handles MyBase.Load + My.Computer.Audio.Stop() + If ThePlayer.PhilMode = True Then + MusicPlayer.PlayOneLove() + IntroText = "You wake up one morning as Phil, somehow now king of the United Kingdom of Great Britain and Northern Ireland." & vbCrLf & vbCrLf _ + & "Your first royal act should probably be to bestow riches and knighthoods upon any royal subject dedicated enough to make you your own mode in a royalty simulator." & vbCrLf & vbCrLf _ + & "The year is " & ThePlayer.CurrYear & "." & vbCrLf & "So begins the rule of Phil." & vbCrLf & vbCrLf & "God save the king." + btnContinue.Text = "Agree to bestow gifts and continue" + ElseIf ThePlayer.PhilMode = False Then + If ThePlayer.Gender = 1 Then + MusicPlayer.PlayGodSavetheKing() + Save = "king." + ElseIf ThePlayer.Gender = 0 Then + MusicPlayer.PlayGodSavetheQueen() + Save = "queen." + End If + IntroText = "You are " & ThePlayer.Name & ", next in line to the throne of the United Kingdom of Great Britain and Northern Ireland." & vbCrLf & vbCrLf _ + & "News reaches you of the death of the former monarch in a tragic horse polo accident." & vbCrLf & vbCrLf & "The year is " & ThePlayer.CurrYear & "." & vbCrLf _ + & "So begins the rule of " & ThePlayer.Name & "." & vbCrLf & vbCrLf & "God save the " & Save + End If + lblIntro.Text = "" + tmrText.Enabled = True + End Sub + Private Sub tmrText_Tick(sender As Object, e As EventArgs) Handles tmrText.Tick + Count = Count - 1 + If Count = 0 Then + Try + CurrLetter = Mid(IntroText, Letter, 3) + lblIntro.Text = lblIntro.Text & CurrLetter + Count = 1 + Letter = Letter + 3 + Catch + tmrText.Enabled = False + End Try + End If + End Sub + Private Sub Intro_Resize(sender As Object, e As EventArgs) Handles Me.Resize + lblIntro.Width = Screen.PrimaryScreen.Bounds.Width - ((Screen.PrimaryScreen.Bounds.Width / 100) * 20) + lblIntro.Height = Screen.PrimaryScreen.Bounds.Height - ((Screen.PrimaryScreen.Bounds.Height / 100) * 30) + lblIntro.Location = New Point((Screen.PrimaryScreen.Bounds.Width / 100) * 10, (Screen.PrimaryScreen.Bounds.Height / 100) * 15) + btnContinue.Width = (Screen.PrimaryScreen.Bounds.Width / 100) * 30 + btnContinue.Location = New Point(((Screen.PrimaryScreen.Bounds.Width / 2) - (btnContinue.Width / 2)), (Screen.PrimaryScreen.Bounds.Height - ((Screen.PrimaryScreen.Bounds.Height / 100) * 10))) + End Sub + + Private Sub btnContinue_Click(sender As Object, e As EventArgs) Handles btnContinue.Click + DefaultView.Show() + Me.Close() + End Sub +End Class \ No newline at end of file diff --git a/Royalty Simulator 2013/LICENSE.txt b/Royalty Simulator 2013/LICENSE.txt new file mode 100644 index 0000000..ef7e7ef --- /dev/null +++ b/Royalty Simulator 2013/LICENSE.txt @@ -0,0 +1,674 @@ +GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Royalty Simulator 2013/MainMenu.vb b/Royalty Simulator 2013/MainMenu.vb new file mode 100644 index 0000000..45ed5c5 --- /dev/null +++ b/Royalty Simulator 2013/MainMenu.vb @@ -0,0 +1,96 @@ +Public Class MainMenu + Dim Count As Integer = 1 + Private Sub MainMenu_Load(sender As Object, e As EventArgs) Handles MyBase.Load + If PhilMode = False Then + DeactivatePhilMode() + ElseIf PhilMode = True Then + ActivatePhilMode() + End If + End Sub + Private Sub btnPhilMode_Click(sender As Object, e As EventArgs) Handles btnPhilMode.Click + If PhilMode = False Then + PhilMode = True + ActivatePhilMode() + ElseIf PhilMode = True Then + PhilMode = False + DeactivatePhilMode() + End If + End Sub + Private Sub btnQuitGame_Click(sender As Object, e As EventArgs) Handles btnQuitGame.Click + SplashScreen.Close() + End Sub + Private Sub tmrAnimatePhil_Tick(sender As Object, e As EventArgs) Handles tmrAnimatePhil.Tick + Randomize() + Count = Count - 1 + If Count = 0 Then + picPhil1.Location = New Point(CInt(Int((10 * Rnd()) + (Screen.PrimaryScreen.Bounds.Width / 100) * 1.5625)), CInt(Int((10 * Rnd()) + Screen.PrimaryScreen.Bounds.Height / 100) * 1.30208333333)) + picPhil2.Location = New Point(CInt(Int((10 * Rnd()) + (Screen.PrimaryScreen.Bounds.Width / 100) * 47)), CInt(Int((10 * Rnd()) + Screen.PrimaryScreen.Bounds.Height / 100) * 1.30208333333)) + Count = 1 + End If + End Sub + Sub ActivatePhilMode() + MusicPlayer.PlayBuckInHammPalace() + + tmrAnimatePhil.Enabled = True + picPhil1.Visible = True + picPhil2.Visible = True + + btnNewGame.ForeColor = Color.Yellow + btnNewGame.Font = New Font(btnNewGame.Font, FontStyle.Bold) + btnLoadGame.ForeColor = Color.Yellow + btnLoadGame.Font = New Font(btnLoadGame.Font, FontStyle.Bold) + picCoatofArms.Image = My.Resources.PhilCoatofArms + btnPhilMode.Text = "Disable Phil Mode" + btnPhilMode.ForeColor = Color.DarkGray + btnPhilMode.Font = New Font(btnPhilMode.Font, FontStyle.Regular) + End Sub + Sub DeactivatePhilMode() + MusicPlayer.PlayRuleBritannia() + + tmrAnimatePhil.Enabled = False + picPhil1.Visible = False + picPhil2.Visible = False + + btnNewGame.ForeColor = Color.DarkGray + btnNewGame.Font = New Font(btnNewGame.Font, FontStyle.Regular) + btnLoadGame.ForeColor = Color.DarkGray + btnLoadGame.Font = New Font(btnLoadGame.Font, FontStyle.Regular) + picCoatofArms.Image = My.Resources.UKCoatofArms + btnPhilMode.Text = "PHIL MODE" + btnPhilMode.ForeColor = Color.Yellow + btnPhilMode.Font = New Font(btnPhilMode.Font, FontStyle.Bold) + End Sub + + Private Sub btnNewGame_Click(sender As Object, e As EventArgs) Handles btnNewGame.Click + CharacterCreation.Show() + Me.Close() + End Sub + + Private Sub MainMenu_Resize(sender As Object, e As EventArgs) Handles Me.Resize + picCoatofArms.Width = Screen.PrimaryScreen.Bounds.Height + + pnlMenu.Height = Screen.PrimaryScreen.Bounds.Height + pnlMenu.Width = (Screen.PrimaryScreen.Bounds.Width - picCoatofArms.Width) + pnlMenu.Location = New Point(picCoatofArms.Width, pnlMenu.Location.Y) + + btnNewGame.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnNewGame.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 44) + + btnPhilMode.Width = btnNewGame.Width / 2 + btnPhilMode.Location = New Point(btnNewGame.Location.X + (btnNewGame.Width / 2), (pnlMenu.Height / 100) * 50) + + btnLoadGame.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnLoadGame.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 58) + + btnQuitGame.Width = btnNewGame.Width / 2 + btnQuitGame.Location = New Point(btnNewGame.Location.X + (btnNewGame.Width / 4), (pnlMenu.Height / 100) * 86) + + picRoyaltySimulatorLogo.Width = btnNewGame.Width + picRoyaltySimulatorLogo.Height = (pnlMenu.Height / 100) * 30 + picRoyaltySimulatorLogo.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 10) + End Sub + + Private Sub btnLoadGame_Click(sender As Object, e As EventArgs) Handles btnLoadGame.Click + MsgBox("Saving and loading coming soon") + End Sub +End Class diff --git a/Royalty Simulator 2013/MusicPlayer.vb b/Royalty Simulator 2013/MusicPlayer.vb new file mode 100644 index 0000000..fb40a87 --- /dev/null +++ b/Royalty Simulator 2013/MusicPlayer.vb @@ -0,0 +1,46 @@ +Public Class MusicPlayer + Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer + Dim musicAlias As String + Dim musicPath As String + Dim Track As Integer + Sub PlayRuleBritannia() + My.Computer.Audio.Stop() + My.Computer.Audio.Play(My.Resources.RuleBritannia, AudioPlayMode.BackgroundLoop) + End Sub + Sub PlayGodSavetheKing() + My.Computer.Audio.Stop() + My.Computer.Audio.Play(My.Resources.GodSavetheKing, AudioPlayMode.BackgroundLoop) + End Sub + Sub PlayGodSavetheQueen() + My.Computer.Audio.Stop() + My.Computer.Audio.Play(My.Resources.GodSavetheQueen, AudioPlayMode.BackgroundLoop) + End Sub + Sub PlayOneLove() + My.Computer.Audio.Stop() + My.Computer.Audio.Play(My.Resources.OneLove, AudioPlayMode.BackgroundLoop) + End Sub + Sub PlayBuckInHammPalace() + My.Computer.Audio.Stop() + My.Computer.Audio.Play(My.Resources.BukInHammPalace, AudioPlayMode.BackgroundLoop) + End Sub + Sub PlayAbdication() + My.Computer.Audio.Play(My.Resources.AutoDestructSequenceArmed, AudioPlayMode.WaitToComplete) + If ThePlayer.PhilMode = True Then + PlayOneLove() + ElseIf ThePlayer.PhilMode = False Then + If ThePlayer.Gender = 1 Then + PlayGodSavetheKing() + ElseIf ThePlayer.Gender = 0 Then + PlayGodSavetheQueen() + End If + End If + End Sub + Sub PlayDeath() + My.Computer.Audio.Stop() + If ThePlayer.PhilMode = True Then + My.Computer.Audio.Play(My.Resources.YouAreDead, AudioPlayMode.BackgroundLoop) + ElseIf ThePlayer.PhilMode = False Then + My.Computer.Audio.Play(My.Resources.LastPost, AudioPlayMode.BackgroundLoop) + End If + End Sub +End Class \ No newline at end of file diff --git a/Royalty Simulator 2013/PublicVars.vb b/Royalty Simulator 2013/PublicVars.vb new file mode 100644 index 0000000..3c840be --- /dev/null +++ b/Royalty Simulator 2013/PublicVars.vb @@ -0,0 +1,298 @@ +Module PublicVars + + Public Months(12) As Integer + Public PhilMode As Boolean = False + Public Class Player + Public PhilMode As Boolean = False + Public Name As String + Public Age As Integer + Public DeathAge As Integer = 0 + '1 = male, 0 = female + Public Gender As Integer + Public Birthplace As String + Public Respect As Integer = 50 + Public RuleDays As Integer = 0 + Public RuleMonths As Integer = 0 + Public RuleYears As Integer = 0 + Public Knowledge As Integer = 0 + Public Happiness As Integer = 50 + Public PlebspottingTrips, ResearchSeshes, Holidays, GoodHolidays, BadHolidays, PoloGames, PoloGamesWon, PoloGamesLost, PartiesHosted, GoodPartiesHosted, BadPartiesHosted, FilmNights, GoodFilmNights, BadFilmNights As Integer + Public CurrGovernment As Integer = 0 + Public ElectionNum As Integer = 0 + Public CurrYear As Integer = 0 + Public CurrMonth As Integer = 0 + Public GDP As Long = 0 + Public Partner As String + Dim CCount As Integer = 1 + Dim YearsTilElection As Integer = 0 + Dim YearsofGovt As Integer = 0 + Public AbdicationThreats As Integer = 0 + Public GDPTerm As String + Sub Elections() + ElectionNum = ElectionNum + 1 + YearsTilElection = CInt(Int(5 * Rnd()) + 1) + YearsofGovt = 0 + If ThePlayer.Respect <= 20 Then + CurrGovernment = CInt(Int(10 * Rnd())) + Else + CurrGovernment = CInt(Int(9 * Rnd())) + End If + DefaultView.lblCurrentParty.Text = "Gov't: " & Government(CurrGovernment) + End Sub + Sub GoingsOn() + CCount = CCount - 1 + If CCount = 0 Then + ThePlayer.RuleDays = ThePlayer.RuleDays + 1 + If AtWarWithFrance = True Then + LivesLost = LivesLost + CInt(Int(40 * Rnd())) + AtWarWithFranceForDays = AtWarWithFranceForDays + 1 + End If + If UnifiedIreland = True Then + Dim IRAattack As Integer = CInt(Int(10 * Rnd())) + If IRAattack = 1 Then + IRAAssassinations = IRAAssassinations + 1 + End If + End If + If ThePlayer.RuleDays > Months(CurrMonth) Then + CurrMonth = CurrMonth + 1 + ThePlayer.RuleDays = 1 + ThePlayer.RuleMonths = ThePlayer.RuleMonths + 1 + If AtWarWithFrance = True Then + + AtWarWithFranceForDays = 1 + AtWarWithFranceForMonths = AtWarWithFranceForMonths + 1 + End If + If CurrMonth > 11 Then + YearsofGovt = YearsofGovt + 1 + CurrYear = CurrYear + 1 + ThePlayer.RuleMonths = 0 + ThePlayer.RuleYears = ThePlayer.RuleYears + 1 + CurrMonth = 0 + If (YearsofGovt > YearsTilElection) And (ParliamentDissolved = False) Then + Elections() + End If + If AtWarWithFrance = True Then + AtWarWithFranceForMonths = 0 + AtWarWithFranceForYears = AtWarWithFranceForYears + 1 + End If + ThePlayer.Age = ThePlayer.Age + 1 + If ThePlayer.Age = ThePlayer.DeathAge Then + ThePlayer.Death("Died of Old Age") + End If + End If + End If + If ThePlayer.Gender = 1 Then + DefaultView.lblRuleLength.Text = "King for: " + Recreation.lblRuleLength.Text = "King for: " + ViewCharacter.lblRuleLength.Text = "King for: " + ElseIf ThePlayer.Gender = 0 Then + DefaultView.lblRuleLength.Text = "Queen for: " + Recreation.lblRuleLength.Text = "Queen for: " + ViewCharacter.lblRuleLength.Text = "Queen for: " + End If + DefaultView.lblRuleLength.Text = DefaultView.lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + DefaultView.lblDate.Text = ThePlayer.RuleDays & " " & TheMonth(CurrMonth) & " " & CurrYear + Recreation.lblRuleLength.Text = Recreation.lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + Recreation.lblDate.Text = ThePlayer.RuleDays & " " & TheMonth(CurrMonth) & " " & CurrYear + ViewCharacter.lblRuleLength.Text = ViewCharacter.lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + ViewCharacter.lblDate.Text = ThePlayer.RuleDays & " " & TheMonth(CurrMonth) & " " & CurrYear + + If AtWarWithFrance = True Then + AtWarWithFranceFor = AtWarWithFranceForDays & " days, " & AtWarWithFranceForMonths & " months, " & AtWarWithFranceForYears & " years" + End If + + CCount = 10 + + Randomize() + + '0 = increase, 1 = decrease + Dim IncDecGDP As Integer = CInt(Int(2 * Rnd())) + If IncDecGDP = 0 Then + GDP = GDP + CInt(Int(100000 * Rnd())) + ElseIf IncDecGDP = 1 Then + GDP = GDP - CInt(Int(100000 * Rnd())) + End If + + DefaultView.lblGDP.Text = GDPTerm & GDP.ToString("###,###,###,###") + End If + End Sub + Public Sub Death(ByVal CauseofDeath As String) + MusicPlayer.PlayDeath() + DefaultView.Close() + ViewCharacter.Close() + Recreation.Close() + DeathForm.lblCauseofDeath.Text = "GAME OVER: " & CauseofDeath + DeathForm.Show() + End Sub + '//DECREES\\ + Public ParliamentDissolved As Boolean = False + Public YearParliamentDissolved As Integer + Public CommonersExecuted As Integer = 0 + Public AtWarWithFrance As Boolean = False + Public AtWarWithFranceForDays As Integer = 0 + Public AtWarWithFranceForMonths As Integer = 0 + Public AtWarWithFranceForYears As Integer = 0 + Public AtWarWithFranceFor As String = "0 days, 0 months, 0 years" + Public YearWarDeclared As Integer = 0 + Public LivesLost As Integer = 0 + Public MonumentsErected As Integer = 0 + Public ArgieButthurtLevel As Integer = -1 + Public FalklandMonumentsWeight As Integer = 0 + Public SunkFalklands As Boolean = False + Public UnifiedIreland As Boolean = False + Public AttemptstoUnifyIreland As Integer = 0 + Public LivesLostIreland As Integer = 0 + Public YearIrelandUnified As Integer = 0 + Public IRAAssassinations As Integer = 0 + Public PercentageofHorseConsuls As Integer = 0 + Public PercentageEmpireRetaken As Integer = 0 + Public CanadaRetaken As Integer = 0 + Public ColoniesRetaken As Integer = 0 + Public CarribeanRetaken As Integer = 0 + Public SouthAfricaRetaken As Integer = 0 + Public OtherAfricaRetaken As Integer = 0 + Public MiddleEastRetaken As Integer = 0 + Public IndiaRetaken As Integer = 0 + Public OtherAsiaRetaken As Integer = 0 + Public AustraliaRetaken As Integer = 0 + Public WorldTaken As Integer = 0 + Public AttemptstoRetakeEmpire As Integer = 0 + Public AttemptstoTakeWorld As Integer = 0 + Public LivesLostEmpire As Integer = 0 + Public LivesLostTakeWorld As Integer = 0 + Public YearEmpireRetaken As Integer = 0 + Public YearWorldTaken As Integer = 0 + Public ChurchesFormed As Integer + Public MadeofGlass As Boolean = False + Public WivesBeheaded As Integer = 0 + Public ThingsDeclaredPunishableByDeath As Integer = 0 + End Class + Public CanadaVal As Integer = 15 + Public ColoniesVal As Integer = 9 + Public CarribeanVal As Integer = 8 + Public SouthAfricaVal As Integer = 12 + Public OtherAfricaVal As Integer = 14 + Public MiddleEastVal As Integer = 13 + Public IndiaVal As Integer = 15 + Public OtherAsiaVal As Integer = 9 + Public AustraliaVal As Integer = 5 + Public Government(10) As String + Public TheMonth(12) As String + Public ArgieButthurt(14) As String + Public ThePlayer As New Player + Sub ResizeText(ByVal lblLabel As Label) + Dim f As Font + Dim g As Graphics + Dim s As SizeF + Dim Faktor, FaktorX, FaktorY As Single + + If lblLabel.Text.Length = 0 Then Return + + g = lblLabel.CreateGraphics + s = g.MeasureString(lblLabel.Text, lblLabel.Font, lblLabel.Width) + g.Dispose() + + FaktorX = lblLabel.Width / s.Width + FaktorY = lblLabel.Height / s.Height + + If FaktorX > FaktorY Then + Faktor = FaktorY + Else + Faktor = FaktorX + End If + + f = lblLabel.Font + lblLabel.Font = New Font(f.Name, f.SizeInPoints * Faktor) + End Sub + Public Sub HappinessCheck() + If ThePlayer.Happiness <= 0 Then + ThePlayer.Death("You Committed Suicide") + End If + End Sub + Public Sub RespectCheck() + If ThePlayer.Respect <= 0 Then + If ThePlayer.ParliamentDissolved = False Then + ThePlayer.Death("Republic of the British Isles Formed, Monarch Ousted") + ElseIf ThePlayer.ParliamentDissolved = True Then + ThePlayer.Death("English Revolution, Monarch Beheaded") + End If + End If + End Sub + Public Sub NewPlayer() + With ThePlayer + .DeathAge = 0 + .Respect = 50 + .RuleDays = 1 + .RuleMonths = 0 + .RuleYears = 0 + .Knowledge = 0 + .Happiness = 50 + .PlebspottingTrips = 0 + .ResearchSeshes = 0 + .Holidays = 0 + .GoodHolidays = 0 + .BadHolidays = 0 + .PoloGames = 0 + .PoloGamesWon = 0 + .PoloGamesLost = 0 + .PartiesHosted = 0 + .GoodPartiesHosted = 0 + .BadPartiesHosted = 0 + .FilmNights = 0 + .GoodFilmNights = 0 + .BadFilmNights = 0 + .CurrGovernment = 0 + .ElectionNum = 0 + .CurrYear = 0 + .CurrMonth = 0 + .GDP = 2316000000000 + .AbdicationThreats = 0 + .GDPTerm = "GDP: $" + '//DECREES\\ + .ParliamentDissolved = False + .YearParliamentDissolved = 0 + .CommonersExecuted = 0 + .AtWarWithFrance = False + .AtWarWithFranceForDays = 0 + .AtWarWithFranceForMonths = 0 + .AtWarWithFranceForYears = 0 + .AtWarWithFranceFor = "0 days, 0 months, 0 years" + .YearWarDeclared = 0 + .LivesLost = 0 + .MonumentsErected = 0 + .ArgieButthurtLevel = -1 + .FalklandMonumentsWeight = 0 + .SunkFalklands = False + .UnifiedIreland = False + .AttemptstoUnifyIreland = 0 + .LivesLostIreland = 0 + .YearIrelandUnified = 0 + .IRAAssassinations = 0 + .PercentageofHorseConsuls = 0 + .PercentageEmpireRetaken = 0 + .CanadaRetaken = 0 + .ColoniesRetaken = 0 + .CarribeanRetaken = 0 + .SouthAfricaRetaken = 0 + .OtherAfricaRetaken = 0 + .MiddleEastRetaken = 0 + .IndiaRetaken = 0 + .OtherAsiaRetaken = 0 + .AustraliaRetaken = 0 + .WorldTaken = 0 + .AttemptstoTakeWorld = 0 + .AttemptstoRetakeEmpire = 0 + .LivesLostEmpire = 0 + .LivesLostTakeWorld = 0 + .YearEmpireRetaken = 0 + .YearWorldTaken = 0 + .ChurchesFormed = 0 + .MadeofGlass = False + .WivesBeheaded = 0 + .ThingsDeclaredPunishableByDeath = 0 + End With + Dim CCount As Integer = 1 + Dim YearsTilElection = 0 + Dim YearsofGovt = 0 + End Sub +End Module diff --git a/Royalty Simulator 2013/README.md b/Royalty Simulator 2013/README.md new file mode 100644 index 0000000..780607d --- /dev/null +++ b/Royalty Simulator 2013/README.md @@ -0,0 +1,5 @@ +Royalty Simulator 2013 +====================== + +Made in one week for a visit by Prince Philip to my school. Deemed somewhat treasonous, he never saw it; his loss. +Materials used: VB.NET diff --git a/Royalty Simulator 2013/Recreation.vb b/Royalty Simulator 2013/Recreation.vb new file mode 100644 index 0000000..28de12b --- /dev/null +++ b/Royalty Simulator 2013/Recreation.vb @@ -0,0 +1,442 @@ +Public Class Recreation + Dim Count As Integer = 10 + Dim DispGDP As String + Dim Positiveadjective(10) As String + Dim Negativeadjective(10) As String + Dim TooManyParties As Integer + Dim PartyCount As Integer = 0 + Private Sub Recreation_Load(sender As Object, e As EventArgs) Handles MyBase.Load + tmrAdvanceDay.Enabled = True + + If ThePlayer.PhilMode = True Then + picMonarch.Image = My.Resources.KingPhil + ElseIf ThePlayer.PhilMode = False Then + If ThePlayer.Gender = 1 Then + picMonarch.Image = My.Resources.King + ElseIf ThePlayer.Gender = 0 Then + picMonarch.Image = My.Resources.Queen + End If + End If + + btnFilmNight.Text = "Film Night with the " & ThePlayer.Partner & ", Maybe Get Some Pizzas in or Something" + + Positiveadjective(0) = " fab" + Positiveadjective(1) = " jolly" + Positiveadjective(2) = " good" + Positiveadjective(3) = " pleasant" + Positiveadjective(4) = "n enjoyable" + Positiveadjective(5) = " fun" + Positiveadjective(6) = "n aight" + Positiveadjective(7) = "n okay" + Positiveadjective(8) = " lovely" + Positiveadjective(9) = " brill" + + Negativeadjective(0) = " negative" + Negativeadjective(1) = " blunderous" + Negativeadjective(2) = " naff" + Negativeadjective(3) = "n unpleasant" + Negativeadjective(4) = " shoddy" + Negativeadjective(5) = " poor" + Negativeadjective(6) = "n awful" + Negativeadjective(7) = " neutral" + Negativeadjective(8) = " gypsy-filled" + Negativeadjective(9) = " shambolic" + + TooManyParties = CInt(Int(10 * Rnd()) + 1) + End Sub + + Private Sub Recreation_Resize(sender As Object, e As EventArgs) Handles MyBase.Resize + picMonarch.Width = Screen.PrimaryScreen.Bounds.Height + + pnlMenu.Height = Screen.PrimaryScreen.Bounds.Height + pnlMenu.Width = (Screen.PrimaryScreen.Bounds.Width - picMonarch.Width) + pnlMenu.Location = New Point(picMonarch.Width, pnlMenu.Location.Y) + + lblName.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 6) + + lblRuleLength.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 9) + + lblDate.Location = New Point((pnlMenu.Width - lblDate.Width) - ((pnlMenu.Width / 100) * 10), (pnlMenu.Height / 100) * 6) + + lblRecreation.Location = New Point((pnlMenu.Width / 2) - (lblRecreation.Width / 2), (pnlMenu.Height / 100) * 12) + + btnPlebspotting.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnPlebspotting.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 20) + + btnResearch.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnResearch.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 32) + + btnHoliday.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnHoliday.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 44) + + btnPolo.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnPolo.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 56) + + btnParty.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnParty.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 68) + + btnFilmNight.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + btnFilmNight.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 80) + + btnBack.Width = pnlMenu.Width / 2 + btnBack.Location = New Point((pnlMenu.Width / 100) * 25, (pnlMenu.Height / 100) * 92) + + '//RESEARCH\\ + + pnlResearch.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlResearch.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlResearch.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picResearch.Width = pnlResearch.Height + picResearch.Height = picResearch.Width + + lblResearch.Width = pnlResearch.Width - picResearch.Width + lblResearch.Location = New Point(picResearch.Width, (pnlResearch.Height / 100) * 10) + ResizeText(lblResearch) + + lblResearchDesc.Width = pnlResearch.Width - picResearch.Width + lblResearchDesc.Height = (pnlResearch.Height / 100) * 50 + lblResearchDesc.Location = New Point(picResearch.Width, (pnlResearch.Height / 100) * 25) + ResizeText(lblResearchDesc) + + btnResearchOK.Width = (pnlResearch.Width - picResearch.Width) / 4 + btnResearchOK.Location = New Point(picResearch.Width + (((pnlResearch.Width - picResearch.Width) / 8) * 3), (pnlResearch.Height / 100) * 80) + + + '//HOLIDAY\\ + + pnlHoliday.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlHoliday.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlHoliday.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picHoliday.Width = pnlHoliday.Height + picHoliday.Height = pnlHoliday.Width + + lblHoliday.Width = pnlHoliday.Width - picHoliday.Width + lblHoliday.Location = New Point(picHoliday.Width, (pnlHoliday.Height / 100) * 10) + ResizeText(lblHoliday) + + lblHolidayWhere.Width = pnlHoliday.Width - picHoliday.Width + lblHolidayWhere.Location = New Point(picHoliday.Width, (pnlHoliday.Height / 100) * 25) + ResizeText(lblHolidayWhere) + + cmboHoliday.Width = (pnlHoliday.Width - picHoliday.Width) - ((pnlHoliday.Width - picHoliday.Width) / 100) * 20 + cmboHoliday.Location = New Point(picHoliday.Width + (((pnlHoliday.Width - picHoliday.Width) / 100) * 10), (pnlHoliday.Height / 100) * 40) + + btnHolidayGo.Width = (pnlHoliday.Width - picHoliday.Width) / 4 + btnHolidayGo.Location = New Point(picHoliday.Width + (((pnlHoliday.Width - picHoliday.Width) / 8) * 3), (pnlHoliday.Height / 100) * 55) + + lblHolidayDesc.Width = pnlHoliday.Width - picHoliday.Width + lblHolidayDesc.Height = (pnlHoliday.Height / 100) * 50 + lblHolidayDesc.Location = New Point(picHoliday.Width, (pnlHoliday.Height / 100) * 25) + ResizeText(lblHolidayDesc) + + btnHolidayOK.Width = (pnlHoliday.Width - picHoliday.Width) / 4 + btnHolidayOK.Location = New Point(picHoliday.Width + (((pnlHoliday.Width - picHoliday.Width) / 8) * 3), (pnlHoliday.Height / 100) * 80) + + '//POLO\\ + + pnlPolo.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlPolo.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlPolo.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picPolo.Width = pnlPolo.Height + picPolo.Height = picPolo.Width + + lblPolo.Width = pnlPolo.Width - picPolo.Width + lblPolo.Location = New Point(picPolo.Width, (pnlPolo.Height / 100) * 10) + ResizeText(lblPolo) + + lblPoloDesc.Width = pnlPolo.Width - picPolo.Width + lblPoloDesc.Height = (pnlPolo.Height / 100) * 50 + lblPoloDesc.Location = New Point(picPolo.Width, (pnlPolo.Height / 100) * 25) + ResizeText(lblPoloDesc) + + btnPoloOK.Width = (pnlPolo.Width - picPolo.Width) / 4 + btnPoloOK.Location = New Point(picPolo.Width + (((pnlPolo.Width - picPolo.Width) / 8) * 3), (pnlPolo.Height / 100) * 80) + + '//PARTY\\ + + pnlParty.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlParty.Width = Screen.PrimaryScreen.Bounds.Width / 2.5 + pnlParty.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picParty.Width = pnlParty.Height + picParty.Height = picParty.Width + + lblParty.Width = pnlParty.Width - picParty.Width + lblParty.Location = New Point(picParty.Width, (pnlParty.Height / 100) * 10) + ResizeText(lblParty) + + lblPartyDesc.Width = pnlParty.Width - picParty.Width + lblPartyDesc.Height = (pnlParty.Height / 100) * 50 + lblPartyDesc.Location = New Point(picParty.Width, (pnlParty.Height / 100) * 25) + ResizeText(lblPartyDesc) + + btnPartyOK.Width = (pnlParty.Width - picParty.Width) / 4 + btnPartyOK.Location = New Point(picParty.Width + (((pnlParty.Width - picParty.Width) / 8) * 3), (pnlParty.Height / 100) * 80) + + '//FILM NIGHT\\ + + If ThePlayer.Gender = 1 Then + picFilmNight.Image = My.Resources.FilmNightKing + ElseIf ThePlayer.Gender = 0 Then + picFilmNight.Image = My.Resources.FilmNightQueen + End If + + pnlFilmNight.Height = Screen.PrimaryScreen.Bounds.Height / 3 + pnlFilmNight.Width = Screen.PrimaryScreen.Bounds.Width / 2 + pnlFilmNight.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + + picFilmNight.Width = pnlFilmNight.Height + picFilmNight.Height = picFilmNight.Width + + lblFilmNight.Width = pnlFilmNight.Width - picFilmNight.Width + lblFilmNight.Location = New Point(picFilmNight.Width, (pnlFilmNight.Height / 100) * 8) + ResizeText(lblFilmNight) + + lblFilmNightPizzas.Width = pnlFilmNight.Width - picFilmNight.Width + lblFilmNightPizzas.Location = New Point(picFilmNight.Width, (pnlFilmNight.Height / 100) * 20) + ResizeText(lblFilmNightPizzas) + + lblFilmNightDesc.Width = pnlFilmNight.Width - picFilmNight.Width + lblFilmNightDesc.Height = (pnlFilmNight.Height / 100) * 50 + lblFilmNightDesc.Location = New Point(picFilmNight.Width, (pnlFilmNight.Height / 100) * 25) + ResizeText(lblFilmNightDesc) + + btnFilmNightOK.Width = (pnlFilmNight.Width - picFilmNight.Width) / 4 + btnFilmNightOK.Location = New Point(picFilmNight.Width + (((pnlFilmNight.Width - picFilmNight.Width) / 8) * 3), (pnlFilmNight.Height / 100) * 80) + End Sub + + Private Sub tmrAdvanceDay_Tick(sender As Object, e As EventArgs) Handles tmrAdvanceDay.Tick + ThePlayer.GoingsOn() + End Sub + + Private Sub btnBack_Click(sender As Object, e As EventArgs) Handles btnBack.Click + DefaultView.Show() + Me.Close() + End Sub + + '//RESEARCH\\ + Private Sub btnResearch_Click(sender As Object, e As EventArgs) Handles btnResearch.Click + Dim RespectVal As Integer + Dim KnowledgeVal As Integer + + ThePlayer.Researchseshes = ThePlayer.Researchseshes + 1 + + KnowledgeVal = CInt(Int(6 * Rnd()) + 1) + RespectVal = CInt(Int(6 * Rnd()) + 1) + + ThePlayer.Respect = ThePlayer.Respect - RespectVal + ThePlayer.Knowledge = ThePlayer.Knowledge + KnowledgeVal + + lblResearchDesc.Text = "You study intently for days. Your reclusiveness results in a -" & RespectVal & " drop in respect, but you gain +" & KnowledgeVal & " knowledge" + + pnlResearch.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnResearchOK_Click(sender As Object, e As EventArgs) Handles btnResearchOK.Click + pnlResearch.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + '//HOLIDAY\\ + Private Sub btnHoliday_Click(sender As Object, e As EventArgs) Handles btnHoliday.Click + lblHolidayDesc.Visible = False + btnHolidayOK.Visible = False + lblHolidayWhere.Visible = True + cmboHoliday.Visible = True + btnHolidayGo.Visible = True + cmboHoliday.SelectedItem = Nothing + btnHolidayGo.Enabled = False + pnlHoliday.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + End Sub + Private Sub btnHolidayGo_Click(sender As Object, e As EventArgs) Handles btnHolidayGo.Click + lblHolidayWhere.Visible = False + cmboHoliday.Visible = False + btnHolidayGo.Visible = False + lblHolidayDesc.Visible = True + btnHolidayOK.Visible = True + + If ThePlayer.CurrMonth < 11 Then + ThePlayer.AtWarWithFranceForMonths = ThePlayer.AtWarWithFranceForMonths + 1 + ThePlayer.CurrMonth = ThePlayer.CurrMonth + 1 + ThePlayer.RuleMonths = ThePlayer.RuleMonths + 1 + ElseIf ThePlayer.CurrMonth >= 12 Then + ThePlayer.AtWarWithFranceForMonths = 0 + ThePlayer.AtWarWithFranceForYears = ThePlayer.AtWarWithFranceForYears + 1 + ThePlayer.CurrMonth = 0 + ThePlayer.CurrYear = ThePlayer.CurrYear + 1 + ThePlayer.RuleYears = ThePlayer.RuleYears + 1 + ThePlayer.Age = ThePlayer.Age + 1 + If ThePlayer.Age = ThePlayer.DeathAge Then + ThePlayer.Death("Died of Old Age") + End If + End If + If ThePlayer.Gender = 1 Then + lblRuleLength.Text = "King for: " + ElseIf ThePlayer.Gender = 0 Then + lblRuleLength.Text = "Queen for: " + End If + lblRuleLength.Text = lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + lblDate.Text = ThePlayer.RuleDays & " " & TheMonth(ThePlayer.CurrMonth) & " " & ThePlayer.CurrYear + + Dim Country As String = cmboHoliday.SelectedItem + Dim HappinessVal As Integer = CInt(Int(15 * Rnd()) + 1) + + ThePlayer.Holidays = ThePlayer.Holidays + 1 + + If (ThePlayer.AtWarWithFrance = True) And (Country = "France") Then + Dim RespectVal As Integer = CInt(Int(25 * Rnd()) + 1) + lblHolidayDesc.Text = "You foolishly go on on holiday to France. For percieved consorting with the enemy, you lose -" & RespectVal & " respect and -" & HappinessVal & " happiness." + ResizeText(lblHolidayDesc) + ThePlayer.Respect = ThePlayer.Respect - RespectVal + ThePlayer.Happiness = ThePlayer.Happiness - HappinessVal + HappinessCheck() + ThePlayer.Respect = ThePlayer.Respect - 20 + ElseIf (ThePlayer.UnifiedIreland = False) And (Country = "Ireland (Republic)") Then + Dim KilledByIRA As Integer = CInt(Int(50 * Rnd())) + If KilledByIRA = 1 Then + lblHolidayDesc.Text = "You have a awful holiday in Ireland because the IRA assassinates you. You are dead." + ThePlayer.Death("You Were Killed by an IRA assassination") + End If + ElseIf Country = "United States" Then + Dim SatOnByAmerican As Integer = CInt(Int(100 * Rnd())) + If SatOnByAmerican = 1 Then + lblHolidayDesc.Text = "You have a lovely holiday in the US until you are sat on by a rotund American gentleman/woman/blob. You are dead." + ThePlayer.Death("You Were Crushed to Death by a Fattie") + End If + Else + Dim HolidayResult As Integer = CInt(Int(3 * Rnd()) + 1) + Dim Adjective As Integer = CInt(Int(10 * Rnd())) + If (HolidayResult = 1) Or (HolidayResult = 2) Then + ThePlayer.GoodHolidays = ThePlayer.GoodHolidays + 1 + ThePlayer.Happiness = ThePlayer.Happiness + HappinessVal + lblHolidayDesc.Text = "You have a" & Positiveadjective(Adjective) & " holiday in " & Country & ". You gain +" & HappinessVal & " happiness." + ElseIf HolidayResult = 3 Then + ThePlayer.BadHolidays = ThePlayer.BadHolidays + 1 + ThePlayer.Happiness = ThePlayer.Happiness - HappinessVal + lblHolidayDesc.Text = "You have a" & Negativeadjective(Adjective) & " holiday in " & Country & ". You lose -" & HappinessVal & " happiness." + + End If + End If + ResizeText(lblHolidayDesc) + HappinessCheck() + End Sub + Private Sub btnHolidayOK_Click(sender As Object, e As EventArgs) Handles btnHolidayOK.Click + pnlHoliday.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + Private Sub cmboHoliday_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmboHoliday.SelectedIndexChanged + btnHolidayGo.Enabled = True + End Sub + + '//POLO\\ + Private Sub btnPolo_Click(sender As Object, e As EventArgs) Handles btnPolo.Click + Dim DeathByPolo As Integer = CInt(Int(60 * Rnd())) + + ThePlayer.PoloGames = ThePlayer.PoloGames + 1 + + If DeathByPolo = 1 Then + lblPoloDesc.Text = "Seemingly unable to learn from the past, you, like your predecessor, are killed in a tragic polo accident." + ThePlayer.Death("You Were Killed in a Tragic Polo Accident") + Else + Dim HappinessVal As Integer = CInt(Int(15 * Rnd()) + 1) + Dim PoloResult As Integer = CInt(Int(3 * Rnd()) + 1) + Dim Adjective As Integer = CInt(Int(10 * Rnd())) + + If (PoloResult = 1) Or (PoloResult = 2) Then + ThePlayer.Happiness = ThePlayer.Happiness + HappinessVal + ThePlayer.PoloGamesWon = ThePlayer.PoloGamesWon + 1 + lblPoloDesc.Text = "You have a" & Positiveadjective(Adjective) & " polo game. You gain +" & HappinessVal & " happiness." + ElseIf PoloResult = 3 Then + ThePlayer.Happiness = ThePlayer.Happiness - HappinessVal + ThePlayer.PoloGamesLost = ThePlayer.PoloGamesLost + 1 + lblPoloDesc.Text = "You have a" & Negativeadjective(Adjective) & " polo game. You lose -" & HappinessVal & " happiness." + End If + End If + pnlPolo.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + + HappinessCheck() + End Sub + Private Sub btnPoloOK_Click(sender As Object, e As EventArgs) Handles btnPoloOK.Click + pnlPolo.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + '//PARTY\\ + Private Sub btnParty_Click(sender As Object, e As EventArgs) Handles btnParty.Click + Dim DeathByPolo As Integer = CInt(Int(60 * Rnd())) + + PartyCount = PartyCount + 1 + + ThePlayer.PartiesHosted = ThePlayer.PartiesHosted + 1 + + If PartyCount > TooManyParties Then + lblPartyDesc.Text = "Unfortunately, you find out too late that you have a weak and womanly liver. You die of alcohol poisoning." + ThePlayer.Death("You Died of Alcoholism") + Else + Dim HappinessVal As Integer = CInt(Int(20 * Rnd()) + 1) + Dim RespectVal As Integer = CInt(Int(15 * Rnd()) + 1) + Dim PartyResult As Integer = CInt(Int(3 * Rnd()) + 1) + Dim Adjective As Integer = CInt(Int(10 * Rnd())) + + If (PartyResult = 1) Or (PartyResult = 2) Then + ThePlayer.GoodPartiesHosted = ThePlayer.GoodPartiesHosted + 1 + ThePlayer.Happiness = ThePlayer.Happiness + HappinessVal + lblPartyDesc.Text = "You have a" & Positiveadjective(Adjective) & " party. You gain +" & HappinessVal & " happiness." + ElseIf PartyResult = 3 Then + ThePlayer.BadPartiesHosted = ThePlayer.BadPartiesHosted + 1 + ThePlayer.Happiness = ThePlayer.Happiness - HappinessVal + lblPartyDesc.Text = "You have a" & Negativeadjective(Adjective) & " party. You lose -" & HappinessVal & " happiness. Your people judge you for your partying ways, you lose -" & RespectVal & " respect." + End If + End If + + ResizeText(lblPartyDesc) + pnlParty.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + + HappinessCheck() + End Sub + Private Sub btnPartyOK_Click(sender As Object, e As EventArgs) Handles btnPartyOK.Click + pnlParty.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + '//FILM NIGHT\\ + Private Sub btnFilmNight_Click(sender As Object, e As EventArgs) Handles btnFilmNight.Click + Dim HappinessVal As Integer = CInt(Int(5 * Rnd()) + 1) + Dim SadnessVal As Integer = CInt(Int(10 * Rnd()) + 1) + Dim FilmNightResult As Integer = CInt(Int(10 * Rnd()) + 1) + Dim WhatWentWrong(5) As String + + ThePlayer.FilmNights = ThePlayer.FilmNights + 1 + + WhatWentWrong(0) = "punch the " & ThePlayer.Partner & " in the face trying to reach across for a slice of pizza" + WhatWentWrong(1) = "call the " & ThePlayer.Partner & " fat" + WhatWentWrong(2) = "insult the " & ThePlayer.Partner & "'s mother" + WhatWentWrong(3) = "fart out a right rimsplitter during a romantic scene and then attempt to Dutch oven the " & ThePlayer.Partner + WhatWentWrong(4) = "order a pizza with toppings that the " & ThePlayer.Partner & " is terribly allergic to, and can't restrain your laughter as they start spluttering" + + Dim WentWrong As Integer = CInt(Int(5 * Rnd())) + + If FilmNightResult = 1 Then + ThePlayer.BadFilmNights = ThePlayer.BadFilmNights + 1 + ThePlayer.Happiness = ThePlayer.Happiness - SadnessVal + lblFilmNightDesc.Text = "You accidentally " & WhatWentWrong(WentWrong) & ". You both go to bed angry and you lose -" & SadnessVal & " happiness." + Else + ThePlayer.GoodFilmNights = ThePlayer.GoodFilmNights + 1 + ThePlayer.Happiness = ThePlayer.Happiness + HappinessVal + lblFilmNightDesc.Text = " You have a sweet yet uneventful night in. You gain +" & HappinessVal & " happiness." + End If + + ResizeText(lblFilmNightDesc) + + pnlFilmNight.Location = New Point(Screen.PrimaryScreen.Bounds.Width / 3, Screen.PrimaryScreen.Bounds.Height / 3) + + HappinessCheck() + End Sub + Private Sub btnFilmNightOK_Click(sender As Object, e As EventArgs) Handles btnFilmNightOK.Click + pnlFilmNight.Location = New Point((Screen.PrimaryScreen.Bounds.Width + 1), (Screen.PrimaryScreen.Bounds.Height + 1)) + End Sub + + Private Sub btnPlebspotting_Click(sender As Object, e As EventArgs) Handles btnPlebspotting.Click + ThePlayer.Respect = ThePlayer.Respect + 20 + ThePlayer.PlebspottingTrips = ThePlayer.PlebspottingTrips + 1 + MsgBox("Plebspotting coming soon" & vbCrLf & vbCrLf & "Here's +20 respect") + End Sub +End Class \ No newline at end of file diff --git a/Royalty Simulator 2013/SplashScreen.vb b/Royalty Simulator 2013/SplashScreen.vb new file mode 100644 index 0000000..a5328b8 --- /dev/null +++ b/Royalty Simulator 2013/SplashScreen.vb @@ -0,0 +1,147 @@ +Public Class SplashScreen + Dim Count As Integer = 0 + Dim LiesP1(22) As String + Dim LiesP2(22) As String + Dim Check As Integer = 0 + Private Sub SplashScreen_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Lies() + + MonthsSet() + + GovtSet() + + ArgieSet() + + Randomize() + lblLies.Text = LiesP1(22 * Rnd()) & " " & LiesP2(22 * Rnd()) + + tmrLoading.Enabled = True + + MusicPlayer.Hide() + End Sub + Sub Lies() + LiesP1(0) = "undoing" + LiesP1(1) = "triangulating" + LiesP1(2) = "decoding" + LiesP1(3) = "turtling" + LiesP1(4) = "calculating" + LiesP1(5) = "transcoding" + LiesP1(6) = "observing" + LiesP1(7) = "translating" + LiesP1(8) = "hypothesising" + LiesP1(9) = "polymorphing" + LiesP1(10) = "flipping" + LiesP1(11) = "reticulating" + LiesP1(12) = "phalanging" + LiesP1(13) = "turborizing" + LiesP1(14) = "compelling" + LiesP1(15) = "uttering" + LiesP1(16) = "fondling" + LiesP1(17) = "guessing" + LiesP1(18) = "chundling" + LiesP1(19) = "bundling" + LiesP1(20) = "rastafaring" + LiesP1(21) = "ripping" + + LiesP2(0) = "everything" + LiesP2(1) = "code" + LiesP2(2) = "sums" + LiesP2(3) = "hexagons" + LiesP2(4) = "rolls" + LiesP2(5) = "beeps" + LiesP2(6) = "compulsion" + LiesP2(7) = "singularity engine" + LiesP2(8) = "boops" + LiesP2(9) = "the machine spirit" + LiesP2(10) = "observance" + LiesP2(11) = "splines" + LiesP2(12) = "guesses" + LiesP2(13) = "stuff" + LiesP2(14) = "things" + LiesP2(15) = "dreams" + LiesP2(16) = "reticules" + LiesP2(17) = "decoders" + LiesP2(18) = "bipbops" + LiesP2(19) = "kinematics" + LiesP2(20) = "twaddleplops" + LiesP2(21) = "royalty" + End Sub + Sub MonthsSet() + Months(0) = 31 + Months(2) = 31 + Months(3) = 30 + Months(4) = 31 + Months(5) = 30 + Months(6) = 31 + Months(7) = 31 + Months(8) = 30 + Months(9) = 31 + Months(10) = 30 + Months(11) = 31 + + TheMonth(0) = "January" + TheMonth(1) = "February" + TheMonth(2) = "March" + TheMonth(3) = "April" + TheMonth(4) = "May" + TheMonth(5) = "June" + TheMonth(6) = "July" + TheMonth(7) = "August" + TheMonth(8) = "September" + TheMonth(9) = "October" + TheMonth(10) = "November" + TheMonth(11) = "December" + End Sub + Sub GovtSet() + Government(0) = "MRLP" + Government(1) = "Labour" + Government(2) = "Lib Dems" + Government(3) = "BNP" + Government(4) = "Conservative" + Government(5) = "UKIP" + Government(6) = "SNP" + Government(7) = "Plaid Cymru" + Government(8) = "Green Party" + Government(9) = "Republican" + End Sub + Sub ArgieSet() + ArgieButthurt(0) = "Ruffled" + ArgieButthurt(1) = "Miffed" + ArgieButthurt(2) = "Peeved" + ArgieButthurt(3) = "Irritated" + ArgieButthurt(4) = "Annoyed" + ArgieButthurt(5) = "Affronted" + ArgieButthurt(6) = "Angered" + ArgieButthurt(7) = "Liviv" + ArgieButthurt(8) = "Furious" + ArgieButthurt(9) = "Maddened with rage" + ArgieButthurt(10) = "Frothing at the mouth" + ArgieButthurt(11) = "Eye-twitchingly angry" + ArgieButthurt(12) = "Screaming obscenities at the elderly" + ArgieButthurt(13) = "Colon crucified" + End Sub + + Private Sub tmrLoading_Tick(sender As Object, e As EventArgs) Handles tmrLoading.Tick + If Count < 100 Then + If Count < 95 Then + Count = Count + CInt(Int(5 * Rnd())) + ElseIf Count >= 95 Then + Count = Count + CInt(Int((100 - Count) * Rnd()) + 1) + End If + lblLoading.Text = Count & "%" + If Count > Check Then + Check = Check + 10 + Randomize() + lblLies.Text = LiesP1(12 * Rnd()) & " " & LiesP2(12 * Rnd()) + End If + Else + tmrLoading.Enabled = False + Me.Hide() + MainMenu.Show() + End If + End Sub + + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click + Count = 100 + End Sub +End Class \ No newline at end of file diff --git a/Royalty Simulator 2013/ViewCharacter.vb b/Royalty Simulator 2013/ViewCharacter.vb new file mode 100644 index 0000000..e7b0c3c --- /dev/null +++ b/Royalty Simulator 2013/ViewCharacter.vb @@ -0,0 +1,203 @@ +Public Class ViewCharacter + Dim Count As Integer = 10 + Private Sub ViewCharacter_Load(sender As Object, e As EventArgs) Handles MyBase.Load + If ThePlayer.PhilMode = True Then + picMonarch.Image = My.Resources.KingPhil + ElseIf ThePlayer.PhilMode = False Then + If ThePlayer.Gender = 1 Then + picMonarch.Image = My.Resources.King + ElseIf ThePlayer.Gender = 0 Then + picMonarch.Image = My.Resources.Queen + End If + End If + + If ThePlayer.Gender = 1 Then + lblName.Text = "King " + lblRuleLength.Text = "King for: " + ElseIf ThePlayer.Gender = 0 Then + lblName.Text = "Queen " + lblRuleLength.Text = "Queen for: " + End If + + lblName.Text = lblName.Text & ThePlayer.Name + + lblRuleLength.Text = lblRuleLength.Text & ThePlayer.RuleDays & " days, " & ThePlayer.RuleMonths & " months, " & ThePlayer.RuleYears & " years" + + PopulateListbox() + + tmrAdvanceDay.Enabled = True + End Sub + Private Sub ViewCharacter_Resize(sender As Object, e As EventArgs) Handles Me.Resize + picMonarch.Width = Screen.PrimaryScreen.Bounds.Height + + pnlMenu.Height = Screen.PrimaryScreen.Bounds.Height + pnlMenu.Width = (Screen.PrimaryScreen.Bounds.Width - picMonarch.Width) + pnlMenu.Location = New Point(picMonarch.Width, pnlMenu.Location.Y) + + lblName.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 6) + + lblRuleLength.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 9) + + lblDate.Location = New Point((pnlMenu.Width - lblDate.Width) - ((pnlMenu.Width / 100) * 10), (pnlMenu.Height / 100) * 6) + + btnBack.Width = pnlMenu.Width / 2 + btnBack.Location = New Point((pnlMenu.Width / 100) * 25, (pnlMenu.Height / 100) * 92) + + lstStats.Height = pnlMenu.Height - (pnlMenu.Height / 4) + lstStats.Width = pnlMenu.Width - ((pnlMenu.Width / 100) * 20) + lstStats.Location = New Point((pnlMenu.Width / 100) * 10, (pnlMenu.Height / 100) * 14) + End Sub + + Private Sub tmrAdvanceDay_Tick(sender As Object, e As EventArgs) Handles tmrAdvanceDay.Tick + ThePlayer.GoingsOn() + End Sub + + Sub PopulateListbox() + With lstStats.Items + .Add("--GENERAL--") + .Add("Happiness: " & ThePlayer.Happiness) + .Add("Respect: " & ThePlayer.Respect) + .Add("Knowledge: " & ThePlayer.Knowledge) + .Add("Birthplace: " & ThePlayer.Birthplace) + .Add(ThePlayer.GDPTerm & ThePlayer.GDP.ToString("###,###,###,###")) + If ThePlayer.ParliamentDissolved = False Then + .Add("Current government: " & Government(ThePlayer.CurrGovernment)) + ElseIf ThePlayer.ParliamentDissolved = True Then + .Add("Current government: Parliament dissolved in " & ThePlayer.YearParliamentDissolved) + End If + .Add("Number of elections held during reign: " & ThePlayer.ElectionNum) + .Add("Number of abdication threats: " & ThePlayer.AbdicationThreats) + .Add("--RECREATION--") + .Add("Plebspotting trips: " & ThePlayer.PlebspottingTrips) + .Add("Research sessions: " & ThePlayer.ResearchSeshes) + .Add("Holidays gone on: " & ThePlayer.Holidays) + .Add("Good holidays: " & ThePlayer.GoodHolidays) + .Add("Bad holidays: " & ThePlayer.BadHolidays) + .Add("Polo games played: " & ThePlayer.PoloGames) + .Add("Polo games won: " & ThePlayer.PoloGamesWon) + .Add("Polo games lost: " & ThePlayer.PoloGamesLost) + .Add("Sick castle parties hosted: " & ThePlayer.PartiesHosted) + .Add("Successful parties: " & ThePlayer.GoodPartiesHosted) + .Add("Unsuccessful parties: " & ThePlayer.BadPartiesHosted) + .Add("Film nights in with the " & ThePlayer.Partner & ": " & ThePlayer.FilmNights) + .Add("Good film nights: " & ThePlayer.GoodFilmNights) + .Add("Bad film nights: " & ThePlayer.GoodFilmNights) + .Add("--DECREES--") + .Add("Commoners executed: " & ThePlayer.CommonersExecuted) + If ThePlayer.AtWarWithFrance = True Then + .Add("At war with France: Of course!") + .Add("At war with France for: " & ThePlayer.AtWarWithFranceFor) + .Add("Lives lost in the unending Anglo-French War of " & ThePlayer.YearWarDeclared & ": " & ThePlayer.LivesLost) + ElseIf (ThePlayer.AtWarWithFrance = False) And (ThePlayer.WorldTaken = True) And (ThePlayer.AtWarWithFranceForDays > 0) Then + .Add("At war with France: France? Do you mean New Grimsby?") + .Add("At war with France for: " & ThePlayer.AtWarWithFranceFor) + .Add("Lives lost in the now-ended Anglo-French War of " & ThePlayer.YearWarDeclared & ": " & ThePlayer.LivesLost) + ElseIf (ThePlayer.AtWarWithFrance = False) And (ThePlayer.WorldTaken = True) And (ThePlayer.AtWarWithFranceForDays = 0) Then + .Add("At war with France: France? Do you mean New Grimsby?") + ElseIf (ThePlayer.AtWarWithFrance = False) And (ThePlayer.WorldTaken = False) Then + .Add("At war with France: No") + End If + If ThePlayer.MonumentsErected > 0 Then + If ThePlayer.SunkFalklands = False Then + .Add("Monuments erected on the Falklands: " & ThePlayer.MonumentsErected) + .Add("Weight of Falklands monuments: " & ThePlayer.FalklandMonumentsWeight & "kg") + ElseIf ThePlayer.SunkFalklands = True Then + .Add("Monuments erected on the former Falklands: " & ThePlayer.MonumentsErected) + .Add("Weight of Falklands monuments: Unknown") + End If + .Add("Argentine butthurt level: " & ArgieButthurt(ThePlayer.ArgieButthurtLevel)) + End If + If ThePlayer.UnifiedIreland = True Then + .Add("Ireland united: Finally") + .Add("Year Ireland unified: " & ThePlayer.YearIrelandUnified) + .Add("Attempts to unify Ireland: " & ThePlayer.AttemptstoUnifyIreland) + .Add("Lives lost attempting to unify Ireland: " & ThePlayer.LivesLostIreland) + .Add("Republican assassinations: " & ThePlayer.IRAAssassinations) + ElseIf ThePlayer.UnifiedIreland = False Then + .Add("Ireland united: No") + If ThePlayer.AttemptstoUnifyIreland > 0 Then + .Add("Attempts to unify Ireland: " & ThePlayer.AttemptstoUnifyIreland) + .Add("Lives lost attempting to unify Ireland: " & ThePlayer.LivesLostIreland) + End If + End If + .Add("Percentage of equine consuls: " & ThePlayer.PercentageofHorseConsuls & "%") + .Add("Percentage of Empire retaken: " & ThePlayer.PercentageEmpireRetaken & "%") + If ThePlayer.CanadaRetaken = 0 Then + .Add("Canada status: Free") + ElseIf ThePlayer.CanadaRetaken = 1 Then + .Add("Canada status: Under British control") + End If + + If ThePlayer.ColoniesRetaken = 0 Then + .Add("Thirteen Colonies status: Free") + ElseIf ThePlayer.ColoniesRetaken = 1 Then + .Add("Thirteen Colonies status: Under British control") + End If + If ThePlayer.CarribeanRetaken = 0 Then + .Add("Caribbean status: Free") + ElseIf ThePlayer.CarribeanRetaken = 1 Then + .Add("Caribbean status: Under British control") + End If + If ThePlayer.SouthAfricaRetaken = 0 Then + .Add("South Africa status: Free") + ElseIf ThePlayer.SouthAfricaRetaken = 1 Then + .Add("South Africa status: Under British control") + End If + If ThePlayer.OtherAfricaRetaken = 0 Then + .Add("Other bits of Africa status: Free") + ElseIf ThePlayer.OtherAfricaRetaken = 1 Then + .Add("Other bits of Africa status: Under British control") + End If + If ThePlayer.MiddleEastRetaken = 0 Then + .Add("Middle-East status: Free") + ElseIf ThePlayer.MiddleEastRetaken = 1 Then + .Add("Middle-East status: Under British control") + End If + If ThePlayer.IndiaRetaken = 0 Then + .Add("India status: Free") + ElseIf ThePlayer.IndiaRetaken = 1 Then + .Add("India status: Under British control") + End If + If ThePlayer.OtherAsiaRetaken = 0 Then + .Add("Other bits of Asia status: Free") + ElseIf ThePlayer.OtherAsiaRetaken = 1 Then + .Add("Other bits of Asia status: Under British control") + End If + If ThePlayer.AustraliaRetaken = 0 Then + .Add("Australia status: Free") + ElseIf ThePlayer.AustraliaRetaken = 1 Then + .Add("Australia status: Under British control") + End If + If ThePlayer.AttemptstoRetakeEmpire > 0 Then + .Add("Attempts to retake Empire: " & ThePlayer.AttemptstoRetakeEmpire) + .Add("Lives lost retaking Empire: " & ThePlayer.LivesLostEmpire) + End If + If ThePlayer.PercentageEmpireRetaken = 100 Then + .Add("Year Empire retaken: " & ThePlayer.YearEmpireRetaken) + If ThePlayer.WorldTaken = 1 Then + .Add("World taken: For England") + ElseIf ThePlayer.WorldTaken = 0 Then + .Add("World taken: Working on it") + End If + .Add("Attempts to take over the world: " & ThePlayer.AttemptstoTakeWorld) + .Add("Lives lost taking over the world: " & ThePlayer.LivesLostTakeWorld) + If ThePlayer.WorldTaken = 1 Then + .Add("Year world taken over: " & ThePlayer.YearWorldTaken) + End If + End If + .Add("Churches formed: " & ThePlayer.ChurchesFormed) + If ThePlayer.MadeofGlass = True Then + .Add("Gone snooker loopy: Yes") + ElseIf ThePlayer.MadeofGlass = False Then + .Add("Gone snooker loopy: Not completely") + End If + .Add("Wives beheaded: " & ThePlayer.WivesBeheaded) + .Add("Things declared punishable by death: " & ThePlayer.ThingsDeclaredPunishableByDeath) + End With + End Sub + + Private Sub btnBack_Click(sender As Object, e As EventArgs) Handles btnBack.Click + DefaultView.Show() + Me.Close() + End Sub +End Class \ No newline at end of file diff --git a/Royalty Simulator 2013/[Controls].vb b/Royalty Simulator 2013/[Controls].vb new file mode 100644 index 0000000..10d55d4 --- /dev/null +++ b/Royalty Simulator 2013/[Controls].vb @@ -0,0 +1,3 @@ +Public Class Form1 + +End Class \ No newline at end of file