From 6d8e74e42e58a08e651c42ac7e9e7262084c349f Mon Sep 17 00:00:00 2001
From: Emir Sinanovic <esinanovic@unistra.fr>
Date: Mon, 5 Dec 2022 17:28:55 +0100
Subject: [PATCH] bouton tour suivant finit + affichage next run des
 temperature

---
 src/Game.py  | 29 +++++++++++++++++--------
 src/Temps.py | 61 +++++++++++++++++++++++++++++++++++++---------------
 2 files changed, 64 insertions(+), 26 deletions(-)

diff --git a/src/Game.py b/src/Game.py
index ea5a538..14151fd 100755
--- a/src/Game.py
+++ b/src/Game.py
@@ -34,10 +34,11 @@ class Game:
         self.frame = 0
         self.buyFrame = -1000
         
-        self.tourSuivant = self.image.arrowNextImage
-        self.tourSuivant = pygame.transform.scale(self.tourSuivant, (100,100))
-        self.coordonneeSuite = self.screenSize[0]-self.tourSuivant.get_width() - 120, self.screenSize[1] - self.tourSuivant.get_height() - 120
+        self.tourSuivantOriginal = self.image.arrowNextImage
+        self.tourSuivantModif = pygame.transform.scale(self.tourSuivantOriginal, (100,100))
+        self.coordonneeSuite = self.screenSize[0]-self.tourSuivantModif.get_width() - 120, self.screenSize[1] - self.tourSuivantModif.get_height() - 120
         self.suiteRectangle = pygame.rect.Rect(*self.coordonneeSuite, 100, 100)
+
         self.coordonne_info = pygame.rect.Rect(self.screen.get_width()*0.82,self.screen.get_height()*0.18,self.screen.get_width()*0.19,self.screen.get_height()*0.5)
         self.recInformation = pygame.rect.Rect(self.coordonne_info)
         self.rectPlantation = pygame.rect.Rect(0,0,self.temps.getImageSaison().get_width(),self.screen.get_height() -  self.temps.getImageSaison().get_height())
@@ -67,8 +68,12 @@ class Game:
 
             # Météo
             self.screen.blit(self.temps.getImageSaison(), (0, self.screen.get_height() - 300))
-            self.screen.blit(self.temps.image,(10,self.screen.get_height() - self.temps.image.get_height()))
-            self.screen.blit(self.temps.temperatureImage,(10,self.screen.get_height() - self.temps.image.get_height() - 50))
+            self.screen.blit(self.temps.iconSaison,(10,self.screen.get_height() - self.temps.iconSaison.get_height()))
+            self.screen.blit(self.temps.tempsaisonImage,(10,self.screen.get_height() - self.temps.iconSaison.get_height() - 50))
+
+            self.screen.blit(self.temps.nexticonSaison,(self.temps.getImageSaison().get_width() - self.temps.nexticonSaison.get_width(),self.screen.get_height() - self.temps.getImageSaison().get_height() +20))
+            self.screen.blit(self.temps.tempsaisonImageDeuxPosiiton,(self.temps.getImageSaison().get_width() - self.temps.nexticonSaison.get_width(),self.screen.get_height() - self.temps.getImageSaison().get_height()))
+
             
 
             #Onglet plantation
@@ -76,7 +81,8 @@ class Game:
             
             #Onglet tour suivant
             pygame.draw.rect(self.screen,(0, 127, 0),(self.recTourSuivant))
-            self.screen.blit(self.tourSuivant, (self.screen.get_width() - 120, self.screen.get_height() - 120))
+            self.screen.blit(self.tourSuivantModif, (self.recTourSuivant.x+ (self.recTourSuivant.w - self.tourSuivantModif.get_width())/2,
+            self.recTourSuivant.y+ (self.recTourSuivant.h - self.tourSuivantModif.get_height())/2))
 
             for i,c in enumerate(typePlantation):
                 x = self.rectPlantation.x + ( 0 if i%2 else 170) 
@@ -137,18 +143,22 @@ class Game:
                     if not isChamp:
                         self.selectedChamp = None
 
-                    if (*event.pos,0,0) in self.suiteRectangle:
-                        self.tourSuivant = pygame.transform.scale(self.tourSuivant, (120, 120))
+                    if (*event.pos,0,0) in self.recTourSuivant:
+                        self.tourSuivantModif = pygame.transform.scale(self.tourSuivantOriginal, (200, 200))
                     else:
-                        self.tourSuivant = pygame.transform.scale(self.tourSuivant, (100, 100))
+                        self.tourSuivantModif = pygame.transform.scale(self.tourSuivantOriginal, (100, 100))
                     
                 
+                
                 elif event.type == pygame.MOUSEWHEEL:
                     self.camera.zoomInOut(event.y)
 
                 # Achat d'un champ
                 elif event.type == pygame.MOUSEBUTTONDOWN:
+                    
                     if event.button == 1:
+                        if(self.recTourSuivant.collidepoint(event.pos)):
+                            self.temps.NextTurn()
                         for champ in self.champs:
                             if isinstance(champ, Buisson):
                                 if champ.rectScale.contains(event.pos[0],event.pos[1],0,0):
