Commit 76117ed2 authored by Mathieu Loiseau's avatar Mathieu Loiseau
Browse files

score for oracle if reload | validate

parent b102ded6
......@@ -23,9 +23,6 @@ class druid_arbitrage
private $enregistrement='';
private $revoke=false;
private $valid = 'valid';
private $invalid = 'invalid';
public function set_mode($mode)
{
$this->mode = $mode;
......@@ -90,65 +87,28 @@ class druid_arbitrage
private function selectpartie(){
try{
//connexion à la BD
$db = db::getInstance();
//Dans le cas où le joueur souhaite arbitrer la carte après une partie en tant que devin
if(isset($_SESSION["idCard"]) && isset($_SESSION["idEnregistrement"])){
$idCarte = $_SESSION["idCard"];
$this->enregistrement = $_SESSION["idEnregistrement"];
$sql = "SELECT * FROM `enregistrement` WHERE `enregistrementID` =".$this->enregistrement;
$db->query($sql);
if($db->num_rows()>0){
$this->raisin = $db->fetch_object();
//why why why ça et adresse ?
$this->enregistrement = "enregistrements/".$this->raisin->cheminEnregistrement;
// récupération du pseudo du joueur arbitré
$sql = 'SELECT
username
FROM user WHERE userid ="'.$this->raisin->idOracle.'"';
$this->result=$db->query($sql);
$this->res2= mysqli_fetch_assoc($this->result);
$this->card = new Card($_SESSION["idCard"], './views/card.inline.display.php');
//construction de l'adresse de l'enregistrement à partir du nom du fichier
$this->adresse = "enregistrements/".$this->raisin->cheminEnregistrement;
$this->partie=true;
unset($_SESSION["idCard"]);
unset($_SESSION["idEnregistrement"]);
return true; //two returns
}
else{
array_push($this->errors, 'noEnregistrement');
}
}
//Cas par défaut (clique sur arbitrer)
else{
$this->partie=false;
$recordingFactory = new ItemFactory($this->druid,$this->user->langGame);
$this->raisin = $recordingFactory->get_recording(ItemFactory::LIMBO_RECORDING_ME_IF_POSSIBLE);
if(is_object($this->raisin) && file_exists("enregistrements/".$this->raisin->cheminEnregistrement)){
//construction de l'adresse de l'enregistrement à partir du nom du fichier
$this->adresse = "enregistrements/".$this->raisin->cheminEnregistrement ;
$this->enregistrement = $this->raisin->enregistrementID;
// récupération du pseudo du joueur arbitré
$sql = 'SELECT username FROM user WHERE userid ="'.$this->raisin->idOracle.'"';
$this->result=$db->query($sql);
$this->res2= mysqli_fetch_assoc($this->result);
//récupération de la carte jouée
$this->card = new Card($this->raisin->carteID,'./views/card.inline.display.php');
$this->partie=true;
require_once("./models/userlvl.class.php");
$gh = new GameHandler();
$this->card->set_forbidden_count($gh->get_forbidden_count($this->raisin->nivpartie));
unset($gh);
}
else{//$this->partie reste faux
array_push($this->errors, 'noEnregistrement');
}
$this->partie=false;
$recordingFactory = new ItemFactory($this->druid,$this->user->langGame);
$this->raisin = $recordingFactory->get_recording(ItemFactory::LIMBO_RECORDING_ME_IF_POSSIBLE);
if(is_object($this->raisin) && file_exists("enregistrements/".$this->raisin->cheminEnregistrement)){
//construction de l'adresse de l'enregistrement à partir du nom du fichier
$this->adresse = "enregistrements/".$this->raisin->cheminEnregistrement ;
$this->enregistrement = $this->raisin->enregistrementID;
// récupération du pseudo du joueur arbitré
$sql = 'SELECT username FROM user WHERE userid ="'.$this->raisin->idOracle.'"';
$this->result=$db->query($sql);
$this->res2= mysqli_fetch_assoc($this->result);
//récupération de la carte jouée
$this->card = new Card($this->raisin->carteID,'./views/card.inline.display.php');
$this->partie=true;
require_once("./models/userlvl.class.php");
$sv = new ScoreValues();
$this->card->set_forbidden_count($sv->get_forbidden_count($this->raisin->nivpartie));
unset($sv);
}
else{//$this->partie reste faux
array_push($this->errors, 'noEnregistrement');
}
}
catch(Exception $e){//$this->partie reste faux
......@@ -161,25 +121,38 @@ class druid_arbitrage
return $this->partie;
}
private function display_et_scores()
{
private function display_et_scores(){
require_once('./sys/load_iso.php');
$lang_iso = new IsoLang();
if( ($this->invalidate!==true)
&& ($this->invalidate!==false){
include('./views/druid.arbitrage.html');
}
else{
$th = new TracesHandler();
//could change $this->invalidate to validate…
$th->druid_validate($this->enregistrement, !$this->invalidate, $this->revoke);
//for dynamic notification don't want to take the time to understand them…
$_SESSION["notif"]["notification_done"]["Druide"] = 'pointsDruide';
header('Location: index.php?page.home.html');
}
require_once('./controllers/update_score_coeff.php');
//connexion à la BD
$db = db::getInstance();
if(isset($this->enregistrement) && ($this->enregistrement!="") ){
$sh = new ScoreHandler($this->druid, ScoreHandler::DRUID,(int) $this->enregistrement);
}
// après avoir cliqué sur "au bûcher" = description vide ou fautive
if($this->invalidate() === true){
// Requête d'insertion des info dans la table 'arbitrage'
$sql = 'INSERT INTO arbitrage
(enregistrementID,idDruide,validation)
VALUES(' .
$db->escape((string) $this->enregistrement ) . ', ' .
$db->escape((string) $this->druid) . ', ' .
$db->escape((string) $this->invalid ) . ')' ;
$sql = '' ;
$db->query($sql);
// mettre à jour le champs "validation" de la table enregistrement pour que cet enregistrement devienne jouable
......@@ -192,9 +165,7 @@ class druid_arbitrage
//Requête de modification du score du Druide après l'accomplissement de son fastidieux travail d'inquisition
$sh->update_scores(false);
//for dynamic notification don't want to take the time to understand them…
$_SESSION["notif"]["notification_done"]["Druide"] = 'pointsDruide';
header('Location: index.php?page.home.html');
// après avoir cliqué sur "valider" = description correcte et jouable
}elseif ($this->invalidate() === false){
......@@ -217,13 +188,8 @@ class druid_arbitrage
//Requête de modification du score du Druide l'accomplissement de son fastidieux travail d'inquisition
$sh->update_scores(true);
//for dynamic notification don't want to take the time to understand them…
$_SESSION["notif"]["notification_done"]["Druide"] = 'pointsDruide';
header('Location: index.php?page.home.html');
// sinon, c'est le premier passage dans la page, il n'y a pas encore eu d'arbitrage donc on affiche la page d'arbitrage
}
else{
include('./views/druid.arbitrage.html');
}
return true;
}
......
......@@ -76,10 +76,10 @@ class TracesHandler{
public function post_record($cardId, $rec_path, $rec_length){
$queries = array();
//update recording
array_push($queries, "SELECT @previous_recording_score := ".$this->sv->get_recording_score_sql_formula().", @recording_id := `enregistrementID` FROM `enregistrement` WHERE `enregistrement`.`idOracle` = ".$this->user->id." AND `enregistrement`.`carteID`='$cardId';");
array_push($queries, "SELECT @previous_recording_score := ".$this->sv->get_recording_score_sql_formula().", @recording_id := `enregistrementID`, @lang := `OracleLang` FROM `enregistrement` WHERE `enregistrement`.`idOracle` = ".$this->user->id." AND `enregistrement`.`carteID`='$cardId';");
array_push($queries, "UPDATE `enregistrement` SET `cheminEnregistrement` = '$rec_path', `duration`='$rec_length', `tpsEnregistrement`=CURRENT_TIMESTAMP, `validation` = 'limbo' WHERE `enregistrementID`=@recording_id;");
//score
array_push($queries, "UPDATE `stats` SET `score_oracle`=`score_oracle`+(SELECT ".$this->sv->get_recording_score_sql_formula()." FROM `enregistrement` WHERE `enregistrementID`='$recordingID')-(@previous_recording_score), `nbAbandons_oracle`=`nbAbandons_oracle`-1, `nbEnregistrements_oracle`=`nbEnregistrements_oracle`+1;");
array_push($queries, "UPDATE `stats` SET `score_oracle`=`score_oracle`+(SELECT ".$this->sv->get_recording_score_sql_formula()." FROM `enregistrement` WHERE `enregistrementID`=@recording_id)-(@previous_recording_score), `nbAbandons_oracle`=`nbAbandons_oracle`-1, `nbEnregistrements_oracle`=`nbEnregistrements_oracle`+1 WHERE `userid`='".$this->user->id."' AND `langue`=@lang;");
//notification
array_push($queries, $this->notif->cancelLastNotifOfType(
$this->user->id,
......@@ -102,6 +102,7 @@ class TracesHandler{
}
public function abort_record($recording_path){
//TODO ICITE
$query = "UPDATE `enregistrement` SET `validation` = 'given up', `tpsEnregistrement`=CURRENT_TIMESTAMP WHERE `enregistrement`.`cheminEnregistrement` = '$recording_path'; ";
if(!$this->db->query($query)){
$res = false;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment