166 lines
5.3 KiB
PHP
166 lines
5.3 KiB
PHP
|
<?php
|
|||
|
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
|||
|
|
|||
|
$g = $queryPlanete['galaxie'];
|
|||
|
$s = $queryPlanete['ss'];
|
|||
|
$p = $queryPlanete['position'];
|
|||
|
|
|||
|
$mine_m = $queryPlanete['mine_m'];
|
|||
|
$coeff_mine_m = $queryPlanete['coeff_mine_m'];
|
|||
|
if ($coeff_mine_m < 0) $coeff_mine_m = 0;
|
|||
|
if ($coeff_mine_m > 1) $coeff_mine_m = 1;
|
|||
|
|
|||
|
$mine_c = $queryPlanete['mine_c'];
|
|||
|
$coeff_mine_c = $queryPlanete['coeff_mine_c'];
|
|||
|
if ($coeff_mine_c < 0) $coeff_mine_c = 0;
|
|||
|
if ($coeff_mine_c > 1) $coeff_mine_c = 1;
|
|||
|
|
|||
|
$mine_h = $queryPlanete['mine_h'];
|
|||
|
$coeff_mine_h = $queryPlanete['coeff_mine_h'];
|
|||
|
if ($coeff_mine_h < 0) $coeff_mine_h = 0;
|
|||
|
if ($coeff_mine_h > 1) $coeff_mine_h = 1;
|
|||
|
|
|||
|
$centrale_s = $queryPlanete['centrale_s'];
|
|||
|
//$coeff_centrale_s = $queryPlanete['coeff_centrale_s'];
|
|||
|
$coeff_centrale_s = 1;
|
|||
|
if ($coeff_centrale_s < 0) $coeff_centrale_s = 0;
|
|||
|
if ($coeff_centrale_s > 1) $coeff_centrale_s = 1;
|
|||
|
|
|||
|
$centrale_f = $queryPlanete['centrale_f'];
|
|||
|
$coeff_centrale_f = $queryPlanete['coeff_centrale_f'];
|
|||
|
if ($coeff_centrale_f < 0) $coeff_centrale_f = 0;
|
|||
|
if ($coeff_centrale_f > 1) $coeff_centrale_f = 1;
|
|||
|
|
|||
|
//Calcul du temps <20>coul<75> depuis la derni<6E>re mise <20> jour de la plan<61>te
|
|||
|
$temps_actuel = time();
|
|||
|
$temps_ancien = $queryPlanete['timestamp'];
|
|||
|
$temps_ecoule = $temps_actuel - $temps_ancien;
|
|||
|
|
|||
|
//Calcul de la capacit<69> de stockage maximale
|
|||
|
$cap = (pow(2,$queryPlanete['silo'])*100000);
|
|||
|
|
|||
|
//Initialisation des variables
|
|||
|
$conso_h = 0;
|
|||
|
|
|||
|
|
|||
|
//Production
|
|||
|
if ($mine_m > 0) $energie_m = ceil(exp(0.28*$mine_m)*10); else $energie_m= 0;
|
|||
|
if ($mine_c > 0) $energie_c = ceil(exp(0.28*$mine_c)*10); else $energie_c= 0;
|
|||
|
if ($mine_h > 0) $energie_h = ceil(exp(0.2849*$mine_h)*13); else $energie_h= 0;
|
|||
|
if ($centrale_f > 0) $energie_f = ceil(exp(0.297*$centrale_f)*25); else $energie_f = 0;
|
|||
|
if ($centrale_s > 0) $energie_s = ceil(exp(0.28*$centrale_s)*22); else $energie_s = 0;
|
|||
|
|
|||
|
//Calcul de la consomation d'<27>nergie
|
|||
|
$nrj = $energie_m + $energie_c + $energie_h;
|
|||
|
|
|||
|
//Calcul de la production d'<27>nergie
|
|||
|
$t = $energie_s + $energie_f;
|
|||
|
|
|||
|
if ($nrj == 0) $coeff = 0;
|
|||
|
else $coeff = $t / $nrj;
|
|||
|
|
|||
|
if ($coeff < 0) $coeff = 0;
|
|||
|
elseif ($coeff > 1) $coeff = 1;
|
|||
|
|
|||
|
//Calcul des proportions
|
|||
|
$point = $coeff * 3;
|
|||
|
|
|||
|
if ($coeff_mine_m + $coeff_mine_c + $coeff_mine_h != 0) {
|
|||
|
$p_mine_m = $coeff_mine_m / ($coeff_mine_m + $coeff_mine_c + $coeff_mine_h);
|
|||
|
$p_mine_c = $coeff_mine_c / ($coeff_mine_m + $coeff_mine_c + $coeff_mine_h);
|
|||
|
$p_mine_h = $coeff_mine_h / ($coeff_mine_m + $coeff_mine_c + $coeff_mine_h);
|
|||
|
}
|
|||
|
else {
|
|||
|
$p_mine_m = 0.33333333;
|
|||
|
$p_mine_c = 0.33333333;
|
|||
|
$p_mine_h = 0.33333333;
|
|||
|
}
|
|||
|
|
|||
|
$Ncoeff_mine_m = $point * $p_mine_m;
|
|||
|
$Ncoeff_mine_c = $point * $p_mine_c;
|
|||
|
$Ncoeff_mine_h = $point * $p_mine_h;
|
|||
|
|
|||
|
if ($Ncoeff_mine_m > 1) $Ncoeff_mine_m = 1;
|
|||
|
if ($Ncoeff_mine_c > 1) $Ncoeff_mine_c = 1;
|
|||
|
if ($Ncoeff_mine_h > 1) $Ncoeff_mine_h = 1;
|
|||
|
|
|||
|
//if ($Ncoeff_mine_m < $coeff_mine_m) {
|
|||
|
mysql_query("UPDATE planete SET coeff_mine_m='$Ncoeff_mine_m' WHERE id_user='$id_user' AND galaxie='$g' AND ss='$s'AND position='$p'");
|
|||
|
$coeff_mine_m = $Ncoeff_mine_m;
|
|||
|
//}
|
|||
|
//if ($Ncoeff_mine_c < $coeff_mine_c) {
|
|||
|
mysql_query("UPDATE planete SET coeff_mine_c='$Ncoeff_mine_c' WHERE id_user='$id_user' AND galaxie='$g' AND ss='$s'AND position='$p'");
|
|||
|
$coeff_mine_c = $Ncoeff_mine_c;
|
|||
|
//}
|
|||
|
//if ($Ncoeff_mine_h < $coeff_mine_h) {
|
|||
|
mysql_query("UPDATE planete SET coeff_mine_h='$Ncoeff_mine_h' WHERE id_user='$id_user' AND galaxie='$g' AND ss='$s'AND position='$p'");
|
|||
|
$coeff_mine_h = $Ncoeff_mine_h;
|
|||
|
//}
|
|||
|
|
|||
|
$alert_metal = false;
|
|||
|
if ($metal >= $cap) {
|
|||
|
$prod_met=0;
|
|||
|
$metal = $cap;
|
|||
|
$alert_metal = true;
|
|||
|
}
|
|||
|
else {
|
|||
|
if ($mine_m < 0) $prod_met = 0.011*$temps_ecoule;
|
|||
|
else $prod_met = ((ceil(pow(1.1,$mine_m)*35*$mine_m)/3600)*$temps_ecoule)*$coeff_mine_m;
|
|||
|
}
|
|||
|
|
|||
|
$alert_cristal = false;
|
|||
|
if ($cristal >= $cap) {
|
|||
|
$prod_cri=0;
|
|||
|
$cristal = $cap;
|
|||
|
$alert_cristal = true;
|
|||
|
}
|
|||
|
else {
|
|||
|
if ($mine_c < 0) $prod_cri = 0.0055*$temps_ecoule;
|
|||
|
else $prod_cri = ((ceil(pow(1.1,$mine_c)*23*$mine_c)/3600)*$temps_ecoule)*$coeff_mine_c;
|
|||
|
}
|
|||
|
|
|||
|
$alert_hydrogene = false;
|
|||
|
if ($hydrogene >= $cap) {
|
|||
|
$prod_hy=0;
|
|||
|
$hydrogene = $cap;
|
|||
|
$alert_hydrogene = true;
|
|||
|
}
|
|||
|
else {
|
|||
|
if ($mine_h < 0) $prod_hy = 0;
|
|||
|
else $prod_hy = (((ceil(pow(1.1,$mine_h)*14*($mine_h+0.7))/3600)*$temps_ecoule) - $conso_h) * $coeff_mine_h;
|
|||
|
if ($mine_h == 0) $prod_hy=0;
|
|||
|
if ($prod_hy < 0) $prod_hy = 0;
|
|||
|
}
|
|||
|
|
|||
|
if ($centrale_f > 0) $conso_h = ((ceil(pow(1.34,($centrale_f-1))*9)/3600)*$temps_ecoule) * $coeff_centrale_f;
|
|||
|
else $conso_h = 0;
|
|||
|
$prod_mineh = $prod_hy;
|
|||
|
$prod_hysv = $prod_hy;
|
|||
|
$prod_hy -= $conso_h;
|
|||
|
|
|||
|
if ($hydrogene+$prod_hy < 0) {
|
|||
|
$prod_hy = $prod_hysv;
|
|||
|
$conso_h = 0;
|
|||
|
$coeff_energie_f = 0;
|
|||
|
}
|
|||
|
elseif (ceil(pow(1.34,($centrale_f-1))*9) <= $hydrogene/5 && $coeff_centrale_f == 0) {
|
|||
|
$coeff_energie_f = 1;
|
|||
|
}
|
|||
|
|
|||
|
$a=$metal+$prod_met;
|
|||
|
$b=$cristal+$prod_cri;
|
|||
|
$c=$hydrogene+$prod_hy;
|
|||
|
$u = $energie_s * $coeff_centrale_s + $energie_f * $coeff_centrale_f;
|
|||
|
|
|||
|
$TEMP_energie = separerNombres(intval($nrj)).'/'.separerNombres($u);
|
|||
|
|
|||
|
if ($nrj >= $u) $alert_energie = true;
|
|||
|
else $alert_energie = false;
|
|||
|
|
|||
|
$diffnrj = $u-$nrj;
|
|||
|
|
|||
|
//Mise <20> jour de la base de donn<6E>es
|
|||
|
$chapeau->query("UPDATE `planete` SET `timestamp` = '$temps_actuel', `metal` = '$a', `cristal` = '$b', `hydrogene` = '$c', `coeff` = '$coeff', `energie` = '$t', `coeff_centrale_f` = '$coeff_centrale_f' WHERE `id_user` = '$id_user' AND `galaxie` = '$g' AND `ss` = '$s'AND `position` = '$p'");
|
|||
|
|
|||
|
$template->assign('alertes', array($alert_metal, $alert_cristal, $alert_hydrogene, $TEMP_energie, $alert_energie, separerNombres($diffnrj)));
|
|||
|
?>
|