@@ -158,6 +168,7 @@ class Game:
                                         self.champs.append(champ.buyField())
                                         self.champs.remove(champ)
                                         self.money -= champ.prix
+                
                                     
 
             if self.frame < self.buyFrame + 20:
diff --git a/src/Temps.py b/src/Temps.py
index ab4f7d9..08647cb 100755
--- a/src/Temps.py
+++ b/src/Temps.py
@@ -1,9 +1,10 @@
 import random
 import pygame
 from Image import transformImage
+from random import triangular
 police = pygame.font.SysFont("Alef", 30)
+police2 = pygame.font.SysFont("Alef", 20)
 class Temps:
-    # "humidité" est un pourcentage moyen
 
     """
     climats = {
@@ -81,24 +82,49 @@ class Temps:
     }
 
     def __init__(self):
-        self.currentSeason = "Printemps"
+        self.indice = 2
+        self.currentSeason = self.getSaisonName(self.indice)
         self.globaltemp = self.tirageAuSortChiffreIntervalleTemp(self.currentSeason)
         self.humidite = self.tirageAuSortChiffreIntervallehumidite(self.currentSeason)
-        self.Temps = pygame.image.load(self.tempAAfficher())
-        self.image = transformImage(self.Temps,200,200)
-        self.temperatureImage = police.render(self.currentSeason +" : "+ str(round(self.globaltemp,1))+" °C",True,(0,0,0))
+        self.temps = pygame.image.load(self.tempAAfficher(self.globaltemp))
+        self.iconSaison = transformImage(self.temps,200,200)
+
+        self.nextSaison = self.getSaisonName(self.indice+1)
+        self.nextglobalTemps = self.tirageAuSortChiffreIntervalleTemp(self.nextSaison)
+        self.nexthumidite = self.tirageAuSortChiffreIntervallehumidite(self.nextSaison)
+        self.nextTemps = pygame.image.load(self.tempAAfficher(self.nextglobalTemps))
+        self.nexticonSaison = transformImage(self.nextTemps,100,100)
+
+        self.tempsaisonImage = police.render(self.currentSeason +" : "+ str(round(self.globaltemp,1))+" °C",True,(0,0,0))
+
+        self.tempsaisonImageDeuxPosiiton = police2.render(self.nextSaison +" : "+ str(round(self.nextglobalTemps,1))+" °C",True,(0,0,0))
         for key,value in self.climats.items():
             self.climats.get(key)['image'] = transformImage(pygame.image.load("../assets/"+key+".png"),400,300)
-        
+    
+
+    def NextTurn(self):
+        #Le next qui devien current
+        self.indice += 1
+        self.currentSeason = self.nextSaison
+        self.globaltemp = self.nextglobalTemps
+        self.humidite = self.nexthumidite
+        self.temps = self.nextTemps
+        self.iconSaison = self.nexticonSaison
+        self.tempsaisonImage = police.render(self.currentSeason +" : "+ str(round(self.globaltemp,1))+" °C",True,(0,0,0))
+
+        #Nouveau turn
+        self.nextSaison = self.getSaisonName(self.indice+1)
+        self.nextglobalTemps = self.tirageAuSortChiffreIntervalleTemp(self.nextSaison)
+        self.nexthumidite = self.tirageAuSortChiffreIntervallehumidite(self.nextSaison)
+        self.nextTemps = pygame.image.load(self.tempAAfficher(self.nextglobalTemps))
+        self.nexticonSaison = transformImage(self.nextTemps,100,100)
         
 
-    def randomTemp (self):
-        intervalleTemp = self.climats[self.currentSeason]["temp"]
-        return random.randint(*intervalleTemp) # *intervalleTemp = intervalleTemp[0], intervalleTemp[1]
+        self.tempsaisonImageDeuxPosiiton = police2.render(self.nextSaison +" : "+ str(round(self.nextglobalTemps,1))+" °C",True,(0,0,0))
 
-    def randomHumidite (self):
-        intervalleHumidite = self.climats[self.currentSeason]["humidité"]
-        return random.randint(*intervalleHumidite)
+
+    def getSaisonName(self,indice:int)->str:
+        return list(self.climats.keys())[indice%4]
 
     def tirageAuSortChiffreIntervalleTemp(self,clef):
         #tirage au sort pour avoir un nombre representatif dans son domaine; par exemple [0,10], la temp sera de 5
@@ -112,17 +138,18 @@ class Temps:
         randomNombre = random.random() * (intervalle[1]-intervalle[0]) + intervalle[0]
         return randomNombre
 
-    def tempAAfficher(self):      
+    def tempAAfficher(self,temperature:float)-> str:
         #Determination du temps a afficher 
-        if( self.globaltemp < 0):
+        if( temperature < 0):
             return "../assets/neige.png"
-        elif (self.globaltemp < 10):
+        elif (temperature < 10):
             return "../assets/froid.png"
-        elif (self.globaltemp < 35):
+        elif (temperature < 35):
             return "../assets/chaud.png"
-        elif (self.globaltemp > 35):
+        elif (temperature > 35):
             return "../assets/canicule.png"
 
+
     def getClimatTemp(self,clef):
         return self.climats[clef]["temp"]
 
-- 
GitLab