mirror of
https://github.com/guezoloic/racing-game.git
synced 2026-03-31 11:11:38 +00:00
feat!: rework de tout le projet
This commit is contained in:
91
src/model/car/HybridCar.java
Normal file
91
src/model/car/HybridCar.java
Normal file
@@ -0,0 +1,91 @@
|
||||
package model.car;
|
||||
|
||||
import java.awt.Color;
|
||||
|
||||
/**
|
||||
* HybridCar = décorateur "voiture hybride".
|
||||
*
|
||||
* Idée :
|
||||
* - La voiture avance à chaque tour
|
||||
* - Mais elle consomme du carburant seulement 1 fois sur 2
|
||||
* => donc elle économise du carburant.
|
||||
*/
|
||||
public class HybridCar implements Car {
|
||||
private Car car;
|
||||
private int energy = 100; // énergie batterie (0..100)
|
||||
|
||||
public HybridCar(Car car) {
|
||||
this.car = car;
|
||||
}
|
||||
|
||||
/** pour afficher l'énergie dans le Dashboard */
|
||||
public int getEnergy() {
|
||||
return energy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
// 1) La voiture avance toujours
|
||||
car.move();
|
||||
|
||||
// 2) Gestion énergie : elle perd 10% à chaque boucle
|
||||
energy -= 10;
|
||||
if (energy < 0)
|
||||
energy = 0;
|
||||
|
||||
// 3) Consommation :
|
||||
// - si on a encore de l'énergie, on économise le fuel (pas de conso)
|
||||
// - sinon, on consomme normalement
|
||||
if (energy == 0) {
|
||||
car.consumeFuel();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String decelerate() {
|
||||
// 1) On applique le ralentissement normal (State pattern)
|
||||
String msg = car.decelerate();
|
||||
|
||||
// 2) Recharge +5% quand on ralentit
|
||||
energy += 5;
|
||||
if (energy > 100)
|
||||
energy = 100;
|
||||
|
||||
return msg;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void consumeFuel() {
|
||||
car.consumeFuel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void move() {
|
||||
car.move();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String accelerate() {
|
||||
return car.accelerate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reverse(boolean active) {
|
||||
car.reverse(active);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPos() {
|
||||
return car.getPos();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Color getColor() {
|
||||
return car.getColor();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return car.getName();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user