diff options
Diffstat (limited to 'Penguloon/Enemies/EnemyBase.cs')
| -rw-r--r-- | Penguloon/Enemies/EnemyBase.cs | 23 |
1 files changed, 17 insertions, 6 deletions
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 |
