Timer for a certain section
I have a point-and-click system for my mod (you can view it here) and for one section with this, I want to have a timer that gets canceled once you find something important, but if you don't find it in time, something else will happen.
what can I add to the code below to make this possible?
init -1 style explore_button:
background "#6464646c"
hover_background "#ffffff6c"
init -1 style explore_text:
font "mod_assets/fonts/Unitblock-mLAwm.ttf"
size 25
color "#ffffff6c"
text_align 0.5
init -1 python:
"""
for all screens: style_prefix "explore"
button template:
button xcenter x ycenter y xysize (width, height) action ButtonAction(next_location, dialogue, or save_var)
text "label" xcenter x ycenter y
"""
class TrackCursor(renpy.Displayable):
#class form here: https://lemmasoft.renai.us/forums/viewtopic.php?p=340355&sid=4540fae3b4ed740ce81e66660e093648#p340355
def __init__(self, child):
super(TrackCursor, self).__init__()
self.child = renpy.displayable(child)
self.x = None
self.y = None
def render(self, width, height, st, at):
rv = renpy.Render(width, height)
if self.x is not None:
cr = renpy.render(self.child, width, height, st, at)
cw, ch = cr.get_size()
rv.blit(cr, (self.x - cw / 2, self.y - ch / 2))
return rv
def event(self, ev, x, y, st):
if (x != self.x) or (y != self.y):
self.x = x
self.y = y
renpy.redraw(self, 0)
label explore(start, transition=False):
show screen quick_menu
if transition:
with wipeleft_scene
$ codes = []
$ explored = []
$ renpy.call_screen(start)
return
label next_location(loc, transition=True, f=False):
scene expression "bg [loc]"
if f:
show screen flashlight
if transition:
with Fade(0.25, 0.0, 0.25)
$ renpy.call_screen(loc)
return
default inventory = []
default explored = []
default party = []
default code = ""
default dial = ""
default prev_loc = ""
default to_input = ""
default codes = []
label dialpad(c, p, s):
$ code = c
$ prev_loc = p
$ dial = ""
$ to_input = s
call screen code_input
return
screen code_input:
style_prefix "explore"
add "vignette"
text "[dial]" xcenter 640 ycenter 140
button xcenter 750 ycenter 580 xysize (75, 75) action [If(dial == code, AddToSet(codes, to_input)), Call("next_location", prev_loc, False)]
text "ENTER" xcenter 750 ycenter 580
button xcenter 530 ycenter 580 xysize (75, 75) action SetVariable("dial", "")
text "CLEAR" xcenter 530 ycenter 580
button xcenter 640 ycenter 580 xysize (75, 75) action SetVariable("dial", dial + "0")
text "0" xcenter 640 ycenter 580
button xcenter 530 ycenter 470 xysize (75, 75) action SetVariable("dial", dial + "1")
text "1" xcenter 530 ycenter 470
button xcenter 640 ycenter 470 xysize (75, 75) action SetVariable("dial", dial + "2")
text "2" xcenter 640 ycenter 470
button xcenter 750 ycenter 470 xysize (75, 75) action SetVariable("dial", dial + "3")
text "3" xcenter 750 ycenter 470
button xcenter 530 ycenter 360 xysize (75, 75) action SetVariable("dial", dial + "4")
text "4" xcenter 530 ycenter 360
button xcenter 640 ycenter 360 xysize (75, 75) action SetVariable("dial", dial + "5")
text "5" xcenter 640 ycenter 360
button xcenter 750 ycenter 360 xysize (75, 75) action SetVariable("dial", dial + "6")
text "6" xcenter 750 ycenter 360
button xcenter 530 ycenter 250 xysize (75, 75) action SetVariable("dial", dial + "7")
text "7" xcenter 530 ycenter 250
button xcenter 640 ycenter 250 xysize (75, 75) action SetVariable("dial", dial + "8")
text "8" xcenter 640 ycenter 250
button xcenter 750 ycenter 250 xysize (75, 75) action SetVariable("dial", dial + "9")
text "9" xcenter 750 ycenter 250
screen flashlight:
zorder 1000
add TrackCursor("mod_assets/flashlight.png")
Posted Jul 29, 2024, 11:15 PM UTC
32