Compare commits
No commits in common. "a5238234d23a448ca5e741aa37b662b757fa2e7d" and "b00fe4ebe35421025b3521f43d06616e1a00b602" have entirely different histories.
a5238234d2
...
b00fe4ebe3
@ -20,4 +20,3 @@ MULTI_INTERNAL_HOST=multi
|
|||||||
MULTI_INTERNAL_PORT=5000
|
MULTI_INTERNAL_PORT=5000
|
||||||
MULTI_WS_URL=mapguesser-dev.ch:8090
|
MULTI_WS_URL=mapguesser-dev.ch:8090
|
||||||
MULTI_WS_PORT=8090
|
MULTI_WS_PORT=8090
|
||||||
ENABLE_GAME_FOR_GUESTS=0
|
|
||||||
|
@ -199,12 +199,6 @@
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 899px) {
|
|
||||||
.hideOnNarrowScreen {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 599px) {
|
@media screen and (max-width: 599px) {
|
||||||
#mapName {
|
#mapName {
|
||||||
display: none;
|
display: none;
|
||||||
@ -232,6 +226,9 @@
|
|||||||
bottom: 25px;
|
bottom: 25px;
|
||||||
left: 10px;
|
left: 10px;
|
||||||
}
|
}
|
||||||
|
.hideOnMobile {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (min-width: 600px) {
|
@media screen and (min-width: 600px) {
|
||||||
|
@ -299,9 +299,6 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
|
|||||||
|
|
||||||
Game.loadHistory(this.response);
|
Game.loadHistory(this.response);
|
||||||
|
|
||||||
Game.restrictions = this.response.restrictions;
|
|
||||||
Game.displayRestrictions();
|
|
||||||
|
|
||||||
if (this.response.finished) {
|
if (this.response.finished) {
|
||||||
|
|
||||||
Game.transitToResultMap();
|
Game.transitToResultMap();
|
||||||
@ -309,6 +306,8 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
Game.restrictions = this.response.restrictions;
|
||||||
|
|
||||||
Game.panoId = this.response.place.panoId;
|
Game.panoId = this.response.place.panoId;
|
||||||
Game.pov = this.response.place.pov;
|
Game.pov = this.response.place.pov;
|
||||||
|
|
||||||
@ -340,47 +339,6 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
|
|||||||
Game.guess();
|
Game.guess();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
displayRestrictions: function () {
|
|
||||||
if (!Game.restrictions) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var restrictionsForDisplay = [];
|
|
||||||
if (Game.restrictions.timeLimit) {
|
|
||||||
restrictionsForDisplay.push('time limit per ' + Game.restrictions.timeLimitType);
|
|
||||||
}
|
|
||||||
if (Game.restrictions.noPan) {
|
|
||||||
restrictionsForDisplay.push('no camera change');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (Game.restrictions.noMove) {
|
|
||||||
restrictionsForDisplay.push('no move');
|
|
||||||
}
|
|
||||||
if (Game.restrictions.noZoom) {
|
|
||||||
restrictionsForDisplay.push('no zoom');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// create restrictions span for header
|
|
||||||
var restrictions = document.createElement('span');
|
|
||||||
restrictions.setAttribute('id', 'restrictions');
|
|
||||||
restrictions.setAttribute('class', 'hideOnNarrowScreen');
|
|
||||||
var restrictionsTitle = document.createElement('span');
|
|
||||||
restrictionsTitle.setAttribute('class', 'bold');
|
|
||||||
restrictionsTitle.innerText = 'Restrictions: ';
|
|
||||||
var restrictionsList = document.createElement('span');
|
|
||||||
restrictionsList.innerText = restrictionsForDisplay.join(', ');
|
|
||||||
restrictions.appendChild(restrictionsTitle);
|
|
||||||
restrictions.appendChild(restrictionsList);
|
|
||||||
|
|
||||||
var roundContainer = document.getElementById('roundContainer');
|
|
||||||
var header = roundContainer.parentNode;
|
|
||||||
header.insertBefore(restrictions, roundContainer);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
disableRestrictions: function () {
|
disableRestrictions: function () {
|
||||||
@ -397,14 +355,6 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
|
|||||||
Game.timeoutEnd = null;
|
Game.timeoutEnd = null;
|
||||||
},
|
},
|
||||||
|
|
||||||
hideRestrictions: function() {
|
|
||||||
var restrictions = document.getElementById('restrictions');
|
|
||||||
if (restrictions) {
|
|
||||||
var header = restrictions.parentNode;
|
|
||||||
header.removeChild(restrictions);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
transitToResultMap: function () {
|
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') {
|
||||||
@ -537,7 +487,6 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
|
|||||||
document.getElementById("navigation").style.visibility = 'visible';
|
document.getElementById("navigation").style.visibility = 'visible';
|
||||||
|
|
||||||
Game.disableRestrictions();
|
Game.disableRestrictions();
|
||||||
Game.hideRestrictions();
|
|
||||||
|
|
||||||
document.getElementById('panningBlockerCover').style.display = null;
|
document.getElementById('panningBlockerCover').style.display = null;
|
||||||
|
|
||||||
@ -951,12 +900,6 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
|
|||||||
scoreBar.style.backgroundColor = scoreBarProperties.backgroundColor;
|
scoreBar.style.backgroundColor = scoreBarProperties.backgroundColor;
|
||||||
scoreBar.style.width = scoreBarProperties.width;
|
scoreBar.style.width = scoreBarProperties.width;
|
||||||
|
|
||||||
Game.showHighscores();
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
showHighscores: function() {
|
|
||||||
|
|
||||||
if (Game.type == GameType.CHALLENGE) {
|
if (Game.type == GameType.CHALLENGE) {
|
||||||
var highscores = this.calculateHighScores();
|
var highscores = this.calculateHighScores();
|
||||||
var summaryInfo = document.getElementById('summaryInfo');
|
var summaryInfo = document.getElementById('summaryInfo');
|
||||||
@ -982,16 +925,18 @@ const GameType = Object.freeze({ 'SINGLE': 0, 'MULTI': 1, 'CHALLENGE': 2 });
|
|||||||
} else if (highscores.length == 2) {
|
} else if (highscores.length == 2) {
|
||||||
|
|
||||||
if (highscores[0].userName === 'me') {
|
if (highscores[0].userName === 'me') {
|
||||||
summaryInfo.innerHTML = 'You won! <span class="hideOnNarrowScreen">' + highscores[1].userName + ' got only ' + highscores[1].score + ' points.</span>';
|
summaryInfo.innerHTML = 'You won! <span class="hideOnMobile">' + highscores[1].userName + ' got only ' + highscores[1].score + ' points.</span>';
|
||||||
} else {
|
} else {
|
||||||
summaryInfo.innerHTML = 'You lost! <span class="hideOnNarrowScreen">' + highscores[0].userName + ' won with ' + highscores[0].score + ' points.</span>';
|
summaryInfo.innerHTML = 'You lost! <span class="hideOnMobile">' + highscores[0].userName + ' won with ' + highscores[0].score + ' points.</span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (highscores.length == 1) {
|
} else if (highscores.length == 1) {
|
||||||
summaryInfo.innerHTML = 'You are the first to finish. <span class="hideOnNarrowScreen">Invite your friends by sending them the link.</span>'
|
// summaryInfo.innerHTML = 'You are the first to finish. Challenge other by sending them the link and come back for the results.'
|
||||||
|
summaryInfo.innerHTML = 'You are the first to finish.'
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
rewriteGoogleLink: function () {
|
rewriteGoogleLink: function () {
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
use DateTime;
|
use DateTime;
|
||||||
use Faker\Factory;
|
use Faker\Factory;
|
||||||
use MapGuesser\Interfaces\Authorization\ISecured;
|
|
||||||
use MapGuesser\Interfaces\Request\IRequest;
|
use MapGuesser\Interfaces\Request\IRequest;
|
||||||
use MapGuesser\Response\HtmlContent;
|
use MapGuesser\Response\HtmlContent;
|
||||||
use MapGuesser\Response\JsonContent;
|
use MapGuesser\Response\JsonContent;
|
||||||
@ -21,7 +20,7 @@ use MapGuesser\Repository\PlaceRepository;
|
|||||||
use MapGuesser\Repository\UserInChallengeRepository;
|
use MapGuesser\Repository\UserInChallengeRepository;
|
||||||
use MapGuesser\Response\Redirect;
|
use MapGuesser\Response\Redirect;
|
||||||
|
|
||||||
class GameController implements ISecured
|
class GameController
|
||||||
{
|
{
|
||||||
const NUMBER_OF_ROUNDS = 5;
|
const NUMBER_OF_ROUNDS = 5;
|
||||||
|
|
||||||
@ -53,11 +52,6 @@ class GameController implements ISecured
|
|||||||
$this->userInChallengeRepository = new UserInChallengeRepository();
|
$this->userInChallengeRepository = new UserInChallengeRepository();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return !empty($_ENV['ENABLE_GAME_FOR_GUESTS']) || $this->request->user() !== null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getGame(): IContent
|
public function getGame(): IContent
|
||||||
{
|
{
|
||||||
$mapId = (int) $this->request->query('mapId');
|
$mapId = (int) $this->request->query('mapId');
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<?php namespace MapGuesser\Controller;
|
<?php namespace MapGuesser\Controller;
|
||||||
|
|
||||||
use DateTime;
|
use DateTime;
|
||||||
use MapGuesser\Interfaces\Authorization\ISecured;
|
|
||||||
use MapGuesser\Interfaces\Request\IRequest;
|
use MapGuesser\Interfaces\Request\IRequest;
|
||||||
use MapGuesser\Util\Geo\Position;
|
use MapGuesser\Util\Geo\Position;
|
||||||
use MapGuesser\Response\JsonContent;
|
use MapGuesser\Response\JsonContent;
|
||||||
@ -25,7 +24,7 @@ use MapGuesser\Repository\UserInChallengeRepository;
|
|||||||
use MapGuesser\Repository\UserPlayedPlaceRepository;
|
use MapGuesser\Repository\UserPlayedPlaceRepository;
|
||||||
use MapGuesser\Repository\UserRepository;
|
use MapGuesser\Repository\UserRepository;
|
||||||
|
|
||||||
class GameFlowController implements ISecured
|
class GameFlowController
|
||||||
{
|
{
|
||||||
const NUMBER_OF_ROUNDS = 5;
|
const NUMBER_OF_ROUNDS = 5;
|
||||||
const MAX_SCORE = 1000;
|
const MAX_SCORE = 1000;
|
||||||
@ -70,11 +69,6 @@ class GameFlowController implements ISecured
|
|||||||
$this->guessRepository = new GuessRepository();
|
$this->guessRepository = new GuessRepository();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function authorize(): bool
|
|
||||||
{
|
|
||||||
return !empty($_ENV['ENABLE_GAME_FOR_GUESTS']) || $this->request->user() !== null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function initialData(): IContent
|
public function initialData(): IContent
|
||||||
{
|
{
|
||||||
$mapId = (int) $this->request->query('mapId');
|
$mapId = (int) $this->request->query('mapId');
|
||||||
@ -226,15 +220,14 @@ class GameFlowController implements ISecured
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$response['restrictions'] = [
|
$response['restrictions'] = [
|
||||||
'timeLimit' => $challenge->getTimeLimit() * 1000,
|
'timeLimit' => $challenge->getTimeLimit() * 1000,
|
||||||
'timeLimitType' => $challenge->getTimeLimitType(),
|
|
||||||
'noMove' => $challenge->getNoMove(),
|
'noMove' => $challenge->getNoMove(),
|
||||||
'noPan' => $challenge->getNoPan(),
|
'noPan' => $challenge->getNoPan(),
|
||||||
'noZoom' => $challenge->getNoZoom()
|
'noZoom' => $challenge->getNoZoom()
|
||||||
];
|
];
|
||||||
|
}
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
@ -114,7 +114,6 @@ TODO: condition!
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="buttonContainer">
|
<div class="buttonContainer">
|
||||||
<?php if (!empty($_ENV['ENABLE_GAME_FOR_GUESTS']) || Container::$request->user()): ?>
|
|
||||||
<?php if ($isAdmin): ?>
|
<?php if ($isAdmin): ?>
|
||||||
<button class="button fullWidth noRightRadius playButton" data-map-id="<?= $map['id'] ?>" data-map-name="<?= htmlspecialchars($map['name']) ?>" title="Play map '<?= $map['name'] ?>'">Play this map</button>
|
<button class="button fullWidth noRightRadius playButton" data-map-id="<?= $map['id'] ?>" data-map-name="<?= htmlspecialchars($map['name']) ?>" title="Play map '<?= $map['name'] ?>'">Play this map</button>
|
||||||
<a class="button yellow fullWidth noLeftRadius noRightRadius" href="/admin/mapEditor/<?= $map['id']; ?>" title="Edit map '<?= $map['name'] ?>'">Edit</a>
|
<a class="button yellow fullWidth noLeftRadius noRightRadius" href="/admin/mapEditor/<?= $map['id']; ?>" title="Edit map '<?= $map['name'] ?>'">Edit</a>
|
||||||
@ -122,9 +121,6 @@ TODO: condition!
|
|||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<button class="button fullWidth playButton" data-map-id="<?= $map['id'] ?>" data-map-name="<?= htmlspecialchars($map['name']) ?>" title="Play map '<?= $map['name'] ?>'">Play this map</button>
|
<button class="button fullWidth playButton" data-map-id="<?= $map['id'] ?>" data-map-name="<?= htmlspecialchars($map['name']) ?>" title="Play map '<?= $map['name'] ?>'">Play this map</button>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php else: ?>
|
|
||||||
<a href="/login" class="button fullWidth" title="Play map '<?= $map['name'] ?>'">Play this map</a>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
|
Loading…
Reference in New Issue
Block a user