Skip to content

Commit c7f5144

Browse files
committed
add some spells and modify harry spells selection
1 parent bed4aac commit c7f5144

File tree

2 files changed

+24
-20
lines changed

2 files changed

+24
-20
lines changed

game11/harry_potter.py

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
descrizione = "Cosa farà HARRY?"
1919
attesa_input = True
2020
gioco_attivo = True
21+
opzioni_correnti = None # Variabile per memorizzare gli incantesimi ad ogni turno
2122

2223
# Creazione degli sprite
2324
harry_sprite = Actor("harry", (200, 320))
@@ -31,7 +32,6 @@
3132
r"C:\Users\alema\Desktop\pythonbiella\LearningPythonWithGames\game11\spells.csv"
3233
)
3334

34-
3535
def ottieni_opzioni(personaggio):
3636
"""Filtra il DataFrame per ottenere solo gli incantesimi di un personaggio specifico."""
3737
return incantesimi_df.filter(pl.col("character") == personaggio)
@@ -148,26 +148,24 @@ def fase_voldemort():
148148

149149

150150
def prepara_harry():
151-
"""Ripristina il menu per il turno del giocatore."""
152-
global messaggio, descrizione, attesa_input
151+
global messaggio, descrizione, attesa_input, opzioni_correnti
153152
messaggio = "Cosa farà HARRY?"
154153
descrizione = "Scegli un incantesimo..."
154+
opzioni_correnti = ottieni_opzioni("Harry").sample(4)
155155
attesa_input = True
156156

157-
158157
def on_mouse_down(pos):
159158
"""Gestisce il click del mouse sulle opzioni degli incantesimi."""
160159
global attesa_input
161160

162-
if gioco_attivo and attesa_input:
163-
opzioni = ottieni_opzioni("Harry")[:4]
164-
for i in range(len(opzioni)):
161+
if gioco_attivo and attesa_input and opzioni_correnti is not None:
162+
for i in range(len(opzioni_correnti)):
165163
# Calcolo dinamico della posizione dei rettangoli cliccabili (2x2)
166164
x = 40 + (i % 2) * 380
167165
y = 440 + (i // 2) * 60
168166
if Rect((x, y), (350, 50)).collidepoint(pos):
169167
attesa_input = False
170-
esegui_mossa("Harry", "Voldemort", opzioni, i)
168+
esegui_mossa("Harry", "Voldemort", opzioni_correnti, i)
171169

172170
# Turno di Voldemort dopo 3 secondi se non ha perso
173171
if gioco_attivo:
@@ -259,14 +257,14 @@ def disegna_barra_stato(nome, valore, x, y):
259257

260258

261259
def disegna_menu():
262-
"""Disegna le 4 opzioni di incantesimo cliccabili per Harry."""
263-
opzioni = ottieni_opzioni("Harry")[:4]
264-
for i in range(len(opzioni)):
265-
x, y = 40 + (i % 2) * 380, 440 + (i // 2) * 60
266-
screen.draw.rect(Rect((x, y), (350, 50)), "white")
267-
screen.draw.text(
268-
f"> {opzioni[i, 'spell'].upper()}", (x + 20, y + 15), fontsize=30
269-
)
270-
260+
"""Disegna le opzioni precedentemente scelte in prepara_harry."""
261+
if opzioni_correnti is not None:
262+
for i in range(len(opzioni_correnti)):
263+
x, y = 40 + (i % 2) * 380, 440 + (i // 2) * 60
264+
screen.draw.rect(Rect((x, y), (350, 50)), "white")
265+
screen.draw.text(
266+
f"> {opzioni_correnti[i, 'spell'].upper()}", (x + 20, y + 15), fontsize=30
267+
)
271268

269+
prepara_harry()
272270
pgzrun.go()

game11/spells.csv

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
character,spell,damage,precision
22
Harry,Expelliarmus,10,1
3-
Harry,Stupefy,15,1
3+
Harry,Stupeficium,15,1
44
Harry,Expecto Patronum,20,1
5-
Harry, Epsikey, -25,1
5+
Harry, Episkey, -25,1
66
Voldemort,Crucio,15,0.7
77
Voldemort,Imperio,20,0.6
8-
Voldemort,Avada Kedavra,40,0.3
8+
Voldemort,Avada Kedavra,40,0.3
9+
Harry,Sectumsempra,35,1
10+
Harry,Confundus,5,1
11+
Voldemort,Legilimens,10,0.9
12+
Voldemort,Bombarda,30,0.8
13+
Voldemort,Confringo,25,0.85
14+
Voldemort,Expulso,20,0.9

0 commit comments

Comments
 (0)