Incendie
arbre.h
1 #ifndef ARBRE_H
2 #define ARBRE_H
3 
4 #define _USE_MATH_DEFINES
5 #include <cmath>
6 #include <cstdlib>
7 #include <iostream>
8 
9 #include "../debug.h"
10 #include "coordonnee.h"
11 #include "cellule.h"
12 #include "essence.h"
13 
14 class Arbre: public Cellule
15 {
16 private:
17  int state;
18  Coordonnee pos;
19  // les essences sont constantes et un arbre a toujours la même essence
20  const Essence * const essence;
21 
22 // int age;
23  float humidity;
24  float coefficient;
25  int hp; // calculés lors de la création
26 
27 public:
28 
29 // Setters
30  void setState(int x);
31 
32 // Constructeurs et destructeur
38  Arbre(int col, int row, const Essence*const _essence, unsigned int _age = 0, unsigned int _humidite = 20, int _coefficient = 1);
45  Arbre(Cellule* cell, int col, int row, const Essence* const _essence, unsigned int age = 0, unsigned int _humidite = 20, int _coefficient = 1);
51  Arbre(int col, int row, Cellule* cell, const Essence* const _essence, unsigned int _humidite, int _hp, int _coefficient = 1);
52 
53 
54 
60  void initialise(unsigned age);
61 
62 // Getters
63  virtual int getState() const { return state; };
64  int getPv() const { return hp;};
65  float getCoeff() const { return coefficient; };
66  float getHumidity() const { return humidity; };
67  const Coordonnee& getPos() const { return pos; };
68  const Essence* getEssence() const { return essence; };
69 
70 // Setters
71  void setCoefficient(float x);
72 
73 // Autres méthodes
79  void spark (float coefTransmission = 1.0);
85  bool burn (float coefBrulure = 1.0);
86 
87  // Méthodes constantes
88  virtual bool isOnFire() const { return state==2; };
93  void delay(float coefRalentissement);
94  void kindle() { state= 2; };
95  void blast() { state= -1; };
96  void uproot() { state= -2; };
97 };
98 
99 #endif // ARBRE_H
Definition: cellule.h:4
void delay(float coefRalentissement)
Definition: arbre.cpp:94
Definition: essence.h:7
void initialise(unsigned age)
Definition: arbre.cpp:39
Definition: arbre.h:14
bool burn(float coefBrulure=1.0)
Definition: arbre.cpp:128
void spark(float coefTransmission=1.0)
Definition: arbre.cpp:103
Arbre(int col, int row, const Essence *const _essence, unsigned int _age=0, unsigned int _humidite=20, int _coefficient=1)
Normalement inutile, permet de ne pas utilise -lm lors compilation
Definition: coordonnee.h:10