' MirageBot VBScript
'/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
' GAMBLE SCRIPT
' By: Raylu
' Converter: EKLIPz
' Updated by: Chriso for 9.4+
'\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Public gamble
    Set gamble = CreateObject("Scripting.Dictionary")
    Function money(player)
	curItem = gamble.Item(player)
    money = Split(curItem)(0)
End Function

Function bet(player)
    bet = Split(gamble.Item(player))(1)
End Function

'// Return Script Information
Sub Script(Name, Major, Minor, Build, Author, Commands, Description)
	Name = "Gambler"
	Major = 1
	Minor = 1
	Build = 0
	Author = "Chriso"
	Commands = "bet, gamble, money, roll"
	Description = "A fun little money gambling game."
End Sub

Sub Event_Load()
	CreateCommand "bet", "Gamble", "Command_Bet", "", "amount", "Bet an amount", 2, True
	CreateCommand "gamble", "Gamble", "Command_Gamble", "", "", "Request to be included in gamble game", 2, True
	CreateCommand "money", "Gamble", "Command_Money", "", "", "Return how much money you have", 2, True
	CreateCommand "roll", "Gamble", "Command_Roll", "", "", "Roll the dice", 2, True
End Sub

Sub Command_Gamble(CS)
	If Not gamble.Exists(CS.Username) Then
		gamble.Add CS.Username, "20 betting"
	Else
		curitem = gamble.Item(CS.Username)
		gamble.Item(CS.Username) = money(CS.Username) & " betting"
	End If
	CS.Reply CS.Username & ", please place your bet: " & Config.Trigger & "bet [amount]. You have $" & money(CS.Username) & "."
End Sub

Sub Command_Bet(CS)
	If Not gamble.Exists(CS.Username) Then
		CS.Reply CS.Username & ", you must type " & Config.Trigger & "gamble first."
	Else
		betamt = Mid(CS.Message, 2)
		If CS.Message > 0 And money(CS.Username) >= betamt Then
			gamble.Item(CS.Username) = money(CS.Username) & " " & betamt
			CS.Reply CS.Username & ", you may now type " & Config.Trigger & "roll"
		Else
			CS.Reply CS.Username & ", that is an invalid bet!"
		End If
	End If
End Sub

Sub Command_Roll(CS)
	If Not gamble.Exists(CS.Username) Then
		CS.Reply CS.Username & ", you must type " & Config.Trigger & "gamble first."
	Else
		If bet(CS.Username) = "betting" Then
			CS.Reply CS.Username & ", you must place your bet first."
		Else
			Randomize
			Dim dice1, dice2, dice3
			dice1 = Int(Rnd() * 6) + 1
			dice2 = Int(Rnd() * 6) + 1
			dice3 = Int(Rnd() * 6) + 1
			CS.Reply CS.Username & " rolled " & dice1 & ", " & dice2 & ", and " & dice3 &"."
			If dice1 = dice2 Or dice2 = dice3 Or dice3 = dice1 Then
			   newmoneyamt = CLng(money(CS.Username)) + CLng(bet(CS.Username))
			   gamble.Item(CS.Username) = newmoneyamt & " " & bet(CS.Username)
			   CS.Reply CS.Username & " has won $" & bet(CS.Username) & "! You now have $" & newmoneyamt & "!"
			Else
				newmoneyamt = CLng(money(CS.Username) - bet(CS.Username))
				gamble.Item(CS.Username) = newmoneyamt & " " & bet(CS.Username)
				CS.Reply CS.Username & " has lost $" & bet(CS.Username) & ". You now have $" & newmoneyamt & "!"
				If newmoneyamt <= 0 Then
					gamble.Remove CS.Username
					CS.Reply CS.Username & " is broke! You must type " & Config.Trigger & "gamble to play again."
				ElseIf bet(CS.Username) > newmoneyamt Then
					curitem = gamble.Item(CS.Username)
					gamble.Item(CS.Username) = Split(curitem)(0) & " betting"
					CS.Reply CS.Username & ", your bet has been reset because you do not have enough money to back up your bet."
				End If
			End If
		End If
	End If
End Sub

Sub Command_Money(CS)
	If gamble.Exists(CS.Username) Then
		curitem = gamble.Item(CS.Username)
		If Split(curitem)(1) = "betting" Then
			CS.Reply "You have $" & Split(curitem)(0) & ".",,1
		Else
			CS.Reply "You have $" & Split(curitem)(0) & " and are betting $" & Split(curitem)(1) & ".",,1
		End If
	End If
End Sub