mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-06-28 08:50:06 +02:00
cute golf support
This commit is contained in:
parent
662ecf0949
commit
a5c0480962
7 changed files with 220 additions and 31 deletions
|
@ -18,6 +18,7 @@ var ModalAlert = require('../views').ModalAlert;
|
|||
var MultiView = require('../views/multiView').MultiView;
|
||||
var CanvasTerminalHolder = require('../views').CanvasTerminalHolder;
|
||||
var ConfirmCancelTerminal = require('../views').ConfirmCancelTerminal;
|
||||
var NextLevelConfirm = require('../views').NextLevelConfirm;
|
||||
var LevelToolbar = require('../views').LevelToolbar;
|
||||
|
||||
var TreeCompare = require('../git/treeCompare').TreeCompare;
|
||||
|
@ -253,11 +254,43 @@ var Level = Sandbox.extend({
|
|||
this.levelSolved(defer);
|
||||
},
|
||||
|
||||
getNumSolutionCommands: function() {
|
||||
// strip semicolons in bad places
|
||||
var toAnalyze = this.level.solutionCommand.replace(/^;|;$/g, '');
|
||||
return toAnalyze.split(';').length;
|
||||
},
|
||||
|
||||
levelSolved: function(defer) {
|
||||
this.solved = true;
|
||||
this.hideGoal();
|
||||
|
||||
var nextLevel = Main.getLevelArbiter().getNextLevel(this.level.id);
|
||||
var numCommands = this.gitCommandsIssued;
|
||||
var best = this.getNumSolutionCommands();
|
||||
|
||||
this.mainVis.gitVisuals.finishAnimation()
|
||||
.then(function() {
|
||||
// TODO if there is no future level...
|
||||
|
||||
// we want to ask if they will move onto the next level...
|
||||
var nextDialog = new NextLevelConfirm({
|
||||
nextLevelName: nextLevel.name,
|
||||
numCommands: numCommands,
|
||||
best: best
|
||||
});
|
||||
|
||||
return nextDialog.getPromise();
|
||||
})
|
||||
.then(function() {
|
||||
Main.getEventBaton().trigger(
|
||||
'commandSubmitted',
|
||||
'level ' + nextLevel.id
|
||||
);
|
||||
})
|
||||
.fail(function() {
|
||||
// nothing to do, we will just close
|
||||
})
|
||||
.done(function() {
|
||||
defer.resolve();
|
||||
});
|
||||
},
|
||||
|
@ -301,6 +334,12 @@ var Level = Sandbox.extend({
|
|||
return instants;
|
||||
},
|
||||
|
||||
reset: function() {
|
||||
this.gitCommandsIssued = 0;
|
||||
this.solved = false;
|
||||
Sandbox.prototype.reset.apply(this, arguments);
|
||||
},
|
||||
|
||||
startLevel: function(command, deferred) {
|
||||
this.exitLevel();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue