Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Side by Side Diff: samples/pop_pop_win/lib/src/game_manager.dart

Issue 242443008: samples/pop_pop_win: now based on StageXL (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: tiny nit Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 part of pop_pop_win.html; 1 library pop_pop_win.game_manager;
2 2
3 import 'dart:async';
4
5 import 'game_storage.dart';
6 import 'game.dart';
7
3 abstract class GameManager { 8 abstract class GameManager {
4 final int _width, _height, _bombCount; 9 final int _width, _height, _bombCount;
5 final GameStorage _gameStorage = new GameStorage(); 10 final GameStorage _gameStorage = new GameStorage();
6 11
7 Game _game; 12 Game _game;
8 StreamSubscription _updatedEventId; 13 StreamSubscription _updatedEventId;
9 StreamSubscription _gameStateChangedId; 14 StreamSubscription _gameStateChangedId;
10 Timer _clockTimer; 15 Timer _clockTimer;
11 16
12 GameManager(this._width, this._height, this._bombCount) { 17 GameManager(this._width, this._height, this._bombCount) {
13 newGame(); 18 newGame();
14 } 19 }
15 20
16 Game get game => _game; 21 Game get game => _game;
17 22
18 Stream<EventArgs> get bestTimeUpdated => _gameStorage.bestTimeUpdated; 23 Stream get bestTimeUpdated => _gameStorage.bestTimeUpdated;
19 24
20 Future<int> get bestTimeMilliseconds => 25 Future<int> get bestTimeMilliseconds =>
21 _gameStorage.getBestTimeMilliseconds(_width, _height, _bombCount); 26 _gameStorage.getBestTimeMilliseconds(_width, _height, _bombCount);
22 27
23 void newGame() { 28 void newGame() {
24 if (_updatedEventId != null) { 29 if (_updatedEventId != null) {
25 assert(_game != null); 30 assert(_game != null);
26 assert(_gameStateChangedId != null); 31 assert(_gameStateChangedId != null);
27 _updatedEventId.cancel(); 32 _updatedEventId.cancel();
28 _gameStateChangedId.cancel(); 33 _gameStateChangedId.cancel();
29 _gameStateChanged(GameState.reset); 34 _gameStateChanged(GameState.reset);
30 } 35 }
31 final f = new Field(_bombCount, _width, _height); 36 final f = new Field(_bombCount, _width, _height);
32 _game = new Game(f); 37 _game = new Game(f);
33 _updatedEventId = _game.updated.listen(gameUpdated); 38 _updatedEventId = _game.updated.listen((_) => gameUpdated());
34 _gameStateChangedId = _game.stateChanged.listen(_gameStateChanged); 39 _gameStateChangedId = _game.stateChanged.listen(_gameStateChanged);
35 } 40 }
36 41
37 void gameUpdated(args); 42 void gameUpdated() {}
38 43
39 void resetScores() { 44 void resetScores() {
40 _gameStorage.reset(); 45 _gameStorage.reset();
41 } 46 }
42 47
43 void _click(int x, int y, bool alt) { 48 void _click(int x, int y, bool alt) {
44 final ss = _game.getSquareState(x, y); 49 final ss = _game.getSquareState(x, y);
45 50
46 if (alt) { 51 if (alt) {
47 if (ss == SquareState.hidden) { 52 if (ss == SquareState.hidden) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 bestTimeMilliseconds.then((int val) { 88 bestTimeMilliseconds.then((int val) {
84 onNewBestTime(val); 89 onNewBestTime(val);
85 }); 90 });
86 } 91 }
87 }); 92 });
88 } 93 }
89 updateClock(); 94 updateClock();
90 onGameStateChanged(newState); 95 onGameStateChanged(newState);
91 } 96 }
92 } 97 }
OLDNEW
« no previous file with comments | « samples/pop_pop_win/lib/src/game/game.dart ('k') | samples/pop_pop_win/lib/src/game_storage.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698