diff --git a/core/src/de/samdev/cannonshooter/entities/Cannon.java b/core/src/de/samdev/cannonshooter/entities/Cannon.java index 568b0fc..ff2866a 100644 --- a/core/src/de/samdev/cannonshooter/entities/Cannon.java +++ b/core/src/de/samdev/cannonshooter/entities/Cannon.java @@ -5,7 +5,6 @@ import com.badlogic.gdx.Input.Keys; import de.samdev.absgdx.framework.entities.Entity; import de.samdev.absgdx.framework.entities.colliosiondetection.CollisionGeometryOwner; -import de.samdev.absgdx.framework.entities.colliosiondetection.geometries.CollisionCircle; import de.samdev.absgdx.framework.entities.colliosiondetection.geometries.CollisionGeometry; import de.samdev.absgdx.framework.layer.GameLayer; import de.samdev.cannonshooter.Textures; @@ -13,6 +12,8 @@ import de.samdev.cannonshooter.ZLayers; import de.samdev.cannonshooter.teams.Team; public class Cannon extends Entity { + private static final float HEALTH_REGEN_PER_HIT = 0.2f; + public Team team; private CannonBarrel barrel; @@ -98,11 +99,13 @@ public class Cannon extends Entity { return false; } - public void onBulletHit(CannonBullet bullet, Team hit_team) { + public void onBulletHit(Team hit_team) { + if (hit_team.isNeutral) return; + if (hit_team == team) { - health = Math.min(1, health + 0.01f); + health = Math.min(1, health + HEALTH_REGEN_PER_HIT); } else { - health = Math.max(0, health - 0.01f); + health = Math.max(0, health - HEALTH_REGEN_PER_HIT); } } } diff --git a/core/src/de/samdev/cannonshooter/entities/CannonBarrel.java b/core/src/de/samdev/cannonshooter/entities/CannonBarrel.java index 0a24053..0c46bc6 100644 --- a/core/src/de/samdev/cannonshooter/entities/CannonBarrel.java +++ b/core/src/de/samdev/cannonshooter/entities/CannonBarrel.java @@ -7,7 +7,6 @@ import com.badlogic.gdx.math.Vector2; import de.samdev.absgdx.framework.entities.Entity; import de.samdev.absgdx.framework.entities.colliosiondetection.CollisionGeometryOwner; -import de.samdev.absgdx.framework.entities.colliosiondetection.geometries.CollisionBox; import de.samdev.absgdx.framework.entities.colliosiondetection.geometries.CollisionGeometry; import de.samdev.absgdx.framework.layer.GameLayer; import de.samdev.cannonshooter.Textures; @@ -89,7 +88,7 @@ public class CannonBarrel extends Entity { owner.addEntity(bullet); loaded = true; } - } else { + } else if (cannon.health <= 0.5) { charge -= UNCHARGE_SPEED * delta; if (charge < 0) diff --git a/core/src/de/samdev/cannonshooter/entities/CannonBullet.java b/core/src/de/samdev/cannonshooter/entities/CannonBullet.java index b48c71a..e1c795f 100644 --- a/core/src/de/samdev/cannonshooter/entities/CannonBullet.java +++ b/core/src/de/samdev/cannonshooter/entities/CannonBullet.java @@ -96,7 +96,7 @@ public class CannonBullet extends Entity { CannonBullet colliderBullet = (CannonBullet)passiveCollider; if (colliderBullet.inBarrel) { - colliderBullet.cannon.onBulletHit(this, this.team); + colliderBullet.cannon.onBulletHit(this.team); alive = false; } else { @@ -113,7 +113,7 @@ public class CannonBullet extends Entity { if (passiveCollider instanceof Cannon) { Cannon cannon = (Cannon)passiveCollider; - cannon.onBulletHit(this, this.team); + cannon.onBulletHit(this.team); alive = false; } diff --git a/core/src/de/samdev/cannonshooter/tiles/StandardTile.java b/core/src/de/samdev/cannonshooter/tiles/StandardTile.java index 6a15e6e..6aad313 100644 --- a/core/src/de/samdev/cannonshooter/tiles/StandardTile.java +++ b/core/src/de/samdev/cannonshooter/tiles/StandardTile.java @@ -1,6 +1,5 @@ package de.samdev.cannonshooter.tiles; -import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureRegion; import de.samdev.absgdx.framework.entities.colliosiondetection.CollisionGeometryOwner;