MAPG-235 fixed bugs with displaying score and round
This commit is contained in:
parent
30f4b7ad19
commit
069c6b37c8
@ -295,36 +295,29 @@ const GameType = Object.freeze({'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2});
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Game.history = this.response.history;
|
Game.loadHistory(this.response.history);
|
||||||
|
|
||||||
if (this.response.history !== undefined) {
|
|
||||||
for (var i = 0; i < this.response.history.length; ++i) {
|
|
||||||
var round = this.response.history[i];
|
|
||||||
|
|
||||||
if (round.result) {
|
|
||||||
Game.rounds.push({ position: round.position, guessPosition: round.result.guessPosition, realMarker: null, guessMarkers: [] });
|
|
||||||
Game.addPositionToResultMap(true);
|
|
||||||
if (round.result.guessPosition) {
|
|
||||||
Game.addGuessPositionToResultMap(round.result.guessPosition, null, true);
|
|
||||||
}
|
|
||||||
Game.scoreSum += round.result.score;
|
|
||||||
|
|
||||||
|
|
||||||
if (round.allResults !== undefined) {
|
|
||||||
for (var j = 0; j < round.allResults.length; ++j) {
|
|
||||||
var result = round.allResults[j];
|
|
||||||
if (result.guessPosition) {
|
|
||||||
Game.addGuessPositionToResultMap(result.guessPosition, result, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.response.finished) {
|
if (this.response.finished) {
|
||||||
|
|
||||||
|
Game.transitToResultMap();
|
||||||
|
Game.showSummary();
|
||||||
|
document.getElementById('continueButton').style.display = 'none';
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
Game.panoId = this.response.place.panoId;
|
||||||
|
Game.pov = this.response.place.pov;
|
||||||
|
|
||||||
|
Game.startNewRound();
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('currentRound').innerHTML = String(Game.rounds.length) + '/' + String(Game.NUMBER_OF_ROUNDS);
|
||||||
|
document.getElementById('currentScoreSum').innerHTML = String(Game.scoreSum) + '/' + String(Game.rounds.length * Game.MAX_SCORE);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
transitToResultMap: function() {
|
||||||
// TODO: refactor - it is necessary for mobile
|
// TODO: refactor - it is necessary for mobile
|
||||||
if (window.getComputedStyle(document.getElementById('guess')).visibility === 'hidden') {
|
if (window.getComputedStyle(document.getElementById('guess')).visibility === 'hidden') {
|
||||||
document.getElementById('showGuessButton').click();
|
document.getElementById('showGuessButton').click();
|
||||||
@ -345,20 +338,65 @@ const GameType = Object.freeze({'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2});
|
|||||||
draggableCursor: 'grab'
|
draggableCursor: 'grab'
|
||||||
});
|
});
|
||||||
|
|
||||||
Game.showSummary();
|
if (Game.rounds.length === Game.NUMBER_OF_ROUNDS) {
|
||||||
|
|
||||||
document.getElementById('continueButton').style.display = 'none';
|
document.getElementById('continueButton').style.display = 'none';
|
||||||
return;
|
document.getElementById('showSummaryButton').style.display = 'block';
|
||||||
|
} else if (Game.type == GameType.MULTI) {
|
||||||
|
if (Game.multi.owner) {
|
||||||
|
if (!Game.readyToContinue) {
|
||||||
|
document.getElementById('continueButton').disabled = true;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
document.getElementById('continueButton').style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
Game.panoId = this.response.place.panoId;
|
loadHistory: function (history) {
|
||||||
Game.pov = this.response.place.pov;
|
if(!history)
|
||||||
|
return;
|
||||||
|
|
||||||
document.getElementById('currentRound').innerHTML = String(Game.rounds.length) + '/' + String(Game.NUMBER_OF_ROUNDS);
|
Game.history = history;
|
||||||
document.getElementById('currentScoreSum').innerHTML = String(Game.scoreSum) + '/' + String(Game.rounds.length * Game.MAX_SCORE);
|
|
||||||
|
|
||||||
Game.startNewRound();
|
for (var i = 0; i < Game.rounds.length; ++i) {
|
||||||
});
|
var round = Game.rounds[i];
|
||||||
|
|
||||||
|
if (round.realMarker) {
|
||||||
|
round.realMarker.setMap(null);
|
||||||
|
}
|
||||||
|
for (var j = 0; j < round.guessMarkers.length; ++j) {
|
||||||
|
var guessMarker = round.guessMarkers[j];
|
||||||
|
guessMarker.marker.setMap(null);
|
||||||
|
guessMarker.line.setMap(null);
|
||||||
|
if (guessMarker.info) {
|
||||||
|
guessMarker.info.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Game.rounds = [];
|
||||||
|
|
||||||
|
for (var i = 0; i < Game.history.length; ++i) {
|
||||||
|
var round = Game.history[i];
|
||||||
|
|
||||||
|
if (round.result) {
|
||||||
|
Game.rounds.push({ position: round.position, guessPosition: round.result.guessPosition, realMarker: null, guessMarkers: [] });
|
||||||
|
Game.addPositionToResultMap(true);
|
||||||
|
if (round.result.guessPosition) {
|
||||||
|
Game.addGuessPositionToResultMap(round.result.guessPosition, null, true);
|
||||||
|
}
|
||||||
|
Game.scoreSum += round.result.score;
|
||||||
|
|
||||||
|
|
||||||
|
if(round.allResults !== undefined) {
|
||||||
|
for (var j = 0; j < round.allResults.length; ++j) {
|
||||||
|
var result = round.allResults[j];
|
||||||
|
if (result.guessPosition) {
|
||||||
|
Game.addGuessPositionToResultMap(result.guessPosition, result, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
reset: function () {
|
reset: function () {
|
||||||
@ -542,25 +580,9 @@ const GameType = Object.freeze({'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2});
|
|||||||
},
|
},
|
||||||
|
|
||||||
showResultMap: function (result, resultBounds) {
|
showResultMap: function (result, resultBounds) {
|
||||||
// TODO: refactor - it is necessary for mobile
|
|
||||||
if (window.getComputedStyle(document.getElementById('guess')).visibility === 'hidden') {
|
|
||||||
document.getElementById('showGuessButton').click();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Game.adaptGuess) {
|
Game.transitToResultMap();
|
||||||
document.getElementById('guess').classList.remove('adapt');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Game.guessMarker) {
|
|
||||||
Game.guessMarker.setMap(null);
|
|
||||||
Game.guessMarker = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
document.getElementById('guess').classList.add('result');
|
|
||||||
|
|
||||||
Game.map.setOptions({
|
|
||||||
draggableCursor: 'grab'
|
|
||||||
});
|
|
||||||
Game.map.fitBounds(resultBounds);
|
Game.map.fitBounds(resultBounds);
|
||||||
|
|
||||||
var distanceInfo = document.getElementById('distanceInfo');
|
var distanceInfo = document.getElementById('distanceInfo');
|
||||||
@ -579,19 +601,6 @@ const GameType = Object.freeze({'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2});
|
|||||||
var scoreBar = document.getElementById('scoreBar');
|
var scoreBar = document.getElementById('scoreBar');
|
||||||
scoreBar.style.backgroundColor = scoreBarProperties.backgroundColor;
|
scoreBar.style.backgroundColor = scoreBarProperties.backgroundColor;
|
||||||
scoreBar.style.width = scoreBarProperties.width;
|
scoreBar.style.width = scoreBarProperties.width;
|
||||||
|
|
||||||
if (Game.rounds.length === Game.NUMBER_OF_ROUNDS) {
|
|
||||||
document.getElementById('continueButton').style.display = 'none';
|
|
||||||
document.getElementById('showSummaryButton').style.display = 'block';
|
|
||||||
} else if (roomId) {
|
|
||||||
if (Game.multi.owner) {
|
|
||||||
if (!Game.readyToContinue) {
|
|
||||||
document.getElementById('continueButton').disabled = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
document.getElementById('continueButton').style.display = 'none';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
guess: function () {
|
guess: function () {
|
||||||
@ -783,43 +792,6 @@ const GameType = Object.freeze({'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2});
|
|||||||
},
|
},
|
||||||
|
|
||||||
showSummary: function () {
|
showSummary: function () {
|
||||||
for (var i = 0; i < Game.rounds.length; ++i) {
|
|
||||||
var round = Game.rounds[i];
|
|
||||||
|
|
||||||
if (round.realMarker) {
|
|
||||||
round.realMarker.setMap(null);
|
|
||||||
}
|
|
||||||
for (var j = 0; j < round.guessMarkers.length; ++j) {
|
|
||||||
var guessMarker = round.guessMarkers[j];
|
|
||||||
guessMarker.marker.setMap(null);
|
|
||||||
guessMarker.line.setMap(null);
|
|
||||||
if (guessMarker.info) {
|
|
||||||
guessMarker.info.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Game.rounds = [];
|
|
||||||
|
|
||||||
for (var i = 0; i < Game.history.length; ++i) {
|
|
||||||
var round = Game.history[i];
|
|
||||||
Game.rounds.push({ position: round.position, guessPosition: round.result.guessPosition, realMarker: null, guessMarkers: [] });
|
|
||||||
Game.addPositionToResultMap(true);
|
|
||||||
if (round.result.guessPosition) {
|
|
||||||
Game.addGuessPositionToResultMap(round.result.guessPosition, null, true);
|
|
||||||
}
|
|
||||||
Game.scoreSum += round.result.score;
|
|
||||||
|
|
||||||
if(round.allResults !== undefined) {
|
|
||||||
for (var j = 0; j < round.allResults.length; ++j) {
|
|
||||||
var result = round.allResults[j];
|
|
||||||
if (result.guessPosition) {
|
|
||||||
Game.addGuessPositionToResultMap(result.guessPosition, result, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var distanceInfo = document.getElementById('distanceInfo');
|
var distanceInfo = document.getElementById('distanceInfo');
|
||||||
distanceInfo.children[0].style.display = 'none';
|
distanceInfo.children[0].style.display = 'none';
|
||||||
distanceInfo.children[1].style.display = 'none';
|
distanceInfo.children[1].style.display = 'none';
|
||||||
|
Loading…
Reference in New Issue
Block a user