Code: Select all
#################################################
#Hidden Object Game
screen hidden_object:
tag hidden
imagemap:
auto hidden_files
hotspot (896,676,126,90) action getHint()
for index, item in enumerate(hidden_items):
hotspot (item.x,item.y,item.w,item.h) action If(hidden_items[index].found==False, SetItem(hidden_items[index],"found",True), None)
if is_all_found():
textbutton "All Objects Found!" xalign 0.5 yalign 0.5 action Return("Completed")
init -2 python:
class getHint(Action):
def __call__(self):
global num_hints
num_hints -= 1
for index,i in enumerate(hidden_items):
if i.found == False and i.hint == False:
i.hint = True
break
renpy.restart_interaction()
def get_sensitive(self):
global num_hints
return num_hints > 0
class SetItem(Action):
def __init__(self, object, field, value):
self.object = object
self.field = field
self.value = value
def __call__(self):
setattr(self.object, self.field, self.value)
renpy.restart_interaction()
def get_selected(self):
return getattr(self.object, "hint") == True
class Item:
def __init__(self, name, x,y,w,h,hint=False):
self.name = name
self.x = x
self.y = y
self.w = w
self.h = h
self.found = False
self.hint = hint
showitems = False
config.imagemap_cache = False
parlor_items = []
parlor_items.append(Item("landscape,", 852,241,128,189))
parlor_items.append(Item("phonograph,", 834,493,149,183))
parlor_items.append(Item("hat,", 782,407,78,73))
parlor_items.append(Item("cake,", 786,615,50,36))
parlor_items.append(Item("phone,", 721,492,105,85))
parlor_items.append(Item("tick-tock,", 656,379,122,91))
parlor_items.append(Item("fish,", 684,155,104,47))
parlor_items.append(Item("boxing,", 611,244,60,128))
parlor_items.append(Item("cane,", 589,366,29,148))
parlor_items.append(Item("horse,", 355,501,244,171))
parlor_items.append(Item("tea,", 295,486,75,43))
parlor_items.append(Item("bottle,", 371,287,42,95))
parlor_items.append(Item("car,", 220,164,122,60))
parlor_items.append(Item("perfumes,", 285,562,69,52))
parlor_items.append(Item("books,", 183,580,101,98))
parlor_items.append(Item("cheese,", 74,631,87,48))
parlor_items.append(Item("pillow,", 161,465,114,93))
parlor_items.append(Item("vase,", 38,556,36,122))
parlor_items.append(Item("Lady and Gent,", 36,244,136,182))
def display_items_overlay():
if showitems:
ui.frame(id="obj_list")
ui.hbox(id="display_hbox",spacing=5,box_wrap = True)
for index,i in enumerate(hidden_items):
inventory_prefix = ""
inventory_suffix = ""
item_name = i.name
item_state = i.found
if item_state == True:
inventory_prefix = "{s}"
inventory_suffix = "{/s}"
item_text = inventory_prefix+item_name+inventory_suffix
item_index = "object_%d" % (index)
ui.text(item_text,id=item_index)
ui.close()
config.overlay_functions.append(display_items_overlay)
def is_all_found():
for i in hidden_items:
if i.found == False:
return False
return True
def resetItems(in_items):
for i in in_items:
i.found = False