diff options
| author | Teddy Wing | 2015-10-07 03:55:22 -0400 |
|---|---|---|
| committer | Teddy Wing | 2015-10-07 03:55:22 -0400 |
| commit | 1a2cdf4bb9b233323d8d7ada63eeffffce6ebd1a (patch) | |
| tree | 47aa7c1ac394f72d34010f68bda46ccb7882dccf | |
| parent | 2223ed7b3a6f347457ba63eef378d071eb9e57e6 (diff) | |
| download | vim-space-vlaze-1a2cdf4bb9b233323d8d7ada63eeffffce6ebd1a.tar.bz2 | |
Increment score when enemies are destroyed
* Create score.vim to keep track of score and group scoring-related
functions
* Increment player score when an enemy is defeated. The point count is
based on a base value and a multiplier. Currently set to 1 for each
such that each enemy is always worth 1 point. The multiplier is there
so that as time increases we can increase the multiplier and increase
the value of an enemy the longer the player plays.
* Render score to the screen so that it's visible to players.
| -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 |
