forked from halo-battle/game
359 lines
15 KiB
PHP
359 lines
15 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* Class Rapport
|
||
|
*
|
||
|
* Génération et envoie de rapport de mission de flotte
|
||
|
*
|
||
|
*/
|
||
|
class Rapport{
|
||
|
var $table = 'mail';
|
||
|
var $type = 0;
|
||
|
var $var = array();
|
||
|
var $utilA = 0;
|
||
|
var $utilB = 0;
|
||
|
var $timestamp = 0;
|
||
|
|
||
|
/**
|
||
|
* Constructor
|
||
|
* @access protected
|
||
|
*/
|
||
|
function Rapport($type, $utilA, $utilB, $time)
|
||
|
{
|
||
|
global $table_mail;
|
||
|
$this->table = $table_mail;
|
||
|
|
||
|
$this->type = $type;
|
||
|
$this->utilA = $utilA;
|
||
|
$this->utilB = $utilB;
|
||
|
$this->timestamp = $time;
|
||
|
}
|
||
|
|
||
|
function addInfo($info, $id)
|
||
|
{
|
||
|
$this->var[$id] = $info;
|
||
|
}
|
||
|
|
||
|
function send()
|
||
|
{
|
||
|
if ($this->type == '3')
|
||
|
$this->sendCombat();
|
||
|
elseif ($this->type == '1')
|
||
|
$this->sendTransport();
|
||
|
elseif ($this->type == '2')
|
||
|
$this->sendColonisation();
|
||
|
elseif ($this->type == '4')
|
||
|
$this->sendRecyclage();
|
||
|
elseif ($this->type == '5')
|
||
|
$this->sendEspionnage();
|
||
|
elseif ($this->type == '6')
|
||
|
$this->sendAlliance();
|
||
|
elseif ($this->type == '7')
|
||
|
$this->sendAlliance2();
|
||
|
}
|
||
|
|
||
|
function sendEspionnage()
|
||
|
{
|
||
|
global $LANG;
|
||
|
|
||
|
$titreA = 'Rapport d\'espionnage de '.$this->var[0]->nom_planete.' ['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']';
|
||
|
$rapportA = '<b>Espionnage de '.$this->var[0]->pseudo.' sur '.$this->var[0]->nom_planete.'['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']</b><br /><br />';
|
||
|
|
||
|
if ($this->var[2] < 1) $rapportA .= '<i>Nos sondes n\'ont pas pu récolter d\'informations sur cette planète.</i>';
|
||
|
else {
|
||
|
//Ressources
|
||
|
if ($this->var[2] > 1)
|
||
|
$rapportA .= '<table style="margin: auto;"><tr><th colspan="2">Ressources sur la planète :</th></tr><tr><td>'.$LANG[$this->var[0]->race]["ressources"]["noms"]["metal"].' :</td><td>'.$this->var[0]->metal.'</td></tr><tr><td>'.$LANG[$this->var[0]->race]["ressources"]["noms"]["cristal"].' :</td><td>'.$this->var[0]->cristal.'</td></tr><tr><td>'.$LANG[$this->var[0]->race]["ressources"]["noms"]["hydrogene"].' :</td><td>'.$this->var[0]->hydrogene.'</td></tr></table><br />';
|
||
|
|
||
|
//Bâtiments
|
||
|
if ($this->var[2] > 2)
|
||
|
{
|
||
|
$rapportA .= '<table style="margin: auto;"><tr><th>Niveau</th><th>Bâtiment</th></tr>';
|
||
|
foreach ($this->var[0]->batiments as $key => $batiment)
|
||
|
{
|
||
|
$rapportA .= '<tr><td>'.rand($batiment * (1 - $this->var[1]), $batiment * (1 + $this->var[1])).'</td><td>'.$LANG[$this->var[0]->race]["batiments"]["noms_sing"][$key].'</td></tr>';
|
||
|
}
|
||
|
$rapportA .= '</table><br />';
|
||
|
}
|
||
|
|
||
|
//Flottes en orbite
|
||
|
if ($this->var[2] > 3)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
//Flottes au sol
|
||
|
if ($this->var[2] > 5)
|
||
|
{
|
||
|
$rapportA .= '<table style="margin: auto;"><tr><th>Nombre</th><th>Vaisseaux</th></tr>';
|
||
|
foreach ($this->var[0]->vaisseaux as $key => $vaisseau)
|
||
|
{
|
||
|
$rapportA .= '<tr><td>'.rand($vaisseau * (1 - $this->var[1]), $vaisseau * (1 + $this->var[1])).'</td><td>'.$LANG[$this->var[0]->race]["vaisseaux"]["noms_sing"][$key].'</td></tr>';
|
||
|
}
|
||
|
$rapportA .= '</table><br />';
|
||
|
}
|
||
|
|
||
|
//Défenses
|
||
|
if ($this->var[2] > 4)
|
||
|
{
|
||
|
$rapportA .= '<table style="margin: auto;"><tr><th>Nombre</th><th>Défenses</th></tr>';
|
||
|
foreach ($this->var[0]->terrestres as $key => $unite)
|
||
|
{
|
||
|
if (!Donnee::typeTerrestre($key)) $rapportA .= '<tr><td>'.rand($unite * (1 - $this->var[1]), $unite * (1 + $this->var[1])).'</td><td>'.$LANG[$this->var[0]->race]["terrestre"]["noms_sing"][$key].'</td></tr>';
|
||
|
}
|
||
|
$rapportA .= '</table><br />';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$titreB = 'Rapport de contre-espionnage';
|
||
|
$rapportB = 'Nous venons d\'apprendre que notre planète : '.$this->var[0]->nom_planete.'['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.'] a été la cible d\'un espionnage de la part de '.$this->utilA->pseudo;
|
||
|
|
||
|
$temps = $this->timestamp;
|
||
|
$db = new BDD();
|
||
|
$db->escape($titreA);
|
||
|
$db->escape($titreB);
|
||
|
$db->escape($rapportA);
|
||
|
$db->escape($rapportB);
|
||
|
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA->id_user.", '$titreA', '$rapportA', '$temps')");
|
||
|
//On envoie un rapport au joueur espionné uniquement s'il a un contre-espionnage
|
||
|
if ($this->var[3] >= 1)
|
||
|
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilB->id_user.", '$titreB', '$rapportB', '$temps')");
|
||
|
$db->deconnexion();
|
||
|
}
|
||
|
|
||
|
function sendTransport()
|
||
|
{
|
||
|
global $LANG;
|
||
|
$titre = 'Transport vers '.$this->var[0]->nom_planete.' ['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']';
|
||
|
|
||
|
$rapportA = 'Vos vaisseaux ont déposé '.$this->var[1][0].' de '.$LANG[$this->utilA->race]["ressources"]["noms"]["metal"].', '.$this->var[1][1].' de '.$LANG[$this->utilA->race]["ressources"]["noms"]["cristal"].' et '.$this->var[1][2].' d\''.$LANG[$this->utilA->race]["ressources"]["noms"]["hydrogene"].' sur '.$this->var[0]->nom_planete.'['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']</b><br /><br />';
|
||
|
$rapportB = 'Les vaisseaux de '.$this->utilA->pseudo.' ont déposé '.$this->var[1][0].' de '.$LANG[$this->utilB->race]["ressources"]["noms"]["metal"].', '.$this->var[1][1].' de '.$LANG[$this->utilB->race]["ressources"]["noms"]["cristal"].' et '.$this->var[1][2].' d\''.$LANG[$this->utilB->race]["ressources"]["noms"]["hydrogene"].' sur '.$this->var[0]->nom_planete.'['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']</b><br /><br />';
|
||
|
|
||
|
$temps = $this->timestamp;
|
||
|
$db = new BDD();
|
||
|
$db->escape($titre);
|
||
|
$db->escape($rapportA);
|
||
|
$db->escape($rapportB);
|
||
|
|
||
|
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA->id_user.", '$titre', '$rapportA', '$temps');");
|
||
|
if ($this->utilA->id_user != $this->utilB->id_user) $db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilB->id_user.", '$titre', '$rapportB', '$temps');");
|
||
|
$db->deconnexion();
|
||
|
}
|
||
|
|
||
|
function sendColonisation()
|
||
|
{
|
||
|
$titre = 'Colonisation de ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].']';
|
||
|
if ($this->var[1]) $rapport = 'Votre vaisseau a atteint la planète ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].'] et commence la colonisation.';
|
||
|
else $rapport = 'Nous n\'avons pas pu coloniser la planète ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].'] car lorsque nous sommes arrivé sur place, elle était déjà colonisée.';
|
||
|
|
||
|
$temps = $this->timestamp;
|
||
|
$db = new BDD();
|
||
|
$db->escape($titre);
|
||
|
$db->escape($rapport);
|
||
|
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA->id_user.", '$titre', '$rapport', '$temps');");
|
||
|
$db->deconnexion();
|
||
|
}
|
||
|
|
||
|
function sendRecyclage()
|
||
|
{
|
||
|
global $LANG;
|
||
|
$titre = 'Recyclage de '.$this->var[0]->nom_planete.' ['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']';
|
||
|
$rapport = 'Vos vaisseaux récoltent '.$this->var[1][0].' de '.$LANG[$this->utilA->race]["ressources"]["noms"]["metal"].' et '.$this->var[1][1].' de '.$LANG[$this->utilA->race]["ressources"]["noms"]["cristal"].' sur '.$this->var[0]->nom_planete.'['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']</b><br /><br />';
|
||
|
|
||
|
$temps = $this->timestamp;
|
||
|
|
||
|
$db = new BDD();
|
||
|
$db->escape($titre);
|
||
|
$db->escape($rapport);
|
||
|
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA->id_user.", '$titre', '$rapport', '$temps');");
|
||
|
$db->deconnexion();
|
||
|
}
|
||
|
|
||
|
function sendCombat(){
|
||
|
include(_FCORE."../game/vars.php");
|
||
|
include_once(_FCORE."../game/function.php");
|
||
|
require_once(SMARTY_DIR."Smarty.class.php");
|
||
|
|
||
|
$rapportA = new Smarty();
|
||
|
$rapportB = new Smarty();
|
||
|
|
||
|
$rapportA->template_dir = _FCORE.'templates/templates/';
|
||
|
$rapportA->compile_dir = _FCORE.'templates/templates_c/';
|
||
|
$rapportA->config_dir = _FCORE.'templates/configs/';
|
||
|
$rapportA->cache_dir = _FCORE.'templates/cache/';
|
||
|
|
||
|
$rapportB->template_dir = _FCORE.'templates/templates/';
|
||
|
$rapportB->compile_dir = _FCORE.'templates/templates_c/';
|
||
|
$rapportB->config_dir = _FCORE.'templates/configs/';
|
||
|
$rapportB->cache_dir = _FCORE.'templates/cache/';
|
||
|
|
||
|
$this->var[4]['pseudo'] = trouvNom($this->var[4]['id_user']);
|
||
|
$this->var[5]['pseudo'] = trouvNom($this->var[5]['id_user']);
|
||
|
|
||
|
$rapportA->assign('tour', $this->var[3]);
|
||
|
$rapportA->assign('EN', $this->var[4]);
|
||
|
$rapportA->assign('flotte', $this->var[5]);
|
||
|
$rapportA->assign('vaisseaux1', $this->var[0]);
|
||
|
$rapportA->assign('vaisseaux2', $this->var[1]);
|
||
|
$rapportA->assign('defenses1', $this->var[2]);
|
||
|
$rapportA->assign('vaisseaux3', $this->var[7]);
|
||
|
$rapportA->assign('vaisseaux4', $this->var[8]);
|
||
|
$rapportA->assign('defenses2', $this->var[9]);
|
||
|
|
||
|
$rapportA->assign('termine', $this->var[6][0]);
|
||
|
$rapportA->assign('attaquantG', $this->var[6][1]);
|
||
|
$rapportA->assign('pillage', $this->var[11]);
|
||
|
|
||
|
$rapportA->assign('vaisBC', $nomvais_bc);
|
||
|
$rapportA->assign('vaisPV', $nomvais_pv);
|
||
|
$rapportA->assign('defBC', $defense_bc);
|
||
|
$rapportA->assign('defPV', $defense_pv);
|
||
|
$rapportA->assign('nextTour', $this->var[10]);
|
||
|
|
||
|
$race = trouvInfo($this->utilA, 'race');
|
||
|
include(_FCORE."../game/noms.php");
|
||
|
$rapportA->assign('ressources', $ressourc);
|
||
|
$rapportA->assign('nomvaisAT', $nomvaisa);
|
||
|
|
||
|
$race = trouvInfo($this->var[4]['id_user'], 'race');
|
||
|
include(_FCORE."../game/noms.php");
|
||
|
$rapportA->assign('nomvaisEN', $nomvaisa);
|
||
|
array_splice($nomterra, 0, 8);
|
||
|
$rapportA->assign('nomdefEN', $nomterra);
|
||
|
|
||
|
$rapportA = $rapportA->fetch('game/ATrapport_combat.tpl');
|
||
|
|
||
|
|
||
|
$rapportB->assign('tour', $this->var[3]);
|
||
|
$rapportB->assign('EN', $this->var[4]);
|
||
|
$rapportB->assign('flotte', $this->var[5]);
|
||
|
$rapportB->assign('vaisseaux1', $this->var[0]);
|
||
|
$rapportB->assign('vaisseaux2', $this->var[1]);
|
||
|
$rapportB->assign('defenses1', $this->var[2]);
|
||
|
$rapportB->assign('vaisseaux3', $this->var[7]);
|
||
|
$rapportB->assign('vaisseaux4', $this->var[8]);
|
||
|
$rapportB->assign('defenses2', $this->var[9]);
|
||
|
|
||
|
$rapportB->assign('termine', $this->var[6][0]);
|
||
|
$rapportB->assign('attaquantG', $this->var[6][1]);
|
||
|
$rapportB->assign('matchnul', $this->var[6][2]);
|
||
|
$rapportB->assign('pillage', $this->var[11]);
|
||
|
|
||
|
$rapportB->assign('vaisBC', $nomvais_bc);
|
||
|
$rapportB->assign('vaisPV', $nomvais_pv);
|
||
|
$rapportB->assign('defBC', $defense_bc);
|
||
|
$rapportB->assign('defPV', $defense_pv);
|
||
|
$rapportB->assign('nextTour', $this->var[10]);
|
||
|
|
||
|
$race = trouvInfo($this->utilA, 'race');
|
||
|
include(_FCORE."../game/noms.php");
|
||
|
$rapportB->assign('ressources', $ressourc);
|
||
|
$rapportB->assign('nomvaisAT', $nomvaisa);
|
||
|
|
||
|
$race = trouvInfo($this->var[4]['id_user'], 'race');
|
||
|
include(_FCORE."../game/noms.php");
|
||
|
$rapportB->assign('nomvaisEN', $nomvaisa);
|
||
|
array_splice($nomterra, 0, 8);
|
||
|
$rapportB->assign('nomdefEN', $nomterra);
|
||
|
|
||
|
$rapportB = $rapportB->fetch('game/ENrapport_combat.tpl');
|
||
|
|
||
|
|
||
|
$titreA = 'Combat contre '.$this->var[4]['pseudo'];
|
||
|
$titreB = 'Combat contre '.$this->var[5]['pseudo'];
|
||
|
$temps = $this->timestamp;
|
||
|
$db = new bdd();
|
||
|
$db->connexion();
|
||
|
$db->escape($titreA);
|
||
|
$db->escape($titreB);
|
||
|
$db->escape($rapportA);
|
||
|
$db->escape($rapportB);
|
||
|
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA->id_user.", '$titreA', '$rapportA', '$temps')");
|
||
|
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilB->id_user."', '$titreB', '$rapportB', '$temps')");
|
||
|
$db->deconnexion();
|
||
|
}
|
||
|
|
||
|
function show(){
|
||
|
include(_FCORE."../game/vars.php");
|
||
|
include_once(_FCORE."../game/function.php");
|
||
|
require_once(SMARTY_DIR."Smarty.class.php");
|
||
|
|
||
|
$rapportA = new Smarty();
|
||
|
|
||
|
$rapportA->template_dir = _FCORE.'templates/templates/';
|
||
|
$rapportA->compile_dir = _FCORE.'templates/templates_c/';
|
||
|
$rapportA->config_dir = _FCORE.'templates/configs/';
|
||
|
$rapportA->cache_dir = _FCORE.'templates/cache/';
|
||
|
|
||
|
$rapportA->assign('tour', $this->var[3]);
|
||
|
$rapportA->assign('EN', $this->var[4]);
|
||
|
$rapportA->assign('flotte', $this->var[5]);
|
||
|
$rapportA->assign('vaisseaux1', $this->var[0]);
|
||
|
$rapportA->assign('vaisseaux2', $this->var[1]);
|
||
|
$rapportA->assign('defenses1', $this->var[2]);
|
||
|
$rapportA->assign('vaisseaux3', $this->var[7]);
|
||
|
$rapportA->assign('vaisseaux4', $this->var[8]);
|
||
|
$rapportA->assign('defenses2', $this->var[9]);
|
||
|
|
||
|
$rapportA->assign('termine', $this->var[6][0]);
|
||
|
$rapportA->assign('attaquantG', $this->var[6][1]);
|
||
|
$rapportA->assign('pillage', $this->var[11]);
|
||
|
$rapportA->assign('debris', $this->var[12]);
|
||
|
$rapportA->assign('infoPLUS', $this->var[14]);
|
||
|
//$rapportA->assign('infoPLUS2', $this->var[15]);
|
||
|
|
||
|
$rapportA->assign('page', 'simulation');
|
||
|
$rapportA->assign('enligne', $this->var[13][0]);
|
||
|
$rapportA->assign('infos', $this->var[13][1]);
|
||
|
$rapportA->assign('nbinfos', $this->var[13][2]);
|
||
|
$rapportA->assign('count', $this->var[13][3]);
|
||
|
$rapportA->assign('version', $this->var[13][4]);
|
||
|
$rapportA->assign('tpsdejeu', $this->var[13][5]);
|
||
|
|
||
|
$rapportA->assign('vaisBC', $nomvais_bc);
|
||
|
$rapportA->assign('vaisPV', $nomvais_pv);
|
||
|
$rapportA->assign('defBC', $defense_bc);
|
||
|
$rapportA->assign('defPV', $defense_pv);
|
||
|
$rapportA->assign('nextTour', $this->var[10]);
|
||
|
|
||
|
$race = trouvInfo($this->utilA, 'race');
|
||
|
include(_FCORE."../game/noms.php");
|
||
|
$rapportA->assign('ressources', $ressourc);
|
||
|
$rapportA->assign('nomvaisAT', $nomvaisa);
|
||
|
$rapportA->assign('nomvaisEN', $nomvaisa);
|
||
|
array_splice($nomterra, 0, 8);
|
||
|
$rapportA->assign('nomdefEN', $nomterra);
|
||
|
$rapportA->assign('race', $race);
|
||
|
|
||
|
return $rapportA->fetch('game/SIMrapport_combat.tpl');
|
||
|
return $rapportA;
|
||
|
}
|
||
|
|
||
|
function sendAlliance()
|
||
|
{
|
||
|
$titreA = 'Déclaration officielle de votre alliance !';
|
||
|
$rapportA = 'Félicitations, votre alliance a recueilli suffisament de signature, sa déclaration est maintenant officielle !<br /><br />Vous pouvez dès maintenant administrer votre alliance en vous rendant sur la page Alliance.';
|
||
|
|
||
|
$temps = $this->timestamp;
|
||
|
|
||
|
$db = new BDD();
|
||
|
$db->escape($titreA);
|
||
|
$db->escape($rapportA);
|
||
|
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA->id_user.", '$titreA', '$rapportA', '$temps')");
|
||
|
$db->deconnexion();
|
||
|
}
|
||
|
|
||
|
function sendAlliance2()
|
||
|
{
|
||
|
$titreA = 'Fondation de votre alliance !';
|
||
|
$rapportA = 'Pour terminer la création de votre alliance, trouvez 4 joueurs de cette galaxie sans alliance pour leur faire signer votre traité de fondation d\'alliance.<br /><br />Lien de signature : <a href="?p=alliances&q=signer&i='.$this->var[0].'">http://'.$_SERVER['HTTP_HOST'].'/?p=alliances&q=signer&i='.$this->var[0].'</a>';
|
||
|
|
||
|
$temps = $this->timestamp;
|
||
|
|
||
|
$db = new BDD();
|
||
|
$db->escape($titreA);
|
||
|
$db->escape($rapportA);
|
||
|
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA->id_user.", '$titreA', '$rapportA', '$temps')");
|
||
|
$db->deconnexion();
|
||
|
}
|
||
|
}
|
||
|
?>
|