aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--autoload/space_vlaze/enemy.vim12
-rw-r--r--autoload/space_vlaze/game.vim3
-rw-r--r--autoload/space_vlaze/score.vim16
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