From fbba5cdbf0637845b8d96ec16f166968334d6442 Mon Sep 17 00:00:00 2001 From: PeaAshMeter Date: Sun, 12 Apr 2026 22:34:50 +0300 Subject: [PATCH] add better spell target visuals --- assets/overlay_icons/atlas.png | Bin 0 -> 317 bytes assets/overlay_icons/manifest.lua | 5 +++++ lib/spell/spell.lua | 15 +++++++++++---- 3 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 assets/overlay_icons/atlas.png create mode 100644 assets/overlay_icons/manifest.lua diff --git a/assets/overlay_icons/atlas.png b/assets/overlay_icons/atlas.png new file mode 100644 index 0000000000000000000000000000000000000000..8f186a624cc4d704aeb10108cee11a7c9f874800 GIT binary patch literal 317 zcmV-D0mA-?P)Px#_en%SRA_VgJbDAfo}-!~D`y!8EPUjQJ45JHHlESW_P_k>FETXm7DKc&Uc0*8Czcs<-} zyROC*W)0)J^X_6q!p@c~F(0oE|ye%ni94dcqY`Xl3ihY2Bs5Mr(;0;WNh>JOXz P00000NkvXXu0mjfiE4qN literal 0 HcmV?d00001 diff --git a/assets/overlay_icons/manifest.lua b/assets/overlay_icons/manifest.lua new file mode 100644 index 0000000..498b26d --- /dev/null +++ b/assets/overlay_icons/manifest.lua @@ -0,0 +1,5 @@ +return { + tileSize = 32, + ["dev_target"] = { 0 }, + ["dev_path"] = { 1 }, +} diff --git a/lib/spell/spell.lua b/lib/spell/spell.lua index 00159cd..b9517b8 100644 --- a/lib/spell/spell.lua +++ b/lib/spell/spell.lua @@ -1,6 +1,7 @@ local Query = require "lib.spell.target_query" local targetTest = require "lib.spell.target_test" local task = require "lib.utils.task" +local easing = require "lib.utils.easing" --- @alias SpellPreview "default" Подсветка возможных целей --- | "path" Подсветка пути до цели @@ -38,13 +39,18 @@ function spell:update(caster, dt) end end +local icons = require("lib.utils.sprite_atlas").load(Tree.assets.files.overlay_icons) + function spell:draw() Tree.level.camera:attach() love.graphics.setCanvas(Tree.level.render.textures.overlayLayer) - love.graphics.setColor(0.3, 1, 0.3, 0.5) + love.graphics.setColor(1, 1, 1, 0.5) for _, p in pairs(self.targets) do - love.graphics.rectangle("fill", p.x, p.y, 1, 1) + local s = 1 / Tree.level.camera.pixelsPerMeter + local quad = icons:pickQuad('dev_target') + love.graphics.draw(icons.atlas, quad, p.x, p.y, 0, s, s) end + love.graphics.setShader() love.graphics.setCanvas() Tree.level.camera:detach() @@ -56,9 +62,10 @@ function spell:draw() --- Это отрисовка пути персонажа к мышке Tree.level.camera:attach() love.graphics.setCanvas(Tree.level.render.textures.overlayLayer) - love.graphics.setColor(0.6, 0.75, 0.5) for p in path:values() do - love.graphics.circle("fill", p.x + 0.45, p.y + 0.45, 0.1) + local s = 1 / Tree.level.camera.pixelsPerMeter + local quad = icons:pickQuad('dev_path') + love.graphics.draw(icons.atlas, quad, p.x, p.y, 0, s, s) end love.graphics.setCanvas() Tree.level.camera:detach()