feat: cleaning code
This commit is contained in:
@@ -171,7 +171,7 @@ class _GameScreenState extends State<GameScreen> {
|
||||
padding: const EdgeInsets.symmetric(horizontal: 18, vertical: 8),
|
||||
decoration: BoxDecoration(
|
||||
gradient: const LinearGradient(
|
||||
colors: [Color(0xFFE9B949), Color(0xFFB8860B)],
|
||||
colors: [AppColors.gold, AppColors.goldDark],
|
||||
),
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
boxShadow: const [BoxShadow(color: Colors.black54, blurRadius: 8)],
|
||||
@@ -179,7 +179,7 @@ class _GameScreenState extends State<GameScreen> {
|
||||
child: const Text(
|
||||
'نوبت شماست',
|
||||
style: TextStyle(
|
||||
color: Color(0xFF3A0A12),
|
||||
color: AppColors.bg,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 16,
|
||||
),
|
||||
@@ -328,7 +328,7 @@ class _GameScreenState extends State<GameScreen> {
|
||||
child: Text(
|
||||
'$_countdown',
|
||||
style: const TextStyle(
|
||||
color: Color(0xFF3A0A12),
|
||||
color: AppColors.bg,
|
||||
fontSize: 26,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -398,8 +398,8 @@ class _GameScreenState extends State<GameScreen> {
|
||||
Widget _trumpPicker(BuildContext context) {
|
||||
const suits = [
|
||||
('spades', '♠', 'پیک', Colors.white),
|
||||
('hearts', '♥', 'دل', Color(0xFFD32F2F)),
|
||||
('diamonds', '♦', 'خشت', Color(0xFFD32F2F)),
|
||||
('hearts', '♥', 'دل', AppColors.suitRed),
|
||||
('diamonds', '♦', 'خشت', AppColors.suitRed),
|
||||
('clubs', '♣', 'گشنیز', Colors.white),
|
||||
];
|
||||
return Container(
|
||||
@@ -448,7 +448,7 @@ class _GameScreenState extends State<GameScreen> {
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
const Divider(color: Color(0x33E9B949), height: 1),
|
||||
const Divider(color: AppColors.goldFaint, height: 1),
|
||||
const SizedBox(height: 12),
|
||||
// بُرِ مجدد با مصرفِ یک بلیت (۵ کارتِ تازه، سپس باز هم انتخابِ حکم).
|
||||
BlocBuilder<WalletBloc, WalletBlocState>(
|
||||
|
||||
@@ -211,7 +211,7 @@ class _LobbyViewState extends State<_LobbyView> {
|
||||
label: 'شروع بازی',
|
||||
icon: Icons.play_arrow,
|
||||
width: double.infinity,
|
||||
colors: const [Color(0xFF3FA34D), Color(0xFF1B5E20)],
|
||||
colors: const [AppColors.success, AppColors.successDark],
|
||||
onTap: () => context.read<GameBloc>().startTable(_hands),
|
||||
)
|
||||
else
|
||||
@@ -316,7 +316,7 @@ class _LobbyViewState extends State<_LobbyView> {
|
||||
shape: BoxShape.circle,
|
||||
gradient: selected
|
||||
? const LinearGradient(
|
||||
colors: [Color(0xFFE9B949), Color(0xFFB8860B)])
|
||||
colors: [AppColors.gold, AppColors.goldDark])
|
||||
: null,
|
||||
color: selected ? null : AppColors.panel,
|
||||
border: Border.all(
|
||||
@@ -326,7 +326,7 @@ class _LobbyViewState extends State<_LobbyView> {
|
||||
child: Text(
|
||||
fa[h]!,
|
||||
style: TextStyle(
|
||||
color: selected ? const Color(0xFF3A0A12) : Colors.white,
|
||||
color: selected ? AppColors.bg : Colors.white,
|
||||
fontSize: 22,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
|
||||
@@ -89,7 +89,7 @@ class _TierCard extends StatelessWidget {
|
||||
const _TierCard({required this.tier, required this.index});
|
||||
|
||||
static const _palettes = [
|
||||
[Color(0xFF43A047), Color(0xFF1B5E20)],
|
||||
[Color(0xFF43A047), AppColors.successDark],
|
||||
[Color(0xFFE53935), Color(0xFF8E0E1B)],
|
||||
[Color(0xFF1E88E5), Color(0xFF0D3C73)],
|
||||
[Color(0xFF8E24AA), Color(0xFF4A0D5E)],
|
||||
|
||||
@@ -4,8 +4,10 @@ import 'package:flame/components.dart';
|
||||
import 'package:flame/effects.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
const _gold = Color(0xFFE9B949);
|
||||
const _goldDark = Color(0xFF8A5A00);
|
||||
import '../../../../../core/theme/app_theme.dart';
|
||||
|
||||
const _gold = AppColors.gold;
|
||||
const _goldDark = Color(0xFF8A5A00); // طلاییِ تیرهترِ مخصوصِ نشانها
|
||||
|
||||
/// ستارهی طلایی روی بازیکنِ نوبتدار (مطابقِ تصویرِ مرجع).
|
||||
class StarBadge extends PositionComponent {
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:flame/events.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../../../../../core/network/card_images.dart';
|
||||
import '../../../../../core/theme/app_theme.dart';
|
||||
|
||||
/// یک کارت روی میز؛ اگر تصویر `assets/images/cards/<code>.png` موجود باشد از آن
|
||||
/// استفاده میکند، وگرنه نسخهی برداری میکشد. برای پشت کارت `back.jpg`.
|
||||
@@ -180,7 +181,7 @@ class CardComponent extends PositionComponent
|
||||
Paint()
|
||||
..style = PaintingStyle.stroke
|
||||
..strokeWidth = 1.5
|
||||
..color = const Color(0xFF1A1A1A),
|
||||
..color = AppColors.suitDark,
|
||||
);
|
||||
|
||||
// هایلایت طلایی: هنگام کشیدن همیشه (انتخاب)، و پررنگتر روی ناحیهی انداختن.
|
||||
@@ -190,7 +191,7 @@ class CardComponent extends PositionComponent
|
||||
Paint()
|
||||
..style = PaintingStyle.stroke
|
||||
..strokeWidth = size.x * (_overZone ? 0.06 : 0.035)
|
||||
..color = const Color(0xFFE9B949)
|
||||
..color = AppColors.gold
|
||||
..maskFilter = MaskFilter.blur(BlurStyle.normal, _overZone ? 6 : 3),
|
||||
);
|
||||
}
|
||||
@@ -204,7 +205,7 @@ class CardComponent extends PositionComponent
|
||||
Paint()
|
||||
..style = PaintingStyle.stroke
|
||||
..strokeWidth = 2
|
||||
..color = const Color(0xFFE9B949),
|
||||
..color = AppColors.gold,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -224,13 +225,13 @@ class CardComponent extends PositionComponent
|
||||
(String, Color) _suit(String s) {
|
||||
switch (s) {
|
||||
case 'H':
|
||||
return ('♥', const Color(0xFFD32F2F));
|
||||
return ('♥', AppColors.suitRed);
|
||||
case 'D':
|
||||
return ('♦', const Color(0xFFD32F2F));
|
||||
return ('♦', AppColors.suitRed);
|
||||
case 'C':
|
||||
return ('♣', const Color(0xFF1A1A1A));
|
||||
return ('♣', AppColors.suitDark);
|
||||
default:
|
||||
return ('♠', const Color(0xFF1A1A1A));
|
||||
return ('♠', AppColors.suitDark);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'package:flame/game.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../../../../../core/service/app_sounds.dart';
|
||||
import '../../../../../core/theme/app_theme.dart';
|
||||
import '../../../domain/entities/game_entities.dart';
|
||||
import '../../bloc/game_bloc.dart';
|
||||
import 'card_codes.dart';
|
||||
@@ -222,7 +223,7 @@ class HokmGame extends FlameGame {
|
||||
|
||||
/// نمایشِ بزرگ و گذرای حکمِ انتخابشده در مرکزِ میز (با پاپ).
|
||||
void _spawnTrumpReveal(String trump) {
|
||||
final (sym, col) = _trumpGlyph(trump);
|
||||
final (sym, col) = suitGlyph(trump);
|
||||
final reveal = TextComponent(
|
||||
text: 'حکم $sym',
|
||||
anchor: Anchor.center,
|
||||
@@ -606,16 +607,4 @@ class HokmGame extends FlameGame {
|
||||
add(c);
|
||||
}
|
||||
|
||||
(String, Color) _trumpGlyph(String suit) {
|
||||
switch (suit) {
|
||||
case 'hearts':
|
||||
return ('♥', const Color(0xFFD32F2F));
|
||||
case 'diamonds':
|
||||
return ('♦', const Color(0xFFD32F2F));
|
||||
case 'clubs':
|
||||
return ('♣', Colors.white);
|
||||
default:
|
||||
return ('♠', Colors.white);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,9 +3,11 @@ import 'dart:math' as math;
|
||||
import 'package:flame/components.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
// رنگهای مشترکِ میز.
|
||||
const _gold = Color(0xFFE9B949);
|
||||
const _goldDark = Color(0xFFB8860B);
|
||||
import '../../../../../core/theme/app_theme.dart';
|
||||
|
||||
// رنگهای مشترکِ میز (منبعِ واحد در AppColors).
|
||||
const _gold = AppColors.gold;
|
||||
const _goldDark = AppColors.goldDark;
|
||||
|
||||
/// میز: زمینِ سبزِ نمدی در کلِ صفحه + یک «میزِ» مرکزیِ سرمهای با قابِ طلاییِ
|
||||
/// دولایه (مطابقِ تصویرِ مرجع). کارتهای زمین داخلِ ناحیهی سرمهای انداخته میشوند
|
||||
|
||||
@@ -3,6 +3,8 @@ import 'dart:math' as math;
|
||||
import 'package:flame/components.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../../../../../core/theme/app_theme.dart';
|
||||
|
||||
/// حلقهی شمارشِ معکوسِ نوبت: کمانی که در طولِ مهلتِ نوبت خالی میشود.
|
||||
/// در ثانیههای پایانی قرمز و ضرباندار میشود. (صدای ضربانِ قلب در HokmGame
|
||||
/// مدیریت میشود تا هنگامِ بازیشدنِ کارت بلافاصله قطع شود.)
|
||||
@@ -50,7 +52,7 @@ class TurnTimer extends PositionComponent {
|
||||
: (1 - _elapsed / durationSeconds).clamp(0.0, 1.0);
|
||||
if (frac <= 0) return;
|
||||
|
||||
final color = frac > 0.35 ? const Color(0xFFE9B949) : const Color(0xFFE53935);
|
||||
final color = frac > 0.35 ? AppColors.gold : AppColors.suitRed;
|
||||
final arc = Paint()
|
||||
..style = PaintingStyle.stroke
|
||||
..strokeWidth = 4
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:random_avatar/random_avatar.dart';
|
||||
|
||||
import '../../../../core/network/ws_client.dart';
|
||||
import '../../../../core/theme/app_theme.dart';
|
||||
import '../../domain/entities/game_entities.dart';
|
||||
|
||||
/// اوورلیِ روی صحنهی Flame: آواتارِ بازیکنان با قابِ طلایی، نام، نشانِ رتبه،
|
||||
@@ -105,7 +106,7 @@ class TableHud extends StatelessWidget {
|
||||
width: 1,
|
||||
height: 30,
|
||||
margin: const EdgeInsets.symmetric(horizontal: 12),
|
||||
color: const Color(0x33E9B949),
|
||||
color: AppColors.goldFaint,
|
||||
),
|
||||
_scoreCol('حریف', opp),
|
||||
],
|
||||
@@ -121,7 +122,7 @@ class TableHud extends StatelessWidget {
|
||||
children: [
|
||||
Text(
|
||||
label,
|
||||
style: const TextStyle(color: Color(0xFFE9B949), fontSize: 12),
|
||||
style: const TextStyle(color: AppColors.gold, fontSize: 12),
|
||||
),
|
||||
Text(
|
||||
'$v',
|
||||
@@ -135,7 +136,7 @@ class TableHud extends StatelessWidget {
|
||||
);
|
||||
|
||||
Widget _hokmChip() {
|
||||
final (glyph, color) = _trumpGlyph(s.trump);
|
||||
final (glyph, color) = suitGlyph(s.trump);
|
||||
return Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 5),
|
||||
decoration: _panelDeco(),
|
||||
@@ -145,7 +146,7 @@ class TableHud extends StatelessWidget {
|
||||
const Text(
|
||||
'حکم',
|
||||
style: TextStyle(
|
||||
color: Color(0xFFE9B949),
|
||||
color: AppColors.gold,
|
||||
fontSize: 13,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -168,14 +169,14 @@ class TableHud extends StatelessWidget {
|
||||
children: [
|
||||
Icon(
|
||||
ok ? Icons.wifi : Icons.wifi_off,
|
||||
color: ok ? const Color(0xFF4CD964) : Colors.redAccent,
|
||||
color: ok ? AppColors.online : Colors.redAccent,
|
||||
size: 16,
|
||||
),
|
||||
const SizedBox(width: 5),
|
||||
Text(
|
||||
ok ? 'آنلاین' : 'قطع',
|
||||
style: TextStyle(
|
||||
color: ok ? const Color(0xFF4CD964) : Colors.redAccent,
|
||||
color: ok ? AppColors.online : Colors.redAccent,
|
||||
fontSize: 12,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -186,7 +187,7 @@ class TableHud extends StatelessWidget {
|
||||
const SizedBox(width: 8),
|
||||
_RoundBtn(
|
||||
icon: Icons.logout,
|
||||
color: const Color(0xFFB81D2A),
|
||||
color: AppColors.accent,
|
||||
onTap: onExit,
|
||||
size: 40,
|
||||
),
|
||||
@@ -201,24 +202,9 @@ class TableHud extends StatelessWidget {
|
||||
colors: [Color(0xFF2A2018), Color(0xFF14100B)],
|
||||
),
|
||||
borderRadius: BorderRadius.circular(14),
|
||||
border: Border.all(color: const Color(0xFFB8860B), width: 1.4),
|
||||
border: Border.all(color: AppColors.goldDark, width: 1.4),
|
||||
boxShadow: const [BoxShadow(color: Colors.black54, blurRadius: 6)],
|
||||
);
|
||||
|
||||
(String, Color) _trumpGlyph(String? suit) {
|
||||
switch (suit) {
|
||||
case 'hearts':
|
||||
return ('♥', const Color(0xFFE53935));
|
||||
case 'diamonds':
|
||||
return ('♦', const Color(0xFFE53935));
|
||||
case 'clubs':
|
||||
return ('♣', Colors.white);
|
||||
case 'spades':
|
||||
return ('♠', Colors.white);
|
||||
default:
|
||||
return ('—', Colors.white54);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class _PlayerSeat extends StatelessWidget {
|
||||
@@ -256,7 +242,7 @@ class _PlayerSeat extends StatelessWidget {
|
||||
color: const Color(0xCC14100B),
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
border: Border.all(
|
||||
color: isTurn ? const Color(0xFFE9B949) : const Color(0x55B8860B),
|
||||
color: isTurn ? AppColors.gold : const Color(0x55B8860B),
|
||||
),
|
||||
),
|
||||
child: Text(
|
||||
@@ -265,7 +251,7 @@ class _PlayerSeat extends StatelessWidget {
|
||||
overflow: TextOverflow.ellipsis,
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: isTurn ? const Color(0xFFE9B949) : Colors.white,
|
||||
color: isTurn ? AppColors.gold : Colors.white,
|
||||
fontSize: diameter * 0.18,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@@ -288,7 +274,7 @@ class _PlayerSeat extends StatelessWidget {
|
||||
gradient: const LinearGradient(
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
colors: [Color(0xFFF3D27A), Color(0xFFB8860B)],
|
||||
colors: [Color(0xFFF3D27A), AppColors.goldDark],
|
||||
),
|
||||
boxShadow: const [
|
||||
BoxShadow(color: Colors.black54, blurRadius: 6),
|
||||
@@ -359,7 +345,7 @@ class _PlayerSeat extends StatelessWidget {
|
||||
Text(
|
||||
'${player.coins}',
|
||||
style: TextStyle(
|
||||
color: const Color(0xFFE9B949),
|
||||
color: AppColors.gold,
|
||||
fontSize: diameter * 0.16,
|
||||
),
|
||||
),
|
||||
@@ -450,7 +436,7 @@ class _RingPainter extends CustomPainter {
|
||||
const start = -1.5708; // بالا
|
||||
final sweep = 6.28318 * left;
|
||||
final color =
|
||||
left < 0.3 ? const Color(0xFFE53935) : const Color(0xFF4CD964);
|
||||
left < 0.3 ? AppColors.suitRed : AppColors.online;
|
||||
canvas.drawArc(
|
||||
Rect.fromCircle(center: center, radius: radius),
|
||||
start,
|
||||
@@ -524,7 +510,7 @@ class _TricksBadgeState extends State<_TricksBadge>
|
||||
decoration: BoxDecoration(
|
||||
color: const Color(0xFF7B0E14),
|
||||
borderRadius: BorderRadius.circular(d),
|
||||
border: Border.all(color: const Color(0xFFE9B949), width: 1.4),
|
||||
border: Border.all(color: AppColors.gold, width: 1.4),
|
||||
boxShadow: const [BoxShadow(color: Colors.black54, blurRadius: 4)],
|
||||
),
|
||||
child: Row(
|
||||
@@ -566,7 +552,7 @@ class _RoundBtn extends StatelessWidget {
|
||||
decoration: BoxDecoration(
|
||||
color: color,
|
||||
shape: BoxShape.circle,
|
||||
border: Border.all(color: const Color(0xFFE9B949), width: 1.6),
|
||||
border: Border.all(color: AppColors.gold, width: 1.6),
|
||||
boxShadow: const [BoxShadow(color: Colors.black54, blurRadius: 6)],
|
||||
),
|
||||
child: Icon(icon, color: Colors.white, size: size * 0.5),
|
||||
|
||||
Reference in New Issue
Block a user