1. Spellmasons
  2. News

Spellmasons News

Update v1.41

This update is rather large and the big "Runes" update is not quite ready yet; but I wanted to get these fixes and improvements into your hands since it's been a while since the last update.

But this update does have some great new features! Thank you everyone for your continued support!

Change log:

Content:
- New Spell: Cursify
- New Spell: Add Ricochet
- New Spell: Add Pierce
- Split works on pickups
- New mod! DaiNekolchis Tome of Spells!
- New attributes for minibosses (Now named "Champions")
which make them much more formidible especially in the late game
- Target Immune
- Defiance
- Confidence
- Slime
- Damage Limiter
Thanks NoZ and Baalstrum

Improvements:
- Improve smoothness of camera when moving it with WASD
- Upgrades are now always available in the Spellbook via the yellow bookmark on the right
- Add Crown sprites to minibosses so they are easily identifiable
- Improved targeting prediction (#894)
- Frontload cards like "Plus Radius", "Add Bounce", and "Add Ricochet" so they can be added to the end of a spell instead of undoing the whole spell queue to put more at the beginning
- Protect user from accidentally ending turn while inventory is open. Inventory must be closed to use Spacebar to end turn.
- Show selectedUnit's prediction unit range
instead of the unit itself so that if you move them
with a movement spell it shows what their range will
be
- Lots of missing translations added
- Modifiers now have an explicit order so any given set of modifiers (e.g. Debilitate and Split) will have the same effect regardless of in which order they were added

Balance:
- Increase the number of minibosses on loop levels
- Make minibosses having multiple modifiers; probability increase drastically for each loop level
- Bolt deals more damage when more units are targeted

Music:
Normalized volume of tracks
Added "Spellmasons Theme" to soundtrack!!
(Theme plays only on the menu screen)

Sound:
Normalize all sound effects

UI:
- "Class" upgrades are now available in the persistent Upgrade Menu in the Spellbook
- Add modifier descriptions to tooltip content
- Color Blessings Gold and Curses Purple in tooltip
- Show inventory book icon glow if you are able to purchase an upgrade

Fixes:

- **BIG FIX**: unit and pickup id desync
HORRAY! This has been the cause of many-a-desync.
underworld's lastPickupId and lastUnitId are now only updated
if !prediction. This ensures that the headless server and the clients
always have synced ids.
- fix: Loading Hotseat Multiplayer games
in a singleplayer context.
Thanks Sippy for reporting!
- Modifier.Init wasn't using prediction in load unit (#823)
- Cards wont reappear after reroll within the same upgrade selection. Omitted cards reset each time an upgrade has been picked.
- Fixes an issue where player could get "No upgrades to choose from" even when there are upgrades left to get.
- Prevent showing upgrade button if there are no upgrades to choose from.
- modifier subsprites and visuals missing on load
Refactors modifier `init` to `addModifierVisuals` to better
describe what it does.
It is separate from `add` because `add` setup up state that
is still present on save/load, whereas visuals such as
subsprites or particles have to be reinitialized on load
- Fix shield and bloat not persisting through loads / mutliplayer late join
- Fix player being unable to cast while immune to freeze
- Polymorph preserves currentHealthRatio (#841)
- Clone supports pickup power property
- Fix: RecalcDifficulty no longer overrides Unit Stats
- Overriding unit stats based on source stats would cause modifiers and other stat changes to be "undone" any time the game difficulty was recalculated
- Blood Curse guarantees integer stats
- Fix an issue where the scale modifier applied by split was not changing properly with quantity
- fix: Soul Shard Owner purification from making soul shard havers invulnerable.
- fix: Consistent camera movement speed. Camera will move and lerp at roughly the same speed across all reasonable framerates
- fix Player Health/Mana bar visuals (#869)
- The value of incoming shield is now displayed during prediction
- Changes to max Health/Mana are now shown in the lower UI bars the same way they are shown in the overhead prediction bars (i.e. blood curse shows as doubling current hp and preserving max health ratio)
- Health/Mana gain visuals were swapped such that increases give a "fuller" looking bar, and decreases give an "emptier" one
- Fixed an issue where overfilling mana would always display mana cost bars, even when no prediction was running
- Fixed inaccurate and overlapping mana cost bars
- Overfilling mana is now much more clear, and you can see each stage of mana bar as it appears, instead of mana just appearing "full" until post-prediction
- The Health/Mana bars now look the same in prediction as they will after the effect occurs (predicting blood curse no longer shows hp going to full, overfilled mana displays correctly, etc. healing/damage and mana gain/loss visuals are still present)
- Fixed "sheild" typo
- fix: Player clones now deal damage
- fix: Don't restore freeze sprite
when in "freeze immune" state
Docs:
- Improve Modding Documentation (#870)
- Doc: Clarify why split does not affect max mana

Patch v1.39.1

Removed cooldowns
After considering, I've determined that the idea of a cooldown itself is
against the design of Spellmasons. This was just a bandaid to
a few select spells being overpowered. I've found it better to
alter the spell logic itself (in the case of freeze to not allow stacking)
and to make them more mana expensive (in the case of resurrect)
which will prevent them from just being cast turn after turn.

Also the modifier itself can prevent the unit from being
refrozen (see freeze) which is much better than cooldowns
because it also prevents refreezing in multiplayer.

Balance: Freeze
Removes cooldown
Freeze no longer stacks

Balance: Increase Merge spell rarity

fix: Prevent empower from targeting players to prevent confusion
i18n: Clarify that Empower does not affect players

art: Add slightly new cast animation

audio: Only play "endTurn" sfx once per turn
Thanks Hazzie and Nord from Youtube for
this suggestion!

fix: Backfill stat upgrades for players who
join late.
Thanks Waterbending Squirrel!
Fixes: #567

audio: Smoothly switch songs
Don't switch songs every time a level is beaten, switch
when the song is done
Closes #805

content: Add Ultra Clone as upgrade to clone
in order to balance out the clone + merge exploit which
was mainly possible because clone with adding the clone as a target
yields exponential results when stacked. Now the basic clone does
not add clones as a target

fix: Intercept END_TURN message
and do not send the original. Send a new END_TURN message as client with playersTurnEnded attached.
(Note: this already worked except it still sent through the original END_TURN message, this fixes the original from being
sent through and only sends the transformed one through)
Resolved: #811

log: Improve error message for proper aggregation
on remote logger

experiment: MultiColorReplaceFilter
Decrease epsilon for blood golem to see if
it resolves #695

UI: Fix default "Refund" text
Before if no text was provided, none would appear for refund.

balance: Exclude Execute from starting damage spells (#807)
- Since it cannot deal damage on its own

Patch v.1.38.1

Mostly fixes and quality of life improvements in this patch.


fix: rare bug where game was stuck because NPCs didn't end their turns
Big thanks to Un4o1y, Xeddar and Adriller

ref: Remove client side timeout for cards.
When there are many enemies on screen the game's fps can slow
which can cause cards to timeout which means the result of a cast may not match the prediction. This is bad.
Instead, I will just leave the timeout on the serverside
so the server will not hang.

perf: Optimize ancient attack for FPS
also optimize Blood splatter.
Thanks @Whisky

ref: END_TURN syncing
Resolves the issue where 1 player ending their turn sometimes
just progressed the turn phase without the other players being ready

i18n: Translate card rarity
Update Polish
Thanks @Whisky!

fix: Bolt radius increases for submerged units (#797)
Thanks R?c??l?sc?nc?/recoalescence

fix: Teleport pickup prediction (#787)
Fixes an issue that cause displace, teleport, and similar "set location" spells to trigger real world pickups while in prediction mode
Thanks @Whisky

fix: Primed Corpse particles not reinitializing on units that recently had them

fix: Player channeling animation while dead (#781)

content: Plus Radius can now be cast on its own (#786)
* Plus Radius can now be cast on its own
- To let players increase Urn Radius
* Add refund for plus radius fizzle

ref: Change up order of color replace colors
to see if it affects the bug where blood archers / golems aren't tinted

copy: Fix modifier name "Primed Corpse" since it is visible to players
Thanks Chumler

optimization: Save files take up less disk space

menu: Server list will be sorted by version number so servers on the latest version will be at the top

menu: Enemies are now shown in the codex

Patch v1.37.0

Big thanks to everyone who have been reporting bugs on Discord! There's some significant fixes in here relating to desyncs, the "turn wont continue" bug (hopefully), and the memory leak.

Changelog:
fix: Softlock fix attempt 2
All spells now have builtin timeouts with error reporting to prevent
softlocks (where the game is working but the turn wont continue).
This *should* resolve the softlock issue or in the least tell me what's
causing it.

fix: large memory leak
HUGE THANKS to DeathmonkeyJ (Github) and @Jace (Discord) for pointing me in the right direction

fix: Force Move desync fix
All spells that use force move (push, pull, etc) should be MUCH more reliable
in multiplayer now

Hotfix patch v1.36

Hello everyone!

It's been quite the week with lots of new folks joining the Discord. Thanks all for being a part of the community!

A number of players have reported irregularly getting stuck in multiplayer games where all players are ready but the game won't progress.
This update aims to fix that, but I have had a devil of a time reproducing the issue, so I am not 100% sure that it will. Fingers crossed.


Changelog

fix: Protect specific spells from potentially hanging server
Burst: 52
Bolt: 46
merge: 28
Connect: 11
Triple Arrow: 8
Multi Arrow: 4
clone: 4
Phantom Arrow: 4
meteor: 1


fix: Add end turn protection

Many players have been experiencing issues
where all players have turn ended on their clients
but the game does not progress

It seems there are multiple causes
> Re-readying up would have one of a few effects for us:
1: It unlocked for us
2: It made the noise over and over before unlocking after a 15-40 sec wait
3: It was completely stuck requiring us to save and restart the server completely (because when we would try to rejoin some players were in the game alone at the starting map even while others were still in the game)
4: A few of us had full whitescreens with a force quit required
~Wispy

This change handles Cause 1, where somehow the
clients have that everyone is readied up but the
server is missing one.
A client, when ending turn, also sends an array of
all clientIds that have ended turn.
If any of them are endedTurn == false on the
server is will end their turn.

This should prevent players from having to re-ready up

fix: NPCs casting on wrong faction units
- Thanks @Viz and @CandyKiller

ui fix: card-inspect scale
where cards had greatly varying sizes
(slash was super small)

menu: Update default ally unit outlines to be 2px
consistent with enemy default outline

fix: All bolts play at once

fix: Burst quantity damage (#736)
Stacks of burst were being double multiplied

fix: Arrows being slow to cast in multiplayer

fix: typos
Thanks to WestonVincze for contributing!