From cd174e315317cc95068f5c1f47845f537ea6fd54 Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Sun, 18 Apr 2021 19:30:57 +0200 Subject: [PATCH] feat: greyscale emblem for ko characters --- .../game/modules/drawing/greyscale.lua | 23 +++++++++++++++++++ .../game/modules/gui/emblem.lua | 17 ++++++++++++-- .../controllers/fighters/character.lua | 3 --- 3 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 sonic-radiance.love/game/modules/drawing/greyscale.lua diff --git a/sonic-radiance.love/game/modules/drawing/greyscale.lua b/sonic-radiance.love/game/modules/drawing/greyscale.lua new file mode 100644 index 0000000..004af6a --- /dev/null +++ b/sonic-radiance.love/game/modules/drawing/greyscale.lua @@ -0,0 +1,23 @@ +local GrayScale = {} + +local greyscaleShader = love.graphics.newShader[[ + vec4 effect( vec4 color, Image texture, vec2 texture_coords, vec2 screen_coords ){ + vec4 pixel = Texel(texture, texture_coords );//This is the current pixel color + number average = (pixel.r+pixel.b+pixel.g)/3.0; + pixel.r = average; + pixel.g = average; + pixel.b = average; + return pixel; + } + ]] + + +function GrayScale.startShader() + love.graphics.setShader(greyscaleShader) +end + +function GrayScale.endShader() + love.graphics.setShader() +end + +return GrayScale \ No newline at end of file diff --git a/sonic-radiance.love/game/modules/gui/emblem.lua b/sonic-radiance.love/game/modules/gui/emblem.lua index b5d2e33..6d15a80 100644 --- a/sonic-radiance.love/game/modules/gui/emblem.lua +++ b/sonic-radiance.love/game/modules/gui/emblem.lua @@ -1,4 +1,5 @@ local Emblem = Object:extend() +local greyscale = require "game.modules.drawing.greyscale" function Emblem:new(abstract, scene) self.assets = scene.assets @@ -16,15 +17,27 @@ end function Emblem:drawForeground(x, y) local emblem2 = "m_" .. self.abstract.data.class core.screen:setScissor(x, y-16, 32, 40) - self.assets.sprites[self.charid]:drawAnimation(x+14, y+14) + if (self.abstract.hp > 0) then + self.assets.sprites[self.charid]:drawAnimation(x+14, y+14) + else + greyscale.startShader() + self.assets.sprites[self.charid]:drawFrame(1, x+14, y+14) + end core.screen:resetScissor( ) self.assets.images[emblem2]:draw(x, y) + greyscale.endShader() end function Emblem:drawBackground(x, y) local emblem1 = "e_" .. self.abstract.data.class - self.assets.images[emblem1]:draw(x, y) + if (self.abstract.hp > 0) then + self.assets.images[emblem1]:draw(x, y) + else + greyscale.startShader() + self.assets.images[emblem1]:draw(x, y) + greyscale.endShader() + end end diff --git a/sonic-radiance.love/scenes/battlesystem/controllers/fighters/character.lua b/sonic-radiance.love/scenes/battlesystem/controllers/fighters/character.lua index 11b33b2..7d4be37 100644 --- a/sonic-radiance.love/scenes/battlesystem/controllers/fighters/character.lua +++ b/sonic-radiance.love/scenes/battlesystem/controllers/fighters/character.lua @@ -5,10 +5,7 @@ local StatusBar = require "game.modules.gui.statusbar" local SelectionSystem = require "scenes.battlesystem.controllers.fighters.systems.selection" local actionList = require "scenes.battlesystem.controllers.fighters.systems.actions" -local POSITIONS = {3, 1, 5} local HEROES_LINE = 2; - -local HUDBASE = 8 local HUDSIZE = 91 function HeroFighter:new(owner, character, id)