Adefinir  Finale
Employes.php
Go to the documentation of this file.
1 <?php
8 namespace App\Models;
9 
10 use App\Models\Game;
17 
18 
19 
24 class Employes {
25 
26 
27  private Game $_game;
28 
39 
44  private int $_NB_MAX_EMPLOYEES = 5;
45 
51  private int $_nbEmployees = 0;
52 
53  // =======================================================
54 
58  public function __construct( Game $game ) {
59  $this->_developpeur = new Developpeur($this);
60  $this->_dirMarketing = new DirecteurMarketing($this);
61  $this->_gameDesigner = new GameDesigner($this);
62  $this->_psy = new Psychologue($this);
63  $this->_soundDesigner = new SoundDesigner($this);
64  $this->_specialiste = new Specialiste($this);
65 
66  $this->_game = $game;
67  }
68 
69  // =======================================================
70 
80  public function hireEmployees( string $nameJob ) : int {
81  $res = -1;
82 
83  // Le joueur peut embaucher un employé
84  if ( $this->_nbEmployees < $this->_NB_MAX_EMPLOYEES ) {
85 
86  //On ajoute un employé , au total du nombre d'employé
87  $this->_nbEmployees += 1;
88 
89  switch ($nameJob) {
90 
91  //Si $nameJob correspond au groupe de métier Developpeur , on appele la fonction hireDeveloper()
92  case "Developpeur":
93  $res = $this->_developpeur->hireDeveloper();
94  break;
95 
96  //Si $nameJob correspond au groupe de métier DirecteurMarketing , on appele la fonction hireDirecteurMarketing()
97  case "DirecteurMarketing":
98  $res = $this->_dirMarketing->hireDirecteurMarketing();
99  break;
100 
101  //Si $nameJob correspond au groupe de métier GameDesigner , on appele la fonction hireGameDesigner()
102  case "GameDesigner":
103  $res = $this->_gameDesigner->hireGameDesigner();
104  break;
105 
106  //Si $nameJob correspond au groupe de métier Psychologue , on appele la fonction hirePsychologue()
107  case "Psychologue":
108  $res = $this->_psy->hirePsychologue();
109  break;
110 
111  //Si $nameJob correspond au groupe de métier SoundDesigner , on appele la fonction hireSoundDesigner()
112  case "SoundDesigner":
113  $res = $this->_soundDesigner->hireSoundDesigner();
114  break;
115 
116  //Si $nameJob correspond au groupe de métier Specialiste , on appele la fonction fireSpecialiste()
117  case "Specialiste":
118  $res = $this->_specialiste->hireSpecialiste();
119  break;
120 
121  default: // Erreur
122  $res = -2;
123  $_SESSION["message"] = "ERREUR : bad job name in Employes->hireEmployees";
124  break;
125  }
126  }
127 
128  return $res;
129  }
130 
131 
140  public function fireEmployees( string $nameJob ) : int {
141  $res = -1;
142 
143  // Le joueur peut licencier un employé
144  if ( $this->_nbEmployees > 0 ) {
145 
146  //On enlève un employé au total des employés
147  $this->_nbEmployees = $this->_nbEmployees - 1;
148 
149  switch ($nameJob) {
150 
151  //Si $nameJob correspond au groupe de métier Developpeur , on appele la fonction fireDeveloper()
152  case "Developpeur":
153  $res = $this->_developpeur->fireDeveloper();
154  break;
155 
156  //Si $nameJob correspond au groupe de métier DirecteurMarketing , on appele la fonction fireDirecteurMarketing()
157  case "DirecteurMarketing":
158  $res = $this->_dirMarketing->fireDirecteurMarketing();
159  break;
160 
161  //Si $nameJob correspond au groupe de métier GameDesigner , on appele la fonction fireGameDesigner()
162  case "GameDesigner":
163  $res = $this->_gameDesigner->fireGameDesigner();
164  break;
165 
166  //Si $nameJob correspond au groupe de métier Psychologue , on appele la fonction firePsychologue()
167  case "Psychologue":
168  $res = $this->_psy->firePsychologue();
169  break;
170 
171  //Si $nameJob correspond au groupe de métier SoundDesigner , on appele la fonction fireSoundDesigner()
172  case "SoundDesigner":
173  $res = $this->_soundDesigner->fireSoundDesigner();
174  break;
175 
176  //Si $nameJob correspond au groupe de métier Specialiste , on appele la fonction fireSpecialiste()
177  case "Specialiste":
178  $res = $this->_specialiste->fireSpecialiste();
179  break;
180 
181  default: // Erreur
182  $res = -2;
183  $_SESSION["message"] = "ERREUR : bad job name in Employes->hireEmployees";
184  break;
185  }
186  }
187 
188  return $res;
189  }
190 
191 
202  public function incrementActionResults( string $varName, int $increment ) : void {
203 
204  switch ($varName) {
205 
206  //Si $varName corresponds à l'action : "travaille de la difficulté" , on incrémente la catégorie difficulty
207  case "difficulty":
208  $this->_game->difficulty += $increment;
209  break;
210 
211  //Si $varName corresponds à l'action : "travaille de l'affordance" , on incrémente la catégorie affordance
212  case "affordance":
213  $this->_game->affordance += $increment;
214  break;
215 
216  //Si $varName corresponds à l'action : "travaille de la jouabilité" , on incrémente la catégorie jouablilité
217  case "playability":
218  $this->_game->playability += $increment;
219  break;
220 
221  //Si $varName corresponds à l'action : "travaille du design" , on incrémente la catégorie design
222  case "design":
223  $this->_game->design += $increment;
224  break;
225 
226  //Si $varName corresponds à l'action : "travaille de l'ambiance sonore" , on incrémente la catégorie soundscape
227  case "soundScape":
228  $this->_game->soundscape += $increment;
229  break;
230 
231  //Si $varName corresponds à l'action : "travaille de la difficulté" , on incrémente la catégorie difficulty
232  case "interactivity":
233  $this->_game->interactivity += $increment;
234  break;
235 
236  //Si $varName corresponds à l'action : "recherche de bugs" , on incrémente la catégorie bugs
237  case "bugs":
238  $this->_game->bugs += $increment;
239  break;
240 
241  //Si $varName corresponds à l'action : "travaille du scénario" , on incrémente la catégorie scénario
242  case "scenario":
243  $this->_game->scenario += $increment;
244  break;
245 
246  //Si $varName corresponds à l'action : "réaliser une étude de marché" , on incrémente la catégorie research
247  case "research":
248  $this->_game->research += $increment;
249  break;
250 
251  //Si $varName corresponds à l'action : "travaille sur la concentration" , on incrémente la catégorie focus
252  case "focus":
253  $this->_game->focus += $increment;
254  break;
255 
256  //Si $varName corresponds à l'action : "travaille du contenu pédagogique" , on incrémente la catégorie educationalcontent
257  case "educationalContent":
258  $this->_game->educationalContent += $increment;
259  break;
260 
261  default:
262  /* Rien */
263  break;
264  }
265 
266  }
267 
268 
269 }
App\Models\Metiers\GameDesigner
Definition: GameDesigner.php:6
App\Models\Employes
Definition: Employes.php:24
App\Models\Employes\$_psy
Psychologue $_psy
Definition: Employes.php:36
App\Models\Game
Definition: Game.php:10
App\Models\Metiers\Specialiste
Definition: Specialiste.php:6
App\Models\Employes\hireEmployees
hireEmployees(string $nameJob)
Definition: Employes.php:80
App\Models\Employes\incrementActionResults
incrementActionResults(string $varName, int $increment)
Definition: Employes.php:202
App\Models\Employes\__construct
__construct(Game $game)
Definition: Employes.php:58
$game
$game
Definition: results.blade.php:7
App\Models\Metiers\DirecteurMarketing
Definition: DirecteurMarketing.php:16
App\Models\Metiers\Developpeur
Definition: Developpeur.php:10
App\Models\Employes\$_gameDesigner
GameDesigner $_gameDesigner
Definition: Employes.php:35
App\Models\Metiers\SoundDesigner
Definition: SoundDesigner.php:9
App\Models\Employes\$_specialiste
Specialiste $_specialiste
Definition: Employes.php:38
App\Models\Employes\fireEmployees
fireEmployees(string $nameJob)
Definition: Employes.php:140
App\Models
Definition: Chart.php:3
App\Models\Employes\$_developpeur
Developpeur $_developpeur
Definition: Employes.php:33
App\Models\Employes\$_dirMarketing
DirecteurMarketing $_dirMarketing
Definition: Employes.php:34
App\Models\Employes\$_soundDesigner
SoundDesigner $_soundDesigner
Definition: Employes.php:37
App\Models\Metiers\Psychologue
Definition: Psychologue.php:11