feature/MAPG-235-basic-challenge-mode #48
@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user