Compare commits

...

3 Commits

Author SHA1 Message Date
d119e71116 Only reseed the door at the beginning of the day/night
It's weird that people teleport when you open the menu twice in a row
2023-12-17 10:15:14 +01:00
b439246d6d Better constant and random management in door/summon
Using a local __choice like in map to avoid unnecessary inconstantness
This is same-behavior, but I would be in favor of reseeding only at the beginning of the day/night instead of every time the summon menu is opened (next commit)
2023-12-17 10:13:58 +01:00
ea138023c7 Simpler random reseeding
Constructing an entire new random object is not necessary, calling seed is enough
2023-12-17 10:13:14 +01:00
2 changed files with 71 additions and 60 deletions

View File

@ -86,7 +86,8 @@ label day_start:
# Randomisers
random_gold = renpy.random.randint(8, 40)
map_randomobj = renpy.random.Random()
map_randomobj.seed()
door_randomobj.seed()
# Send salary every 7th day
if game.day % 7 == 0:
@ -194,7 +195,8 @@ label night_start:
# Randomisers
random_gold = renpy.random.randint(8, 40)
map_randomobj = renpy.random.Random()
map_randomobj.seed()
door_randomobj.seed()
# Update map locations
call set_all_map_locations

View File

@ -3,28 +3,29 @@
####################################
default summon_show_busy = True
default door_randomobj = renpy.random.Random()
label summon:
$ gui.in_context("summon_menu")
jump main_room_menu
init python:
def __choice(seq):
seed = door_randomobj.getstate()
rv = door_randomobj.choice(seq)
door_randomobj.setstate(seed)
return rv
label summon_menu(xx=723, yy=90):
$ renpy.dynamic(
map_transcript_loc = {
"library": "Library",
"room_g": "Gryffindor Dormitory",
"room_s": "Slytherin Dormitory",
"room_r": "Ravenclaw Dormitory",
"room_h": "Hufflepuff Dormitory",
"great_hall": "Great Hall",
"courtyard": "Courtyard",
"forest": "Forest",
"greenhouse": "Greenhouse",
"defense": "D.A.D.A Classroom",
"training_grounds": "Training Grounds",
"Lake": "Lake",
"randomstudent": renpy.random.choice((
define map_transcript_loc = dict(
library = "Library",
room_g = "Gryffindor Dormitory",
room_s = "Slytherin Dormitory",
room_r = "Ravenclaw Dormitory",
room_h = "Hufflepuff Dormitory",
great_hall = "Great Hall",
courtyard = "Courtyard",
forest = "Forest",
greenhouse = "Greenhouse",
defense = "D.A.D.A Classroom",
training_grounds = "Training Grounds",
Lake = "Lake",
randomstudent = functools.partial(__choice, (
"Classroom",
"Bathroom",
"Hagrid's Hut",
@ -32,7 +33,7 @@ label summon_menu(xx=723, yy=90):
"Mafkin's Store",
"Broom Cupboard",
"Attic")),
"randomsnape": renpy.random.choice((
randomsnape = functools.partial(__choice, (
"Classroom",
"Boathouse",
"Bathroom",
@ -48,7 +49,7 @@ label summon_menu(xx=723, yy=90):
"Staircase",
"Behind your door",
"Room of Doom")),
"randomtonks": renpy.random.choice((
randomtonks = functools.partial(__choice, (
"Classroom",
"Bathroom",
"Hall",
@ -57,7 +58,7 @@ label summon_menu(xx=723, yy=90):
"Hufflepuff Dormitory",
"Ravenclaw Dormitory",
"Training Grounds",
"Tonks' Room",
"Tonks's Room",
"Quidditch Pitch",
"Infirmary",
"Sex Dungeon",
@ -66,8 +67,15 @@ label summon_menu(xx=723, yy=90):
"Lake",
"Greenhouse",
"Mafkin's Store")),
},
)
label summon:
$ gui.in_context("summon_menu")
jump main_room_menu
label summon_menu(xx=723, yy=90):
$ renpy.dynamic(
# Door dictionary
summon_dict = {
# the order will be the one in the menu
@ -179,7 +187,8 @@ screen summon_menu():
xysize (48, 48)
add crop_image_zoom("interface/icons/head/"+char_dict["ico"]+".webp", 42, 42, char_dict["busy"]) align (0.5, 0.5)
text map_transcript_loc[char_dict["loc"]] size 10 xcenter 0.6 yalign 0.9
$ loc = map_transcript_loc[char_dict["loc"]]
text (loc() if callable(loc) else loc) size 10 xcenter 0.6 yalign 0.9
if not states.sna.unlocked:
text "You don't know anyone" size 12 at truecenter