feat(game): initial "battle completed screen

This commit is contained in:
Kazhnuz 2019-08-16 22:37:43 +02:00
parent 7ded36c277
commit 8048210bac
3 changed files with 55 additions and 1 deletions

View file

@ -24,6 +24,7 @@ return {
{"m_power", "assets/gui/emblem_power_mask.png"},
{"hudturn", "assets/gui/strings/hudturn.png"},
{"battlecompleted", "assets/gui/strings/battle_completed.png" }
},
["fonts"] = {
{"small", "assets/gui/fonts/PixelOperator.ttf", 16},

View file

@ -5,6 +5,8 @@ local BattleSystem = Scene:extend()
local World = require "scenes.battlesystem.world"
local MenuSystem = require "scenes.battlesystem.menu"
local VictoryScreen = require "scenes.battlesystem.screens.victory"
function BattleSystem:new()
BattleSystem.super.new(self)
@ -15,6 +17,8 @@ function BattleSystem:new()
self:register()
self:startBattle()
self.screen = nil
end
function BattleSystem:initManagers()
@ -28,15 +32,21 @@ function BattleSystem:startBattle()
end
function BattleSystem:finishBattle()
self.screen = VictoryScreen(self)
end
function BattleSystem:update(dt)
self.world:update(dt)
if (self.screen ~= nil) then
self.screen:update(dt)
end
end
function BattleSystem:draw()
self.world:draw()
if (self.screen ~= nil) then
self.screen:draw()
end
end
function BattleSystem:exit()

View file

@ -0,0 +1,43 @@
local VictoryScreen = Object:extend()
local TweenManager = require "game.modules.tweenmanager"
local BATTLECOMPLETE_START = 2
local BATTLECOMPLETE_STOP = 4
function VictoryScreen:new(scene)
self.scene = scene
self.assets = scene.assets
self.tweens = TweenManager(self)
self.vignetteOpacity = 0
self.labelOpacity = 0
local _, height = core.screen:getDimensions()
self.labelY = height/2
self.tweens:newTween(0, 0.6, {vignetteOpacity=0.75}, 'inExpo')
self.tweens:newTween(0, 0.6, {labelOpacity=1}, 'inExpo')
self.tweens:newTween(0.9, 0.4, {labelY=32}, 'inExpo')
end
function VictoryScreen:update(dt)
self.tweens:update(dt)
end
function VictoryScreen:draw()
love.graphics.setColor(0, 0, 0, self.vignetteOpacity)
local width, height = core.screen:getDimensions()
love.graphics.rectangle("fill", 0, 0, width, height)
love.graphics.setColor(1, 1, 1, self.labelOpacity)
local w, h = self.assets.images["battlecompleted"]:getDimensions()
self.assets.images["battlecompleted"]:draw(width/2, self.labelY, 0, 1, 1, w/2, h/2)
utils.graphics.resetColor()
end
return VictoryScreen