Post Release Bugfixing and Code Tidying
Added 2018-12-07 07:07:50 +0000 UTCv0.11.1 is out, which of course means there are bugs to find and fix. I've started in on that process, and I also have a few more things to do that have been bugging me for a while but that I haven't found the time to do.
One of the things I want to tackle that I've been putting off is changing how default outfits are created and saved for the game. Currently outfits are all defined as code in a big section run at the start of the game. This has two problems. First, when I want to add a new outfit I have to write it out as code (outfit_1.add_top(tanktop…) instead of using the actual clothing editor inside of LR2. Second, there is no way short of diving into the source code for a player to modify or add outfits.
I'd like to make a few updates to the system. I'd like to have LR2 read in outfit files from an external file, and give the option to output outfits in the same format. This way players can modify default outfits in the game, share outfits with others, and add their own outfits to the default outfit list. It will also make it much easier for me to add outfits to the game by removing some of the tedium.
Once I make a few quality of life improvements I'll turn to the major work of v0.12; more on that in a future post!
Comments
[code] I'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 6627, in script call menu: File "game/script.rpy", line 8106, in script python: File "game/script.rpy", line 8108, in <module> people.run_move(place) File "game/script.rpy", line 1400, in run_move self.wear_uniform() File "game/script.rpy", line 1898, in wear_uniform self.set_uniform(mc.business.get_uniform_wardrobe(mc.business.get_employee_title(self)).decide_on_uniform(self),False) #If we don't have a uniform planned for today get one. File "game/script.rpy", line 1660, in set_uniform self.planned_uniform = uniform.get_copy() AttributeError: 'NoneType' object has no attribute 'get_copy' -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 6627, in script call menu: File "game/script.rpy", line 8106, in script python: File "C:\Users\Andree\Downloads\patreon\Lab_Rats_2-v0.11.1-pc\Lab_Rats_2-v0.11.1-pc\renpy\ast.py", line 862, in execute renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) File "C:\Users\Andree\Downloads\patreon\Lab_Rats_2-v0.11.1-pc\Lab_Rats_2-v0.11.1-pc\renpy\python.py", line 1912, in py_exec_bytecode exec bytecode in globals, locals File "game/script.rpy", line 8108, in <module> people.run_move(place) File "game/script.rpy", line 1400, in run_move self.wear_uniform() File "game/script.rpy", line 1898, in wear_uniform self.set_uniform(mc.business.get_uniform_wardrobe(mc.business.get_employee_title(self)).decide_on_uniform(self),False) #If we don't have a uniform planned for today get one. File "game/script.rpy", line 1660, in set_uniform self.planned_uniform = uniform.get_copy() AttributeError: 'NoneType' object has no attribute 'get_copy' Windows-8-6.2.9200 Ren'Py 7.0.0.196 Lab Rats 2 - Down to Business v0.11.1 Thu Dec 20 17:15:12 2018 [/code] </module></module>
2018-12-20 16:15:42 +0000 UTChappens a couple hours into the game when i use the (go somewhere else) buton and traps me in the appartment bedroom.
2018-12-10 18:09:02 +0000 UTCI'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 6647, in script call screen map_manager File "renpy/common/000statements.rpy", line 519, in execute_call_screen store._return = renpy.call_screen(name, *args, **kwargs) MemoryError: -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 6647, in script call screen map_manager File "G:\Downloads\Lab_Rats_2-v0.11.1-pc\renpy\ast.py", line 1828, in execute self.call("execute") File "G:\Downloads\Lab_Rats_2-v0.11.1-pc\renpy\ast.py", line 1816, in call return renpy.statements.call(method, parsed, *args, **kwargs) File "G:\Downloads\Lab_Rats_2-v0.11.1-pc\renpy\statements.py", line 177, in call return method(parsed, *args, **kwargs) File "renpy/common/000statements.rpy", line 519, in execute_call_screen store._return = renpy.call_screen(name, *args, **kwargs) File "G:\Downloads\Lab_Rats_2-v0.11.1-pc\renpy\exports.py", line 2710, in call_screen rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward) File "G:\Downloads\Lab_Rats_2-v0.11.1-pc\renpy\ui.py", line 287, in interact rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs) File "G:\Downloads\Lab_Rats_2-v0.11.1-pc\renpy\display\core.py", line 2649, in interact repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs) File "G:\Downloads\Lab_Rats_2-v0.11.1-pc\renpy\display\core.py", line 3132, in interact_core self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn) File "G:\Downloads\Lab_Rats_2-v0.11.1-pc\renpy\display\core.py", line 2059, in draw_screen renpy.display.draw.draw_screen(surftree, fullscreen_video) File "gldraw.pyx", line 849, in renpy.angle.gldraw.GLDraw.draw_screen File "gldraw.pyx", line 1116, in renpy.angle.gldraw.GLDraw.draw_transformed File "gldraw.pyx", line 1116, in renpy.angle.gldraw.GLDraw.draw_transformed File "gldraw.pyx", line 1116, in renpy.angle.gldraw.GLDraw.draw_transformed File "gldraw.pyx", line 1116, in renpy.angle.gldraw.GLDraw.draw_transformed File "gldraw.pyx", line 1116, in renpy.angle.gldraw.GLDraw.draw_transformed File "gldraw.pyx", line 1116, in renpy.angle.gldraw.GLDraw.draw_transformed File "gldraw.pyx", line 975, in renpy.angle.gldraw.GLDraw.draw_transformed File "gldraw.pyx", line 736, in renpy.angle.gldraw.GLDraw.load_texture File "gltexture.pyx", line 897, in renpy.angle.gltexture.texture_grid_from_surface File "gltexture.pyx", line 333, in renpy.angle.gltexture.TextureCore.load_surface File "gltexture.pyx", line 1188, in renpy.angle.gltexture.premultiply MemoryError: Windows-XP-5.1.2600-SP3 Ren'Py 7.0.0.196 Lab Rats 2 - Down to Business v0.11.1 Mon Dec 10 10:41:08 2018
2018-12-10 18:05:00 +0000 UTCI'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 6640, in script call call talk_person(person_choice) from _call_talk_person File "game/script.rpy", line 7124, in script call call talk_person(the_person) from _call_talk_person_3 File "game/script.rpy", line 6883, in script call call talk_person(the_person) from _call_talk_person_4 File "game/script.rpy", line 6883, in script call call talk_person(the_person) from _call_talk_person_4 File "game/script.rpy", line 7202, in script call call fuck_person(the_person,private = in_private) from _call_fuck_person File "game/script.rpy", line 7275, in script call call sex_description(the_person, position_choice, object_choice, 0, private=private) from _call_sex_description File "game/script.rpy", line 7404, in script call call sex_description(the_person, the_position, the_object, round+1, private = private) from _call_sex_description_1 File "game/script.rpy", line 7436, in script call call sex_description(the_person, position_choice, the_object, round+1, private = private) from _call_sex_description_2 File "game/script.rpy", line 7404, in script call call sex_description(the_person, the_position, the_object, round+1, private = private) from _call_sex_description_1 File "game/script.rpy", line 7408, in script call call fuck_person(the_person) from _call_fuck_person_2 File "game/script.rpy", line 7275, in script call call sex_description(the_person, position_choice, object_choice, 0, private=private) from _call_sex_description File "game/script.rpy", line 7313, in script call $ the_position.call_scene(the_person, mc.location, the_object, round) #HERE IS WHERE THE SCENE SCRIPT IS CALLED File "game/against_wall.rpy", line 71, in script if the_girl.tits_available(): File "game/against_wall.rpy", line 71, in <module> if the_girl.tits_available(): AttributeError: 'Person' object has no attribute 'tits_available' -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 6640, in script call call talk_person(person_choice) from _call_talk_person File "game/script.rpy", line 7124, in script call call talk_person(the_person) from _call_talk_person_3 File "game/script.rpy", line 6883, in script call call talk_person(the_person) from _call_talk_person_4 File "game/script.rpy", line 6883, in script call call talk_person(the_person) from _call_talk_person_4 File "game/script.rpy", line 7202, in script call call fuck_person(the_person,private = in_private) from _call_fuck_person File "game/script.rpy", line 7275, in script call call sex_description(the_person, position_choice, object_choice, 0, private=private) from _call_sex_description File "game/script.rpy", line 7404, in script call call sex_description(the_person, the_position, the_object, round+1, private = private) from _call_sex_description_1 File "game/script.rpy", line 7436, in script call call sex_description(the_person, position_choice, the_object, round+1, private = private) from _call_sex_description_2 File "game/script.rpy", line 7404, in script call call sex_description(the_person, the_position, the_object, round+1, private = private) from _call_sex_description_1 File "game/script.rpy", line 7408, in script call call fuck_person(the_person) from _call_fuck_person_2 File "game/script.rpy", line 7275, in script call call sex_description(the_person, position_choice, object_choice, 0, private=private) from _call_sex_description File "game/script.rpy", line 7313, in script call $ the_position.call_scene(the_person, mc.location, the_object, round) #HERE IS WHERE THE SCENE SCRIPT IS CALLED File "game/against_wall.rpy", line 71, in script if the_girl.tits_available(): File "E:\Ren'py\Lab_Rats_2\Lab_Rats_2-v0.11.1-pc\renpy\ast.py", line 1729, in execute if renpy.python.py_eval(condition): File "E:\Ren'py\Lab_Rats_2\Lab_Rats_2-v0.11.1-pc\renpy\python.py", line 1943, in py_eval return py_eval_bytecode(code, globals, locals) File "E:\Ren'py\Lab_Rats_2\Lab_Rats_2-v0.11.1-pc\renpy\python.py", line 1936, in py_eval_bytecode return eval(bytecode, globals, locals) File "game/against_wall.rpy", line 71, in <module> if the_girl.tits_available(): AttributeError: 'Person' object has no attribute 'tits_available' Windows-8-6.2.9200 Ren'Py 7.0.0.196 Lab Rats 2 - Down to Business v0.11.1 Sat Dec 08 18:15:12 2018 </module></module>
Jay
2018-12-09 02:23:29 +0000 UTCAlso, I can't assign a new head of research, the button does not show up.
blakeness
2018-12-08 21:17:48 +0000 UTC[code] I'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 6640, in script call call talk_person(person_choice) from _call_talk_person File "game/script.rpy", line 7124, in script call call talk_person(the_person) from _call_talk_person_3 File "game/script.rpy", line 6883, in script call call talk_person(the_person) from _call_talk_person_4 File "game/script.rpy", line 6883, in script call call talk_person(the_person) from _call_talk_person_4 File "game/script.rpy", line 7202, in script call call fuck_person(the_person,private = in_private) from _call_fuck_person File "game/script.rpy", line 7275, in script call call sex_description(the_person, position_choice, object_choice, 0, private=private) from _call_sex_description File "game/script.rpy", line 7291, in script $ the_position.redraw_scene(the_person) File "game/script.rpy", line 7291, in <module> $ the_position.redraw_scene(the_person) File "game/script.rpy", line 3639, in redraw_scene the_person.draw_person(self.position_tag, emotion = emotion, special_modifier = self.current_modifier) File "game/script.rpy", line 1494, in draw_person displayable_list.extend(self.outfit.generate_draw_list(self,position,emotion,special_modifier)) #Get the displayables for everything we wear. Note that extnsions do not return anything because they have nothing to show. File "game/script.rpy", line 2859, in generate_draw_list ordered_displayables.append(item.generate_item_displayable(position, face_style, emotion, special_modifiers)) File "game/script.rpy", line 2748, in generate_item_displayable the_image = image_set.get_image(face_type, emotion, special_modifiers) File "game/script.rpy", line 2786, in get_image if renpy.loadable(self.images[index_string + "_" + special_modifier]): KeyError: u'Face_3_happy_kissing' -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 6640, in script call call talk_person(person_choice) from _call_talk_person File "game/script.rpy", line 7124, in script call call talk_person(the_person) from _call_talk_person_3 File "game/script.rpy", line 6883, in script call call talk_person(the_person) from _call_talk_person_4 File "game/script.rpy", line 6883, in script call call talk_person(the_person) from _call_talk_person_4 File "game/script.rpy", line 7202, in script call call fuck_person(the_person,private = in_private) from _call_fuck_person File "game/script.rpy", line 7275, in script call call sex_description(the_person, position_choice, object_choice, 0, private=private) from _call_sex_description File "game/script.rpy", line 7291, in script $ the_position.redraw_scene(the_person) File "C:\Users\LEVEL\Son_of_a_bitch_0_22_ALL-1\Lab_Rats_2-v0.11.1-pc\renpy\ast.py", line 862, in execute renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) File "C:\Users\LEVEL\Son_of_a_bitch_0_22_ALL-1\Lab_Rats_2-v0.11.1-pc\renpy\python.py", line 1912, in py_exec_bytecode exec bytecode in globals, locals File "game/script.rpy", line 7291, in <module> $ the_position.redraw_scene(the_person) File "game/script.rpy", line 3639, in redraw_scene the_person.draw_person(self.position_tag, emotion = emotion, special_modifier = self.current_modifier) File "game/script.rpy", line 1494, in draw_person displayable_list.extend(self.outfit.generate_draw_list(self,position,emotion,special_modifier)) #Get the displayables for everything we wear. Note that extnsions do not return anything because they have nothing to show. File "game/script.rpy", line 2859, in generate_draw_list ordered_displayables.append(item.generate_item_displayable(position, face_style, emotion, special_modifiers)) File "game/script.rpy", line 2748, in generate_item_displayable the_image = image_set.get_image(face_type, emotion, special_modifiers) File "game/script.rpy", line 2786, in get_image if renpy.loadable(self.images[index_string + "_" + special_modifier]): KeyError: u'Face_3_happy_kissing' Windows-8-6.2.9200 Ren'Py 7.0.0.196 Lab Rats 2 - Down to Business v0.11.1 Sun Dec 09 03:23:34 2018 [/code] </module></module>
blakeness
2018-12-08 19:25:22 +0000 UTCInteresting, what do you have in mind? XML? Homegrown system? Something like <outfit> <overwear> <leg> <shoes> <type> <colour> </shoes> <skirt> </leg> <torso> <shirt> ... <underwear> ... would be really easy to mod for most users. Also, outfit sharing. Edit: man, Patreon's comment system does not like tab-formatted text at all.
2018-12-08 01:06:55 +0000 UTCFor some reason that post makes me think that the amount of memory of the game will be reduce, which is great since I personally fear that this game goes over 3 gb and becomes heavy to download.
Nicolas
2018-12-07 21:28:10 +0000 UTC