diff --git a/src/controls.py b/src/controls.py index f9d7462..fba54bd 100644 --- a/src/controls.py +++ b/src/controls.py @@ -33,8 +33,13 @@ def update(): c.pressed = False c.held = True +def depress(cid): + if controls[cid].pressed: + controls[cid].pressed = False + controls[cid].held = True + def is_control_pressed(cid): return controls[cid].pressed def is_control_held(cid): - return controls[cid].held \ No newline at end of file + return controls[cid].held diff --git a/src/gamestates/battle.py b/src/gamestates/battle.py index d3b39e4..4c73304 100644 --- a/src/gamestates/battle.py +++ b/src/gamestates/battle.py @@ -41,15 +41,24 @@ def switch(game): inventory = battle_data.battles[battle_id]["inventory"] battle_music = assets.sounds[battle_data.battles[battle_id]["mus_id"]].play(loops=True) -def menu_action(data): +def close_menu(): global menu, menu_open - user, action = data - menu = [] menu_open = 0 menu_text.reset("") - action_queue.append(Action("In development", user, user, Damage(0, 0, 0, 0), StatusChange(0, 0, 0))) - print(f"pressed action: {action}") + + +def menu_action(data): + user, aparty, eparty, action = data + match action: + case "unselectable": + return + case "phys_att": + action_queue.append(Action("Physical Attack", user, eparty[0], Damage(166, 0, 0, 0), StatusChange(0, 0, 0))) + close_menu() + case _: + print(f"Unknown action: {action}") + close_menu() def update(game, dt): global menu_open @@ -96,19 +105,11 @@ def update(game, dt): party_idx = party_members.index(whose) for i, m in enumerate(party_menus[party_idx]): - menu.append(MenuItem(m[0], 19, 64-(i*13), None, None, None, None, menu_action, (whose, m[1]))) + menu.append(MenuItem(m[0], 19, 64-(i*13), None, None, None, None, menu_action, (whose, party_members, enemies, m[1]))) - print(len(menu)) for i, m in enumerate(menu): - if i == 0: - m.up = menu[len(menu) - 1] - m.down = menu[1] - elif i == len(menu) - 1: - m.up = menu[len(menu) - 2] - m.down = menu[0] - else: - m.up = menu[i - 1] - m.down = menu[i + 1] + m.up = menu[(i - 1) % len(menu)] + m.down = menu[(i + 1) % len(menu)] menu[1].select() diff --git a/src/menu.py b/src/menu.py index 9305e6d..f8d4a98 100644 --- a/src/menu.py +++ b/src/menu.py @@ -31,15 +31,19 @@ class MenuItem: return if controls.is_control_pressed(0) and self.up: # Fel + controls.depress(0) self.selected = False self.up.select() elif controls.is_control_pressed(1) and self.down: # Le + controls.depress(1) self.selected = False self.down.select() elif controls.is_control_pressed(2) and self.left: # Bal + controls.depress(2) self.selected = False self.left.select() elif controls.is_control_pressed(3) and self.right: # Jobb + controls.depress(3) self.selected = False self.right.select()