1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
/*****
* Planete.cpp
****/
#include <iostream>
#include <vector>
#include <string>
#include "Contrainte.h"
#include "Recherche.h"
#include "Planete.h"
using namespace std;
Planete::Planete ( string NOM , int gal , int sys , int pos )
{
nom = NOM ;
galaxie = gal ;
systeme_solaire = sys ;
position = pos ;
metal = 0 ;
cristal = 0 ;
deuterium = 0 ;
initBatiments();
initTechnologies();
initContraintes();
}
void Planete::initBatiments ()
{
recherches.push_back ( Recherche ( "Mine de métal" , 1 , 60 , 15 , 0 ) );
recherches.push_back ( Recherche ( "Mine de cristal" , 2 , 48 , 24 , 0 ) );
recherches.push_back ( Recherche ( "Synthétiseur de deuterium" , 3 , 225 , 75 , 0 ) );
recherches.push_back ( Recherche ( "Centrale éléctrique solaire" , 4 , 75 , 30 , 0 ) );
recherches.push_back ( Recherche ( "Centrale de fusion" , 12 , 900 , 360 , 180 ) );
recherches.push_back ( Recherche ( "Usine de robots" , 14 , 400 , 120 , 200 ) );
recherches.push_back ( Recherche ( "Usine de nanites" , 15 , 1000000 , 500000 , 100000 ) );
recherches.push_back ( Recherche ( "Chantier spatial" , 21 , 400 , 200 , 100 ) );
recherches.push_back ( Recherche ( "Hangar de métal" , 22 , 2000 , 0 , 0 ) );
recherches.push_back ( Recherche ( "Hangar de cristal" , 23 , 2000 , 1000 , 0 ) );
recherches.push_back ( Recherche ( "Réservoir de deutérium" , 24 , 2000 , 2000 , 0 ) );
recherches.push_back ( Recherche ( "Laboratoire de recherche" , 31 , 200 , 400 , 200 ) );
recherches.push_back ( Recherche ( "Terraformeur" , 33 , 0 , 50000 , 100000 ) );
recherches.push_back ( Recherche ( "Dépôt de ravitaillement" , 34 , 20000 , 40000 , 0 ) );
recherches.push_back ( Recherche ( "Base lunaire" , 41 , 20000 , 40000 , 20000 ) );
recherches.push_back ( Recherche ( "Phalange de capteur" , 42 , 20000 , 40000 , 20000 ) );
recherches.push_back ( Recherche ( "Porte de saut spatial" , 43 , 2000000 , 4000000 , 2000000 ) );
recherches.push_back ( Recherche ( "Silo de missiles" , 44 , 20000 , 20000 , 1000 ) );
}
void Planete::initTechnologies ()
{
recherches.push_back ( Recherche ( "Technologie Espionnage" , 106 , 200 , 1000 , 200 ) );
recherches.push_back ( Recherche ( "Technologie Ordinateur" , 108 , 0 , 400 , 600 ) );
recherches.push_back ( Recherche ( "Technologie Armes" , 109 , 800 , 200 , 0 ) );
recherches.push_back ( Recherche ( "Technologie Bouclier" , 110 , 200 , 600 , 0 ) );
recherches.push_back ( Recherche ( "Technologie Protection des vaisseaux spatiaux" , 111 , 1000 , 0 , 0 ) );
recherches.push_back ( Recherche ( "Technologie Energie" , 113 , 0 , 800 , 400 ) );
recherches.push_back ( Recherche ( "Technologie Hyperespace" , 114 , 0 , 4000 , 2000 ) );
recherches.push_back ( Recherche ( "Réacteur à combustion" , 115 , 400 , 0 , 600 ) );
recherches.push_back ( Recherche ( "Réacteur à impulsion" , 117 , 2000 , 4000 , 600 ) );
recherches.push_back ( Recherche ( "Propulsion hyperespace" , 118 , 10000 , 20000 , 6000 ) );
recherches.push_back ( Recherche ( "Technologie Laser" , 120 , 200 , 100 , 0 ) );
recherches.push_back ( Recherche ( "Technologie Ions" , 121 , 1000 , 300 , 100 ) );
recherches.push_back ( Recherche ( "Technologie Plasma" , 122 , 2000 , 4000 , 1000 ) );
recherches.push_back ( Recherche ( "Réseau de recherche intergalactique" , 123 , 240000 , 400000 , 160000 ) );
recherches.push_back ( Recherche ( "Technologie Expédition" , 124 , 4000 , 8000 , 4000 ) );
}
void Planete::initContraintes ()
{
getRecherche( 12 ).addContrainte( *(getRecherche( 3 )) , 5 );
getRecherche( 12 ).addContrainte( *(getRecherche( 113 )) , 3 );
}
Recherche Planete::getRecherche ( int gid )
{
int i ;
for ( i = 0 ; i < recherches.size() ; i++ )
if ( recherches[ i ].getGID() == gid )
return recherches[ i ];
return Recherche( "" , 0 , 0 , 0 , 0 ) ;
} |
Partager