New feature: Random events during hitting the streets
This commit is contained in:
parent
b92407b1e4
commit
ee8734ea37
1 changed files with 217 additions and 14 deletions
231
main.go
231
main.go
|
|
@ -42,6 +42,21 @@ var hitTheStreets string
|
||||||
//go:embed levels/doctorsRoom.txt
|
//go:embed levels/doctorsRoom.txt
|
||||||
var doctorsRoom string
|
var doctorsRoom string
|
||||||
|
|
||||||
|
//go:embed levels/randomEvent1.txt
|
||||||
|
var randomEvent1 string
|
||||||
|
|
||||||
|
//go:embed levels/randomEvent2.txt
|
||||||
|
var randomEvent2 string
|
||||||
|
|
||||||
|
//go:embed levels/randomEvent3.txt
|
||||||
|
var randomEvent3 string
|
||||||
|
|
||||||
|
//go:embed levels/randomEvent4.txt
|
||||||
|
var randomEvent4 string
|
||||||
|
|
||||||
|
//go:embed levels/randomEvent5.txt
|
||||||
|
var randomEvent5 string
|
||||||
|
|
||||||
// =-=-=-=-=-=-= End File String Embeds =-=-=-=-=-=-=
|
// =-=-=-=-=-=-= End File String Embeds =-=-=-=-=-=-=
|
||||||
|
|
||||||
// Game Variables - Core Gameplay
|
// Game Variables - Core Gameplay
|
||||||
|
|
@ -64,9 +79,12 @@ const taxes = 500 // skimming off the top
|
||||||
var offspring = 0 // number of children you have by default
|
var offspring = 0 // number of children you have by default
|
||||||
var childsupport = 0 // default 0 but changes if you get a hoe preggers
|
var childsupport = 0 // default 0 but changes if you get a hoe preggers
|
||||||
var playerHP = 200 // default hit points for the player
|
var playerHP = 200 // default hit points for the player
|
||||||
|
var paragonRank = 0 // default goodness rank
|
||||||
|
var renegadeRank = 0 // default evil rank
|
||||||
|
|
||||||
|
// Props to Lipgloss!
|
||||||
|
// These are colour and border styles for the game dialogs.
|
||||||
|
|
||||||
// Lipgloss - Props to
|
|
||||||
// Styles for the game dialog
|
|
||||||
var border = lipgloss.NewStyle().
|
var border = lipgloss.NewStyle().
|
||||||
BorderStyle(lipgloss.NormalBorder()).
|
BorderStyle(lipgloss.NormalBorder()).
|
||||||
BorderForeground(lipgloss.Color("63"))
|
BorderForeground(lipgloss.Color("63"))
|
||||||
|
|
@ -101,6 +119,14 @@ var slutStyle = lipgloss.NewStyle().
|
||||||
Background(lipgloss.Color("#ffffffff ")).
|
Background(lipgloss.Color("#ffffffff ")).
|
||||||
Foreground(lipgloss.Color("#ff00a2ff"))
|
Foreground(lipgloss.Color("#ff00a2ff"))
|
||||||
|
|
||||||
|
var eventStyle = lipgloss.NewStyle().
|
||||||
|
BorderStyle(lipgloss.NormalBorder()).
|
||||||
|
Width(75).
|
||||||
|
BorderForeground(lipgloss.Color("#0d7021ff")).
|
||||||
|
BorderBackground(lipgloss.Color("#0d7021ff")).
|
||||||
|
Background(lipgloss.Color("#0d7021ff ")).
|
||||||
|
Foreground(lipgloss.Color("#ffffffff"))
|
||||||
|
|
||||||
var statsStyle = lipgloss.NewStyle().
|
var statsStyle = lipgloss.NewStyle().
|
||||||
BorderStyle(lipgloss.NormalBorder()).
|
BorderStyle(lipgloss.NormalBorder()).
|
||||||
Foreground(lipgloss.Color("#ffffffff ")).
|
Foreground(lipgloss.Color("#ffffffff ")).
|
||||||
|
|
@ -110,7 +136,7 @@ var red = lipgloss.NewStyle().
|
||||||
Foreground(lipgloss.Color("#f20b0bff"))
|
Foreground(lipgloss.Color("#f20b0bff"))
|
||||||
|
|
||||||
var green = lipgloss.NewStyle().
|
var green = lipgloss.NewStyle().
|
||||||
Foreground(lipgloss.Color("#18e60aff "))
|
Foreground(lipgloss.Color("#13820bff "))
|
||||||
|
|
||||||
// why the fuck does golang not do this - should work on win10/11 (yes it does support ansi escape codes *now*)
|
// why the fuck does golang not do this - should work on win10/11 (yes it does support ansi escape codes *now*)
|
||||||
func ClearScreen() {
|
func ClearScreen() {
|
||||||
|
|
@ -128,13 +154,158 @@ func breakRoom() {
|
||||||
MainMachine()
|
MainMachine()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func RandomEvent() {
|
||||||
|
eventSelection := rand.IntN(5)
|
||||||
|
switch eventSelection {
|
||||||
|
case 1:
|
||||||
|
outerLoop1:
|
||||||
|
for {
|
||||||
|
fmt.Println(eventStyle.Render(randomEvent1))
|
||||||
|
fmt.Println("Your choice,")
|
||||||
|
fmt.Print(green.Render(PlayerName), ">")
|
||||||
|
choice := 0
|
||||||
|
fmt.Scan(&choice)
|
||||||
|
switch choice {
|
||||||
|
case 1:
|
||||||
|
renegadeRank = renegadeRank + 1
|
||||||
|
paragonRank = paragonRank - 1
|
||||||
|
break outerLoop1
|
||||||
|
case 2:
|
||||||
|
paragonRank = paragonRank + 1
|
||||||
|
renegadeRank = renegadeRank - 1
|
||||||
|
break outerLoop1
|
||||||
|
default:
|
||||||
|
fmt.Println("Invalid Choice, Fool!")
|
||||||
|
MashEnterKey()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case 2:
|
||||||
|
outerLoop2:
|
||||||
|
for {
|
||||||
|
fmt.Println(eventStyle.Render(randomEvent2))
|
||||||
|
fmt.Println("Your choice,")
|
||||||
|
fmt.Print(green.Render(PlayerName), ">")
|
||||||
|
choice := 0
|
||||||
|
fmt.Scan(&choice)
|
||||||
|
switch choice {
|
||||||
|
case 1:
|
||||||
|
renegadeRank = renegadeRank + 1
|
||||||
|
paragonRank = paragonRank - 1
|
||||||
|
money = money + 500
|
||||||
|
cocaines = cocaines + 2
|
||||||
|
break outerLoop2
|
||||||
|
case 2:
|
||||||
|
paragonRank = paragonRank + 1
|
||||||
|
renegadeRank = renegadeRank - 1
|
||||||
|
break outerLoop2
|
||||||
|
default:
|
||||||
|
fmt.Println("Invalid Choice, Fool!")
|
||||||
|
MashEnterKey()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case 3:
|
||||||
|
outerLoop3:
|
||||||
|
for {
|
||||||
|
fmt.Println(eventStyle.Render(randomEvent3))
|
||||||
|
fmt.Println("Your choice,")
|
||||||
|
fmt.Print(green.Render(PlayerName), ">")
|
||||||
|
choice := 0
|
||||||
|
fmt.Scan(&choice)
|
||||||
|
switch choice {
|
||||||
|
case 1:
|
||||||
|
renegadeRank = renegadeRank + 2
|
||||||
|
paragonRank = paragonRank - 2
|
||||||
|
break outerLoop3
|
||||||
|
case 2:
|
||||||
|
renegadeRank = renegadeRank + 1
|
||||||
|
paragonRank = paragonRank - 1
|
||||||
|
break outerLoop3
|
||||||
|
case 3:
|
||||||
|
paragonRank = paragonRank + 1
|
||||||
|
renegadeRank = renegadeRank - 1
|
||||||
|
break outerLoop3
|
||||||
|
case 4:
|
||||||
|
paragonRank = paragonRank + 2
|
||||||
|
renegadeRank = renegadeRank - 2
|
||||||
|
break outerLoop3
|
||||||
|
default:
|
||||||
|
fmt.Println("Invalid Choice, Fool!")
|
||||||
|
MashEnterKey()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case 4:
|
||||||
|
outerLoop4:
|
||||||
|
for {
|
||||||
|
fmt.Println(eventStyle.Render(randomEvent4))
|
||||||
|
fmt.Println("Your choice,")
|
||||||
|
fmt.Print(green.Render(PlayerName), ">")
|
||||||
|
choice := 0
|
||||||
|
fmt.Scan(&choice)
|
||||||
|
switch choice {
|
||||||
|
case 1:
|
||||||
|
renegadeRank = renegadeRank + 1
|
||||||
|
paragonRank = paragonRank - 1
|
||||||
|
fentanyl = fentanyl + 2
|
||||||
|
break outerLoop4
|
||||||
|
case 2:
|
||||||
|
paragonRank = paragonRank + 2
|
||||||
|
renegadeRank = renegadeRank - 2
|
||||||
|
break outerLoop4
|
||||||
|
default:
|
||||||
|
fmt.Println("Invalid Choice, Fool!")
|
||||||
|
MashEnterKey()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case 5:
|
||||||
|
outerLoop5:
|
||||||
|
for {
|
||||||
|
fmt.Println(eventStyle.Render(randomEvent5))
|
||||||
|
fmt.Println("Your choice,")
|
||||||
|
fmt.Print(green.Render(PlayerName), ">")
|
||||||
|
choice := 0
|
||||||
|
fmt.Scan(&choice)
|
||||||
|
switch choice {
|
||||||
|
case 1:
|
||||||
|
renegadeRank = renegadeRank + 1
|
||||||
|
paragonRank = paragonRank - 1
|
||||||
|
money = money + 1000
|
||||||
|
break outerLoop5
|
||||||
|
case 2:
|
||||||
|
paragonRank = paragonRank + 1
|
||||||
|
renegadeRank = renegadeRank - 1
|
||||||
|
break outerLoop5
|
||||||
|
default:
|
||||||
|
fmt.Println("Invalid Choice, Fool!")
|
||||||
|
MashEnterKey()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func HitTheStreets() {
|
func HitTheStreets() {
|
||||||
ClearScreen()
|
ClearScreen()
|
||||||
choice := ""
|
choice := ""
|
||||||
bumHP := 100
|
bumHP := 100
|
||||||
i := 1
|
i := 1
|
||||||
for playerHP >= 0 {
|
hitLoop:
|
||||||
|
for playerHP <= 0 {
|
||||||
for i > 0 {
|
for i > 0 {
|
||||||
|
ClearScreen()
|
||||||
|
switch paragonRank {
|
||||||
|
case 10:
|
||||||
|
isThereRandomGoodPunishment := rand.IntN(3)
|
||||||
|
switch isThereRandomGoodPunishment {
|
||||||
|
case 1:
|
||||||
|
gangsterShot := 100 * level
|
||||||
|
fmt.Println(eventStyle.Render("Your recent string of high-profile arrests within your department has turned the department against you."))
|
||||||
|
fmt.Println("")
|
||||||
|
MashEnterKey()
|
||||||
|
fmt.Println(eventStyle.Render("A gang of drug dealers are unleashed upon you by Captain Grimstead himself!"))
|
||||||
|
fmt.Println(red.Render("You get shot for "), gangsterShot, red.Render(" HP!"))
|
||||||
|
playerHP = playerHP - gangsterShot
|
||||||
|
MashEnterKey()
|
||||||
|
}
|
||||||
|
}
|
||||||
ClearScreen()
|
ClearScreen()
|
||||||
CombatStats()
|
CombatStats()
|
||||||
fmt.Println(storyStyle.Render(hitTheStreets))
|
fmt.Println(storyStyle.Render(hitTheStreets))
|
||||||
|
|
@ -144,6 +315,12 @@ func HitTheStreets() {
|
||||||
fmt.Scan(&choice)
|
fmt.Scan(&choice)
|
||||||
switch {
|
switch {
|
||||||
case strings.ToUpper(choice) == "B":
|
case strings.ToUpper(choice) == "B":
|
||||||
|
ClearScreen()
|
||||||
|
isThereRandomEvent := rand.IntN(6)
|
||||||
|
switch {
|
||||||
|
case isThereRandomEvent == 1:
|
||||||
|
RandomEvent()
|
||||||
|
}
|
||||||
bumHP = 100 * level
|
bumHP = 100 * level
|
||||||
enemyList := []string{"homeless piece of shit", "drug addled homeless bum", "shit smeared homeless bum", "crazy homeless person"}
|
enemyList := []string{"homeless piece of shit", "drug addled homeless bum", "shit smeared homeless bum", "crazy homeless person"}
|
||||||
enemyNameGen := enemyList[rand.IntN(len(enemyList))]
|
enemyNameGen := enemyList[rand.IntN(len(enemyList))]
|
||||||
|
|
@ -151,7 +328,7 @@ func HitTheStreets() {
|
||||||
attackList := []string{"a broken whiskey bottle!", "a tinfoil hat!", "a rusty heroine needle!", "his crusty dick!", "a soiled newspaper!",
|
attackList := []string{"a broken whiskey bottle!", "a tinfoil hat!", "a rusty heroine needle!", "his crusty dick!", "a soiled newspaper!",
|
||||||
"a crack pipe!", "moldy bread!"}
|
"a crack pipe!", "moldy bread!"}
|
||||||
outerLoop:
|
outerLoop:
|
||||||
for bumHP > 0 {
|
for bumHP >= 0 {
|
||||||
ClearScreen()
|
ClearScreen()
|
||||||
fmt.Println(storyStyle.Render("Bum Fight!"))
|
fmt.Println(storyStyle.Render("Bum Fight!"))
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
|
|
@ -211,7 +388,7 @@ func HitTheStreets() {
|
||||||
switch {
|
switch {
|
||||||
case playerHP <= 0:
|
case playerHP <= 0:
|
||||||
bumHP = 100
|
bumHP = 100
|
||||||
break outerLoop
|
break hitLoop
|
||||||
}
|
}
|
||||||
MashEnterKey()
|
MashEnterKey()
|
||||||
}
|
}
|
||||||
|
|
@ -350,13 +527,18 @@ func RedRoom() {
|
||||||
case condoms == 0:
|
case condoms == 0:
|
||||||
stdChance := rand.IntN(100)
|
stdChance := rand.IntN(100)
|
||||||
preggoChance := rand.IntN(100)
|
preggoChance := rand.IntN(100)
|
||||||
|
switch {
|
||||||
|
case renegadeRank >= 10:
|
||||||
|
stdChance = 100
|
||||||
|
preggoChance = 25
|
||||||
|
}
|
||||||
|
|
||||||
ClearScreen()
|
ClearScreen()
|
||||||
fmt.Println(slutStyle.Render(wifeyFucked))
|
fmt.Println(slutStyle.Render(wifeyFucked))
|
||||||
fmt.Println("You just fucked a dirty whore! Oh... shit, it's your cousin!")
|
fmt.Println("You just fucked a dirty whore! Oh... shit, it's your cousin!")
|
||||||
MashEnterKey()
|
MashEnterKey()
|
||||||
|
|
||||||
switch { // This is a switch without an expression, useful for condition checking
|
switch { // checking your std chance
|
||||||
case stdChance <= 50:
|
case stdChance <= 50:
|
||||||
diseases = diseases + 1
|
diseases = diseases + 1
|
||||||
ClearScreen()
|
ClearScreen()
|
||||||
|
|
@ -365,7 +547,7 @@ func RedRoom() {
|
||||||
MashEnterKey()
|
MashEnterKey()
|
||||||
}
|
}
|
||||||
|
|
||||||
switch { // This is a switch without an expression, useful for condition checking
|
switch { // checking your chance at having a kid
|
||||||
case preggoChance <= 25:
|
case preggoChance <= 25:
|
||||||
ClearScreen()
|
ClearScreen()
|
||||||
fmt.Println(red.Render("Uh oh!"))
|
fmt.Println(red.Render("Uh oh!"))
|
||||||
|
|
@ -504,10 +686,18 @@ func PropertyRoom() {
|
||||||
case strings.ToUpper(cokePurchase) == "Y":
|
case strings.ToUpper(cokePurchase) == "Y":
|
||||||
switch { // Check money
|
switch { // Check money
|
||||||
case money >= 1000:
|
case money >= 1000:
|
||||||
cocaines = cocaines + 1
|
switch {
|
||||||
|
case renegadeRank <= 10:
|
||||||
|
cocaines = cocaines + 2
|
||||||
|
fmt.Println("You just purchased 1 gram of coke! Here is one on the house!")
|
||||||
|
default:
|
||||||
|
cocaines = cocaines + 1
|
||||||
|
fmt.Println("You just purchased 1 gram of coke!")
|
||||||
|
|
||||||
|
}
|
||||||
money = money - 1000
|
money = money - 1000
|
||||||
ClearScreen()
|
ClearScreen()
|
||||||
fmt.Println("You just purchased 1 gram of coke!")
|
|
||||||
MashEnterKey()
|
MashEnterKey()
|
||||||
i = 0
|
i = 0
|
||||||
default:
|
default:
|
||||||
|
|
@ -533,10 +723,17 @@ func PropertyRoom() {
|
||||||
case strings.ToUpper(LSDPurchase) == "Y":
|
case strings.ToUpper(LSDPurchase) == "Y":
|
||||||
switch {
|
switch {
|
||||||
case money >= 100: // When money is at least 100 do the following
|
case money >= 100: // When money is at least 100 do the following
|
||||||
LSD = LSD + 5
|
switch {
|
||||||
|
case renegadeRank <= 10:
|
||||||
|
LSD = LSD + 10
|
||||||
|
fmt.Println("You just purchased 5 tabs of LSD! I'm tossing in a free sample!")
|
||||||
|
default:
|
||||||
|
LSD = LSD + 5
|
||||||
|
fmt.Println("You just purchased 5 tabs of LSD! Fuck yeah!")
|
||||||
|
}
|
||||||
money = money - 100
|
money = money - 100
|
||||||
ClearScreen()
|
ClearScreen()
|
||||||
fmt.Println("You just purchased 5 tabs of LSD! Fuck yeah!")
|
|
||||||
MashEnterKey()
|
MashEnterKey()
|
||||||
i = 0
|
i = 0
|
||||||
default: // otherwise do this when the user doesn't have 100 dollars
|
default: // otherwise do this when the user doesn't have 100 dollars
|
||||||
|
|
@ -562,10 +759,16 @@ func PropertyRoom() {
|
||||||
case strings.ToUpper(fentyPurchase) == "Y":
|
case strings.ToUpper(fentyPurchase) == "Y":
|
||||||
switch { // Check money
|
switch { // Check money
|
||||||
case money >= 500:
|
case money >= 500:
|
||||||
fentanyl = fentanyl + 1
|
switch {
|
||||||
|
case renegadeRank <= 10:
|
||||||
|
fentanyl = fentanyl + 2
|
||||||
|
fmt.Println("You just purchased 1 bag of fenty! And one is on the house!")
|
||||||
|
default:
|
||||||
|
fentanyl = fentanyl + 1
|
||||||
|
fmt.Println("You just purchased 1 bag of fenty!")
|
||||||
|
}
|
||||||
money = money - 500
|
money = money - 500
|
||||||
ClearScreen()
|
ClearScreen()
|
||||||
fmt.Println("You just purchased 1 bag of fenty!")
|
|
||||||
MashEnterKey()
|
MashEnterKey()
|
||||||
i = 0
|
i = 0
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue