summaryrefslogtreecommitdiff
path: root/Penguloon/Enemies
diff options
context:
space:
mode:
authoraldrikboy <aldrikboy@gmail.com>2017-12-14 23:35:47 +0100
committeraldrikboy <aldrikboy@gmail.com>2017-12-14 23:35:47 +0100
commita42938d1553565e3d864fa46c04401bbb6f8d13f (patch)
tree24a24a3bd7eb01607c30e176ee0fcaf4e912a277 /Penguloon/Enemies
parent98fb0bdcf3fb02f68f07a72cab211debb827e978 (diff)
New balloons & sounds. Objects can now shoot projectiles.
Diffstat (limited to 'Penguloon/Enemies')
-rw-r--r--Penguloon/Enemies/BlueBalloon.cs16
-rw-r--r--Penguloon/Enemies/EnemyBase.cs23
-rw-r--r--Penguloon/Enemies/RedBalloon.cs1
3 files changed, 34 insertions, 6 deletions
diff --git a/Penguloon/Enemies/BlueBalloon.cs b/Penguloon/Enemies/BlueBalloon.cs
new file mode 100644
index 0000000..2490a09
--- /dev/null
+++ b/Penguloon/Enemies/BlueBalloon.cs
@@ -0,0 +1,16 @@
+using Penguloon.Levels;
+
+namespace Penguloon.Enemies
+{
+ class BlueBalloon : EnemyBase
+ {
+ public BlueBalloon(Map map) : base(map)
+ {
+ this.Texture = ContentManager.GetTexture("Enemies/blue");
+ this.Speed = 45f;
+ this.Health = 1;
+ this.ChildObject = typeof(RedBalloon);
+ this.HealthToTake = 2;
+ }
+ }
+} \ No newline at end of file
diff --git a/Penguloon/Enemies/EnemyBase.cs b/Penguloon/Enemies/EnemyBase.cs
index d9413b4..c67e3bc 100644
--- a/Penguloon/Enemies/EnemyBase.cs
+++ b/Penguloon/Enemies/EnemyBase.cs
@@ -24,6 +24,8 @@ namespace Penguloon.Enemies
public Rectangle Box { get; set; }
+ public int HealthToTake { get; set; }
+
public EnemyBase(Map map)
{
this.Map = map;
@@ -34,7 +36,8 @@ namespace Penguloon.Enemies
public void Update(float deltaTime)
{
- Box = new Rectangle(Position.ToPoint(), new Point(Map.TileWidth, Map.TileHeight));
+ int margin = 5;
+ Box = new Rectangle(new Point((int)Position.X + margin, (int)Position.Y + margin), new Point(Map.TileWidth - (margin * 2), Map.TileHeight - (margin * 2)));
int tileX = (int)(TargetPosition.X + 2) / Map.TileWidth;
int tileY = (int)(TargetPosition.Y + 2) / Map.TileHeight;
@@ -67,7 +70,12 @@ namespace Penguloon.Enemies
private void ReachEnd()
{
- Map.Level.Health--;
+ if (!Map.Level.Finished)
+ {
+ Map.Level.Health -= HealthToTake;
+ if (Map.Level.Health < 0)
+ Map.Level.Health = 0;
+ }
Map.Enemies.Remove(this);
}
@@ -76,19 +84,22 @@ namespace Penguloon.Enemies
{
Health--;
- if (Health <= 0)
- Map.Enemies.Remove(this);
+ Map.Level.Money++;
+ Map.Level.Kills++;
SpawnChild();
- // play pop sound
+ if (Health <= 0)
+ Map.Enemies.Remove(this);
+
+ SoundManager.PlayBalloonPopSound();
}
private void SpawnChild()
{
if (this.ChildObject == null) return;
- Map.SpawnEnemy(ChildObject, Position, TargetPosition);
+ Map.SpawnEnemy(ChildObject, Position, TargetPosition, Map.Enemies.IndexOf(this));
}
}
} \ No newline at end of file
diff --git a/Penguloon/Enemies/RedBalloon.cs b/Penguloon/Enemies/RedBalloon.cs
index b0f86f6..5f0c36b 100644
--- a/Penguloon/Enemies/RedBalloon.cs
+++ b/Penguloon/Enemies/RedBalloon.cs
@@ -10,6 +10,7 @@ namespace Penguloon.Enemies
this.Speed = 45f;
this.Health = 1;
this.ChildObject = null;
+ this.HealthToTake = 1;
}
}
} \ No newline at end of file