From bfff1135e20112860a23deca80fe5a5c6a7c5b19 Mon Sep 17 00:00:00 2001 From: Chen Asraf Date: Tue, 29 Oct 2024 02:03:02 +0200 Subject: [PATCH] feat: spell practice --- Makefile | 5 + Spellbook/README.md | 18 ++- Spellbook/Spellbook.png | Bin 26751 -> 33896 bytes Spellbook/Spellbook.xml | 295 ++++++++++++++++++++++------------------ 4 files changed, 183 insertions(+), 135 deletions(-) diff --git a/Makefile b/Makefile index 43fcfcf..06e6490 100644 --- a/Makefile +++ b/Makefile @@ -5,3 +5,8 @@ PLUGDIR=$(MUSHDIR)/worlds/plugins install/spellbook: cp "./Spellbook/Spellbook.xml" "$(PLUGDIR)" @echo "Spellbook installed." + +.PHONY: watch/spellbook +watch/spellbook: + @echo "Watching for changes in Spellbook..." + @fswatch -o "./Spellbook/Spellbook.xml" | xargs -n1 -I{} make install/spellbook diff --git a/Spellbook/README.md b/Spellbook/README.md index f6eec59..0741812 100644 --- a/Spellbook/README.md +++ b/Spellbook/README.md @@ -19,6 +19,9 @@ Example: load the spell list into a floating window. 1. Click a spell to cast it. You must have an active target as the cast command will be immediately sent to the world. +1. Click a spell's learned % to practice it (you must be at a trainer npc to do so). Use + `spw prac ` to switch between practicing each spell to its max %, or one practice + session at a time. 1. You can move & resize the window as you wish 1. Adding any modifier to the spells command will use the regular spell output. This is useful for one-time lookups of the next spells, or spells in a certain level range. @@ -29,10 +32,13 @@ Use `spw help` to see this list at any time in the game. ``` Spellbook window commands ------- -spw enable - Enable spellbook -spw disable - Disable spellbook -spw hide - Hide spell from spellbook -spw unhide - Unhide spell from spellbook -spw hidden - List hidden spells +---------------------------------------------------------------- +spw enable - Enable spellbook +spw disable - Disable spellbook +spw hide - Hide spell from spellbook +spw unhide - Unhide spell from spellbook +spw hidden - List hidden spells +spw prac - Display practice % mode +spw prac one - Practice spell % once per click +spw prac full - Practice spell % to full on click ``` diff --git a/Spellbook/Spellbook.png b/Spellbook/Spellbook.png index f63d390b79ea6292c8981fbd2b8da42c4729dca1..2724569c9c4eda0726e7295090a6799779461d00 100644 GIT binary patch literal 33896 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 DSk8*n literal 26751 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 EUrt}*J^%m! diff --git a/Spellbook/Spellbook.xml b/Spellbook/Spellbook.xml index eda4313..1f70720 100644 --- a/Spellbook/Spellbook.xml +++ b/Spellbook/Spellbook.xml @@ -16,14 +16,15 @@ save_state="y" date_written="2024-10-08 00:56:30" requires="5.07" - version="1.2" + version="1.30" > - +]]> - - local name = "%1" - local mana = "%2" - local learned = "%3" - local spn = "%4" + +table.insert(SpWinData, { + level = spWinLv, + name = name, + mana = mana, + learned = learned, + id = spn +}) +]]> - - spWinLv = %1 - local name = "%2" - local mana = "%3" - local learned = "%4" - local spn = "%5" + +table.insert(SpWinData, { + level = spWinLv, + name = name, + mana = mana, + learned = learned, + id = spn +}) +]]> - - require "themed_miniwindows" + +local lv = 0 +for i, sp in ipairs(SpWinData) do + local line = "" + if not SpWinIgnore[sp.id] then + local hLen = 9 + local lvlLen = 3 + local nameLen = 30 + local learnedLen = 4 + + if sp.level > lv then + line = line .. "@W" .. string.rpad("lv " .. sp.level, 7) + lv = sp.level + hLen = 8 + else + line = line .. string.rpad("", 8) + end + + line = line .. "@M[@G" .. string.lpad(sp.id, lvlLen) .. "@M] " + line = line .. "@C" .. string.rpad(sp.name, nameLen) + line = line .. "@Y" .. string.lpad(sp.learned .. "%", learnedLen) + + local tooltip = "Cast spell: " .. sp.name + local spNameStart = hLen + 1 + lvlLen + 1 + local spNameEnd = spNameStart + #sp.name + spWin:add_text( + line, + true, + { + { label = tooltip, start = 1, stop = spNameEnd, text = "Send('cast " .. sp.id .. "')" }, + { label = "Practice spell: " .. sp.name, start = spNameStart + nameLen, stop = #line, text = practice(sp) }, + } + ) + end +end + +ColourNote("yellow", "", "Output captured to window.") +EnableTriggerGroup("spellbook", false) +]]> - - require "themed_miniwindows" + +EnableTriggerGroup("spellbook") +SpWinData = {} +Send("spells%2") +]]> - - local args = utils.split("%1", " ") - local main = args[1] + +local function showHelp() + ColourNote("cyan", "", "Spellbook window commands") + ColourNote("cyan", "", "----------------------------------------------------------------") + ColourNote("cyan", "", "spw enable - Enable spellbook") + ColourNote("cyan", "", "spw disable - Disable spellbook") + ColourNote("cyan", "", "spw hide - Hide spell from spellbook") + ColourNote("cyan", "", "spw unhide - Unhide spell from spellbook") + ColourNote("cyan", "", "spw hidden - List hidden spells") + ColourNote("cyan", "", "spw prac - Display practice % mode") + ColourNote("cyan", "", "spw prac one - Practice spell % once per click") + ColourNote("cyan", "", "spw prac full - Practice spell % to full on click") +end + +if main == 'disable' or main == 'off' then + spWin:hide() + EnableAliasGroup("spellbook", false) + EnableTriggerGroup("spellbook", false) + ColourNote("yellow", "", "Spellbook disabled.") +elseif main == 'enable' or main == 'on' then + EnableAliasGroup("spellbook", true) + EnableTriggerGroup("spellbook", true) + ColourNote("yellow", "", "Spellbook enabled.") +elseif main == 'hide' then + local sp = args[2] + if not sp then + ColourNote("yellow", "", "Usage: spw hide ") + return + end + SpWinIgnore[sp] = true + SetVariable("SpWinIgnore", utils.serialize(SpWinIgnore)) + ColourNote("yellow", "", "Spell " .. sp .. " hidden.") +elseif main == 'unhide' then + local sp = args[2] + if not sp then + ColourNote("yellow", "", "Usage: spw unhide ") + return + end + SpWinIgnore[sp] = nil + SetVariable("SpWinIgnore", utils.serialize(SpWinIgnore)) + ColourNote("yellow", "", "Spell " .. sp .. " unhidden.") +elseif main == 'hidden' then + local hidden = "" + for sp, _ in pairs(SpWinIgnore) do + hidden = hidden .. sp .. ", " + end + if hidden == "" then + hidden = "None" + else + hidden = hidden:sub(1, -3) + end + ColourNote("yellow", "", "Hidden spells: " .. hidden) +elseif main == 'prac' then + local mode = args[2] + if mode == 'one' then + SetVariable("SpWinPrac", "one") + ColourNote("yellow", "", "Practice mode set to 'one'.") + elseif mode == 'full' then + SetVariable("SpWinPrac", "full") + ColourNote("yellow", "", "Practice mode set to 'full'.") + else + ColourNote("yellow", "", "Practice mode is currently set to " .. GetVariable("SpWinPrac") .. ".") + end +elseif main == 'help' then + showHelp() +end +]]> - - - - - Send("") - - - -