mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-01 10:38:17 +08:00
This PR adds the following lint rules to our list: ``` always_put_required_named_parameters_first avoid_multiple_declarations_per_line avoid_positional_boolean_parameters avoid_returning_null_for_void avoid_returning_this avoid_unnecessary_containers enable_null_safety library_private_types_in_public_api no_leading_underscores_for_library_prefixes no_leading_underscores_for_local_identifiers prefer_null_aware_method_calls tighten_type_of_initializing_formals unnecessary_late use_setters_to_change_properties ``` And these rules were considered, and some changes were made according to them as a clean-up, but in many places they didn't make sense (`prefer_asserts_with_message` I would have included, but there were too many places that needed to be changes): ``` collection_methods_unrelated_type prefer_asserts_with_message avoid_renaming_method_parameters ```
33 lines
854 B
Dart
33 lines
854 B
Dart
import 'package:flame/sprite.dart';
|
|
import 'package:flutter/foundation.dart';
|
|
import 'klondike_game.dart';
|
|
|
|
@immutable
|
|
class Suit {
|
|
factory Suit.fromInt(int index) {
|
|
assert(
|
|
index >= 0 && index <= 3,
|
|
'index is outside of the bounds of what a suit can be',
|
|
);
|
|
return _singletons[index];
|
|
}
|
|
|
|
Suit._(this.value, this.label, double x, double y, double w, double h)
|
|
: sprite = klondikeSprite(x, y, w, h);
|
|
|
|
final int value;
|
|
final String label;
|
|
final Sprite sprite;
|
|
|
|
static final List<Suit> _singletons = [
|
|
Suit._(0, '♥', 1176, 17, 172, 183),
|
|
Suit._(1, '♦', 973, 14, 177, 182),
|
|
Suit._(2, '♣', 974, 226, 184, 172),
|
|
Suit._(3, '♠', 1178, 220, 176, 182),
|
|
];
|
|
|
|
/// Hearts and Diamonds are red, while Clubs and Spades are black.
|
|
bool get isRed => value <= 1;
|
|
bool get isBlack => value >= 2;
|
|
}
|