diff --git a/assets/barleySpring.png b/assets/barleySpring.png new file mode 100644 index 0000000000000000000000000000000000000000..3e41c7e12bed71fc7c3b745f410321d344deeb23 Binary files /dev/null and b/assets/barleySpring.png differ diff --git a/assets/canicule.png b/assets/canicule.png index 306f3f88f6da84de283708e32270d3dbb05eec57..c49d0a15fd2d00ab10e282ae864c014954aba35b 100644 Binary files a/assets/canicule.png and b/assets/canicule.png differ diff --git a/assets/champp.png.svg b/assets/champp.png.svg new file mode 100644 index 0000000000000000000000000000000000000000..97359bbce1e845778a38c676c24dfe00c8a14e67 --- /dev/null +++ b/assets/champp.png.svg @@ -0,0 +1,323 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="svg78" + width="250" + height="163" + viewBox="0 0 250 163" + sodipodi:docname="champp.png.svg" + inkscape:version="1.0.2 (e86c870879, 2021-01-15)"> + <metadata + id="metadata84"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs82" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1417" + inkscape:window-height="783" + id="namedview80" + showgrid="false" + inkscape:zoom="3.6660493" + inkscape:cx="125" + inkscape:cy="81.5" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="0" + inkscape:current-layer="g86" /> + <g + inkscape:groupmode="layer" + inkscape:label="Image" + id="g86"> + <image + width="250" + height="163" + preserveAspectRatio="none" + style="image-rendering:optimizeQuality" + xlink:href="data:image/png;base64,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 +" + id="image88" /> + <rect + style="fill:#6b4a21;fill-opacity:1;stroke-width:1.09992" + id="rect90" + width="223.96349" + height="33.138496" + x="14.197068" + y="106.25127" /> + </g> +</svg> diff --git a/assets/crop1phase.png b/assets/crop1phase.png new file mode 100644 index 0000000000000000000000000000000000000000..669a3b650f6d14d018c2be49fa5b382f54c5e287 Binary files /dev/null and b/assets/crop1phase.png differ diff --git a/assets/crop2phase.png b/assets/crop2phase.png new file mode 100644 index 0000000000000000000000000000000000000000..489e01b8ba1907d2056474bc6c419803234daccf Binary files /dev/null and b/assets/crop2phase.png differ diff --git a/assets/crop3phase.png b/assets/crop3phase.png new file mode 100644 index 0000000000000000000000000000000000000000..86ce51c721a66408f4b815e9e3721828a763d49c Binary files /dev/null and b/assets/crop3phase.png differ diff --git a/assets/crop4phase.png b/assets/crop4phase.png new file mode 100644 index 0000000000000000000000000000000000000000..000581bdb98e40c0f6616d1bf4d8ac98c5731a81 Binary files /dev/null and b/assets/crop4phase.png differ diff --git a/assets/damage.png b/assets/damage.png new file mode 100644 index 0000000000000000000000000000000000000000..1c9227f5314b7145b9893a2a782cc55d30aff278 Binary files /dev/null and b/assets/damage.png differ diff --git a/assets/fanne.png b/assets/fanne.png new file mode 100644 index 0000000000000000000000000000000000000000..7bbe9e5378709d7119313152ad386a4b4d8ecd49 Binary files /dev/null and b/assets/fanne.png differ diff --git a/assets/houblon.png b/assets/houblon.png new file mode 100644 index 0000000000000000000000000000000000000000..a6f0b56781737e5c30dcde0206c2cf11b4eb85fb Binary files /dev/null and b/assets/houblon.png differ diff --git a/assets/imageBatiment.jpeg b/assets/imageBatiment.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..eb85e277f3cc3f5a2c99b07d2d5266a08a8ad2ca Binary files /dev/null and b/assets/imageBatiment.jpeg differ diff --git a/assets/imagePlantation.jpeg b/assets/imagePlantation.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4fb54c0d8c053498814c307072a5db0f80527be8 Binary files /dev/null and b/assets/imagePlantation.jpeg differ diff --git a/assets/imageinfo.jpg b/assets/imageinfo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..711bc6bd1c38c657284c6781d2b83ca49eb770c1 Binary files /dev/null and b/assets/imageinfo.jpg differ diff --git a/assets/intro.webp b/assets/intro.webp new file mode 100644 index 0000000000000000000000000000000000000000..a0448e04bdfc38c0f4fa565930d7fd96d341419e Binary files /dev/null and b/assets/intro.webp differ diff --git a/assets/intro2.jpg b/assets/intro2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9fee9d020986469a2f32aa5b383e5580c573b015 Binary files /dev/null and b/assets/intro2.jpg differ diff --git a/assets/irrigation.png b/assets/irrigation.png new file mode 100644 index 0000000000000000000000000000000000000000..3c0c827fd58044f2561fd0b546278729a168cbe0 Binary files /dev/null and b/assets/irrigation.png differ diff --git a/assets/irrigationGoutte.png b/assets/irrigationGoutte.png new file mode 100644 index 0000000000000000000000000000000000000000..2877190dd6da6b04085e90834cc2936576df0dff Binary files /dev/null and b/assets/irrigationGoutte.png differ diff --git a/assets/leech.png b/assets/leech.png new file mode 100644 index 0000000000000000000000000000000000000000..1bbacf1549a7d8c6ebe1ddd11366bf810eb586c2 Binary files /dev/null and b/assets/leech.png differ diff --git a/assets/malt.png b/assets/malt.png new file mode 100644 index 0000000000000000000000000000000000000000..af0b10143e581be99f1fff9586486c432a340cdb Binary files /dev/null and b/assets/malt.png differ diff --git a/assets/orge.png b/assets/orge.png new file mode 100644 index 0000000000000000000000000000000000000000..933860decc193234ac839d2bd17c9c4c09b05848 Binary files /dev/null and b/assets/orge.png differ diff --git a/assets/pesticide.png b/assets/pesticide.png new file mode 100644 index 0000000000000000000000000000000000000000..97a1fe6c148a3ab9f97235707aa14343396f2d70 Binary files /dev/null and b/assets/pesticide.png differ diff --git a/assets/puit.png b/assets/puit.png new file mode 100644 index 0000000000000000000000000000000000000000..6ae8a91cb3e4d4c8b93bd521e263901bd440a30b Binary files /dev/null and b/assets/puit.png differ diff --git a/assets/secheresse.png b/assets/secheresse.png new file mode 100644 index 0000000000000000000000000000000000000000..306f3f88f6da84de283708e32270d3dbb05eec57 Binary files /dev/null and b/assets/secheresse.png differ diff --git a/assets/seigle.png b/assets/seigle.png new file mode 100644 index 0000000000000000000000000000000000000000..ba322daeac9f57c104633b8daaf6f041a52b2abe Binary files /dev/null and b/assets/seigle.png differ diff --git a/assets/serre.png b/assets/serre.png new file mode 100644 index 0000000000000000000000000000000000000000..dc95ce817133dbfae38245d1d020a63132f7a93e Binary files /dev/null and b/assets/serre.png differ diff --git a/assets/storagetank.png b/assets/storagetank.png new file mode 100644 index 0000000000000000000000000000000000000000..50b1195f330a11a8cb715fe8ca0d7876ed4f2a9b Binary files /dev/null and b/assets/storagetank.png differ diff --git a/assets/torche.png b/assets/torche.png new file mode 100644 index 0000000000000000000000000000000000000000..bcec813474359d48a038ab57182d51f3243d214a Binary files /dev/null and b/assets/torche.png differ diff --git a/assets/weed.png b/assets/weed.png new file mode 100644 index 0000000000000000000000000000000000000000..99637b53f9c1ddc61aa37184f9f6a20349fb965a Binary files /dev/null and b/assets/weed.png differ diff --git a/assets/wheat.png b/assets/wheat.png new file mode 100644 index 0000000000000000000000000000000000000000..397f96d0657427300a203a7e7ba50742ee295ba6 Binary files /dev/null and b/assets/wheat.png differ diff --git a/src/Champs.py b/src/Champs.py index 826baeae897b1adae316d766dc09ed0b8ca0960b..6a543d52fb77fc12ba5e09d3db4fbdce75fdc7ad 100755 --- a/src/Champs.py +++ b/src/Champs.py @@ -6,9 +6,11 @@ from Image import transformImage listeImage = [pygame.transform.scale(pygame.image.load('../assets/crop'+str(i)+'phase.png'),(120,120)) for i in range(1,5)] +#TODO : mettre une proba que les plantes meurent si il fait trop froid/chaud, et baisser cette proba de mourir avec une serre ou des torche pour l'hiver +#TODO : mettre des insecte/bacterie qui pourrai venir class Champs: - + iconInsecteStatic = pygame.transform.scale(pygame.image.load("../assets/leech.png"),(90,90)) def __init__ (self, temperature, humidite, tempsAvantMaturation, pos, image): self.temperature = temperature self.humidite = humidite @@ -21,7 +23,8 @@ class Champs: self.police = pygame.font.SysFont("Alef", 22) #pygame.font.get_fonts() -> liste des fonts self.imgZoom = pygame.transform.scale(self.image, self.imageSize) self.indiceImage = 0 - + self.champZoom = pygame.rect.Rect(self.pos,self.imgZoom.get_rect().size) + self.isInfeste = False self.descripteurChamps = { "Temperature" : None, "Humidite" : None, @@ -45,9 +48,16 @@ class Champs: def plantationGrandit(self): self.indiceImage +=1 if self.indiceImage <4: + self.imageChamp = listeImage[self.indiceImage] else: - self.imageChamp =pygame.transform.scale(pygame.image.load('../assets/damage.png'),(120,120)) + if(self.indiceImage == 4): + self.imageChamp =pygame.transform.scale(pygame.image.load('../assets/damage.png'),(120,120)) + elif(self.indiceImage == 5): + self.isInfeste = False + self.imageChamp =pygame.transform.scale(pygame.image.load('../assets/fanne.png'),(120,120)) + + @@ -67,7 +77,7 @@ class Champs: if scaleChamp: self.champZoom = scaleChamp varlongueur = camera.convertLocation(self.pos) - self.rectChampScal = pygame.rect.Rect(camera.convertLocation(self.pos), self.champZoom.get_size()) + self.rectChampScal = pygame.rect.Rect(varlongueur, self.champZoom.get_size()) screen.blit( self.champZoom, ( @@ -80,6 +90,23 @@ class Champs: ) self.setInformation("Occupe", True) + if(self.isInfeste): + scaleInfecte = camera.scaleImage(Champs.iconInsecteStatic) + if scaleInfecte: + self.infecteZoom = scaleInfecte + varlongueur = camera.convertLocation(self.pos) + self.rectScalInfecte = pygame.rect.Rect(varlongueur, self.infecteZoom.get_size()) + screen.blit( + self.infecteZoom, + ( + varlongueur[0] + + (self.rectScale.w-self.rectScalInfecte.w) + /2, + varlongueur[1] + + (self.rectScale.h-self.rectScalInfecte.h) + /2) + ) + def changeText (self, camera): scaleText = camera.scaleImage(self.text) @@ -99,6 +126,9 @@ class Champs: screen.blit(self.imageSurfaceinfo[k],(rectangle.x,rectangle.y + i)) i += 30 + def DeterminPourcentageFanage(self,montant): + self.probaFanage +=montant + class Buisson (Champs): def __init__ (self, pos, prix = 10000): @@ -203,7 +233,16 @@ class Seigle(Champs): self.imageChamp = pygame.transform.scale(pygame.image.load('../assets/crop1phase.png'),(120,120)) +class Pesticide(Champs): + iconStatic = pygame.transform.scale(pygame.image.load('../assets/pesticide.png'),(150,150)) + textStatic = police.render("Pesticide",False, (0,0,0)) + textDescriptionStatic = police.render("Pour tuer les insectes",False,(0,0,0)) + montantAchat = 200 + def __init__ (self,pos): + super().__init__(0,0,0,pos,'../assets/pesticide.png') + +#TODO : class Bussion, -typePlantation = [Houblon,Ble,Malt,Chanvre,OrgeHiver,OrgePrintemps,Seigle] +typePlantation = [Houblon,Ble,Malt,Chanvre,OrgeHiver,OrgePrintemps,Seigle,Pesticide] \ No newline at end of file diff --git a/src/Game.py b/src/Game.py index f733dfab655aa514cb47512e7f0cbd716b4de658..c00ae4e261eb6c4da088d944f58279edad024497 100755 --- a/src/Game.py +++ b/src/Game.py @@ -1,10 +1,11 @@ import pygame -from Champs import Champs,Houblon,Buisson,TerrainVide,typePlantation +import random +from Champs import Champs,Houblon,Buisson,TerrainVide,Pesticide,typePlantation import numpy as np from Camera import Camera from Image import transformImage,Image from Temps import Temps -from Infrastructure import Infrastructure,typeBatiment +from Infrastructure import Infrastructure,typeBatiment,Serre,Torche RAYON_MUR_INVISIBLE = 2000 SAISONS = ["Printemps", "Été", "Automne", "Hiver"] @@ -53,7 +54,7 @@ class Game: #DragAndDrop self.dragBatiment = None self.dragPlantation = None - + @@ -129,7 +130,7 @@ class Game: if self.money < self.displayMoney: self.displayMoney -= min(444, self.displayMoney - self.money) # Si quelque chose coûte moins que 100, changer par -= min(100, self.displayMoney - self.money) elif self.money > self.displayMoney: - self.displayMoney-= min(444, self.money - self.displayMoney) # Si quelque chose coûte moins que 100, changer par -= min(100, self.money - self.displayMoney) + self.displayMoney+= min(444, self.money - self.displayMoney) # Si quelque chose coûte moins que 100, changer par -= min(100, self.money - self.displayMoney) #self.displayMoney = self.money @@ -180,23 +181,36 @@ class Game: if self.dragPlantation: for champ in self.champs: if champ.rectScale.collidepoint(event.pos): - if isinstance(champ,TerrainVide): + print(champ) + print(self.dragPlantation) + if self.dragPlantation == Pesticide: + print(champ.isInfeste) + champ.isInfeste = False + print(champ.isInfeste) + + elif isinstance(champ,TerrainVide): self.champs.append(self.dragPlantation(champ.pos)) self.champs.remove(champ) #Perdre l'argent variable = self.dragPlantation.montantAchat self.moneyDefile(-variable) + + if self.dragBatiment: for champ in self.champs: if champ.rectScale.collidepoint(event.pos): if isinstance(champ,TerrainVide): self.batiment.append(self.dragBatiment(champ.pos)) - self.champs.remove(champ) + #Perdre l'argent variable = self.dragBatiment.montantAchat self.moneyDefile(-variable) - + + if self.dragBatiment not in [Torche,Serre]: + self.champs.remove(champ) + + self.dragPlantation = None self.dragBatiment = None @@ -226,14 +240,21 @@ class Game: if event.button == 1: if(self.recTourSuivant.collidepoint(event.pos)): self.temps.NextTurn() - """ + if(self.temps.currentSeason == "Hiver"): self.AideEtat() - """ + + i = 0 for champ in self.champs: + if type(champ) in typePlantation: + if champ.isInfeste: + champ.indiceImage = 4 champ.plantationGrandit() + if(random.random()< 0.10): + champ.isInfeste = True + for champ in self.champs: if champ.rectScale.collidepoint(event.pos): diff --git a/src/Infrastructure.py b/src/Infrastructure.py index ff432c4fdef315f1283f02d40b69e72b06c0d495..6b790a913a957d9ccbf049a598b3482e7844d70b 100644 --- a/src/Infrastructure.py +++ b/src/Infrastructure.py @@ -87,7 +87,7 @@ class ReservoirEau (Infrastructure): class Irrigation (Infrastructure): iconStatic = pygame.transform.scale(pygame.image.load('../assets/irrigation.png'),(150,150)) - textStatic = police.render('Arrosoir automatique longue portée',False, (0,0,0)) + textStatic = police.render('Arrosoir automatique ',False, (0,0,0)) textDescriptionStatic = police.render("Permet d'arroser les plantes",False,(0,0,0)) montantAchat = 5000 def __init__ (self,pos): @@ -96,7 +96,7 @@ class Irrigation (Infrastructure): class IrrigationGoutte (Infrastructure): iconStatic = pygame.transform.scale(pygame.image.load('../assets/irrigationGoutte.png'),(150,150)) - textStatic = police.render('Irrigation goutte à goutte',False, (0,0,0)) + textStatic = police.render('Système goutte à goutte',False, (0,0,0)) textDescriptionStatic = police.render("Permet d'arroser les plantes en économisant l'eau",False,(0,0,0)) montantAchat = 10000 def __init__ (self,pos): @@ -104,13 +104,55 @@ class IrrigationGoutte (Infrastructure): self.imagebat = pygame.transform.scale(pygame.image.load('../assets/irrigationGoutte.png'),(120,120)) class Serre (Infrastructure): - iconStatic = pygame.transform.scale(pygame.image.load('../assets/serre.png'),(150,150)) + iconoriginal = pygame.image.load('../assets/serre.png') + iconStatic = pygame.transform.scale(iconoriginal,(150,150)) textStatic = police.render('Serre',False, (0,0,0)) textDescriptionStatic = police.render("Permet de proteger les cultures du froid et de la chaleur",False,(0,0,0)) montantAchat = 1500 + + iconStaticCopie = pygame.transform.scale(iconoriginal.copy(), (250,200)) + + iconStaticCopie.fill((255, 255, 255, 70), None, pygame.BLEND_RGBA_MULT) + def __init__ (self,pos): super().__init__(pos,'../assets/champ.png') + self.champsAfecte = None #self.imagebat = pygame.transform.scale(pygame.image.load('../assets/serre.png'),(120,120)) + + def draw (self, screen, camera): + scaleImage = camera.scaleImage(Serre.iconStaticCopie) + scaleChamp = camera.scaleImage(self.image) + + if scaleChamp : + self.champZoom = scaleChamp + self.champRect = pygame.rect.Rect(camera.convertLocation(self.pos),self.champZoom.get_size()) + if scaleImage: # != None + self.imgZoom = scaleImage + self.rectScale = pygame.rect.Rect(camera.convertLocation(self.pos), self.imgZoom.get_size()) + + + varlongueur = camera.convertLocation(self.pos) + screen.blit(self.imgZoom, (varlongueur[0]+ (self.champRect.w - self.rectScale.w)/2,varlongueur[1]+ (self.champRect.h - self.rectScale.h)/2)) + + + """ + if hasattr(self,'imagebat'): + scaleBat = camera.scaleImage(self.imagebat) + if scaleBat: + self.BatZoom = scaleBat + varlongueur = camera.convertLocation(self.pos) + self.rectbatScal = pygame.rect.Rect(camera.convertLocation(self.pos), self.BatZoom.get_size()) + screen.blit( + self.BatZoom, + ( + varlongueur[0] + + (self.rectScale.w-self.rectbatScal.w) + /2, + varlongueur[1] + + (self.rectScale.h-self.rectbatScal.h) + /2) + ) + """ class Torche (Infrastructure): iconStatic = pygame.transform.scale(pygame.image.load('../assets/torche.png'),(150,150)) @@ -119,6 +161,7 @@ class Torche (Infrastructure): montantAchat = 1000 def __init__ (self,pos): super().__init__(pos,'../assets/champ.png') + self.zoneafecte = None #self.imagebat = pygame.transform.scale(pygame.image.load('../assets/torche.png'),(120,120)) typeBatiment = [Puit,ReservoirEau,Irrigation,IrrigationGoutte,Serre,Torche] \ No newline at end of file diff --git a/src/T3.py b/src/T3.py index 2a34eca0ed704a29f4f18145c8575907305da3a5..1420c38357a4fc11fbc0d9c4df8a41a214405151 100755 --- a/src/T3.py +++ b/src/T3.py @@ -16,7 +16,7 @@ class month: current_month = month(date.today().strftime("%b")) #background (2è scène) -background = pygame.image.load('../assets/accueil.jpg') +background = pygame.image.load('../assets/intro.webp') background = pygame.transform.scale(background, (screen.get_width(), screen.get_height())) #bannière