diff options
| -rw-r--r-- | autoload/space_vlaze/enemy.vim | 12 | ||||
| -rw-r--r-- | autoload/space_vlaze/game.vim | 3 | ||||
| -rw-r--r-- | autoload/space_vlaze/score.vim | 16 |
3 files changed, 30 insertions, 1 deletions
diff --git a/autoload/space_vlaze/enemy.vim b/autoload/space_vlaze/enemy.vim index 1fefbf5..9b49231 100644 --- a/autoload/space_vlaze/enemy.vim +++ b/autoload/space_vlaze/enemy.vim @@ -12,6 +12,11 @@ if !exists('s:MIN_ENEMIES_ON_BOARD') endif +if !exists('s:ENEMY_POINT_BASE') + let s:ENEMY_POINT_BASE = 1 +endif + + function! space_vlaze#enemy#AddEnemiesToBoard() let ticks = space_vlaze#game#Ticks() @@ -59,8 +64,15 @@ 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) + call space_vlaze#score#IncrementScore( + \ s:ENEMY_POINT_BASE * space_vlaze#enemy#PointMultiplier()) return 1 endif endif endfunction + + +function! space_vlaze#enemy#PointMultiplier() + return 1 +endfunction diff --git a/autoload/space_vlaze/game.vim b/autoload/space_vlaze/game.vim index f712478..72594b7 100644 --- a/autoload/space_vlaze/game.vim +++ b/autoload/space_vlaze/game.vim @@ -1,18 +1,19 @@ function! space_vlaze#game#Init() let s:loop = 1 - let s:score = 0 let s:start_time = localtime() let s:ticks = 1 call space_vlaze#game#SetupWindow() call space_vlaze#colors#Initialize() call space_vlaze#game#InitializeBoard() call space_vlaze#mappings#Initialize() + call space_vlaze#score#Initialize() while s:loop ==# 1 sleep 50ms call space_vlaze#mappings#Listen() call space_vlaze#enemy#AddEnemiesToBoard() call space_vlaze#game#RenderBoard() + call space_vlaze#score#RenderScore() let s:ticks += 1 endwhile endfunction diff --git a/autoload/space_vlaze/score.vim b/autoload/space_vlaze/score.vim new file mode 100644 index 0000000..a6d1684 --- /dev/null +++ b/autoload/space_vlaze/score.vim @@ -0,0 +1,16 @@ +function! space_vlaze#score#Initialize() + let s:score = 0 +endfunction + + +" Increment score by `num` +function! space_vlaze#score#IncrementScore(num) + let s:score += a:num +endfunction + + +function! space_vlaze#score#RenderScore() + let score_line = space_vlaze#game#BoardHeight() + 1 + + call setline(score_line, 'Score: ' . s:score) +endfunction |
