extends PanelContainer # Ogni cella ha un numero identificativo imposto dal manager di gioco var num:int = -1 # Lo stato indica il numero di pallini nella cella var stato:int = 0 # Il giocatore a cui appartiene la cella (una cella con stato 0 non appartiene a nessuno) enum GIOCATORI {GIOCATORE_1, GIOCATORE_2} var giocatore = GIOCATORI.GIOCATORE_1 # Il giocatore di turno var giocatore_corrente # Il numero di celle vicine var vicini:int = 4 var manager_di_gioco:Node2D # Avvisa il manager di gioco che il giocatore di turno ha cliccato una cella e quale signal turno_iniziato(cella_cambiata) func _on_Cella_bottone_pressed(): if !manager_di_gioco.gioco_finito and manager_di_gioco.celle_da_cambiare.empty(): giocatore_corrente = manager_di_gioco.giocatore # Se il giocatore di turno può cliccare la cella, o la cella non appartiene a nessuno, avvisa il manager di gioco if stato == 0 or giocatore == giocatore_corrente: emit_signal("turno_iniziato",num) func aumenta() -> void: giocatore = giocatore_corrente stato = (stato + 1) % vicini aggiorna_texture() func aggiorna_texture() -> void: match giocatore: GIOCATORI.GIOCATORE_1: $Cella_bottone.material.set_shader_param("player",manager_di_gioco.player_1_color) GIOCATORI.GIOCATORE_2: $Cella_bottone.material.set_shader_param("player",manager_di_gioco.player_2_color) $Cella_bottone.material.set_shader_param("state",stato) # Se volete usare texture invece che shader """ match giocatore: GIOCATORI.GIOCATORE_1: match stato: 0: $Cella_bottone.texture_normal = manager_di_gioco.quadrato_grigio 1: $Cella_bottone.texture_normal = manager_di_gioco.quadrato_grigio_1v 2: $Cella_bottone.texture_normal = manager_di_gioco.quadrato_grigio_2v 3: $Cella_bottone.texture_normal = manager_di_gioco.quadrato_grigio_3v GIOCATORI.GIOCATORE_2: match stato: 0: $Cella_bottone.texture_normal = manager_di_gioco.quadrato_grigio 1: $Cella_bottone.texture_normal = manager_di_gioco.quadrato_grigio_1r 2: $Cella_bottone.texture_normal = manager_di_gioco.quadrato_grigio_2r 3: $Cella_bottone.texture_normal = manager_di_gioco.quadrato_grigio_3r """