onLinesCleared method

LevelState onLinesCleared(
  1. LevelState state,
  2. int linesCleared
)

Returns updated LevelState after clearing linesCleared lines.

Implementation

LevelState onLinesCleared(LevelState state, int linesCleared) {
  if (linesCleared == 0) return state;

  final newTotal = state.linesCleared + linesCleared;
  final newUntil = state.linesUntilNextLevel - linesCleared;

  if (newUntil <= 0) {
    return LevelState(
      level: state.level + 1,
      linesCleared: newTotal,
      linesUntilNextLevel: 10 + newUntil.abs(),
    );
  }

  return state.copyWith(
    linesCleared: newTotal,
    linesUntilNextLevel: newUntil,
  );
}