Tweaks luck-related values for slots and lotto tickets (#32707)

* Update lotto.dm

* Update slot_machine.dm

* Update lotto.dm

* Update slot_machine.dm

* Update slot_machine.dm

* Update lotto.dm

* Update slot_machine.dm

* Update slot_machine.dm

* Update lotto.dm
This commit is contained in:
Hinaichigo
2022-06-06 22:33:24 -04:00
committed by GitHub
parent cc75c1d055
commit f4ba168666
2 changed files with 8 additions and 14 deletions

View File

@@ -109,7 +109,9 @@
//Take luck into account. //Take luck into account.
if(spinner) if(spinner)
var/spinnerluck = spinner.luck() var/spinnerluck = spinner.luck()
var/jostlepower = rand(25,3000) var/jostlepower = 25
for(var/i in 1 to 3)
jostlepower = max(jostlepower, rand(25, i * 1000))
var/jostles = min(round(abs(spinnerluck), jostlepower) / jostlepower, 1000) var/jostles = min(round(abs(spinnerluck), jostlepower) / jostlepower, 1000)
while(jostles) while(jostles)
if(jostle(spinnerluck > 0)) if(jostle(spinnerluck > 0))

View File

@@ -9,6 +9,7 @@
var/winnings = 0 var/winnings = 0
var/list/prizelist = list(100000,50000,10000,5000,1000,500,250,100,50,20,10,5,4,3,2,1) var/list/prizelist = list(100000,50000,10000,5000,1000,500,250,100,50,20,10,5,4,3,2,1)
var/list/problist = list(0.0001, 0.0002, 0.001, 0.002, 0.01, 0.02, 0.04, 0.2, 1, 2.5, 5, 10, 12.5, 17, 20, 25) var/list/problist = list(0.0001, 0.0002, 0.001, 0.002, 0.01, 0.02, 0.04, 0.2, 1, 2.5, 5, 10, 12.5, 17, 20, 25)
var/tuning_value = 1/5 //Used to adjust expected values.
/obj/item/toy/lotto_ticket/New() /obj/item/toy/lotto_ticket/New()
..() ..()
@@ -16,14 +17,13 @@
pixel_x = rand(-9, 9) * PIXEL_MULTIPLIER pixel_x = rand(-9, 9) * PIXEL_MULTIPLIER
/obj/item/toy/lotto_ticket/proc/scratch(var/input_prize_multiplier, var/mob/user) /obj/item/toy/lotto_ticket/proc/scratch(var/input_prize_multiplier, var/mob/user)
var/tuning_value = 1/5 //Used to adjust expected values.
var/profit = 0 var/profit = 0
var/luck = user?.luck() var/luck = user?.luck()
for(var/prize = 1 to problist.len) for(var/prize = 1 to problist.len)
var/thisprob = problist[prize] var/thisprob = problist[prize]
//Take luck into account. //Take luck into account.
if(user ? user.lucky_prob(thisprob, luckfactor = 1/5000, maxskew = 25, ourluck = luck) : prob(thisprob)) if(user ? user.lucky_prob(thisprob, luckfactor = 1/12000, maxskew = 49.9, ourluck = luck) : prob(thisprob))
profit = prizelist[prize]*input_prize_multiplier*tuning_value profit = prizelist[prize] * prize_multiplier * tuning_value
return profit return profit
//Flash code taken from Blinder //Flash code taken from Blinder
@@ -102,23 +102,15 @@
icon_state = "lotto_3" icon_state = "lotto_3"
prize_multiplier = 50 //EV 45.50, ER -4.50 prize_multiplier = 50 //EV 45.50, ER -4.50
//Emag card //Emag card
/obj/item/toy/lotto_ticket/supermatter_surprise /obj/item/toy/lotto_ticket/supermatter_surprise
name = "Supermatter Surprise lottery ticket" name = "Supermatter Surprise lottery ticket"
desc = "An extremely expensive scratch-off lottery ticket. Guaranteed win of up to 5,000,000 credits! Experimental film material - use at your own risk!" desc = "An extremely expensive scratch-off lottery ticket. Guaranteed win of up to 5,000,000 credits! Experimental film material - use at your own risk!"
icon_state = "lotto_4" icon_state = "lotto_4"
prize_multiplier = 50
tuning_value = 1
var/flashed = FALSE var/flashed = FALSE
/obj/item/toy/lotto_ticket/supermatter_surprise/scratch()
var/input_prize_multiplier = 50
var/profit = 0
while(!profit)
for(var/prize = 1 to problist.len)
if(prob(problist[prize]))
profit = prizelist[prize]*input_prize_multiplier
return profit
/obj/item/toy/lotto_ticket/supermatter_surprise/attackby(obj/item/weapon/S, mob/user) /obj/item/toy/lotto_ticket/supermatter_surprise/attackby(obj/item/weapon/S, mob/user)
..() ..()
if(!flashed) if(!flashed)