tryFind<T extends Card> method
Looks up a card in this collection by its orderInSet.
If the card is not found, returns null.
If the card is found, but is not of type T, throws a StateError. For
example, if you call tryFind<UnitCard>(1) on a collection that contains
a BaseCard at order 1, an error will be thrown.
Implementation
T? tryFind<T extends Card>(int orderInSet, [String? debugAssertName]) {
final card = _lookupCards[orderInSet - 1];
if (card == null) {
return null;
}
assert(
debugAssertName == null || card.name == debugAssertName,
'Expected $debugAssertName, got ${card.name}',
);
if (card is T) {
return card;
}
throw StateError('Expected $T, got ${card.runtimeType}');
}