site-accueil-insa/ajax/read/index.php

590 lines
24 KiB
PHP
Raw Normal View History

2020-09-19 16:08:07 +02:00
<?php
require_once '../../classes/dao.php';
if (isset($_GET['function'])) {
if ($_GET['function'] == "get_scores")
get_scores();
elseif ($_GET['function'] == "get_map_info")
get_map_info();
elseif ($_GET['function'] == "get_activities_of_day")
get_activities_of_day();
2021-07-28 22:03:33 +02:00
elseif ($_GET['function'] == "get_enigma_code")
get_enigma_code();
elseif ($_GET['function'] == "get_plaquette_code")
get_plaquette_code();
2021-08-06 18:12:17 +02:00
elseif ($_GET['function'] == "get_map_selectors")
get_map_selectors();
2020-09-19 16:08:07 +02:00
} else
show_error();
2021-08-06 17:15:11 +02:00
function get_map_selectors() {
header('Content-Type: application/json');
$dao = new Dao();
echo json_encode($dao->get_map_selectors());
}
2020-09-19 16:08:07 +02:00
function get_scores() {
if (isset($_GET['team'])) {
header('Content-Type: application/json');
$dao = new Dao();
echo json_encode($dao->get_score_team($_GET['team']));
} else {
show_error();
}
}
function get_map_info() {
if (isset($_GET['selector'])) {
header('Content-Type: application/json');
$dao = new Dao();
echo json_encode($dao->get_map_info($_GET['selector']));
} else {
show_error();
}
}
function get_activities_of_day() {
if (isset($_GET['day'])) {
header('Content-Type: application/json');
$dao = new Dao();
echo json_encode($dao->get_activities_of_day($_GET['day']));
} else {
show_error();
}
}
2021-07-28 22:03:33 +02:00
//
// Section pour les énigmes
//
2021-08-06 17:15:11 +02:00
function isFirstTeamToSolve($score_data) {
$team = $score_data['team'];
$enigme = $score_data['text'];
$dao = new Dao();
$scorePek = $dao->get_score_team('pek');
$scoreBoo = $dao->get_score_team('boo');
$score = array_merge($scorePek, $scoreBoo);
foreach($score as $value) {
if ($value['text'] == $enigme)
return false;
}
return true;
}
2021-08-16 21:07:30 +02:00
function isAlreadySolved($team, $enigme) {
2021-08-06 17:15:11 +02:00
2021-08-16 21:07:30 +02:00
$dao = new Dao();
$score = $dao->get_score_team($team);
foreach($score as $value) {
if ($value['text'] == $enigme)
return false;
}
return true;
}
function isLastEnigmaSolved($enigme) {
$dao = new Dao();
$scorePek = $dao->get_score_team('pek');
$scoreBoo = $dao->get_score_team('boo');
$score = array_merge($scorePek, $scoreBoo);
foreach($score as $value) {
if ($value['text'] == $enigme)
return true;
}
return false;
}
// TODO : passer ça sous DB
2021-07-28 22:03:33 +02:00
function get_enigma_code() {
if (isset($_GET['code'])) {
$data = array(
"name" => $_GET['code'],
"info" => null,
);
2021-08-06 17:15:11 +02:00
$team = $_GET['team'];
2021-08-09 21:07:50 +02:00
$time = new DateTime();
$date = $time->getTimestamp();
2021-08-06 17:15:11 +02:00
$score_data = array(
"text" => null,
"points" => 0,
"team" => $team,
);
2021-07-28 22:03:33 +02:00
switch ($_GET['code']) {
case '501432' :
$data["name"] = "enigme-1";
2021-08-06 17:15:11 +02:00
$score_data["text"] = 'Énigme 1';
$score_data["points"] = 200;
2021-08-09 21:07:50 +02:00
if($date< 1627221618 ) {
2021-07-28 22:03:33 +02:00
$data["info"] = "<h2>Énigme 1</h2>Code trouvé, reviens demain pour avoir la suite ;)";
} else {
$data["info"] = "<h2>Énigme 1</h2>
<p>Petit Pionnier Aguerri, dans l'arène, les déplacements des combattants sont tous enregistrés, voici le déplacement d'un combattant d'un district concurrant, à toi de le retrouver ! <br>
nord, nord, nord, est, sud-est, sud-ouest, ouest; <br>
ouest, sud, est, ouest, sud, est; <br>
ouest, sud, est, ouest, sud, est; <br>
est, est, est, ouest, sud, sud, sud; <br>
nord,nord,nord-est, , sud-est, sud, sud, nord, ouest; <br>
</p>";
2021-08-07 12:40:18 +02:00
}
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
2021-07-28 22:03:33 +02:00
}
echo json_encode($data, JSON_FORCE_OBJECT);
break;
2021-08-06 17:40:07 +02:00
case 'PEETA' :
$data["name"] = "enigme-2";
$score_data["text"] = 'Énigme 2';
2021-08-07 12:40:18 +02:00
$score_data["points"] = 200;
2021-08-06 17:40:07 +02:00
2021-08-09 21:07:50 +02:00
if($date< 1628334842 ) {
2021-08-07 12:40:18 +02:00
$data["info"] = "<h2>Énigme 2</h2>Code trouvé, reviens à 13h14 pour la suite";
2021-08-06 17:40:07 +02:00
} else {
$data["info"] = "<h2>Énigme 2</h2>Dès l'aube, un oiseau aux sifflements merveilleux fit son apparition sur l'arène de l'INSA";
2021-08-07 12:40:18 +02:00
}
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
}
echo json_encode($data, JSON_FORCE_OBJECT);
break;
case 'Lucy Gray Baird' :
$data["name"] = "enigme-3";
$score_data["text"] = 'Énigme 3';
$score_data["points"] = 250;
2021-08-09 21:07:50 +02:00
if($date< 1628353800 ) {
2021-08-07 12:40:18 +02:00
$data["info"] = "<h2>Énigme 3</h2><p>Code trouvé</p>";
2021-08-09 21:07:50 +02:00
} elseif ($date< 1628400600) {
2021-08-07 19:17:12 +02:00
$data["info"] = "<h2>Énigme 3</h2><p>Code trouvé ! Voici un petit indice pour la suite</p><img src=\"assets/enigmes/Caesar.jpg\"></img>";
2021-08-07 12:40:18 +02:00
} else {
$data["info"] = "<h2>Énigme 3</h2>
2021-08-08 00:15:25 +02:00
<p>Après l'indice, l'énoncé.</p>
2021-08-08 00:06:48 +02:00
<!--<p>OaduaxmzgeEzai</p><p>M'hvshuh txh yrxv dlphu od fubswrjudsklh!</p>-->
2021-08-07 12:40:18 +02:00
<img src=\"assets/enigmes/Caesar.jpg\"></img>";
}
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
2021-08-06 17:40:07 +02:00
}
echo json_encode($data, JSON_FORCE_OBJECT);
break;
2021-08-08 00:06:48 +02:00
case 'CoriolanusSnow' :
$data["name"] = "enigme-4";
$score_data["text"] = 'Énigme 4';
$score_data["points"] = 250;
2021-08-09 21:07:50 +02:00
if($date< 1628460000 ) {
2021-08-08 00:06:48 +02:00
$data["info"] = "<h2>Énigme 4</h2>
Code trouvé !<!--Parcours du site en cours...--> ";
} else {
$data["info"] = "<h2>Énigme 4</h2>
Code trouvé ! Parcours du site en cours...
2021-08-08 00:15:25 +02:00
<!--Et ... une grande allée avec plein d'énigmes, qu'on appellera la grande allée avec plein d'énigmes !-->
2021-08-08 00:06:48 +02:00
<p>Voilà plusieurs jours que tu parcours les énigmes, augmentons un peu la difficulté...</p>";
}
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
}
echo json_encode($data, JSON_FORCE_OBJECT);
break;
2021-08-08 18:44:13 +02:00
case 'PANEM' :
$data["name"] = "enigme-5";
$score_data["text"] = 'Énigme 5';
$score_data["points"] = 50;
2021-08-09 21:07:50 +02:00
if($date< 1628524800 ) {
2021-08-08 18:44:13 +02:00
$data["info"] = "<h2>Énigme 5</h2>
Code trouvé !";
} else {
$data["info"] = "<h2>Énigme 5</h2>
<p>N'aurais tu pas oublié quelque chose ?</p>";
}
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
}
echo json_encode($data, JSON_FORCE_OBJECT);
break;
2021-08-06 17:40:07 +02:00
2021-08-08 18:44:13 +02:00
case 'Théorème de Gauss' :
$data["name"] = "enigme-6";
$score_data["text"] = 'Énigme 6';
$score_data["points"] = 150;
2021-08-09 21:07:50 +02:00
if($date< 1628535600 ) {
2021-08-08 18:44:13 +02:00
$data["info"] = "<h2>Énigme 6</h2>
Code trouvé !";
} else {
$data["info"] = "<h2>Énigme 6</h2>
2021-08-09 20:07:54 +02:00
<p>Quelle est la somme des lettres des solutions des deux dernières énigmes ? (ASCII)</p>
";
2021-08-08 18:44:13 +02:00
}
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
}
echo json_encode($data, JSON_FORCE_OBJECT);
break;
2021-08-09 20:07:54 +02:00
case '2237' :
$data["name"] = "enigme-0";
$score_data["text"] = 'Énigme 0';
$score_data["points"] = 100;
2021-08-10 22:20:28 +02:00
if($date< 1628625600 ) {
2021-08-09 20:07:54 +02:00
$data["info"] = "<h2>Énigme 0</h2>
<p>Bien joué ! Attendez demain pour la suite qui a été minutieusement préparée !</p>
";
} else {
$data["info"] = "<h2>Énigme 0</h2>
<p>Je vais vous raconter trois histoires, voici les titres:</p>
<p> - Deux arbres se retrouvèrent l'un avec l'autre près des sept nains.</p>
<p> - Quatre petits oiseaux apprennent à s'envoler un à un.</p>
2021-08-10 22:26:02 +02:00
<p> - L'histoire qui se lisait dans plusieurs sens.</p>";
2021-08-09 20:07:54 +02:00
2021-08-10 22:10:01 +02:00
2021-08-09 20:07:54 +02:00
}
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
}
echo json_encode($data, JSON_FORCE_OBJECT);
break;
2021-08-09 21:07:50 +02:00
2021-08-09 20:07:54 +02:00
case 'atr challenges' :
$data["name"] = "enigme-00";
$score_data["text"] = 'Énigme 00';
$score_data["points"] = 100;
2021-08-10 11:13:42 +02:00
if($date < 1628625600) {
$data["info"] = "<h2>Énigme 00</h2>
<p>Qui sera le plus rapide à libérer Paul et Cécile...</p>";
2021-08-09 20:07:54 +02:00
} else {
2021-08-10 11:13:42 +02:00
$data["info"] = "<h2>Énigme 00</h2>
2021-08-11 10:52:14 +02:00
<a href=\"assets/enigmes/Livre.pdf\">Paul et Cécile ont fait tomber ce livre avant d'aller au cinéma...</a>";
2021-08-10 11:13:42 +02:00
2021-08-09 20:07:54 +02:00
}
2021-08-10 11:13:42 +02:00
2021-08-09 20:07:54 +02:00
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
}
echo json_encode($data, JSON_FORCE_OBJECT);
break;
2021-08-10 11:13:42 +02:00
2021-08-11 15:15:30 +02:00
2021-08-10 22:10:01 +02:00
case 'POMMADE' :
$data["name"] = "enigme-000";
2021-08-12 13:32:40 +02:00
$score_data["text"] = 'Énigme 00 Intermédiaire';
2021-08-12 13:09:00 +02:00
$score_data["points"] = 500;
2021-08-10 22:10:01 +02:00
if($date< 1628613000 ) {
2021-08-11 15:15:30 +02:00
$data["info"] = "<h2>Énigme 00 Intermédiaire</h2>
2021-08-10 22:10:01 +02:00
<p>Bien joué ! Attendez demain pour la suite !</p>";
} else {
2021-08-11 15:15:30 +02:00
$data["info"] = "<h2>Énigme 00 Intermédiaire</h2>
2021-08-16 21:07:30 +02:00
<p>En résolvant cette énigme, vous avez reçu un petit parachute avec à lintérieur cette mystérieuse <a href=\"assets/enigmes/Liberation/Carte-odRS.jpg\">carte</a>.</p>
</p> Les participants sont autorisés à quitter larène le temps de retrouver leurs compagnons. Evidemment, ils seront accompagnés par un bataillon de pacificateurs et des caméras pour suivre chacun de leurs mouvements. Mais attention, ils ne pourront choisir quune seule destination, bon courage, et puisse le sort vous être favorable.
</p>
";
}
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
}
echo json_encode($data, JSON_FORCE_OBJECT);
break;
case 'Venise' :
$data["name"] = "enigme-liberation-1";
$score_data["text"] = 'Énigme Libération 1';
$score_data["points"] = 100;
if($date< 1628613000 ) {
$data["info"] = "<h2>Énigme Libération 1</h2>
<p>Bien joué ! Attendez un peu pour la suite !</p>";
} else {
$data["info"] = "<h2>Énigme Libération 1</h2>
<p>Inversez les couleurs et videz leau, à quoi cela vous fait penser ?</p>
2021-08-10 22:10:01 +02:00
";
}
2021-08-16 21:07:30 +02:00
2021-08-10 22:10:01 +02:00
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
}
echo json_encode($data, JSON_FORCE_OBJECT);
break;
2021-08-11 15:15:30 +02:00
2021-08-16 21:07:30 +02:00
case 'Jean Jaurès' :
$data["name"] = "enigme-liberation-2";
$score_data["text"] = 'Énigme Libération 2';
$score_data["points"] = 100;
if(isLastEnigmaSolved('Énigme Libération 1')) {
if($date < 1628613000) {
$data["info"] = "<h2>Énigme Libération 2</h2>
<p>Vous avez compris le message des informateurs, aller dans le centre de la capitale de Panem vous parait évident maintenant. </p>
<p>Mais un virus tourne, il ne faudrait pas faire retentir le canon et perdre des tributs, alors ne passez pas trop de temps dans la ville !
</p>";
} else {
$data["info"] = "<h2>Énigme Libération 2</h2>
<p>Vous avez compris le message des informateurs, aller dans le centre de la capitale de Panem vous parait évident maintenant. </p>
<p>Mais un virus tourne, il ne faudrait pas faire retentir le canon et perdre des tributs, alors ne passez pas trop de temps dans la ville !
</p>";
}
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
}
echo json_encode($data, JSON_FORCE_OBJECT);
}
break;
case 'Café Pop' :
$data["name"] = "enigme-liberation-3-1";
$score_data["text"] = 'Énigme Libération 3-1';
$score_data["points"] = 50;
if(isLastEnigmaSolved('Énigme Libération 2')) {
if($date < 1628613000) {
$data["info"] = "<h2>Énigme Libération 3-1</h2>
<p>Aucune perte du côté de votre district, tout va bien, vous avancez prudemment dans la ville…</p>
<img src=\"assets/enigmes/Liberation/03-06.jpg\"></img>
<img src=\"assets/enigmes/Liberation/07-12.jpg\"></img>";
} else {
$data["info"] = "<h2>Énigme Libération 3-1</h2>
<p>Aucune perte du côté de votre district, tout va bien, vous avancez prudemment dans la ville…</p>
<img src=\"assets/enigmes/Liberation/03-06.jpg\"></img>
<img src=\"assets/enigmes/Liberation/07-12.jpg\"></img>";
}
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
}
echo json_encode($data, JSON_FORCE_OBJECT);
}
break;
case 'Snapper' :
$data["name"] = "enigme-liberation-3-2";
$score_data["text"] = 'Énigme Libération 3-2';
$score_data["points"] = 50;
if(isLastEnigmaSolved('Énigme Libération 2')) {
if($date < 1628613000) {
$data["info"] = "<h2>Énigme Libération 3-2</h2>
<p>Aucune perte du côté de votre district, tout va bien, vous avancez prudemment dans la ville…</p>
<img src=\"assets/enigmes/Liberation/11-08.jpg\"></img>
<img src=\"assets/enigmes/Liberation/19-05.jpg\"></img>
<img src=\"assets/enigmes/Liberation/06-03.jpg\"></img>";
} else {
$data["info"] = "<h2>Énigme Libération 3-2</h2>
<p>Aucune perte du côté de votre district, tout va bien, vous avancez prudemment dans la ville…</p>
<img src=\"assets/enigmes/Liberation/11-08.jpg\"></img>
<img src=\"assets/enigmes/Liberation/19-05.jpg\"></img>
<img src=\"assets/enigmes/Liberation/06-03.jpg\"></img>";
}
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
}
echo json_encode($data, JSON_FORCE_OBJECT);
}
break;
case 'needhelp' :
$data["name"] = "enigme-liberation-3-3";
$score_data["text"] = 'Énigme Libération 3-3';
$score_data["points"] = 0;
2021-08-19 12:00:01 +02:00
if(isLastEnigmaSolved('Énigme Libération 3-2') || isLastEnigmaSolved('Énigme Libération 3-1')) {
2021-08-16 21:07:30 +02:00
if($date < 1628613000) {
$data["info"] = "<h2>Énigme Libération 3-3</h2>
<a href=\"\">Je t'embarque au poste.</a>";
} else {
$data["info"] = "<h2>Énigme Libération 3-3</h2>
<p>Les arènes de tous les INSA Games étaient jusquà présent truffées de pièges mortels. Cette ville est votre nouvelle arène, et évidemment elle ny fait pas exception.
Mais cette année, les hauts juges ont créé ce <a href=\"assets/enigmes/Liberation/pieges.pdf\">document</a> afin de vous aider à les localiser.</p>
";
}
echo json_encode($data, JSON_FORCE_OBJECT);
}
break;
case 'Saint des seins' :
$score_data["text"] = 'Malus Énigme Libération 1';
$score_data["points"] = -25;
if(isAlreadySolved($team, $score_data["text"])) {
$dao = new Dao();
$dao->add_score($score_data);
}
break;
case 'La Couleur de la Culotte' :
$score_data["text"] = 'Malus Énigme Libération 2';
$score_data["points"] = -25;
if(isAlreadySolved($team, $score_data["text"])) {
$dao = new Dao();
$dao->add_score($score_data);
}
break;
case '0712' :
$score_data["text"] = 'Malus Énigme Libération 3';
$score_data["points"] = -25;
if(isAlreadySolved($team, $score_data["text"])) {
$dao = new Dao();
$dao->add_score($score_data);
}
break;
case '1108' :
$score_data["text"] = 'Malus Énigme Libération 4';
$score_data["points"] = -25;
if(isAlreadySolved($team, $score_data["text"])) {
$dao = new Dao();
$dao->add_score($score_data);
}
break;
case 'rose' :
$data["name"] = "enigme-liberation-4";
$score_data["text"] = 'Énigme Libération 4';
$score_data["points"] = 100;
if(isLastEnigmaSolved('Énigme Libération 3-1') && isLastEnigmaSolved('Énigme Libération 3-2')) {
if($date < 1628613000) {
$data["info"] = "<h2>Énigme Libération 4</h2>
<p><a href=\"assets/enigmes/Liberation/FinE.png\">On vous demande un mot de passe pour rentrer</a></p>";
} else {
$data["info"] = "<h2>Énigme Libération 4</h2>
<p><a href=\"assets/enigmes/Liberation/FinE.png\">On vous demande un mot de passe pour rentrer</a></p>";
}
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
}
echo json_encode($data, JSON_FORCE_OBJECT);
}
break;
case 'Presque' :
$data["name"] = "enigme-liberation-5";
$score_data["text"] = 'Énigme Libération 5';
$score_data["points"] = 50;
if(isLastEnigmaSolved('Énigme Libération 4')) {
if($date < 1628613000) {
$data["info"] = "<h2>Énigme Libération 5</h2>
<p>Bien joué ! Attendez demain pour la suite !</p>";
} else {
$data["info"] = "<h2>Énigme Libération 5</h2>
<p>Bien joué ! Attendez demain pour la suite !</p>";
}
if(isFirstTeamToSolve($score_data)) {
$dao = new Dao();
$dao->add_score($score_data);
}
echo json_encode($data, JSON_FORCE_OBJECT);
}
break;
2021-08-09 20:07:54 +02:00
2021-07-28 22:03:33 +02:00
default:
$data["name"] = null;
2021-08-06 17:15:11 +02:00
$points_data["points"] = 0;
2021-07-28 22:03:33 +02:00
echo json_encode($data, JSON_FORCE_OBJECT);
break;
}
}
}
function get_plaquette_code() {
if (isset($_GET['code'])) {
$data = array(
"name" => $_GET['code'],
"info" => null,
);
switch ($_GET['code']) {
case 'onlyfan_420' :
$data["name"] = "onlyfan";
$data["info"] = "Go follow sur insta <a href=\"https://www.instagram.com/onlyfan_420/\">@onlyfan_420</a>";
echo json_encode($data, JSON_FORCE_OBJECT);
break;
2021-08-01 22:13:00 +02:00
case 'caché par ici' :
$data["name"] = "plaquette1";
$data["info"] = "<a href=\"assets/pdf/Enigme_plaquette_1.pdf\">Énigme plaquette</a>";
echo json_encode($data, JSON_FORCE_OBJECT);
break;
case 'SURVIVANT' :
$data["name"] = "plaquette2";
$data["info"] = "<iframe width=\"560\" height=\"315\"
src=\"https://www.youtube.com/embed/F3hTW9e20d8?autoplay=1\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>
<p style=\"white-space:pre;\">@ <span style=\"color:#1c1c1c;\">promo59</span></p>
";
echo json_encode($data, JSON_FORCE_OBJECT);
break;
2021-07-28 22:03:33 +02:00
default:
$data["name"] = null;
echo json_encode($data, JSON_FORCE_OBJECT);
break;
}
}
}
2020-09-19 16:08:07 +02:00
function show_error() {
echo "Échec : ";
var_dump($_GET);
}