diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin index 79b0d723d31ff37e4eea1d84977005e31f62efe3..e49f9314eff4168b11c75687f911a45a3b90620f 100644 Binary files a/.gradle/8.10.2/executionHistory/executionHistory.bin and b/.gradle/8.10.2/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.10.2/executionHistory/executionHistory.lock b/.gradle/8.10.2/executionHistory/executionHistory.lock index 307db83672e538674ed8b6338798b3a55784fdeb..0310a0c904e4bbd9aff05ff9176487de03bd5f4f 100644 Binary files a/.gradle/8.10.2/executionHistory/executionHistory.lock and b/.gradle/8.10.2/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.10.2/fileHashes/fileHashes.bin b/.gradle/8.10.2/fileHashes/fileHashes.bin index 79e3df825b257fac852c91d6262a46d7e5b7da21..21dbc7293c590fe99883bb7c824b834fa787f62c 100644 Binary files a/.gradle/8.10.2/fileHashes/fileHashes.bin and b/.gradle/8.10.2/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.10.2/fileHashes/fileHashes.lock b/.gradle/8.10.2/fileHashes/fileHashes.lock index 58bede2f2faaa5a1bc1493b8d9cbd7f542fefa91..a11865e8621d286625a8f307752aa185b8f1d47b 100644 Binary files a/.gradle/8.10.2/fileHashes/fileHashes.lock and b/.gradle/8.10.2/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin index 4aad651704930416be0bbd4272f5e3bcd5bedc3a..84ba8b0733c623a6921f5ff5d85c38dcaf768918 100644 Binary files a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin and b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index ff44e921e770cbad55d19a4ae5b5a927c45f57e2..e2e8f8e94e53ae45ba2a2a1af5591ef49d893ff6 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/build/classes/java/main/model/elementTokens/Chargable.class b/build/classes/java/main/model/elementTokens/Chargable.class new file mode 100644 index 0000000000000000000000000000000000000000..aa9ad8f92d219212bdb7a82d730f78b4b7e2ba21 Binary files /dev/null and b/build/classes/java/main/model/elementTokens/Chargable.class differ diff --git a/build/classes/java/main/model/elementTokens/ChargeTarget.class b/build/classes/java/main/model/elementTokens/ChargeTarget.class index 3504616201080376dfac3ad2e31d51764da2e29d..10b780a1e79eec3a8c799f61695baaad4dd365a1 100644 Binary files a/build/classes/java/main/model/elementTokens/ChargeTarget.class and b/build/classes/java/main/model/elementTokens/ChargeTarget.class differ diff --git a/build/classes/java/main/model/firefighter/FFBoard.class b/build/classes/java/main/model/firefighter/FFBoard.class index bb69b25a7fc67a5c9e5a369d9400532907aafa1d..a696e47d2a48e56b68e419291b0af9a5c22290cb 100644 Binary files a/build/classes/java/main/model/firefighter/FFBoard.class and b/build/classes/java/main/model/firefighter/FFBoard.class differ diff --git a/build/classes/java/main/model/firefighter/ModelElement.class b/build/classes/java/main/model/firefighter/ModelElement.class index 59bad8e1e6896f95c620a867b5829c2a4bc251f4..f5f45630f1d3c71e3de5fa39cc67d7ee60fe847d 100644 Binary files a/build/classes/java/main/model/firefighter/ModelElement.class and b/build/classes/java/main/model/firefighter/ModelElement.class differ diff --git a/build/classes/java/main/model/firefighter/behaviors/FireFighterBehavior.class b/build/classes/java/main/model/firefighter/behaviors/FireFighterBehavior.class index b7c4b6baa792bfe0f89471a68c0222da55288d43..e375afbbfd234b132d1b56cc3d986193aeeb17f9 100644 Binary files a/build/classes/java/main/model/firefighter/behaviors/FireFighterBehavior.class and b/build/classes/java/main/model/firefighter/behaviors/FireFighterBehavior.class differ diff --git a/build/classes/java/main/model/firefighter/behaviors/IndustrialFireFighterBehavior.class b/build/classes/java/main/model/firefighter/behaviors/IndustrialFireFighterBehavior.class new file mode 100644 index 0000000000000000000000000000000000000000..686f3420071b16c0a1d3a21af855d2114291839b Binary files /dev/null and b/build/classes/java/main/model/firefighter/behaviors/IndustrialFireFighterBehavior.class differ diff --git a/build/classes/java/main/model/firefighter/behaviors/NormalFireFighterBehavior.class b/build/classes/java/main/model/firefighter/behaviors/NormalFireFighterBehavior.class new file mode 100644 index 0000000000000000000000000000000000000000..6eeae10b7b46428b1d1cde68cbbc7b0478a0f7fc Binary files /dev/null and b/build/classes/java/main/model/firefighter/behaviors/NormalFireFighterBehavior.class differ diff --git a/build/classes/java/main/model/firefighter/elements/FireFighter.class b/build/classes/java/main/model/firefighter/elements/FireFighter.class index 20616250a287bd3a56d845d99422ee50fffdcc37..13b53a559601abd2a73174b2d668479b43e50490 100644 Binary files a/build/classes/java/main/model/firefighter/elements/FireFighter.class and b/build/classes/java/main/model/firefighter/elements/FireFighter.class differ diff --git a/build/classes/java/main/model/firefighter/elements/IndustrialFireFighter.class b/build/classes/java/main/model/firefighter/elements/IndustrialFireFighter.class new file mode 100644 index 0000000000000000000000000000000000000000..2fc058da9594d7f1087e832aecadb3298b24d677 Binary files /dev/null and b/build/classes/java/main/model/firefighter/elements/IndustrialFireFighter.class differ diff --git a/build/classes/java/main/model/firefighter/elements/MotorizedFireFighter.class b/build/classes/java/main/model/firefighter/elements/MotorizedFireFighter.class index c9e3f019f0719a6393176887f88b9b0d261595f6..b315c4637a8ddbc2c41464d24b92ee270febb572 100644 Binary files a/build/classes/java/main/model/firefighter/elements/MotorizedFireFighter.class and b/build/classes/java/main/model/firefighter/elements/MotorizedFireFighter.class differ diff --git a/build/classes/java/main/model/firefighter/elements/NormalFireFighter.class b/build/classes/java/main/model/firefighter/elements/NormalFireFighter.class new file mode 100644 index 0000000000000000000000000000000000000000..6a2c2cc2674cb739bb586efc27517e8dc2dd1800 Binary files /dev/null and b/build/classes/java/main/model/firefighter/elements/NormalFireFighter.class differ diff --git a/build/classes/java/main/model/firefighter/elements/StandardFireFighter.class b/build/classes/java/main/model/firefighter/elements/StandardFireFighter.class index 06dcbc0ddd250c4a23bcc488d0113268548f9620..4ed66cf14e0550524ba71576e0ffbc478f732227 100644 Binary files a/build/classes/java/main/model/firefighter/elements/StandardFireFighter.class and b/build/classes/java/main/model/firefighter/elements/StandardFireFighter.class differ diff --git a/build/classes/java/main/view/ViewElement.class b/build/classes/java/main/view/ViewElement.class index 934b0ab6c6bdd0f5fa313bb7f0f00074b7d7e26d..c41960a5797ec6d8eb18406e6cea6b5471471827 100644 Binary files a/build/classes/java/main/view/ViewElement.class and b/build/classes/java/main/view/ViewElement.class differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FFBoard.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/FFBoard.class.uniqueId2 deleted file mode 100644 index bb69b25a7fc67a5c9e5a369d9400532907aafa1d..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FFBoard.class.uniqueId2 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FFboardFiller.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/FFboardFiller.class.uniqueId0 deleted file mode 100644 index 04c93ff60c8f5e70125ba22c9fb2351d3ccb0a26..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FFboardFiller.class.uniqueId0 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/IndustrialFireFighter.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/IndustrialFireFighter.class.uniqueId2 new file mode 100644 index 0000000000000000000000000000000000000000..2fc058da9594d7f1087e832aecadb3298b24d677 Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/IndustrialFireFighter.class.uniqueId2 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/IndustrialFireFighterBehavior.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/IndustrialFireFighterBehavior.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..ee4ce30e378d984c9fddb1919306770257f4c46d Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/IndustrialFireFighterBehavior.class.uniqueId1 differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId0 similarity index 100% rename from build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId1 rename to build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId0 diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index d636099d99cb14df4b364c87e61a0b95010edce9..a017a299043e246e1724ceb66cd6c0f6a25125b7 100644 Binary files a/build/tmp/compileJava/previous-compilation-data.bin and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/src/main/java/model/elementTokens/Chargable.java b/src/main/java/model/elementTokens/Chargable.java new file mode 100644 index 0000000000000000000000000000000000000000..d22cd72149d311d2090c4cfab4373685ebe98dc1 --- /dev/null +++ b/src/main/java/model/elementTokens/Chargable.java @@ -0,0 +1,8 @@ +package model.elementTokens; + +public interface Chargable { + public int getCounter(); + public void incrementCounter(); + public void resetCounter(); + public boolean isCharged(); +} diff --git a/src/main/java/model/elementTokens/ChargeTarget.java b/src/main/java/model/elementTokens/ChargeTarget.java index e09d0738d55b65da0c2ef88f9de9df09a5de2461..776a10b6b95ef61c3bdb11848d14f762f344b84b 100644 --- a/src/main/java/model/elementTokens/ChargeTarget.java +++ b/src/main/java/model/elementTokens/ChargeTarget.java @@ -1,8 +1,5 @@ package model.elementTokens; -public interface ChargeTarget { - public int getCounter(); - public void incrementCounter(); - public void resetCounter(); - public boolean isCharged(); +public interface ChargeTarget extends Chargable { + } diff --git a/src/main/java/model/firefighter/FFBoard.java b/src/main/java/model/firefighter/FFBoard.java index 06159263a94b0f5fa55925c25556d4f444a6cebb..2677834c3a5026268b819195d87d1660c8801548 100644 --- a/src/main/java/model/firefighter/FFBoard.java +++ b/src/main/java/model/firefighter/FFBoard.java @@ -38,6 +38,7 @@ public class FFBoard implements Board<List<ModelElement>> { 30,//mountains 5,//firefighter 2,//motorized firefighter + 1,//motorized firefighter (AKA superman) 2,//clouds 10,//fires diff --git a/src/main/java/model/firefighter/ModelElement.java b/src/main/java/model/firefighter/ModelElement.java index 228a6865cb8d9ed2d9813dcdbbe0173315ea0788..a9bf9649b3deed8070436444cfbddadbccf6867f 100644 --- a/src/main/java/model/firefighter/ModelElement.java +++ b/src/main/java/model/firefighter/ModelElement.java @@ -12,10 +12,9 @@ import java.util.Arrays; public enum ModelElement { FIRE(StandardFire.class), SLOWFIRE(QuickFire.class), - FIREFIGHTER(StandardFireFighter.class), MOTORIZEDFIREFIGHTER(MotorizedFireFighter.class), - + INDUSTRIALFIREFIGHTER(IndustrialFireFighter.class), CLOUD(Cloud.class), MOUNTAIN(Mountain.class), ROAD(Road.class), diff --git a/src/main/java/model/firefighter/behaviors/FireFighterBehavior.java b/src/main/java/model/firefighter/behaviors/FireFighterBehavior.java index 0ce78e7633baf27ff891bed2fdd22f626f5eb004..93bf9778641a546fcadea82efd8fa4a32cb4e6fd 100644 --- a/src/main/java/model/firefighter/behaviors/FireFighterBehavior.java +++ b/src/main/java/model/firefighter/behaviors/FireFighterBehavior.java @@ -13,9 +13,8 @@ import util.Position; import util.TargetStrategy; import java.util.*; -public class FireFighterBehavior extends FFBehavior implements TangibleBehavior<ModelElement>, RemoverBehavior<ModelElement>, ChargerBehavior<ModelElement> { +public abstract class FireFighterBehavior extends FFBehavior implements TangibleBehavior<ModelElement>, RemoverBehavior<ModelElement>, ChargerBehavior<ModelElement> { private List<ModelElement> obstacles=List.of(ModelElement.MOUNTAIN); - private TargetStrategy ts=new TargetStrategy(); private List chargeTarget=List.of(ModelElement.ROCK); List<Position> initializeTargets(BoardData boardData){ @@ -28,18 +27,7 @@ public class FireFighterBehavior extends FFBehavior implements TangibleBehavior< } return targets; } - @Override - public List<Position> update(BoardData boardData,Element element) { - Position position=element.getPosition(); - List<Position> targets=initializeTargets(boardData); - for (int i = 0; i<((FireFighter)element).speed; i++) { - position=ts.neighborClosestToFire(position,targets,allLegalNeighbors(boardData)); - extinguish(boardData,position); - targets.remove(position); - targets.removeAll(boardData.getNeighbor(position)); - } - return List.of(position); - } + @Override public List<ModelElement> getObstacles() { diff --git a/src/main/java/model/firefighter/behaviors/IndustrialFireFighterBehavior.java b/src/main/java/model/firefighter/behaviors/IndustrialFireFighterBehavior.java new file mode 100644 index 0000000000000000000000000000000000000000..344c5e35b950f917e86bde136bcc48046de63ec0 --- /dev/null +++ b/src/main/java/model/firefighter/behaviors/IndustrialFireFighterBehavior.java @@ -0,0 +1,47 @@ +package model.firefighter.behaviors; + +import model.BoardData; +import model.Element; +import model.elementTokens.Chargable; +import model.elementTokens.ChargeTarget; +import model.firefighter.ModelElement; +import model.firefighter.elements.Fire; +import model.firefighter.elements.FireFighter; +import model.firefighter.elements.IndustrialFireFighter; +import model.genericBehavior.ChargerBehavior; +import model.genericBehavior.RemoverBehavior; +import model.genericBehavior.TangibleBehavior; +import util.Position; +import util.TargetStrategy; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class IndustrialFireFighterBehavior extends FireFighterBehavior implements TangibleBehavior<ModelElement>, RemoverBehavior<ModelElement>, ChargerBehavior<ModelElement> { + private TargetStrategy ts=new TargetStrategy(); + + + @Override + public List<Position> update(BoardData boardData,Element element) { + Position position=element.getPosition(); + List<Position> targets=initializeTargets(boardData); + ((Chargable)element).incrementCounter(); + if (((Chargable)element).isCharged()){ + ((Chargable)element).resetCounter(); + for (int i = 0; i<((FireFighter)element).speed; i++) { + position=ts.neighborClosestToFire(position,targets,allLegalNeighbors(boardData)); + targets.remove(position); + targets.removeAll(boardData.getNeighbor(position)); + } + for(Position p:legalNeighbors(boardData,position)) + { + extinguish(boardData,p); + + } + } + + return List.of(position); + } +} diff --git a/src/main/java/model/firefighter/behaviors/NormalFireFighterBehavior.java b/src/main/java/model/firefighter/behaviors/NormalFireFighterBehavior.java new file mode 100644 index 0000000000000000000000000000000000000000..c7b67502aafe72ea0857c42b49488c5958f3c451 --- /dev/null +++ b/src/main/java/model/firefighter/behaviors/NormalFireFighterBehavior.java @@ -0,0 +1,39 @@ +package model.firefighter.behaviors; + +import model.BoardData; +import model.Element; +import model.elementTokens.ChargeTarget; +import model.firefighter.FFBehavior; +import model.firefighter.ModelElement; +import model.firefighter.elements.Fire; +import model.firefighter.elements.FireFighter; +import model.firefighter.elements.IndustrialFireFighter; +import model.genericBehavior.ChargerBehavior; +import model.genericBehavior.RemoverBehavior; +import model.genericBehavior.TangibleBehavior; +import util.Position; +import util.TargetStrategy; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class NormalFireFighterBehavior extends FireFighterBehavior implements TangibleBehavior<ModelElement>, RemoverBehavior<ModelElement>, ChargerBehavior<ModelElement> { + private TargetStrategy ts=new TargetStrategy(); + + + @Override + public List<Position> update(BoardData boardData,Element element) { + Position position=element.getPosition(); + List<Position> targets=initializeTargets(boardData); + for (int i = 0; i<((FireFighter)element).speed; i++) { + position=ts.neighborClosestToFire(position,targets,allLegalNeighbors(boardData)); + extinguish(boardData,position); + targets.remove(position); + targets.removeAll(boardData.getNeighbor(position)); + } + return List.of(position); + } + +} diff --git a/src/main/java/model/firefighter/elements/FireFighter.java b/src/main/java/model/firefighter/elements/FireFighter.java index 0b14a224298882123a912c4a8da8867167a324f3..d38b39e710cc30413fa6b55b33245822bda6e57e 100644 --- a/src/main/java/model/firefighter/elements/FireFighter.java +++ b/src/main/java/model/firefighter/elements/FireFighter.java @@ -3,7 +3,6 @@ package model.firefighter.elements; import model.*; import model.elementTokens.Printable; import model.elementTokens.Updatable; -import model.firefighter.behaviors.FireFighterBehavior; import model.firefighter.ModelElement; import util.Position; @@ -14,7 +13,6 @@ public abstract class FireFighter implements Element, Updatable, Printable { public int speed; ModelElement type; Position position; -static Behavior behavior=new FireFighterBehavior(); public FireFighter(int speed, ModelElement type, Position position) { this.speed = speed; @@ -32,7 +30,7 @@ public ModelElement getType() { @Override public List<Position> updateSelf(BoardData boardData) { - List<Position> positions=behavior.update(boardData,this); + List<Position> positions=getBehavior().update(boardData,this); List<Position> modifPositions=new ArrayList<>(positions); modifPositions.add(this.getPosition()); for (Position p:positions) { @@ -43,8 +41,4 @@ public List<Position> updateSelf(BoardData boardData) { return modifPositions; } - @Override - public Behavior getBehavior() { - return behavior; - } } diff --git a/src/main/java/model/firefighter/elements/IndustrialFireFighter.java b/src/main/java/model/firefighter/elements/IndustrialFireFighter.java new file mode 100644 index 0000000000000000000000000000000000000000..067a56d82250d7a9a8bc8eaca35e046fe103cc6f --- /dev/null +++ b/src/main/java/model/firefighter/elements/IndustrialFireFighter.java @@ -0,0 +1,43 @@ +package model.firefighter.elements; + +import model.Behavior; +import model.elementTokens.Chargable; +import model.elementTokens.ChargeTarget; +import model.firefighter.ModelElement; +import model.firefighter.behaviors.FireFighterBehavior; +import model.firefighter.behaviors.IndustrialFireFighterBehavior; +import util.Position; + +public class IndustrialFireFighter extends FireFighter implements Chargable { + +static Behavior behavior=new IndustrialFireFighterBehavior(); +int counter,max=4; + + public IndustrialFireFighter(Position position) { + super(5,ModelElement.INDUSTRIALFIREFIGHTER, position); + counter=0; + } + + @Override + public Behavior getBehavior() { + return behavior; + } + + + public int getCounter() { + return counter; + } + + public void incrementCounter() { + counter++; + } + + + public void resetCounter() { + counter=0; + } + + public boolean isCharged() { + return counter==max; + } +} diff --git a/src/main/java/model/firefighter/elements/MotorizedFireFighter.java b/src/main/java/model/firefighter/elements/MotorizedFireFighter.java index d0fc1fa7672ddb3f173c2d37173607aabd4eba87..efc04faef60358a6c20d41ebfc0913236b23a565 100644 --- a/src/main/java/model/firefighter/elements/MotorizedFireFighter.java +++ b/src/main/java/model/firefighter/elements/MotorizedFireFighter.java @@ -4,7 +4,7 @@ import model.elementTokens.Updatable; import model.firefighter.ModelElement; import util.Position; -public class MotorizedFireFighter extends FireFighter implements Updatable { +public class MotorizedFireFighter extends NormalFireFighter { public MotorizedFireFighter(Position position) { super(2, ModelElement.MOTORIZEDFIREFIGHTER, position); } diff --git a/src/main/java/model/firefighter/elements/NormalFireFighter.java b/src/main/java/model/firefighter/elements/NormalFireFighter.java new file mode 100644 index 0000000000000000000000000000000000000000..7e9fd3011f40d3721fbaa14ad32b8c385ca63b45 --- /dev/null +++ b/src/main/java/model/firefighter/elements/NormalFireFighter.java @@ -0,0 +1,20 @@ +package model.firefighter.elements; + +import model.Behavior; +import model.firefighter.ModelElement; +import model.firefighter.behaviors.NormalFireFighterBehavior; +import util.Position; + +public abstract class NormalFireFighter extends FireFighter { + +static Behavior behavior=new NormalFireFighterBehavior(); + + public NormalFireFighter(int speed, ModelElement type, Position position) { + super(speed, type, position); + } + + @Override + public Behavior getBehavior() { + return behavior; + } +} diff --git a/src/main/java/model/firefighter/elements/StandardFireFighter.java b/src/main/java/model/firefighter/elements/StandardFireFighter.java index 37be06d76aa50800af40f3305d417a31c365e59b..a7e4d64591656628605354e4a80520a68a14451f 100644 --- a/src/main/java/model/firefighter/elements/StandardFireFighter.java +++ b/src/main/java/model/firefighter/elements/StandardFireFighter.java @@ -3,7 +3,7 @@ package model.firefighter.elements; import model.firefighter.ModelElement; import util.Position; -public class StandardFireFighter extends FireFighter{ +public class StandardFireFighter extends NormalFireFighter{ public StandardFireFighter(Position position) { super(1, ModelElement.FIREFIGHTER, position); } diff --git a/src/main/java/view/ViewElement.java b/src/main/java/view/ViewElement.java index 56c6c1659a6c225bf9f3e5cb0dd069964f4e32cb..dbd8012655868944a58498f4c415be68886bcc06 100644 --- a/src/main/java/view/ViewElement.java +++ b/src/main/java/view/ViewElement.java @@ -13,7 +13,8 @@ public enum ViewElement { ROCK(Color.GREEN, Rock.class), MOUNTAIN(Color.gray(0.2), Mountain.class), FIREFIGHTER(Color.LIGHTBLUE, StandardFireFighter.class), - MOTORIZEDFIREFIGHTER(Color.DARKBLUE, MotorizedFireFighter.class), + MOTORIZEDFIREFIGHTER(Color.BLUE, MotorizedFireFighter.class), + INDUSTRIALFIREFIGHTER(Color.DARKBLUE, IndustrialFireFighter.class), CLOUD(Color.gray(0.8), Cloud.class), FIRE(Color.RED, Fire.class,Fire.factory),