Sfoglia il codice sorgente

character abilities

Hudriwudri 5 anni fa
parent
commit
a6aeb14151

+ 42 - 1
src/pathgame/gameplay/Player.java

@@ -1,12 +1,16 @@
 package pathgame.gameplay;
 
 import pathgame.tilemap.TileMap;
+import pathgame.tilemap.Tiles;
 
 public class Player
 {
 
     private static final float SPEED = 0.125f;
 
+    private PlayerAbilities abilities = new PlayerAbilities();
+    private int currAbilityBoost = 0;
+
     private float lastX = 0;
     private float lastY = 0;
     private float x = 0;
@@ -28,6 +32,7 @@ public class Player
     {
         this.energySupply = energySupply;
         this.objectivesAmount = objectivesAmount;
+        abilities.setClimberValues();
     }
 
     public float getLastX()
@@ -52,7 +57,38 @@ public class Player
 
     public void tick(TileMap map)
     {
-        currSpeedSlowdown = map.getTile(Math.round(x), Math.round(y)).getEnergyCost();
+        if((map.getTile(Math.round(x), Math.round(y)) == Tiles.GRASS)
+                || (map.getTile(Math.round(x), Math.round(y)) == Tiles.GRASS_WITH_3_BUSHES)
+                || (map.getTile(Math.round(x), Math.round(y)) == Tiles.GRASS_WITH_6_BUSHES)
+                || (map.getTile(Math.round(x), Math.round(y)) == Tiles.GRASS_WITH_EARTH)
+                || (map.getTile(Math.round(x), Math.round(y)) == Tiles.GRASS_WITH_FLOWERS)
+                || (map.getTile(Math.round(x), Math.round(y)) == Tiles.GRASS_WITH_HILL)
+                || (map.getTile(Math.round(x), Math.round(y)) == Tiles.GRASS_WITH_STONE))
+        {
+            currAbilityBoost = abilities.getFasterGrass();
+        }
+        else if((map.getTile(Math.round(x), Math.round(y)) == Tiles.FOREST))
+        {
+            currAbilityBoost = abilities.getFasterForest();
+        }
+        else if((map.getTile(Math.round(x), Math.round(y)) == Tiles.HILL))
+        {
+            currAbilityBoost = abilities.getFasterHill();
+        }
+        else if((map.getTile(Math.round(x), Math.round(y)) == Tiles.MOUNTAIN))
+        {
+            currAbilityBoost = abilities.getFasterMountain();
+        }
+        else if((map.getTile(Math.round(x), Math.round(y)) == Tiles.SHALLOW_WATER))
+        {
+            currAbilityBoost = abilities.getFasterShallowWater();
+        }
+        else if((map.getTile(Math.round(x), Math.round(y)) == Tiles.DEEP_WATER))
+        {
+            currAbilityBoost = abilities.getFasterDeepWater();
+        }
+
+        currSpeedSlowdown = map.getTile(Math.round(x), Math.round(y)).getEnergyCost() - currAbilityBoost;
         lastX = x;
         lastY = y;
 
@@ -180,4 +216,9 @@ public class Player
     {
         return lastSteps;
     }
+    
+    public PlayerAbilities getAbilities()
+    {
+        return abilities;
+    }
 }

+ 109 - 0
src/pathgame/gameplay/PlayerAbilities.java

@@ -0,0 +1,109 @@
+package pathgame.gameplay;
+
+public class PlayerAbilities
+{
+
+    private int fasterGrass = 0;
+    private int fasterForest = 0;
+    private int fasterShallowWater = 0;
+    private int fasterDeepWater = 0;
+    private int fasterHill = 0;
+    private int fasterMountain = 0;
+    private int fasterSwamp = 0;
+
+    public void setHikerValues()
+    {
+        fasterHill = 1;
+
+        fasterGrass = 0;
+        fasterForest = 0;
+        fasterShallowWater = 0;
+        fasterDeepWater = 0;
+        fasterMountain = 0;
+        fasterSwamp = 0;
+    }
+
+    public void setClimberValues()
+    {
+        fasterMountain = 1;
+        
+        fasterGrass = 0;
+        fasterForest = 0;
+        fasterShallowWater = 0;
+        fasterDeepWater = 0;
+        fasterHill = 0;
+        fasterSwamp = 0;
+    }
+
+    public void setForesterValues()
+    {
+        fasterForest = 1;
+        
+        fasterGrass = 0;
+        fasterShallowWater = 0;
+        fasterDeepWater = 0;
+        fasterHill = 0;
+        fasterMountain = 0;
+        fasterSwamp = 0;
+    }
+
+    public void setSwimmerValues()
+    {
+        fasterShallowWater = 2;
+        
+        fasterGrass = 0;
+        fasterForest = 0;
+        fasterDeepWater = 0;
+        fasterHill = 0;
+        fasterMountain = 0;
+        fasterSwamp = 0;
+    }
+
+    public void setSailorValues()
+    {
+        fasterDeepWater = 1;
+        
+        fasterGrass = 0;
+        fasterForest = 0;
+        fasterShallowWater = 0;
+        fasterHill = 0;
+        fasterMountain = 0;
+        fasterSwamp = 0;
+    }
+
+    public int getFasterGrass()
+    {
+        return fasterGrass;
+    }
+
+    public int getFasterForest()
+    {
+        return fasterForest;
+    }
+
+    public int getFasterShallowWater()
+    {
+        return fasterShallowWater;
+    }
+
+    public int getFasterDeepWater()
+    {
+        return fasterDeepWater;
+    }
+
+    public int getFasterHill()
+    {
+        return fasterHill;
+    }
+
+    public int getFasterMountain()
+    {
+        return fasterMountain;
+    }
+
+    public int getFasterSwamp()
+    {
+        return fasterSwamp;
+    }
+
+}