aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--autoload/space_vlaze/enemy.vim13
-rw-r--r--autoload/space_vlaze/missile.vim2
2 files changed, 15 insertions, 0 deletions
diff --git a/autoload/space_vlaze/enemy.vim b/autoload/space_vlaze/enemy.vim
index 51bf14d..1fefbf5 100644
--- a/autoload/space_vlaze/enemy.vim
+++ b/autoload/space_vlaze/enemy.vim
@@ -51,3 +51,16 @@ function! space_vlaze#enemy#DropEnemyAtRandomCoordinates()
call space_vlaze#game#SetBoardCell(y, x, space_vlaze#enemy#EnemyCharacter())
endfunction
+
+
+" Calling this function tells us that coordinates y, x were hit by a missile.
+" If an enemy lives at y, x, it needs to disappear and update the score.
+function! space_vlaze#enemy#HandleEnemyHitAt(y, x)
+ if space_vlaze#game#IsWithinBoard(a:y, a:x)
+ if space_vlaze#game#BoardCell(a:y, a:x) ==# space_vlaze#enemy#EnemyCharacter()
+ call space_vlaze#game#ClearBoardCell(a:y, a:x)
+
+ return 1
+ endif
+ endif
+endfunction
diff --git a/autoload/space_vlaze/missile.vim b/autoload/space_vlaze/missile.vim
index aa9da39..95f4e94 100644
--- a/autoload/space_vlaze/missile.vim
+++ b/autoload/space_vlaze/missile.vim
@@ -51,6 +51,8 @@ function! space_vlaze#missile#Move(y, x, direction)
call space_vlaze#game#RenderBoard()
return 1
+ else
+ call space_vlaze#enemy#HandleEnemyHitAt(y, x)
endif
return 0