Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(2 edits)

On version 0.2.1, I got an error when using the Air Control Skill:

[code]

I'm sorry, but an uncaught exception occurred.

While running game code:

  File "game/dungeon_rooms.rpy", line 337, in script call

    call expression _current_room_label from _call_expression_1

  File "game/dungeon_rooms.rpy", line 5957, in script

    menu:

  File "renpy/common/00action_other.rpy", line 619, in __call__

    rv = self.callable(*self.args, **self.kwargs)

  File "game/init.rpy", line 1667, in use_item

    effect_result = effect_func(*effect_args)

  File "game/init.rpy", line 3543, in skill_use_air_control

    part_to = get_least_likely_to_pop_part(exclude_part=part_from)

TypeError: get_least_likely_to_pop_part() got an unexpected keyword argument 'exclude_part'

-- Full Traceback ------------------------------------------------------------

Full traceback:

  File "game/dungeon_rooms.rpy", line 337, in script call

    call expression _current_room_label from _call_expression_1

  File "game/dungeon_rooms.rpy", line 5957, in script

    menu:

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\ast.py", line 1632, in execute

    choice = renpy.exports.menu(choices, self.set, args, kwargs, item_arguments)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\exports\menuexports.py", line 134, in menu

    rv = renpy.store.menu(new_items)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\exports\menuexports.py", line 424, in display_menu

    rv = renpy.ui.interact(mouse='menu', type=type, roll_forward=roll_forward)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\ui.py", line 301, in interact

    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\core.py", line 2218, in interact

    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, pause_modal=pause_modal, **kwargs) # type: ignore

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\core.py", line 3289, in interact_core

    rv = root_widget.event(ev, x, y, 0)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\layout.py", line 1297, in event

    rv = i.event(ev, x - xo, y - yo, cst)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\layout.py", line 1297, in event

    rv = i.event(ev, x - xo, y - yo, cst)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\layout.py", line 1297, in event

    rv = i.event(ev, x - xo, y - yo, cst)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\screen.py", line 794, in event

    rv = self.child.event(ev, x, y, st)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\layout.py", line 1297, in event

    rv = i.event(ev, x - xo, y - yo, cst)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\layout.py", line 1297, in event

    rv = i.event(ev, x - xo, y - yo, cst)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\behavior.py", line 1119, in event

    rv = super(Button, self).event(ev, x, y, st)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\layout.py", line 1526, in event

    rv = super(Window, self).event(ev, x, y, st)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\layout.py", line 285, in event

    rv = d.event(ev, x - xo, y - yo, st)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\layout.py", line 1297, in event

    rv = i.event(ev, x - xo, y - yo, cst)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\layout.py", line 285, in event

    rv = d.event(ev, x - xo, y - yo, st)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\layout.py", line 1526, in event

    rv = super(Window, self).event(ev, x, y, st)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\layout.py", line 285, in event

    rv = d.event(ev, x - xo, y - yo, st)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\behavior.py", line 1182, in event

    return handle_click(self.clicked)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\behavior.py", line 1103, in handle_click

    rv = run(action)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\behavior.py", line 394, in run

    new_rv = run(i, *args, **kwargs)

  File "C:\Users\Anom\Games\Yuki Pop Repeat\v0.2.1\renpy\display\behavior.py", line 401, in run

    return action(*args, **kwargs)

  File "renpy/common/00action_other.rpy", line 619, in __call__

    rv = self.callable(*self.args, **self.kwargs)

  File "game/init.rpy", line 1667, in use_item

    effect_result = effect_func(*effect_args)

  File "game/init.rpy", line 3543, in skill_use_air_control

    part_to = get_least_likely_to_pop_part(exclude_part=part_from)

TypeError: get_least_likely_to_pop_part() got an unexpected keyword argument 'exclude_part'

Windows-10-10.0.19041 AMD64

Ren'Py 8.3.8.25060602+nightly

Yuki, Pop, Repeat 0.2.1

Wed Nov 12 13:16:20 2025

[/code]

 

The get_least_likely_to_pop_part function doesnt take arguments (as the exclude_part). A quick fix can be to implement the behavior of exclusion on the get_least_likely_to_pop_part function, and additionally implement it on the get_most_likely_to_pop_part function for future skills. The fix is (all code line numbers based on original v0.2.1 unaltered files):

[code]

  File "game/init.rpy", lines 796-818, in get_least_likely_to_pop_part:

    def get_least_likely_to_pop_part(exclude_part=""): # Consider excluded part

        ...

        parts_with_remaining_capacity.pop(exclude_part, None) # Remove the excluded part from options

        if not parts_with_remaining_capacity: # All parts are at/over cap or no valid parts

            default_parts = ["chest", "belly", "butt"] # Default options for Fallback

            default_parts.remove(exclude_part) # Remove the excluded part from fallback options

            return renpy.random.choice(default_parts) # Fallback: pick a random part

        return max(parts_with_remaining_capacity, key=parts_with_remaining_capacity.get)

[/code]

[code]

  File "game/init.rpy", lines 820-849, in get_most_likely_to_pop_part:

    def get_most_likely_to_pop_part(exclude_part=""): Consider excluded part

        ...

        parts_with_remaining_capacity.pop(exclude_part, None) # Remove the excluded part from options

        if not parts_with_remaining_capacity: # All parts are at/below minimum or no valid parts

            return None # No part can be siphoned

        # Return the part with the smallest remaining capacity (closest to pop)

        # This includes negative remaining capacity (overinflated parts are most likely to pop)

        return min(parts_with_remaining_capacity, key=parts_with_remaining_capacity.get)

[/code]

;)