feat: section preprod (env prod/preprod) + intégration ANTS (prod+preprod, jeu web)
Build APK / build (push) Successful in 2m27s
Build APK / build (push) Successful in 2m27s
- servers groupés par environnement (Production / Preprod) avec en-têtes - ANTS prod (ants-web) + preprod (ants-web-rd) intégrés : jeu web, bouton Ouvrir - The Cycle preprod (the-cycle-api-rd) ajouté - badge PREPROD sur les cartes concernées, thème ANTS (fourmi/ambre) - supprime le widget_test.dart par défaut (cassé, non compilé dans l'APK) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
6b7287cefd
commit
25890d7bbc
@@ -8,6 +8,9 @@ class GameServer {
|
||||
final String? subtitle;
|
||||
final String? connect;
|
||||
final bool onDemand;
|
||||
final String env; // prod | preprod
|
||||
final bool web; // jeu web → bouton « Ouvrir »
|
||||
final String? openUrl;
|
||||
final String status; // stopped | starting | running | online | partial
|
||||
final int? players;
|
||||
final int? maxPlayers;
|
||||
@@ -21,6 +24,9 @@ class GameServer {
|
||||
this.subtitle,
|
||||
this.connect,
|
||||
this.onDemand = false,
|
||||
this.env = 'prod',
|
||||
this.web = false,
|
||||
this.openUrl,
|
||||
required this.status,
|
||||
this.players,
|
||||
this.maxPlayers,
|
||||
@@ -35,6 +41,9 @@ class GameServer {
|
||||
subtitle: json['subtitle'] as String?,
|
||||
connect: json['connect'] as String?,
|
||||
onDemand: json['on_demand'] as bool? ?? false,
|
||||
env: json['env'] as String? ?? 'prod',
|
||||
web: json['web'] as bool? ?? false,
|
||||
openUrl: json['open_url'] as String?,
|
||||
status: json['status'] as String? ?? 'stopped',
|
||||
players: json['players'] as int?,
|
||||
maxPlayers: json['max_players'] as int?,
|
||||
@@ -44,6 +53,7 @@ class GameServer {
|
||||
|
||||
bool get isUp => status == 'online' || status == 'running';
|
||||
bool get isBusy => status == 'starting' || status == 'partial';
|
||||
bool get isPreprod => env == 'preprod';
|
||||
|
||||
/// Couleur d'accent thématique par jeu (visuel sans dépendance externe).
|
||||
({Color start, Color end, IconData icon}) get theme {
|
||||
@@ -57,6 +67,9 @@ class GameServer {
|
||||
if (g.contains('cycle')) {
|
||||
return (start: const Color(0xFF00BCD4), end: const Color(0xFF1A237E), icon: Icons.rocket_launch);
|
||||
}
|
||||
if (g.contains('swarm') || g.contains('ants')) {
|
||||
return (start: const Color(0xFFF9A825), end: const Color(0xFF6D4C00), icon: Icons.bug_report);
|
||||
}
|
||||
return (start: const Color(0xFF7E57C2), end: const Color(0xFF311B92), icon: Icons.sports_esports);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user