Menü bugfix és fizikai támadás

This commit is contained in:
markojozsef
2026-10-03 17:05:53 +02:00
parent 3558b7db7a
commit c85c382f34
3 changed files with 27 additions and 17 deletions

View File

@@ -33,6 +33,11 @@ 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

View File

@@ -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()

View File

@@ -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()