jdoleary / spellmasons Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://store.steampowered.com/app/1618380/Spellmasons/
License: Other
Home Page: https://store.steampowered.com/app/1618380/Spellmasons/
License: Other
Sometimes the game overscreen stats are bugged and it shows that your best skill killed 0 units and that's not true.
jd
An arrow spell that does damage relative to how far away you are (the farther away, the more damage). See
src/cards/burst.ts
andsrc/cards/arrow.ts
for reference.
when one of us was dead, every turn it asked the dead player to pick a spell. This spell then went to the alive player. Is this intended or a bug of some sort? Local hotseat.
Reported by SolemnSundayBand on Reddit
and show it on the game over screen.
Useful for speedruns
Requested by: @WildBerryBlast
To allow for teleporting anywhere
credit: meme_man
Target Kind is too OP right now. Since the engine now supports upgraded spells, let's make a 2nd version of Target Similar that is more powerful (targets an extra unit maybe) and then make Target Kind an upgrade to that 2nd target similar
Skillo — Today at 9:52 AM
Target similar is alright imo, the base 2 targets + 1 per cast makes it somewhat expensive on its own. And it has clear limitations which is targeting the same race. it starts to get out of control when you already managed to target a group of enemies and then use target similar, but thats also the case with connect, range aside.it shines when you are trying to pick off someone really far away, since it works regardless of range.
Target kind just feels like a free map wide 60(!!!) mana targeting skill, which almost always guarantees you'll be able to reach everyone when paired with other green skills. Ironically it gets even more powerful with target similar, since you are already targeting 5 units so it will automatically make it 10, if possible. And its all map wide.
Maybe target kind could be the level 3 upgrade of target similar? In a similar way of how heal / slash scale, increasing mana cost and effectiveness.
Base target similar > improved target similar > target kind. Just a random idea
sync: Syncing pickups Array(3)0: "0:false"1: "1:false"2: "2:false"length: 3[[Prototype]]: Array(0) current pickups: Array(4)0: "0:false"1: "1:false"2: "2:false"3: "3:false"length: 4[[Prototype]]: Array(0)
Underworld.ts:3779 sync: Remove excess pickups
Underworld.ts:639 Guard against infinite loop, unit tried to move but it was not its turn. Clearing stamina
Underworld.ts:881 Attempted to aquire queued pickup via timeout but pickup is undefined
This will be complicated and shouldn't be pursued yet, but I like the idea so I'm storing it here for later.
SoulMuncher:
Targetting Spell Idea: Summon a mage scholar that attempts to cast the constructed spell at/on the nearest enemy every turn. The entity would be limited by mana regen. Multi-casting the targetting spell would give the mage more hp/mana regen/stamina/starting mana? (Sidenote: Would there be two versions, one that targets allies and one that targets enemies? Would it be determined by the first spell effect in the list?)
Jordan:
"Spells that last several turns " this is the vision for "auras" which have been on my list for a while but I haven't gotten to yet
Mage scholar idea is cool. I messed with a similar idea early on (trap was a spell that stored the rest of your spell in a pickup that would trigger later). I think it's worth revisiting. Balance might be hard, but maybe not if it costs mana for the scholar to cast then the balance is built in.
jd
A spell that consumes targeted corpse(s) to create a "bone golem". The more corpses that are consumed (targeted), the stronger / bigger the bone golem is. You can reuse the golem sprite (maybe tint him a different color for now (unit.image.sprite.tint = 0xff0000).
Splitting this particular issue off from #22. The disconnect has been fixed but there may still be an issue where rejoining a game (or maybe even loading a game) on a level with minibosses causes the minibosses to be "halfway" reverted to normal enemies.
See #22 (comment) for details
Ex: golem minibosses have 60 health and do 60 damage but the card shows the regular golem stats
I forgot to translate the spell name itself
RainbowLuck — Yesterday at 4:45 PM when u capture soul to set up a game and u
got kick out and you come back with no soul is realy frustrating '-'timothycombs12 — Yesterday at 8:40 PM found a glitch. target arrow + slash + capture soul targeting an ancient. it will refund the spell and not take hp from the player, but it will not give a spawnable ancient. i dont know if the last part is on purpose
Some players are reporting that their summon cards are disappearing. Probably a sync issue
If you cast dash + burst on an enemy at medium distance, the prediction assumes you will complete the entire dash before casting burst, causing the unit to die, but in gameplay, you will often cast burst before dash finishes, causing you to deal less damage and leave the target alive.
jd
A targeting spell that targets injured enemies. Add 3 at a time for each stack. Checkout
src\cards\target_similar.ts
for inspiration
Suffocate should also decrease a units damage for every turn that it ticks.
(Damage must be restored to normal if suffocate is purified - reference spells like Blood Curse to see how this is done)
Bonus:
Interaction with liquid would be very cool, maybe suffocate ticks twice if unit is submerged.
Suffocate is largely unused by players because:
Skillo — Today at 2:04 PM
Suffocate incentivizes you to stop damaging that enemy entirely, as it will be "wasted mana" since they'll die anyways
WHlTE RlDER — Today at 2:04 PM
precisely that.
With poison for example an enemy could take 2 ticks of it for 36 damage, and a basic slash would finish them off.With suffocate you don't have any way to kill faster other than fast forward, or just killing them normally.
So it end up just not really doing anything the majority of the time.
networkHandler.ts:1210 DOMException: Failed to execute 'setItem' on 'Storage': Setting the value of 'spellmasons-save-1701895239881-cap soul' exceeded the quota.
at Module.set (http://localhost:3000/src/storage.ts:101:20)
at globalThis.save (http://localhost:3000/src/network/networkHandler.ts:878:15)
SoulMuncher:
Multiple sacrifices increases your hp gained. I assume it's intentional but mentioning it since it's like... pretty darn powerful
I think sacrifice shouldn't take more health than the ally unit has, but maybe stacking it should have some kind of interesting effect?
SoulMuncher: Sometimes one player will instantly teleport to the next level upon completion, and the other player has to click end turn a couple times to make portals appear (already reported I think)
The easiest way to fix this issue is just to make the player portals not disappear when used by creating a new portal in the same spot when it triggers. (be careful not to cause an infinite loop)
Branching this off from #14 so it doesn't get forgotten.
Simple AI commands to selected units such as:
There also should be a way to multi select units when giving commands to make this easier. Probably a new menu that appears once you have ally npcs.
Regarding selecting, you could do:
Bobo Wontons — Today at 12:54 AM
unsure if this is a bug, but I was doing coop and set my "ghost" (the player when choosing spawn location) in front of my partner and they used arrow which hit my "ghost". It did not kill me, but I am wondering what if it did?
Timemason should get More max mana but it drains over time (rewards you to act quickly)
credit: @Skillo
The ui bar for health and mana doesn't always display the predicted outcome. Note: this becomes extra apparent with the new send-mana blessing.
Ex. Healing an enemy unit, Conserving enemy mana (Conserve seems particularly weird, as it causes the mana bar to flicker when prediction recalculates)
For necromancer, capture soul is always like 90% of health instead of a static cost. This is unintuitive and de incentivizes upgrading health. Just make it a static large amount (38hp)
Summon decoy calls unit.create(), which automatically calls unit.adjustUnitDifficulty(), raising its health. This may also affect player summons, but I haven't been able to test it due to no setDifficulty function.
Depending on your design choices, multiple solutions could be used. One option would be to have a createUnscaled() function that prevents a created unit's stats from being auto adjusted by difficulty. This could be used for all summons?
It could be a parameter/overload as well, but it's a pretty frequently used function so it may take some time to update everywhere that uses it.
Automatically receives Contaminate, curses cost 80% of usual cost
Balancing:
Increase radius of contaminate by 1.5x
Balance Suffocate and Poison to make them slightly more powerful
Maybe 50% more
Using Middle Mouse Button to move the camera while the cinematic is playing stops the cinematic camera but doesn't let you choose your spawn point until the cinematic would be done playing.
Expected behavior. If you cancel the cinematic camera with the middle mouse button, it should immediately allow you to place your player (and you'll see the ghost image of your character when you move the mouse)
That ensures that you must have a prereq spell before getting this upgrade but it doesn't not "replace" it
Seems like no one likes or uses target column. As you suggested in your feedback, its the "go-to range extender" so stacking it should make it longer.
FYI, if a change requires a text change to a spell label, that has to get translated so add a TODO for me to update the translation
Connect doesn't seem to be targeting the nearest unit in the chain correctly:
Unable to connect to server at ws://localhost:8080
still shows even after a successful connection occurs.
This change will need to be made in the Menu Repo
Relevant code:
getEnemiesForAltitude2 in Underworld.ts
budget in Unit.ts
Expected:
Urns should not count against the level unit spawn budget or unit types chosen
In inventory and in the codex, spells are sorted by mana, but this looks weird because there's no natural grouping (like with arrow spells for example). I'd expect all arrow spells to be together.
Sort spells first by type, then by mana cost so that all arrows show up next to each other for example (this will not apply to all spells but only to spells that are related)
Leaves unit targeted for future spells if they have the curse
The old versions of upgrades spells are not supposed to be available after the upgrade.
https://discord.com/channels/1032294536640200766/1069963955092606976/1181290110432583811
Multiple exploding arrows shot from [(targetting spells) + Exploding Arrow] will repeatedly collide with the first enemy, even after that enemy has been killed. This leads to incorrect predictions.
SoulMuncher:
Targetting Spell Idea: A disc that works similarly to arrow, but richochets off walls and enemies and applies spell effects to every enemy hit. More casts = more bounces. Other targetting spells would apply at each bounce or from each enemy hit. (How do you stop it from being super powerful?)
SoulMuncher:
In my experience, when making a multiplayer game, the difficulty buttons feel kind've buggy/unclear, and tend to mess with the UI in unexpected ways. It doesn't give good visual feedback and I'm not actually sure if they work or not. I tend to avoid clicking on any extra buttons when making a game now 😅
requested by: RainbowLuck
jd
An enemy that grows stronger with each passing turn. For this, you can reuse code from
src\entity\units\golem.ts
. (Make it grow bigger as it gets stronger too).
Enemy is primarily in the "idea" state at the moment, primarily for testing purposes
Reported by SoulMuncher:
My teamate and I loaded into a level, and were talking about possible strategies before placing our characters. We were disconnected due to 1 minute inactivity (not a huge fan of this feature honestly). Anyway, when we reconnected, all of the minibosses had been converted to normal enemies. Priest minibosses that previously had 120 health (iirc) were down to 40 health, and appeared to be normal priest size. When selected, all of the data lined up with a basic priest, but their name was still Priest Miniboss. I should have taken a screenshot
I think what happened here is that the server tries to clean up games where all players have disconnected after a timeout (to see if they'll rejoin) but there must be a bug where it doesn't consider unspawned players as connected. This should be fixed so only games with actually no clients connected get cleaned up.
I've also noticed in the server-hub that games seem to stick around for WAY longer than I'm expecting them to with no clients.
jd
A blessing that sends mana to another unit. So the cost of the spell (lets say 20) will transfer that mana directly to the target(s)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.