nao repetir o numero e mais algo tou com sono

This commit is contained in:
Diogo
2026-03-04 00:46:21 +00:00
parent 7232c5a493
commit af765fc5ab
3 changed files with 195 additions and 32 deletions

View File

@@ -1,4 +1,3 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -424,8 +423,9 @@ class _PlacarPageState extends State<PlacarPage> {
}
List<Widget> _buildBenchPlayers(List<String> bench, bool isOpponent) {
final teamColor = isOpponent ? const Color(0xFF8B1A1A) : const Color(0xFF1E5BB2);
final prefix = isOpponent ? "sub_opp_" : "sub_my_";
final teamColor = isOpponent ? const Color(0xFFD92C2C) : const Color(0xFF1E5BB2);
// CORREÇÃO: Utilização do prefixo 'bench_' em vez de 'sub_'
final prefix = isOpponent ? "bench_opp_" : "bench_my_";
return bench.map((playerName) {
final num = _playerNumbers[playerName]!;
@@ -489,12 +489,13 @@ class _PlacarPageState extends State<PlacarPage> {
final action = details.data;
if (action.startsWith("add_") || action.startsWith("sub_") || action.startsWith("miss_")) {
_handleActionDrag(action, "$prefix$name"); // CHAMA A NOVA LÓGICA DE INTERCEÇÃO
_handleActionDrag(action, "$prefix$name");
}
else {
// CORREÇÃO: Nova lógica que processa apenas ações que comecem por 'bench_' para substituições
else if (action.startsWith("bench_")) {
setState(() {
if (action.startsWith("sub_my_") && !isOpponent) {
String benchPlayer = action.replaceAll("sub_my_", "");
if (action.startsWith("bench_my_") && !isOpponent) {
String benchPlayer = action.replaceAll("bench_my_", "");
if (_playerStats[benchPlayer]!["fls"]! >= 5) return;
int courtIndex = _myCourt.indexOf(name);
@@ -504,8 +505,8 @@ class _PlacarPageState extends State<PlacarPage> {
_showMyBench = false;
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Sai $name, Entra $benchPlayer')));
}
if (action.startsWith("sub_opp_") && isOpponent) {
String benchPlayer = action.replaceAll("sub_opp_", "");
if (action.startsWith("bench_opp_") && isOpponent) {
String benchPlayer = action.replaceAll("bench_opp_", "");
if (_playerStats[benchPlayer]!["fls"]! >= 5) return;
int courtIndex = _oppCourt.indexOf(name);
@@ -519,7 +520,8 @@ class _PlacarPageState extends State<PlacarPage> {
}
},
builder: (context, candidateData, rejectedData) {
bool isSubbing = candidateData.any((data) => data != null && data.startsWith("sub_my_") || data != null && data.startsWith("sub_opp_"));
// CORREÇÃO: Atualização da verificação de hover com base no novo prefixo
bool isSubbing = candidateData.any((data) => data != null && (data.startsWith("bench_my_") || data.startsWith("bench_opp_")));
bool isActionHover = candidateData.any((data) => data != null && (data.startsWith("add_") || data.startsWith("sub_") || data.startsWith("miss_")));
return _playerCardUI(number, name, stats, teamColor, isSubbing, isActionHover);
},
@@ -870,4 +872,4 @@ Widget _circle(String label, Color color, IconData? icon, bool isFeed, {double f
],
);
}
}
}