Skip to content

Instantly share code, notes, and snippets.

/owr.rb Secret

Created January 6, 2016 14:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/2827d4ab56d9a0c82853 to your computer and use it in GitHub Desktop.
Save anonymous/2827d4ab56d9a0c82853 to your computer and use it in GitHub Desktop.
Or*l Wh*re Roulette
#!ruby -ws
#http://rollnfap.tumblr.com/image/129394749363
def d
rand(10)
end
def d19
rand(1..9)
end
A = if defined?($a)
$a.to_i
else
puts "Setting random A. If that's not what you want, use: ruby owr.rb -a=3"
1 + d
end
p A: A
class Roll < Struct.new(:x, :y, :z, :x0, :y0)
def initialize
self.x = d
self.y = d
self.z = d
self.x = self.y = self.z = 0 if x == y && y == z
self.x0 = [d19, d19]
self.y0 = (1..9).to_a.shuffle.first(3)
end
Duties = [
'[Choose 2 but only charge for cheaper one]',
'Suck for 5min',
'Suck for 10min',
'Suck for 5min, deepthroat every 30s',
'Deepthroat 20x',
'Deepthroat 40x',
'Deepthroat 10x in 1min',
'Deepthroat 20x in 90s, or deepthroat 100x',
'Suck for 5min, then deepthroat 20x',
'Suck for 10min, then deepthroat 40x',
]
def num_duty
res = [x]
res << y if y == z
res += x0 if res.include?(0)
res = (1..res.max).to_a if z == 0
res
end
def duty
duties = num_duty.map {|x| Duties[x]}
duties.map! {|duty| duty.gsub(/(\d+)(min|x)/) {"#{($1.to_i * 2)}#{$2}"}} if z == 7
duties.map! {|duty| duty.gsub(/(\d+)(min|x)/) {"#{($1.to_i * 3)}#{$2}"}} if z == 8
duties * "\n - "
end
Kinks = [
'[Pick three]',
'Wear nippleclamps',
'Wear blindfold',
'Wear collar',
'Smear everything that comes out of your mouth on your face',
'After doing your duty, slap your face with the dildo 30 times',
'Spank your ass 50 times',
'Moan and beg for more',
'Wear nippleclamps & blindfold',
'Wear nippleclamps & collar',
]
def num_kink
res = [y]
res << x if x == z
res += y0 if res.include?(0)
res
end
def kink
num_kink.map { |yy| Kinks[yy] }.flatten * "\n - "
end
Twists = [
'Gangbang: X roll is cumulative',
nil, nil, nil, nil, nil,
'Cheap escape: do not collect money for this roll', #6
'He brings his friend: do double amount of work', #7
'His favorite bitch: do triple amount of work, get paid double', #8
'Your pimp comes around: give him half of your money', #9
]
def twist
res = [z]
res << x if x == y
res.map {|x| Twists[x]} * "\n - "
end
Xmoney = [1000, 20, 20, 30, 20, 35, 40, 70, 40, 55]
Ymoney = [0, 10, 10, 20, 40, 40, 10, 10, 20, 30]
def money
return 0 if 6 == z
moneys = num_duty.map {|x| Xmoney[x]}
moneys = [moneys.min] if num_duty.include?(0)
moneys += num_kink.map {|y| Ymoney[y] }
moneys.map! { |n| n * 2 } if 8 == z
moneys.inject(0, :+)
end
def take_half?
9 == z
end
def take_all?
0 == x + y + z
end
end
money = 0
def wait_for_enter
puts "Press enter..."
gets
end
while money < A * 100
roll = Roll.new
puts "Your roll is: " + roll.inspect
puts "Your duty: \n - " + roll.duty
puts "Your kink: \n - " + roll.kink
puts "Your twist: \n - " + roll.twist if roll.twist
puts "You get $#{roll.money}"
money += roll.money
money /= 2 if roll.take_half?
money = 0 if roll.take_all?
puts "You now have $#{money} and your target is $#{A * 100}"
wait_for_enter
end
b = d
puts "Your A is #{A} and B is #{b}"
if b < A
puts "You can cum!"
else
puts "Denied. Try again if you want..."
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment