Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Way To Crown

Turn-based deck-builder, minimal visuals, focus on advanced strategies and builds. · By AlSoKnown

Bug reports Sticky

A topic by AlSoKnown created Mar 03, 2025 Views: 722 Replies: 58
Viewing posts 1 to 20
Developer

If you see a bug, please report it here.

If possible, attach a screenshot and/or your latest save-file (usually that is an auto-save).

I upgraded pray using a rune, but in stages after that, it’s max persist value was reduced to what was probably the value at the time of the upgrade (2).

I don’t have a screenshot or save file because at the time I thought that’s just how pray upgrades.

Developer

I am actually aware of this interaction and I am unsure whether it should be changed or just communicated better in-game.

The upgrade effect works as follows:

1. Apply changes prescribed by upgrade (in this case, +1 more piety)
2. 'Preserve' card to deck, saving all the changes it has received during stage so far, including the upgrade. For example, if you would play Strategy, then Rune of Perfection, the max Persist count on Pray will increase permanently. (As a side note, this preservation effect make runes much more powerful than they seem. Consider using them with Secret Technique for example, or even Supreme Edict + Avatar of Virtue).

Since the card stores 'current' and 'max' persist counts separately, it is possible to modify it so that is does not have the specific 'downgrade' effect you encountered, but then the positive version of it will be also lost, which is a pity IMO. Alternatively, I can separate 'upgrade' and 'preserve' effects in card description to make it more evident. I would like to hear your opinion on this.

BTW, you can join us on Discord if you like more frequent/detailed discussions.

I see, that’s reasonable. I guess it’s more interesting not to remove this interaction.

I don’t use discord out of principle. Not that I’d have much more to comment on this game tbh.

Developer

>I don’t use discord out of principle.
I know. For that reason I use Discord only as web-page (never install it as an application), use dedicated e-mail to register there and never use it for critical things like work or personally private discussions.
However, for entertainment reasons those policies are no worse than, say, GMail.
Anyway, this is off-topic and I of course respect your preference. Thank you for your feedback.

(6 edits)

I got two bugs for you:

  • This stage freezes, and just keeps eating memory after you press end turn. Something about eels getting hurt by spikes, I guess.
{"version":"v0.18.0","seed":[1849425566,1893896691,1130112186,769705062],"heroType":"mage","hero":{"maximum":{"hp":16,"mp":22,"stamina":2,"will":6},"current":{"hp":12,"mp":21,"stamina":2,"will":5,"gold":16},"status":{"luck":7,"defence":2,"fatigue":1},"items":["chainMail","frayedTome","rabbitPaw","fortuneCookie","luckyCoin","peaPod","redSeven","portableBookcase","tentacle"],"deck":[{"name":"magicMissile","cost":{"mp":1},"effects":[["shoot",2,{}]]},{"name":"magicMissile","cost":{"mp":1},"effects":[["shoot",2,{}]]},{"name":"magicMissile","cost":{"mp":1},"effects":[["shoot",2,{}]]},{"name":"gatherMagic","cost":{"mp":1},"effects":[["mana",["CardsPlayedCount","",1],{}]]},{"name":"gatherMagic","cost":{"mp":1},"effects":[["mana",["CardsPlayedCount","",1],{}]]},{"name":"gatherMagic","cost":{"mp":1},"effects":[["mana",["CardsPlayedCount","",1],{}]]},{"name":"ivoryTower","cost":{"mp":2},"effects":[["defendHero",["HandCount","",2,null],{}]]},{"name":"ivoryTower","cost":{"mp":2},"effects":[["defendHero",["HandCount","",2,null],{}]]},{"name":"rally","cost":{"will":1},"effects":[["clearStatusHero","afraid",{}],["fatigue",-2,{}]]},{"name":"pause","cost":{},"effects":[["drawCards",1,{}],["fatigue",-2,{},["amplifiedHero","eq",0,{}]]]},{"name":"ivoryTower","cost":{"mp":1},"upgraded":1,"effects":[["defendHero",["HandCount","",2,null],{}]]},{"name":"sigilOfFaith","cost":{"will":1},"upgraded":1,"effects":[["will",7,{},["diffSigils","eq",1,{}]]]}],"maxStashedCards":3,"immunity":{},"cardRemoveCost":2,"cardUpgradeCost":2},"stage":6,"ascensions":[],"rewards":{"rerollCosts":{"cards":7,"items":4,"nextQuest":2},"amounts":{"gold":10,"cards":3,"items":3,"chances":{"rare":0.2,"upgraded":1.01},"taggedCards":{}}},"encounters":[2,5,14,16,21,45],"quests":[{"stage":2,"quest":"Borrow a book","completed":true},{"stage":3,"quest":"Order fortune cookies","completed":true},{"stage":4,"quest":"Embrace daily routine","completed":true},{"stage":5,"quest":"Read many books","completed":true},{"stage":6,"quest":"Practice mindfullness","completed":false}],"encounter":[45,"electricEel",["electricEel","woodenChest"],["defence positive","spikes positive"]],"ts":"2025-05-08T12:28:42.317Z"}
  • This sleeping tonic doesn’t get removed after use, seems buggy to me, can’t figure out why. There was some ensnare stuff going on at a previous stage, I think I played it while ensnared. It’s not different in the next stage. Steps to reproduce: use pray, use sleeping tonic, it’s still in the deck.
{"version":"v0.18.0","seed":[-2107259173,322866953,185819529,-123664142],"heroType":"priest","hero":{"maximum":{"hp":16,"mp":15,"stamina":7,"will":30},"current":{"hp":16,"mp":12,"stamina":3,"will":24,"gold":39},"status":{"intellect":2,"strength":-1,"toughness":-1,"vitality":-1,"piety":20,"protected":1,"defence":5,"fatigue":8},"items":["paupersBowl","tatteredShirt","bountyGoblins","pedestal","bountyOrcs","wizardHat","diamondRing","portableBookcase","diademOfSuffering","chisel","moonBlade","sackOfGrain"],"deck":[{"name":"sigilOfWrath","cost":{"will":1},"effects":[["lightning",5,{},["diffSigils","eq",1,{}]]]},{"name":"sigilOfWrath","cost":{"will":1},"effects":[["lightning",5,{},["diffSigils","eq",1,{}]]]},{"name":"sigilOfSanctuary","cost":{"will":1},"effects":[["defendHero",5,{},["diffSigils","eq",1,{}]]]},{"name":"sigilOfFaith","cost":{"will":1},"effects":[["will",6,{},["diffSigils","eq",1,{}]]]},{"name":"sigilOfFaith","cost":{"will":1},"effects":[["will",6,{},["diffSigils","eq",1,{}]]]},{"name":"pray","cost":{"will":1},"effects":[["initiative",1,{}],["piety",1,{}],["drawCards",1,{}],["persist",4,{}]]},{"name":"pray","cost":{"will":1},"effects":[["piety",1,{}],["drawCards",1,{}],["persist",4,{}]]},{"name":"sigilOfVigor","cost":{"will":1},"effects":[["healHero",5,{},["diffSigils","eq",1,{}]]]},{"name":"sleepingTonic","cost":{},"effects":[["will",15,{}],["endTurn",null,{}],["singleUse",null,{}]]},{"name":"ritualCircle","cost":{"will":2},"effects":[["initiative",1,{}],["fetch",["CardsIndices","","Infinity","drawPile","tag","ritual"],{}],["persist",null,{},["handCountTag","gt",0,{"tag":"ritual"}]]]},{"name":"pause","cost":{},"effects":[["drawCards",1,{}],["fatigue",-2,{},["amplifiedHero","eq",0,{}]]]},{"name":"pray","cost":{"will":1},"upgraded":1,"effects":[["piety",2,{}],["drawCards",1,{}],["persist",4,{}]]},{"name":"pause","cost":{},"effects":[["drawCards",1,{}],["fatigue",-2,{},["amplifiedHero","eq",0,{}]]]},{"name":"runeOfHeartiness","cost":{"mp":2,"stamina":3},"effects":[["insertEffectPermanentlyHand",1,{"effects":[["fatigue",-2,{}]]}],["singleUse",null,{}]]}],"maxStashedCards":3,"immunity":{},"cardRemoveCost":2,"cardUpgradeCost":2},"stage":9,"ascensions":[],"rewards":{"rerollCosts":{"cards":12,"items":4,"nextQuest":4},"amounts":{"gold":16,"cards":3,"items":3,"chances":{"rare":0.35,"upgraded":0.38},"taggedCards":{"rune":1}}},"encounters":[1,7,15,17,26,34,37,59,62],"quests":[{"stage":2,"quest":"Hunt rabbits","completed":true},{"stage":3,"quest":"Take bounty for goblins","completed":true},{"stage":4,"quest":"Take bounty for orcs","completed":true},{"stage":5,"quest":"Practice mindfullness","completed":true},{"stage":6,"quest":"Meditate with wandering mind","completed":false},{"stage":7,"quest":"Help with harvesting","completed":true},{"stage":8,"quest":"Admire beautiful moonlight","completed":true},{"stage":9,"quest":"Enjoy a bright sunny day","completed":false}],"encounter":[59,"ratKing",["smallRat","smallRat","ratKing","archeryTarget"],["maxMP positive"]],"ts":"2025-05-04T18:40:42.881Z"}
Developer

Thanks for detailed reports and save-files.

>eels getting hurt by spikes,

Yes, this was caused by infinite loop of spikes and 'on damage: Melee' trigger of Eel. Loop is now broken when Eel accumulates enough spike damage to die.

>sleeping tonic doesn’t get removed after use
This is because 'Force end turn' does so immediately, thus skipping 'Single use' effect. I swapped these effects to fix it.

Uploaded new point release with these fixes.

Developer

By the way, as I tested the Priest save-file, I could not help but notice that you probably should have stashed both Ritual Circle and Sleeping Tonic, since they do not have any immediate use.

heh, I probably should try to unlock stashing more intentionally. Thx for the quick fixes btw.

(1 edit)

stage froze (but not the game), “Too long history of fatigue” after grinding for a bit

screenshot:

{"version":"v0.19.0","seed":[819962088,-1379398076,-462817662,2029491377],"heroType":"mage","hero":{"maximum":{"hp":15,"mp":31,"stamina":2,"will":5},"current":{"hp":15,"mp":24,"stamina":2,"will":5,"gold":0},"status":{"vitality":2,"sorcery":1,"fatigue":4},"items":["stoneCalendar","bountyOrcs","butchersApron","deformedCoin","steelShovel"],"deck":[{"name":"magicMissile","cost":{"mp":1},"effects":[["shoot",2,{}]]},{"name":"magicMissile","cost":{"mp":1},"effects":[["shoot",2,{}]]},{"name":"magicMissile","cost":{"mp":1},"effects":[["shoot",2,{}]]},{"name":"gatherMagic","cost":{"mp":1},"effects":[["mana",["Linear","",["CardsPlayedCount",""],1,0],{}]]},{"name":"gatherMagic","cost":{"mp":1},"effects":[["mana",["Linear","",["CardsPlayedCount",""],1,0],{}]]},{"name":"gatherMagic","cost":{"mp":1},"effects":[["mana",["Linear","",["CardsPlayedCount",""],1,0],{}]]},{"name":"ivoryTower","cost":{"mp":2},"effects":[["defendHero",["HandCount","",2,null],{}]]},{"name":"ivoryTower","cost":{"mp":2},"effects":[["defendHero",["HandCount","",2,null],{}]]},{"name":"inspiration","cost":{"mp":2},"effects":[["intellect",1,{}],["exhaust",1,{}]]},{"name":"overnightStudy","cost":{"mp":1},"effects":[["intellect",-1,{}],["mana",10,{}],["maxMana",1,{}]]},{"name":"honey","cost":{"hp":3,"mp":2},"effects":[["vitalityHero",2,{}],["sorcery",1,{}],["exhaust",1,{}]]},{"name":"rally","cost":{"mp":1},"effects":[["clearStatusHero","afraid",{}],["fatigue",-2,{}]]},{"name":"adapt","cost":{"hp":3},"effects":[["invertNegativeStatuses",null,{}]]}],"maxStashedCards":3,"immunity":{},"cardRemoveCost":2,"cardUpgradeCost":2},"stage":5,"ascensions":[],"rewards":{"rerollCosts":{"cards":5,"items":3,"nextQuest":1},"amounts":{"gold":8,"cards":3,"items":3,"chances":{"rare":0.3,"upgraded":0.22000000000000003},"taggedCards":{}}},"encounters":[2,7,14,19,34],"quests":[{"stage":2,"quest":"Take bounty for orcs","completed":true},{"stage":3,"quest":"Help with beekeeping","completed":true},{"stage":4,"quest":"Buy some ink","completed":true},{"stage":5,"quest":"Get individial curriculum","completed":false}],"encounter":[34,"stoneGolem",["acidSlime","stoneGolem","suspiciousChest"],["will positive"]],"ts":"2025-05-30T10:24:46.269Z"}
Developer

Wow, that is quite a bit of grinding :))
This error is a sanity-check I have added to catch/break possible infinite loops the after your previous bug report.
I will replace it with just a console warning.
Overnight Study + Adapt is an interesting combo, I did not think about it before, although it seems obvious in retrospect.
I really should think of a way to make fatigue more impactful or add some other diminishing-return mechanic.
Upcoming next version will have 'fatigue grows with turn number' ascension option, maybe it is the answer.

Interesting idea. Though this example in particular is unaffected by fatigue, I think I was only drawing cards by ending the turn. But I guess fatigue could also affect regular draw (maybe it already does so, idk tbh).

Developer

> fatigue could also affect regular draw

I hesitated on this before, but just now I've changed fatigue to affect start-of-turn card draw as well. This happens after the fatigue reduction, so you have to accumulate 20+ fatigue to draw 1 less card at the start of turn.
In your example (if played with the new ascension on) it will completely stop card draw at about turn 40, which is I think an acceptable balance point.

Sounds good to me!

if you use “play cards with single click” and try to play a card you can’t play because you lack the resources, the stage freezes.

not sure if it’s new or if I just never did that before

Developer

There was a bug which sometimes allowed to play card despite missing resources. I fixed it, but forgot to check single-click mode.
Just uploaded a quick fix -- should work properly now.

yup, it works now, thx!

Mind control freezes the game when played on any enemy unless it is frozen, you are ensnared, or it otherwise doesn't try to act.  Pipette freezes the game instead of increasing max hp. I will post replays in the future; didn't know you can do that.  Also, the stash and being able to pay to remove cards/sell precious cards seem from card text like they should exist as menus but I haven't figured out where they are yet (I've only unlocked 9/13 classes I believe).

Developer (1 edit)

Thanks for your report.

>Mind control freezes the game
Fixed, will be published in next update.

>Pipette freezes the game
Fixed, will be published in next update.

>Also, the stash and being able to pay to remove cards/sell precious cards
You can access deck manipulation by pressing 'Deck' button in rewards window. (See screenshot below).
Upon first opening of this window, the game should have displayed the tutorial, which you can re-visit by clicking question mark in top-right corner. I understand it is hard to remember now, but can you please tell, perhaps the tutorial did not show or was unclear?



As for stash and card upgrades, these two features are locked behind achievements. You can see all achievements by pressing 'lock' button in the global menu. Search for 'stash' and 'upgrade' to see exact requirements (those requirements should be relatively easy, you have probably unlocked one or both already). After unlocking, corresponding buttons will appear in deck manipulation window.

I plan to publish next update in a few days.

There was too much tutorial, so I closed as many windows as possible as fast as possible.  Thanks for the info, sorry I was just being dumb ^^; 

Developer

That's an important feedback too. I will try to make tutorial shorter.

'On end turn' effects can prevent you from satisfying 'end your turn with' conditions for quests.  This seems backwards to me; I would think your quests should check the state at the moment you push the button, and any help/harm from 'on end turn' effects should only matter in terms of their impact on the next turn. As-is the 'Model of the Spire' item locks you out of a great many quests (have your hand full at end of turn becomes impossible, which is required for many library quests), and the 'Pendant of Amnesia' locks you out of two of the Time of Day items and ensures each turn is guaranteed to count for the other one (the shield).

Developer (2 edits)

Thanks for your interest. I am happy to discuss this topic at length, since this is my hobby project, so sorry if my replies are too long.
Perhaps you may want to join our discord for easier / more detailed discussion.
First, I would like to point out that full event order is documented in 'More info' menu (maybe you have already seen this, I just want to make sure).
Specifically, for 'end turn' the order is, indeed, 'cards, then items, then quest'.

About quest vs item trigger order. As I see, the main advantage of your proposal (quests before cards and items) would be easier understanding by novice players (i.e. less cases of "why it did not work" surprises and frustration). The corresponding disadvantage would be, for more experienced players, symmetrical frustration of 'I lined up end-of-turn effects perfectly, but game ignored them'.  For e specific example, just as Model of the Spire can hinder library quests, Ornate Deck can make them much easier. Also, anti-synergy of some item/quest combinations are one of the reasons to pick Black Box item.
In general, I push this game in 'give advanced players more tools / interactions even at the expense of harsher learning curve' direction, so I slightly prefer current order. However, your proposal merits further thinking / discussion, I will certainly consider some changes in this area.

As for relative order of items (such as Pendant of Amnesia vs Sun Shield) -- note that you can reorder items arbitrarily between stages. Unfortunately, this does not help in this specific case, since Sun Shield is triggered on start turn, not end turn.An interesting idea wold be to change Pendant of Amnesia to start turn trigger (so you can, for example, put it after Moon Blade but before Sun Shield to achieve both effects on the same turn).

I think it is much better to go in the direction of more tools for advanced players at the cost of learning curve; that is (it seems to me) the game's core identity.  I was aware of the popups on clicking 'more', I just didn't think that's what 'quests' meant in that context; I thought that was for *effects* of quests (like stop the undead uprising's skeletons), not for things that cared about the game state when your turn actually ended, which I thought was when you pushed the button.  I would also have been confused by a card that cared about end-of-turn state (rather than having an 'on end turn' effect) being affected by the 'on end turn' effect of a card further left in the hand.


For the items, I was referring to their quests (which, admittedly, are the same as their activation conditions), but your point still stands.  Thanks for your thorough reply. 

Negative frozen should probably not be spendable.  The problem was that the adventurer difficulty bonus allowed the frozen status to be applied at 0, which seems to mean it just stays frozen forever.  Rather than removing frozen if it decrements to 0 from 1, it may make sense to remove it if it is ever 0 or less.  Also the text isn't grayed out but nothing happens when the card is played (not even 'single use')

Developer

I have fixed the main problem, now  negative frozen will not disable the card.

Regarding the secondary bug of quest applying Frozen 0: do you think this quest will be too hard for non-Adventurer if I change the frozen formula to (difficulty + 2)? The other solution would be to just 'cap' formula: max(difficulty + 1, 1), but I try to make sure that at least difficulty of +-1 affects as many quests as possible.

(1 edit)

Wouldn't frozen 2 make it free for non-Adventurers and very hard for adventurers?  Because even frozen cancels the upgrade effect *and* single use, but odd only cancels upgrade?  Maybe I am misunderstanding how that works.  In any case, the quest is only particularly difficult if playing the upgrade card an integer number of times doesn't result in winning-- in that case you need some sort of special effect to change the amount of frozen it is. I don't think having to play it another time would be particularly hard

Developer

Every time Frozen is played, it is reduced by 1 and the rest of the card is skipped. So 'Frozen 2' card will have to cycle through the deck 2 times before it works. When reaching zero, Frozen disappears. I will improve effect description to make it more clear.
The previous bug was due to the fact that I compared "frozen === 0" rather than "frozen <= 0".

>I don't think having to play it another time would be particularly hard
Ok, changed it to (difficulty + 2)

Sometimes the game freezes when you beat an encounter.  Seems to happen more often on higher level encounters.  Screenshot attached:


(1 edit)

I would post the save, but all copying it to clipboard does is enable me to post the previously copied screenshot directly into the body of a post even though itch doesn't normally let me do that. Saving also doesn't create a save file.

Developer (5 edits)

Game creates autosave before each stage, so after the bug, you can select it and click 'copy to clipboard' button, see screenshot below

i


Also, please look at browser console (Ctrl+Shift+I if you are on Windows/Chrome) for any error messages. If there are, please post them. Looking at screenshot, I am unable to see any obvious source of the bug so far.


By the way, you seem to get quite far while playing at full ascension -- that's impressive. Did you manage to win at this difficulty?

Note: itch ate my photos the first time I wrote this so please forgive the sloppy remakes.  The load restores the resource and item values properly even after the data is temporarily lost because the page is refreshed (the new pics for the first entry obscure that). 

-----

I haven't beaten it at full ascension yet, because of this crash which has happened twice on good runs ^^;  When I said copying and pasting the save file didn't work, what I mean is:


and then I click copy to clipboard, and when I paste it's the image rather than any sort of savetext. If I instead click load, it *sort of* works:But that isn't helpful as far as actually getting the file. It doesn't look like you're storing them in AppData (I'm on Windows) so I'm not sure where a local copy of the save file might be.


Also, after loading if I go to save, nothing happens. Clicking 'save' does not save the game to a new slot.


Popping open the inspect element panel did provide some useful insight:

Unrecognized feature: 'monetization'

Unrecognized feature: 'xr'

Allow attribute will take precedence over 'allowfullscreen'

events.js:115 Event: StartGame

windows.js:362 [Violation] Permissions policy violation: The Clipboard API has been blocked because of a permissions policy applied to the current document. See https://goo.gl/EuHzyv for more details.

savesCopy @ windows.js:362Understand this error

windows.js:362 Uncaught (in promise) NotAllowedError: Failed to execute 'writeText' on 'Clipboard': The Clipboard API has been blocked because of a permissions policy applied to the current document. See https://goo.gl/EuHzyv for more details.

    at HTMLButtonElement.savesCopy (windows.js:362:25)Understand this error

events.js:115 Event: GameLoaded

ui_base.js:618 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'tags')

    at ui_base.js:618:80

    at Array.flatMap (<anonymous>)

    at getBountyTags (ui_base.js:618:53)

    at ui_base.js:655:20

    at Array.map (<anonymous>)

    at makeEncounterButtons (ui_base.js:654:55)

    at stageFinishedHandler (ui.js:538:3)

    at events.js:120:36Understand this error

utils.js:161 storage save: Converting circular structure to JSON

    --> starting at object with constructor 'EffectInstance'

    |     property 'value' -> object with constructor 'QuestDifficulty'

    --- property 'effect' closes the circle TypeError: Converting circular structure to JSON

    --> starting at object with constructor 'EffectInstance'

    |     property 'value' -> object with constructor 'QuestDifficulty'

    --- property 'effect' closes the circle

    at JSON.stringify (<anonymous>)

    at Object.save (https://html-classic.itch.zone/html/14011901/utils.js:160:50)

    at HTMLButtonElement.savesSave (https://html-classic.itch.zone/html/14011901/windows.js:349:13)

Which may have some helpful info in the last part regarding the freezing the game bug, and also is helpful in the first part to me because I bet I need to enable permissions for the clipboard somewhere.  Once I figure that out I will post a save.

Looks like writing to the clipboard should have already been allowed with a prompt, and changing it to always allowed didn't let the site write to it.  Also, on further investigation, querying with temporaryvariable=navigator.permissions.query({ name: "clipboard-write" }) in the inspector indicates the permission is in-fact still denied.  I am not sure what to do about that; I will try again tomorrow.

Developer (1 edit)

> It doesn't look like you're storing them in AppData
Saves are stored in browser's local storage (in Chrome dev tools panel, select Application tab, then 'Local Storage' from the left menu).

It seems that the bug may be happening during end-stage autosave and/or following attempts to load that broken save.

GDJS-internal-player-uuid 3599038e-a73f-4d08-8fbf-cb825660c3a6
account [["rating","_id","username","usernameCount","isGuest","completedTutorial","premium","email","emailVerified","receiveNewsletterEmails","receiveMajorReleaseEmails","gold","claimedMissionIds","knownItems","purchasedItems","equippedBackground","equippedHUD","dailyMissions","createdAt","updatedAt","__v","bountyRun","campaignRun","currentRun","missionsRefreshedAt","stats","a|0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P","Slugger","Carrier","Freighter","Anomaly","StormChaser","a|R|S|T|U|V","battles","rank","rankUpdatedAt","a|0|X|Y|Z","n|5h","n|9","n|2Z","2025-05-12T21:33:39.058Z","o|a|b|c|d|e","n|5e","n|0","2025-05-12T21:33:39.063Z","o|a|g|h|d|i","2025-05-12T21:33:39.068Z","o|a|g|h|d|k","2025-05-12T21:33:39.073Z","o|a|g|h|d|m","2025-05-12T21:33:39.078Z","o|a|g|h|d|o","o|W|f|j|l|n|p","68226933b6098f36f550de8b","Guest Player","n|4B","b|T","b|F","guest+Q6g4-K24VTEz@ironanchorgames.com","n|A","401","301","101","a|y|z|10","BlasterCannon","SteelHull","SpareParts","FlameTosser","Janitor","ChargeCapacitor","SlugCannon","TargetingSystem","ModularHull","IonDrive","DampenerRounds","GalvanizedPlate","FlightDeck","IonBlaster","ReactivePlating","RebelHull","AluminumHull","RocketThruster","HeavyRounds","SupplyCrate","IncendiaryRounds","MagneticRounds","FuelTank","SupplyBeacon","AutoTurret","FuelPump","Hardpoint","Synthesizer","UpgradeKit","FueledWing","Officer","TransporterPad","StainlessSteelHull","Pilot","TractorBeam","SplitterRounds","a|12|13|14|15|16|17|18|19|1A|1B|1C|1D|1E|1F|1G|1H|1I|1J|1K|1L|1M|1N|1O|1P|1Q|1R|1S|1T|1U|1V|1W|1X|1Y|1Z|1a|1b","Background1","HUD1","a|1d|1e","id","current","claimed","a|1g|1h|1i|1","402","n|4","68226933b6098f36f550de93","o|1j|1k|1l|v|1m","408","n|4J","68226933b6098f36f550de94","o|1j|1o|1p|v|1q","410","68226933b6098f36f550de95","o|1j|1s|h|v|1t","n|1","68226933b6098f36f550de96","o|1j|y|1v|u|1w","404","68226933b6098f36f550de97","o|1j|1y|h|v|1z","a|1n|1r|1u|1x|20","2025-05-12T21:33:39.040Z","2025-05-12T21:53:16.107Z","heroes","battlesPlayed","battlesWon","damageDealt","projectilesFired","versusVictories","a|24|25|26|27|28|29|1","admiral","mortar-master","steel-forger","contraband-runner","space-trucker","tide-bringer","legion-overseer","assassin","merchant","chaotic-researcher","a|2B|2C|2D|2E|2F|2G|2H|2I|2J|2K","a|29","o|2M|h","o|2L|2N|2N|2N|2N|2N|2N|2N|2N|2N|2N","n|FZ","n|2R","68226933b6098f36f550de98","o|2A|2O|c|1l|2P|2Q|h|2R","o|Q|q|r|s|t|u|u|v|w|v|v|v|x|11|1c|1f|1d|1e|21|22|23|h||||o|2S"],"2T"]
achievements {"tutorial":true,"rewardsTutorial":true,"intro":true,"warriorHalfgame":true,"mageHalfgame":true,"rogueHalfgame":true,"priestHalfgame":true,"largeDeck":true,"upgradeCard":true,"winGame":true,"winGameWithQuests":true,"winWithClockwork":true,"winWithPoison":true,"winWithLuck":true,"winWithAmplified":false,"winWithZeroGold":false,"winWithPrecious":false,"winWith6Heroes":true,"winHpLowHp":false,"winWithAllHeroes":false,"tutorialOpt":false,"gold":false,"maxHP":false,"deckLarge":false,"piety":false,"precious":false,"clockwork":true,"winPoisinedAfraid":false,"winConfused":false,"winTurn1":false,"winHp1":false,"winZeroCost":false,"ascension1":false,"ascensionMax":false,"itemsZero":false,"winWithMalus":false,"questsCircus":false,"questsHome":false,"questsLibrary":true,"questsFarm":false,"questsTemple":false,"questsBounty":false,"questsStadium":false,"questsCastle":false,"questsSecluded":false,"questsTavern":false,"questsVista":false,"questsArt":false,"questsBandit":false,"itemsRing":false,"itemsCoin":false,"itemsMask":false,"itemsAltar":false,"immunities":false,"itemsTimeOfDay":true,"itemsPoison":true,"itemsVitVamp":false,"itemsMove":true,"itemsDefence":false,"itemsForceEnd":false}
aps:e32f1423-28bc-43ed-8ab0-5ae6b4449cf8:deviceSignal/sua {"architecture":"x86","bitness":"64","mobile":0,"model":"","source":2,"platform":{"brand":"Windows","version":["10","0","0"]},"browsers":[{"brand":"Google Chrome","version":["137","0","7151","55"]},{"brand":"Chromium","version":["137","0","7151","55"]},{"brand":"Not/A)Brand","version":["24","0","0","0"]}]}
apstagCxMEnabled 1
autosave {"version":"v0.21.0","seed":[-632432178,-116391453,-2059522168,1959182413],"heroType":"watchmaker","hero":{"maximum":{"hp":86,"mp":19,"stamina":7,"will":14},"current":{"hp":85,"mp":19,"stamina":6,"will":2,"gold":98},"status":{"intellect":4,"vampiric":7,"luck":18,"sorcery":3,"fatigue":11},"items":["bloodChalice","blowgun","mesmerizingDruse","ziegenhainer","crookedDice","blankPaper","causticEdge","clover","windingKey","chain","caltrops","bagOfCoins","absorbingDruse","sackOfGrain","fortuneCookie","wizardStaff","notebook","bookmarkedTome","sandals","porcelainDove","clayMold"],"deck":[{"name":"movingGears","cost":{"mp":1},"effects":[["moveCard",["Cycle","",["CardsPlayedCount",""],["left","right"]],{}],["persist",5,{}]],"endTurn":[["deltaEffectConnected",1,{"effect":"clockwork","connector":"gear"}]]},{"name":"movingGears","cost":{"mp":1},"effects":[["moveCard",["Cycle","",["CardsPlayedCount",""],["left","right"]],{}],["persist",5,{}]],"endTurn":[["deltaEffectConnected",1,{"effect":"clockwork","connector":"gear"}]]},{"name":"tinker","cost":{"mp":1},"effects":[["mana",["ConnectedCardEffect","ceil",0.4,"clockwork","gear"],{}]]},{"name":"tinker","cost":{"mp":1},"effects":[["mana",["ConnectedCardEffect","ceil",0.4,"clockwork","gear"],{}]]},{"name":"toySoldier","cost":{"mp":2},"effects":[["clockwork",4,{}],["persist",5,{}]],"endTurn":[["melee",["CardEffect","",1,"clockwork"],{"sound":"sword"}],["deltaEffectClamped",-1,{"effect":"clockwork"}]]},{"name":"toySoldier","cost":{"mp":2},"effects":[["evasionHero",1,{}],["clockwork",4,{}],["persist",5,{}]],"endTurn":[["melee",["CardEffect","",1,"clockwork"],{"sound":"sword"}],["deltaEffectClamped",-1,{"effect":"clockwork"}]]},{"name":"nutsAndBolts","cost":{"mp":1},"effects":[["defendHero",["CardsCount","",1,"hand","effect","clockwork"],{}]]},{"name":"nutsAndBolts","cost":{"mp":1},"stashed":true,"effects":[["defendHero",["CardsCount","",1,"hand","effect","clockwork"],{}]]},{"name":"detoxify","cost":{"hp":1},"stashed":true,"effects":[["clearStatusHero","poisoned",{}]]},{"name":"inspiration","cost":{"mp":2},"upgraded":1,"effects":[["intellect",1,{}],["exhaust",2,{}]]},{"name":"movingGears","cost":{"mp":1},"effects":[["moveCard",["Cycle","",["CardsPlayedCount",""],["left","right"]],{}],["persist",5,{}]],"endTurn":[["deltaEffectConnected",1,{"effect":"clockwork","connector":"gear"}]]},{"name":"echo","cost":{"mp":1},"upgraded":2,"effects":[["playDiscarded",1,{}]]},{"name":"fountainOfWonder","cost":{"mp":2},"effects":[["sorcery",1,{}]]},{"name":"feastOnFlesh","cost":{"hp":5},"upgraded":2,"effects":[["vampiricHero",2,{}],["melee",["PositiveStatus","",1,"vampiric",5],{}],["exhaust",2,{}]],"kill":[["maxHp",["PositiveStatus","",1,"vampiric",0],{}]]},{"name":"grapplingHook","cost":{},"upgraded":1,"effects":[["ensnare",1,{}],["moveTo",["MonsterPos","",0],{}]]},{"name":"movingGears","cost":{"mp":1},"effects":[["moveCard",["Cycle","",["CardsPlayedCount",""],["left","right"]],{}],["persist",5,{}]],"endTurn":[["deltaEffectConnected",1,{"effect":"clockwork","connector":"gear"}]]},{"name":"forgeSword","cost":{"hp":1,"mp":1},"upgraded":2,"effects":[["forgeSword",["MaxDevotion","",3],{"card":"enchantedSword"}],["exhaust",1,{}]]},{"name":"mechanicalHeart","cost":{"hp":1},"effects":[["clockwork",1,{}],["persist",5,{}]],"endTurn":[["healHero",["CardEffect","",1,"clockwork"],{}],["deltaEffectClamped",-1,{"effect":"clockwork"}]]},{"name":"pray","cost":{"will":1},"upgraded":1,"effects":[["piety",2,{}],["drawCards",1,{}],["persist",4,{}]]},{"name":"secondWind","cost":{"hp":1},"upgraded":3,"effects":[["drawCards",3,{},["hand","le",4,{}]],["fatigue",-2,{}]]},{"name":"mutate","cost":{"hp":2},"effects":[["maxAll",["RandomInRange","",-1,1,{}],{}],["exhaust",3,{}]]},{"name":"miasma","cost":{"mp":5},"effects":[["poisonAll",5,{}],["poisonHero",3,{}]]},{"name":"feastOnFlesh","cost":{"hp":5},"upgraded":1,"effects":[["vampiricHero",1,{}],["melee",["PositiveStatus","",1,"vampiric",5],{}],["exhaust",2,{}]],"kill":[["maxHp",["PositiveStatus","",1,"vampiric",0],{}]]}],"maxStashedCards":2,"immunity":{"vitality":true},"cardRemoveCost":
guest-email guest+Q6g4-K24VTEz@ironanchorgames.com
last-battle-id 68226dddb6098f36f550eddb

pelagium/client_ {"/sessionId":true,"/orders":true}
pelagium/client_/orders {"turn":65,"orders":[{"type":"move","unit":680,"from_x":24,"from_y":17,"to_x":25,"to_y":18},{"type":"move","unit":519,"from_x":23,"from_y":16,"to_x":25,"to_y":17},{"type":"move","unit":594,"from_x":23,"from_y":15,"to_x":23,"to_y":17},{"type":"move","unit":455,"from_x":10,"from_y":17,"to_x":10,"to_y":18},{"type":"move","unit":643,"from_x":11,"from_y":18,"to_x":11,"to_y":19},{"type":"move","unit":644,"from_x":11,"from_y":17,"to_x":11,"to_y":18},{"type":"move","unit":618,"from_x":12,"from_y":18,"to_x":12,"to_y":19},{"type":"move","unit":621,"from_x":8,"from_y":18,"to_x":8,"to_y":19},{"type":"move","unit":668,"from_x":9,"from_y":16,"to_x":8,"to_y":18},{"type":"move","unit":667,"from_x":9,"from_y":15,"to_x":7,"to_y":16},{"type":"move","unit":669,"from_x":8,"from_y":15,"to_x":8,"to_y":16},{"type":"move","unit":693,"from_x":11,"from_y":13,"to_x":10,"to_y":15},{"type":"move","unit":654,"from_x":12,"from_y":14,"to_x":11,"to_y":15},{"type":"move","unit":719,"from_x":7,"from_y":12,"to_x":7,"to_y":13},{"type":"move","unit":679,"from_x":14,"from_y":11,"to_x":12,"to_y":13},{"type":"move","unit":718,"from_x":13,"from_y":10,"to_x":11,"to_y":11},{"type":"move","unit":691,"from_x":17,"from_y":9,"to_x":15,"to_y":11},{"type":"move","unit":717,"from_x":12,"from_y":7,"to_x":15,"to_y":8},{"type":"move","unit":716,"from_x":23,"from_y":5,"to_x":23,"to_y":6},{"type":"move","unit":692,"from_x":23,"from_y":7,"to_x":23,"to_y":8},{"type":"move","unit":666,"from_x":22,"from_y":9,"to_x":21,"to_y":9},{"type":"move","unit":642,"from_x":21,"from_y":10,"to_x":22,"to_y":11},{"type":"move","unit":619,"from_x":22,"from_y":12,"to_x":23,"to_y":12},{"type":"move","unit":704,"from_x":23,"from_y":14,"to_x":23,"to_y":16},{"type":"move","unit":98,"from_x":18,"from_y":16,"to_x":19,"to_y":16},{"type":"move","unit":670,"from_x":18,"from_y":17,"to_x":20,"to_y":18},{"type":"move","unit":421,"from_x":17,"from_y":16,"to_x":18,"to_y":17},{"type":"move","unit":573,"from_x":19,"from_y":18,"to_x":19,"to_y":17},{"type":"move","unit":622,"from_x":21,"from_y":16,"to_x":21,"to_y":17},{"type":"move","unit":544,"from_x":22,"from_y":17,"to_x":20,"to_y":17},{"type":"move","unit":464,"from_x":22,"from_y":15,"to_x":22,"to_y":16},{"type":"move","unit":694,"from_x":19,"from_y":14,"to_x":18,"to_y":15},{"type":"move","unit":720,"from_x":18,"from_y":13,"to_x":17,"to_y":14},{"type":"move","unit":258,"from_x":16,"from_y":16,"to_x":17,"to_y":16}]}
pelagium/client_/sessionId null
poki_events_user_id 2e2cc2f1-0b37-4296-922f-439430177e67
poki_pbf 1
refreshToken eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2ODIyNjkzM2I2MDk4ZjM2ZjU1MGRlOGIiLCJ1c2VybmFtZSI6Ikd1ZXN0IFBsYXllciIsImlhdCI6MTc0NzA4NTYxOSwiZXhwIjoxNzQ4Mjk1MjE5fQ.ESLMzEmdX_2A0qsUDqn5s-2SLttlN8yQZGLFrLxIMWg
settings {"ascensions":["removeCost","upgradeCost","rerollCost","itemChoices","cardChoices","maxStashedCards","initialDamage","minLevelDecrease","questDifficulty","addSmallMonsters","cardCostAffinity","moreNegativeEncounters","maxCardUpgrades","fatiguePerTurn","enemyHpCoeff"],"isGlobalMenuOpen":true,"volumeSfx":5,"volumeMusic":4,"musicTrack":1,"hintInterval":5,"hintHandKeyOnly":false,"hintKey":"ctrlKey","keyboard":false,"singleClickPlay":false,"showTitleCardsHand":true,"showTitleMonstersField":true,"compactItems":false,"showFullCost":false,"unlockAll":false}
time-slider 0.9

Thanks, I should have thought of that >.<

Developer

Just a note for other forum readers, we further discussed this bug on discord and it was fixed on 0.22 release

I found that the game can't continue without restarting if you get into a situation where there are no enemies that can deal damage, and you can't play any cards, you can declare a salemate to end the level without getting any rewards. 

Developer

What was the reason for inability to play cards? Did you run out of resource required to pay?

Generally, I consider such situation a loss. The reason game does not force player to lose is that it is hard to detect whether he stalls intentionally or is really unable to play cards.

Maybe I could add some kind of “impending doom” counter, which increases by 1 when player ends turn without any change. But it seems that for player pressing a single “refresh / restart” button is actually more convenient than pressing “end turn” many times, waiting for counter to reach the threshold?

As for making a such situation a “draw” rather than a player’s loss: since player has already run out of resource, starting next battle without additional rewards will probably result in a loss anyway?

Maybe you have example of game where the player has a chance to successfully continue after a stalemate. If so, please tell about it.

I took this image when I got softlocked, and I forgot I could play burning cards (not that it would help), and I had no willpower to play any cards that could damage the chest.

Also, the game The Ouroboros King has a stalemate mechanic, where if nobody can make a move, you get to continue, but you don't get a reward.


Developer (1 edit)

Yes, it was as I suspected. The problem is: suppose game would send you to the next stage while skipping rewards. You will start next stage with zero willpower and die, so it does not seem helpful.

Theoretically, there could be much more rare situations where stalemate is not caused by lack of resources. For example, it may happen that the only enemy left in Lava Pit encounter is Salmander Flameraiser, but all attack cards are already exhausted by it. So neither side can deal damage despite hero being able to play cards.

Still, detecting such a situation is quite tricky. How should the game know if the player is stalemated vs intentionally stalling? I will think about this problem some more. If you have specific suggestions, please share them.

This might not be a bug but is the defeat a lich quest supposed to summon a lich every turn?

Developer

You are correct, it is a bug. Fixed to summon lich only once, fix will be available in the next update. Thanks for paying attention :)

maybe a bug:

  • flimsy shield sometimes defends outside of turn 1

  • self-damage of burning cards is affected by your own critical

  • a bomb dealing “melee all” damage heals you if you are vampiric

  • reloading victory screen saves sometimes gives different quests

bugs:

  • leader card preview when using telescope shows a monster with a one-word-name matching only the first word of the leader, or nothing if no such match (e.g. Shadow Dragon shows Shadow, Eye of Regret shows nothing)

  • I think evasion deals with falling damage as well as it deals with melee, so it should be marked “works ineffectively” in the infos

  • ice shards in general often just don’t seem to exhaust

  • game freezes when discarded swindle plays ice shard:

    save file
     {"version":"v0.27.0","seed":[458343701,-2037583405,-238559187,1259306229],"heroType":"revenant","hero":{"maximum":{"hp":57,"mp":53,"stamina":10,"will":7},"current":{"hp":7,"mp":31,"stamina":10,"will":6,"gold":24},"status":{"strength":1,"fatigue":11,"defence":6},"immunity":{"poisoned":true},"items":["kaleidoscope","paupersBowl","banditsMask","blowgun","meatRation","crookedDice","jadeRing","bronzeMirror","chainMail","bunting","rubyRing","sunShield","bountyGoblins","paradoxicalFigure","clayMold","fireproofGloves","moonBlade","tomeOfNovelties","backpack","flameward"],"deck":[{"name":"lichform","cost":{"hp":1,"mp":7},"upgraded":6,"effects":[["upgradeSelf",1,{},["hpHero","le",7,{}]],["hpSet",7,{}],["manaSet",["MaxResource","",1,"mp"],{}],["exhaust",1,{}]]},{"name":"assimilate","cost":{"hp":1,"will":1},"upgraded":6,"effects":[["maxResFromCardCost",["TotalCostAllResourcesUpto","",1,7],{}],["exhaustAndRemove",1,{}],["exhaust",1,{}]]},{"name":"syphonSoul","cost":{"mp":10},"upgraded":6,"stashed":true,"effects":[["shoot",78,{}]],"kill":[["deltaThisCost",1,{}],["increaseEffect",14,{"effect":"shoot"}],["preserveSelf",null,{}]]},{"name":"syphonSoul","cost":{"mp":9},"upgraded":6,"stashed":true,"effects":[["shoot",68,{}]],"kill":[["deltaThisCost",1,{}],["increaseEffect",14,{"effect":"shoot"}],["preserveSelf",null,{}]]},{"name":"drainingTouch","cost":{"hp":1,"mp":1},"upgraded":1,"effects":[["vampiricHero",1,{}],["melee",6,{}]]},{"name":"honorTheFallen","cost":{"hp":1},"effects":[["discard",1,{}],["defendHero",["CardsCount","ceil",0.5,"discardPile",null,null,0],{}],["persist",null,{},["cardsToLeft","gt",0,{}]]]},{"name":"honorTheFallen","cost":{"hp":1},"effects":[["discard",1,{}],["defendHero",["CardsCount","ceil",0.5,"discardPile",null,null,0],{}],["persist",null,{},["cardsToLeft","gt",0,{}]]]},{"name":"honorTheFallen","cost":{"hp":1},"effects":[["discard",1,{}],["defendHero",["CardsCount","ceil",0.5,"discardPile",null,null,0],{}],["persist",null,{},["cardsToLeft","gt",0,{}]]]},{"name":"weightlifting","cost":{"hp":1,"stamina":2},"effects":[["exhaust",1,{}],["maxHp",2,{}]]},{"name":"alchemy","cost":{"mp":6},"upgraded":1,"effects":[["gold",["AvailableResource","",1,"mp"],{}],["exhaust",2,{}]]},{"name":"swindle","cost":{},"upgraded":2,"effects":[["playEffects",["HandPos","",0],{}],["discard",1,{}]],"discarded":[["playEffects",["HandPos","",0],{}]]},{"name":"syphonSoul","cost":{"mp":13},"upgraded":6,"effects":[["shoot",120,{}]],"kill":[["deltaThisCost",1,{}],["increaseEffect",14,{"effect":"shoot"}],["preserveSelf",null,{}]]},{"name":"forgeSword","cost":{"hp":1,"mp":1},"upgraded":1,"effects":[["forgeSword",["MaxDevotion","",2],{"card":"enchantedSword"}],["exhaust",1,{}]]}],"maxStashedCards":3,"cardRemoveCost":4,"cardUpgradeCost":46},"stage":16,"ascensions":["removeCost","upgradeCost","rerollCost","itemChoices","cardChoices","maxStashedCards","initialDamage","minLevelDecrease","questDifficulty","addSmallMonsters","cardCostAffinity","cardOtherAffinity","moreNegativeEncounters","maxCardUpgrades","fatiguePerTurn","enemyHpCoeff"],"rewards":{"rerollCosts":{"cards":2,"items":8,"nextQuest":6},"amounts":{"gold":30,"cards":2,"items":2,"chances":{"rare":1.2,"upgraded":0.66},"taggedCards":{"potion":1},"taggedItems":{}}},"encounters":[6,7,12,16,41,45,56,63,69,74,76,82,99,100,106,122],"quests":[{"stage":2,"quest":"Join as apprentice beggar","completed":true},{"stage":3,"quest":"Take bounty for goblins","completed":true},{"stage":4,"quest":"Practice lockpicking","completed":false},{"stage":5,"quest":"Use every chance","completed":true},{"stage":8,"quest":"Admire beautiful moonlight","completed":false},{"stage":9,"quest":"Perform with kettlebells","completed":true},{"stage":10,"quest":"Enjoy a bright sunny day","completed":true},{"stage":11,"quest":"Mold a lifelike sculpture","completed":true},{"stage":14,"quest":"Get a glimpse of a prophesy","completed":false},{"stage":15,"quest":"Repack your belongings","completed":true},{"stage":16,"quest":"Carve a perfect ice sculpture","completed":false}],"encounter":[122,"iceDragon",["iceDragon"],["defence positive","spikes negative"]],"ts":"2025-11-11T17:25:08.390Z"}
    

    steps: second chance, every card but honors and swindle, end turn, rightmost honor twice

  • quicksafe forgets recent meat ration (I think this bug happens with all “on pickup” items):

    save file
     {"version":"v0.27.0","seed":[-614709563,1120257466,-819219908,2128568047],"heroType":"revenant","hero":{"maximum":{"hp":9,"mp":15,"stamina":2,"will":5},"current":{"hp":7,"mp":14,"stamina":2,"will":2,"gold":0},"status":{"clairvoyance":4,"fatigue":6,"defence":1},"immunity":{},"items":["aceOfClubs","cezve","paupersBowl","thickTome","crystalOrb","meatRation"],"deck":[{"name":"lichform","cost":{"hp":1,"mp":7},"upgraded":4,"effects":[["upgradeSelf",1,{},["hpHero","le",5,{}]],["hpSet",5,{}],["manaSet",["MaxResource","",1,"mp"],{}],["exhaust",1,{}]]},{"name":"assimilate","cost":{"hp":1,"mp":6,"will":1},"effects":[["maxResFromCardCost",["TotalCostAllResourcesUpto","",1,1],{}],["exhaustAndRemove",1,{}],["exhaust",1,{}]]},{"name":"syphonSoul","cost":{"mp":3},"upgraded":2,"effects":[["shoot",8,{}]],"kill":[["deltaThisCost",1,{}],["increaseEffect",6,{"effect":"shoot"}],["preserveSelf",null,{}]]},{"name":"syphonSoul","cost":{"mp":2},"upgraded":1,"effects":[["shoot",4,{}]],"kill":[["deltaThisCost",1,{}],["increaseEffect",4,{"effect":"shoot"}],["preserveSelf",null,{}]]},{"name":"drainingTouch","cost":{"hp":1,"mp":1},"effects":[["vampiricHero",1,{}],["melee",5,{}]]},{"name":"honorTheFallen","cost":{"hp":1},"effects":[["discard",1,{}],["defendHero",["CardsCount","ceil",0.5,"discardPile",null,null,0],{}],["persist",null,{},["cardsToLeft","gt",0,{}]]]},{"name":"honorTheFallen","cost":{"hp":1},"effects":[["discard",1,{}],["defendHero",["CardsCount","ceil",0.5,"discardPile",null,null,0],{}],["persist",null,{},["cardsToLeft","gt",0,{}]]]},{"name":"honorTheFallen","cost":{"hp":1},"effects":[["discard",1,{}],["defendHero",["CardsCount","ceil",0.5,"discardPile",null,null,0],{}],["persist",null,{},["cardsToLeft","gt",0,{}]]]},{"name":"runeOfHeartiness","cost":{"mp":2,"stamina":3},"stashed":true,"effects":[["insertEffectPermanentlyHand",1,{"effects":[["fatigue",-2,{}]]}],["singleUse",null,{}]]},{"name":"borrowTime","cost":{"mp":5,"will":1},"effects":[["postpone",null,{"effects":[["discard",["HandSlice","",-1],{}]]}],["drawCards",8,{}]]}],"maxStashedCards":2,"cardRemoveCost":4,"cardUpgradeCost":10},"stage":5,"ascensions":["removeCost","upgradeCost","rerollCost","itemChoices","cardChoices","maxStashedCards","initialDamage","minLevelDecrease","questDifficulty","addSmallMonsters","cardCostAffinity","cardOtherAffinity","moreNegativeEncounters","maxCardUpgrades","fatiguePerTurn","enemyHpCoeff"],"rewards":{"rerollCosts":{"cards":3,"items":2,"nextQuest":2},"amounts":{"gold":8,"cards":1,"items":2,"chances":{"rare":0.15,"upgraded":0.22000000000000003},"taggedCards":{},"taggedItems":{}}},"encounters":[6,9,10,27,30],"quests":[{"stage":2,"quest":"Dance till you drop","completed":true},{"stage":3,"quest":"Join as apprentice beggar","completed":true},{"stage":4,"quest":"Get a glimpse of a prophesy","completed":true},{"stage":5,"quest":"Bet against the house","completed":false}],"encounter":[30,"ghost",["ghost","bones","shadow"],[]],"ts":"2025-11-11T22:23:37.798Z"}
    
Developer

Sorry for late reply, day job consumed too much of my time. Thanks for detailed reports.

flimsy shield sometimes defends outside of turn 1

This one is a bit funny. Due to a typo, Flimsy Shield counted enemy’s turn instead of player’s one, so it gave defence when the target enemy happened to be just-summoned. Fixed.

self-damage of burning cards is affected by your own critical a bomb dealing “melee all” damage heals you if you are vampiric I think evasion deals with falling damage as well as it deals with melee

I have found few more instances like this, in particular falling damage also uses hero’s critical. Will fix, but it requires some work, so maybe next release.

reloading victory screen saves sometimes gives different quests

So far, I failed to reproduce that. If you will be able to catch more precise circumstances, please tell.

Telescope shows a monster with a one-word-name

Good catch, fixed.

ice shards in general often just don’t seem to exhaust

This was due to the effect ordering: “Force end turn” ignores the rest of the card. Fixed.

game freezes when discarded swindle plays ice shard:

Fixed

quicksafe forgets recent meat ration

Fixed

All fixes will be available in the next release. Before release, I will still try to search for a mixed quests problem and do more testing for a few days.

No problem, thanks for all the updates btw.

I found a quest bug reproduction:

  • new game of templar on seed 11, all ascensions
  • use maces left to right
  • go to lava pit, skip rewards
  • use shield, mace, pray four times, shield, tithe, mace
  • quests are “party until dawn” and “help with beekeeping”
  • load autosave
  • quests are “party until dawn” and “study animal behaviour”

 

here’s another freeze, happens when you upgrade Buckle Up with a rune.

save file
{"version":"v0.27.0","seed":[-1246761326,-846285917,221819153,1381216588],"heroType":"revenant","hero":{"maximum":{"hp":51,"mp":55,"stamina":42,"will":45},"current":{"hp":51,"mp":41,"stamina":42,"will":44,"gold":1},"status":{"fatigue":10,"defence":8},"immunity":{},"items":["emptyLocket","bearTrap","notebook","flameward","porcelainDove","shimmeringRobe","sapphireRing","crookedDice","caduceus","dragonLance","chisel","broom","fireproofGloves","charmingTrap"],"deck":[{"name":"lichform","cost":{"hp":1,"mp":7},"upgraded":6,"stashed":true,"effects":[["upgradeSelf",1,{},["hpHero","le",7,{}]],["hpSet",7,{}],["manaSet",["MaxResource","",1,"mp"],{}],["exhaust",1,{}]]},{"name":"assimilate","cost":{"hp":1,"mp":6,"will":1},"stashed":true,"effects":[["maxResFromCardCost",["TotalCostAllResourcesUpto","",1,1],{}],["exhaustAndRemove",1,{}],["exhaust",1,{}]]},{"name":"syphonSoul","cost":{"mp":8},"upgraded":6,"effects":[["shoot",48,{}]],"kill":[["deltaThisCost",1,{}],["increaseEffect",14,{"effect":"shoot"}],["preserveSelf",null,{}]]},{"name":"syphonSoul","cost":{"mp":6},"upgraded":6,"effects":[["shoot",40,{}]],"kill":[["deltaThisCost",1,{}],["increaseEffect",14,{"effect":"shoot"}],["preserveSelf",null,{}]]},{"name":"drainingTouch","cost":{"hp":1,"mp":1},"effects":[["vampiricHero",1,{}],["melee",5,{}]]},{"name":"buckleUp","cost":{"hp":1},"effects":[["defendHero",2,{}],["postpone",null,{"effects":[["defendHero",8,{}]]}]]},{"name":"plantHerbs","cost":{"mp":2,"will":1},"upgraded":1,"effects":[["addToDrawPileRandomLuck",["RandomInRange","",2,4,{}],{"tag":"herb"}],["exhaust",3,{}]]},{"name":"pause","cost":{},"effects":[["drawCards",1,{}],["fatigue",-2,{},["amplifiedHero","eq",0,{}]]]},{"name":"runeOfPerfection","cost":{"hp":1,"mp":1,"stamina":1,"will":1},"upgraded":1,"effects":[["upgrade",1,{}],["singleUse",null,{}]]}],"maxStashedCards":2,"cardRemoveCost":6,"cardUpgradeCost":26},"stage":13,"ascensions":["removeCost","upgradeCost","rerollCost","itemChoices","cardChoices","maxStashedCards","initialDamage","minLevelDecrease","questDifficulty","addSmallMonsters","cardCostAffinity","cardOtherAffinity","moreNegativeEncounters","maxCardUpgrades","fatiguePerTurn","enemyHpCoeff"],"rewards":{"rerollCosts":{"cards":5,"items":5,"nextQuest":2},"amounts":{"gold":24,"cards":2,"items":2,"chances":{"rare":0.55,"upgraded":0.54},"taggedCards":{"rune":1},"taggedItems":{}}},"encounters":[8,10,18,20,28,37,46,56,59,63,80,90,101],"quests":[{"stage":4,"quest":"Help with sowing","completed":true},{"stage":6,"quest":"Watch a rainbow","completed":true},{"stage":7,"quest":"Use every chance","completed":true},{"stage":13,"quest":"Take bounty for orcs","completed":false}],"encounter":[101,"goldenDragon",["goldenDragon","barbedChest"],["quest negative"]],"ts":"2025-11-21T22:07:38.443Z"}

(Quickest way is to immediately use second chance.)

Developer

found a quest bug reproduction:

Wow, that was a fun one to debug. The triggering condition was having exactly 5 gold at the end of stage while playing with “Quests are harder” ascension.

There is a quest (“Buy some ink”) where prerequisites depend on difficulty (it requires [difficulty + 5] gold). When loading the game, assignment to quest difficulty was too late, thus incorrectly including this quest into a list of available quests, screwing random selection.

freeze, happens when you upgrade Buckle Up with a rune.

Fixed

Interesting, I guess that explains why the replaced quests seemed so similar sometimes, because it probably selected an adjacent quest in the list.

Developer

Everything in this sub-thread should be fixed in v0.28.

The only exception is bomb vampirism issue, which requires some extensive refactoring, so will be fixed next release.

(1 edit)
  • rune of balance upgrades it’s effect on it’s own, whenever an upgraded version of the card is rendered, and later the card is reloaded. For example, when you look it up in “all cards”, hover over it, then open “all items” and go back to “all cards”. Or when you load this save repeatedly. This probably also happens with lockstep.

    save file
     {"version":"v0.28.0","seed":[-723588594,267345867,-972422929,54182861],"heroType":"mage","hero":{"maximum":{"hp":21,"mp":34,"stamina":9,"will":16},"current":{"hp":21,"mp":34,"stamina":3,"will":16,"gold":213},"status":{"intellect":5,"strength":-1,"toughness":-1,"vitality":2,"fatigue":5,"defence":10},"immunity":{"ensnared":true,"vampiric":true},"items":["tomeOfIceAndFire","wandOfMissiles","sackOfGrain","portableBookcase","toolbox","piggyBank","spidersilkRobe","weirdKey","bountySnakes","elephantFigurine","bountyDragons","notebook","pedestal","wizardStaff","tarball","ziegenhainer","pendantOfLight","peeledFace","kaleidoscope"],"deck":[{"name":"magicMissile","cost":{"mp":1},"effects":[["poison",1,{}],["shoot",2,{}]],"history":[[0,0,1,"acquire",["start"]],[6,2,1,"add Poison",["[magicMissile","[bountySnakes"]]]},{"name":"magicMissile","cost":{"mp":1},"upgraded":1,"effects":[["poison",5,{}],["shoot",3,{}]],"history":[[0,0,1,"acquire",["start"]],[2,0,1,"add Shoot",[]],[2,0,1,"upgrade",["for gold"]],[6,1,1,"add Poison",["[magicMissile","[bountySnakes"]],[6,6,1,"add Poison",["[magicMissile","[bountySnakes"]],[11,4,1,"add Poison",["[magicMissile","[bountySnakes"]],[11,6,1,"add Poison",["[magicMissile","[bountySnakes"]],[11,8,1,"add Poison",["[magicMissile","[bountySnakes"]]]},{"name":"gatherMagic","cost":{"mp":1},"stashed":true,"effects":[["mana",["Linear","",["CardsPlayedCount",""],1,0],{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"gatherMagic","cost":{"mp":1},"stashed":true,"effects":[["mana",["Linear","",["CardsPlayedCount",""],1,0],{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"ivoryTower","cost":{"mp":2},"effects":[["fatigue",-2,{}],["initiative",1,{}],["defendHero",["HandCount","",2,null,0],{}]],"history":[[0,0,1,"acquire",["start"]],[9,7,1,"add Initiative",["[runeOfHaste"]],[13,1,1,"add Fatigue",["[runeOfHeartiness"]]]},{"name":"ivoryTower","cost":{"mp":2},"effects":[["defendHero",["HandCount","",2,null,0],{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"bounce","cost":{"mp":1},"upgraded":1,"effects":[["redirectHero",1,{}],["persist",2,{}]],"history":[[2,0,1,"acquire",["reward"]],[7,7,2,"add Persists",[]],[7,7,1,"upgrade",["for gold"]]]},{"name":"plantHerbs","cost":{"mp":2,"will":1},"effects":[["addToDrawPileRandomLuck",["RandomInRange","",1,3,{}],{"tag":"herb"}],["exhaust",3,{}]],"history":[[7,7,1,"acquire",[]]]},{"name":"riskyTreatment","cost":{"mp":3},"effects":[["healHero",["PositiveStatus","",3,"intellect",0],{}],["healHero",["RandomInRange","",-2,2,{}],{}]],"history":[[10,14,1,"acquire",["reward"]]]},{"name":"preparedNotes","cost":{},"upgraded":6,"effects":[["drawCards",3,{}],["exhaust",7,{}]],"history":[[11,10,1,"acquire",["reward"]],[12,12,1,"modify (Exhausts)",[]],[12,12,1,"upgrade",["for gold"]],[12,12,1,"modify (Exhausts)",[]],[12,12,1,"upgrade",["for gold"]],[12,12,1,"modify (Exhausts)",[]],[12,12,1,"upgrade",["for gold"]],[12,12,1,"modify (Exhausts)",[]],[12,12,1,"upgrade",["for gold"]],[12,12,1,"modify (Exhausts)",[]],[12,12,1,"upgrade",["for gold"]],[12,12,1,"modify (Exhausts)",[]],[12,12,1,"upgrade",["for gold"]]]},{"name":"toxicSpray","cost":{"mp":5},"upgraded":1,"effects":[["poisonAll",["PositiveStatus","",1,"intellect",0],{}],["poisonAll",4,{}]],"history":[[12,12,1,"acquire",["reward"]]]}],"maxStashedCards":2,"cardRemoveCost":8,"cardUpgradeCost":22},"stage":13,"ascensions":["removeCost","upgradeCost","rerollCost","itemChoices","cardChoices","maxStashedCards","initialDamage","minLevelDecrease","questDifficulty","addSmallMonsters","cardCostAffinity","cardOtherAffinity","moreNegativeEncounters","maxCardUpgrades","fatiguePerTurn","enemyHpCoeff"],"rewards":{"rerollCosts":{"cards":4,"items":5,"nextQuest":5},"amounts":{"gold":26,"cards":2,"items":2,"chances":{"rare":0.6,"upgraded":0.5800000000000001},"taggedCards":{"rune":1},"taggedItems":{}}},"encounters":[6,10,12,16,28,50,53,55,59,70,72,78,103],"quests":[{"stage":2,"quest":"Celebrate with fireworks","completed":true},{"stage":3,"quest":"Read many books","completed":true},{"stage":4,"quest":"Make investment","completed":true},{"stage":6,"quest":"Take bounty for snakes","completed":true},{"stage":7,"quest":"Help with sowing","completed":true},{"stage":8,"quest":"Borrow a book","completed":true},{"stage":9,"quest":"Graduate from faculty of Philosophy","completed":true},{"stage":10,"quest":"Practice lockpicking","completed":false},{"stage":11,"quest":"Enjoy a bright sunny day","completed":false},{"stage":12,"quest":"Dance till you drop","completed":true},{"stage":13,"quest":"Collect colored glass beads","completed":true}],"ts":"2025-11-26T21:39:27.572Z"}
    
  • sleight of hand consumes luck

    Same file, curate often doesn’t count the magic missiles towards “pay cost of non-uniquely named”

    save file
     {"version":"v0.28.0","seed":[-1680369459,204631412,-414290070,-1458535102],"heroType":"antiquarian","hero":{"maximum":{"hp":12,"mp":9,"stamina":9,"will":9},"current":{"hp":12,"mp":9,"stamina":9,"will":9,"gold":214},"status":{"vitality":-1,"clairvoyance":26,"luck":7,"fatigue":9,"protected":1,"defence":2},"immunity":{},"items":["aceOfDiamonds","crystalOrb","acupunctureChart","kaleidoscope","blankPaper","woolThread","wandOfMissiles","bountyGoblins","wristWeights","diademOfSuffering","bountyRats","clover","twighlightStar","chainMail","glacialArmor","windingKey","metronome","iceCream","peaPod","worthlessHeirloom","clayMold","hiddenLever"],"deck":[{"name":"magicMissile","cost":{"mp":1},"effects":[["shoot",2,{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"magicMissile","cost":{"mp":1},"effects":[["shoot",2,{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"curate","cost":{"hp":1,"mp":1,"stamina":1,"will":1},"upgraded":1,"effects":[["fullCostToResources",["TotalCostAllResourcesUnique","",4,{}],{}],["payResources",["TotalCostAllResourcesUnique","",null,{"invert":true}],{}]],"history":[[0,0,1,"acquire",["start"]],[13,2,1,"add Reimburse",[]],[13,2,1,"upgrade",["for gold"]]]},{"name":"curate","cost":{"hp":1,"mp":1,"stamina":1,"will":1},"effects":[["fullCostToResources",["TotalCostAllResourcesUnique","",3,{}],{}],["payResources",["TotalCostAllResourcesUnique","",null,{"invert":true}],{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"makeshiftWard","cost":{"hp":1,"mp":1,"stamina":1},"upgraded":5,"effects":[["defendHero",["Linear","",["ItemCounters",""],1,5],{}]],"history":[[0,0,1,"acquire",["start"]],[3,0,1,"add Defend",[]],[3,0,1,"upgrade",["for gold"]],[3,0,1,"add Defend",[]],[3,0,1,"upgrade",["for gold"]],[4,3,1,"add Defend",[]],[4,3,1,"upgrade",["for gold"]],[9,9,1,"add Defend",[]],[9,9,1,"upgrade",["for gold"]],[10,3,1,"add Defend",[]],[10,3,1,"upgrade",["for gold"]]]},{"name":"bargain","cost":{"stamina":3},"effects":[["reduceCosts",["RandomInRange","",1,2,{}],{}],["exhaust",5,{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"curiosity","cost":{"mp":1},"upgraded":1,"effects":[["initiative",1,{}],["discard",1,{}],["drawCards",3,{}],["persist",3,{}]],"history":[[0,0,1,"acquire",["start"]],[10,3,1,"MP cost −1",[]],[10,3,1,"upgrade",["for gold"]],[14,3,1,"add Initiative",["[runeOfHaste"]]]},{"name":"runeOfHaste","cost":{"mp":2,"stamina":3},"effects":[["insertEffectPermanentlyHand",1,{"effects":[["initiative",1,{}]]}],["singleUse",null,{}]],"history":[[14,6,1,"acquire",[]]]},{"name":"sleightOfHand","cost":{"stamina":1},"upgraded":1,"effects":[["drawCards",3,{}]],"history":[[14,0,1,"acquire",["reward"]]]}],"maxStashedCards":2,"cardRemoveCost":6,"cardUpgradeCost":18},"stage":15,"ascensions":["removeCost","upgradeCost","rerollCost","itemChoices","cardChoices","maxStashedCards","initialDamage","minLevelDecrease","questDifficulty","addSmallMonsters","cardCostAffinity","cardOtherAffinity","moreNegativeEncounters","maxCardUpgrades","fatiguePerTurn","enemyHpCoeff"],"rewards":{"rerollCosts":{"cards":2,"items":2,"nextQuest":2},"amounts":{"gold":28,"cards":2,"items":2,"chances":{"rare":0.65,"upgraded":1.12},"taggedCards":{},"taggedItems":{}}},"encounters":[6,10,16,18,28,35,62,63,69,71,77,86,87,90,103],"quests":[{"stage":2,"quest":"Get a glimpse of a prophesy","completed":true},{"stage":3,"quest":"Collect colored glass beads","completed":true},{"stage":5,"quest":"Celebrate with fireworks","completed":true},{"stage":6,"quest":"Take bounty for goblins","completed":true},{"stage":8,"quest":"Take bounty for rats","completed":true},{"stage":9,"quest":"Watch sunrise and sunset","completed":true},{"stage":13,"quest":"Mold a lifelike sculpture","completed":true},{"stage":14,"quest":"Hunt rabbits","completed":true},{"stage":15,"quest":"Enjoy a bright sunny day","completed":false}],"encounter":[103,"deepestOne",["cuttlefish","cuttlefish","cuttlefish","deepOne","deepestOne"],[]],"ts":"2025-11-25T12:41:14.478Z"}
    
  • sword dummy increases the poison multiplier of scalpel melee instead of the constant

    save file
     {"version":"v0.28.0","seed":[-1906113610,-1621937738,259826885,-434507075],"heroType":"plagueDoctor","hero":{"maximum":{"hp":20,"mp":12,"stamina":6,"will":5},"current":{"hp":19,"mp":11,"stamina":6,"will":5,"gold":2},"status":{"fatigue":14,"poisoned":7},"immunity":{},"items":["frayedTome"],"deck":[{"name":"puff","cost":{"mp":1},"effects":[["poison",["Cycle","",["CardsPlayedCount",""],[1,4]],{}],["persist",3,{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"puff","cost":{"mp":1},"effects":[["poison",["Cycle","",["CardsPlayedCount",""],[1,4]],{}],["persist",3,{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"placebo","cost":{"mp":1},"stashed":true,"effects":[["mana",3,{},["poisoned","odd",null,{}]],["mana",1,{},["heroStatus","odd",null,{"status":"poisoned"}]],["poison",-1,{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"placebo","cost":{"mp":1},"upgraded":1,"effects":[["mana",4,{},["poisoned","odd",null,{}]],["mana",2,{},["heroStatus","odd",null,{"status":"poisoned"}]],["poison",-1,{}]],"history":[[0,0,1,"acquire",["start"]],[2,4,1,"modify (MP, MP)",[]],[2,4,1,"upgrade",["for gold"]]]},{"name":"snakeOil","cost":{"hp":1,"mp":2},"effects":[["poisonHero",4,{}],["healHero",6,{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"inhaleFumes","cost":{"hp":1,"mp":1},"effects":[["drawCards",["Cycle","",["CardsPlayedCount",""],[2,3,4]],{}],["poisonHero",["Linear","",["CardsDrawnCount",""],1,0],{}]],"history":[[0,0,1,"acquire",["start"]]]},{"name":"scalpel","cost":{"mp":1},"effects":[["poisonHero",["MonsterStatus","ceil",0.2,"poisoned",0],{}],["meleeFront",["MonsterStatus","",1,"poisoned",1],{"visual":"slash"}]],"history":[[0,0,1,"acquire",["start"]]]}],"maxStashedCards":2,"cardRemoveCost":4,"cardUpgradeCost":6},"stage":3,"ascensions":["removeCost","upgradeCost","rerollCost","itemChoices","cardChoices","maxStashedCards","initialDamage","minLevelDecrease","questDifficulty","addSmallMonsters","cardCostAffinity","cardOtherAffinity","moreNegativeEncounters","maxCardUpgrades","fatiguePerTurn","enemyHpCoeff"],"rewards":{"rerollCosts":{"cards":2,"items":2,"nextQuest":2},"amounts":{"gold":4,"cards":2,"items":2,"chances":{"rare":0.05,"upgraded":0.64},"taggedCards":{},"taggedItems":{"mask":1}}},"encounters":[3,5,6],"quests":[{"stage":3,"quest":"Visit training grounds","completed":false}],"encounter":[6,"piranha",["piranha","piranha","piranha"],["potion positive"]],"ts":"2025-11-29T23:30:21.873Z"}
    
Developer (2 edits)

rune of balance upgrades it’s effect on it’s own … also happens with lockstep.

This bug affected all cards with ‘cycle by cards played’ effect. Fixed.

sleight of hand consumes luck

The bug was actually in the Bargain card. I forgot to pass ‘imitate’ flag, so Bargain spent luck while trying to preview number of cards it would affect.

curate often doesn’t count the magic missiles

Fixed

sword dummy increases the poison multiplier of scalpel melee instead of the constant

This interaction was left intentionally as a way to empower weak / rare weapons like Reforged Sword and Scalpel. I agree that wording of ‘Melee values +1’ does not communicate that idea at all. Underneath, the formula is “value * (poisoned) + plus”, so value is the coefficient. I do not know if you noticed, Secret Technique works the same way with cards like Revenge and Feast on Flesh, which makes it very powerful (and the name is kind-of pun related to this hidden interaction).

So my preferred way of fixing that problem would be to re-phrase Sword Dummy ability, but I currently have no idea how to do that. Ideas welcome.

Since both Curate and Bargain are in starting deck of Antiquarian, I am inclined to do next release sooner, even though the batch of new content is still small. But before that, I would like some feedback on Antiquarian balance – do you think her ability should be nerfed as it scales too soon and without enough effort from the player? Maybe gain 0.5 Shoot value per effect trigger? Or any other comments on her?

This interaction was left intentionally

Oh, I see. Maybe just vaguely call it “improve melee enemy effects”, if you want to keep the discovery aspect. Otherwise, you might need a dedicated keyword. Or maybe it’s enough to reformulate the effects to be like “melee 1 per bla plus 5”, it kinda makes sense like that…

feedback on Antiquarian balance

Antiquarian does feel a bit easy once you figure out how to use the cards, but other heroes can also feel like that. Antiquarian can heal and regain all resources, and curiosity is just a really good card. In the beginning I trim the deck to just one missile, one curate, bargain, one ward and curiosity. This way I can be sure that in the first turn, I draw either curiosity or ward. As it is I think that deck is enough of a plan to win the game with a few items with good triggers.

I think Antiquarian would still be about as strong as some other late-unlock-heroes if the ability only triggered when item counters increased. “Any item trigger” is a bit much imo, and has very different outcomes depending on what items you find.

The antiquarian deck itself is already pretty good and interesting, it doesn’t really need a strong ability to go with it.

Something like “Increase on item trigger, decrease on use” could be a multi-color card that you get with a quest, instead of that being an ability. Antiquarian could just increase shoot values in play at start stage, once per five items, rounded up, for example. Antiquarian could have no abilities beyond having the heirloom and still be a stronger start than mage.

I think the heroes are also difficulty settings, so it depends on whether you want to add an easy option or a less easy option.

Developer

Otherwise, you might need a dedicated keyword.

I went this route. It is now called ‘empower’

curiosity is just a really good card

Adding Curiosity was a bit of lazy design from me. I just went with go-to card for hand management.

I have now replaced Curiosity in Antiquarian’s starting deck with new Collectomania card, which, although harder to use, gives a reason to keep duplicate cards in deck as well as potential for infinite, somewhat similar to Priest.

I trim the deck to … one curate

How did you replenish Wp with just one Curate?

“Any item trigger” is a bit much imo, and has very different outcomes depending on what items you find.

I agree with the first part, but the second part I find desirable. The unique quirk of this hero is supposedly to force player to re-evaluate all items, making use of otherwise irrelevant ones just for the triggers.

For now, I increased her negative perk, making all attacks reduce all the way to 0 (instead of just -2) upon use. She is still pretty OP, but power spike is a bit slower.

Yeah, I think these are all very good changes.

How did you replenish Wp with just one Curate?

In the five card deck, there was no need to replenish Wp, because I used bargain on the curate before using it. If I ever lacked the initial mp for this to be feasible, I would swap the bargain with the second curate.

The unique quirk of this hero is supposedly to force player to re-evaluate all items, making use of otherwise irrelevant ones just for the triggers.

This creates more interesting choices now, you depend a bit more on finding good triggers, to the point where you might consider rerolling if all useful items lack useful triggers.

  • negative player confusion triggers as if it’s 1

  • Spider Web has no sanity immunities

  • dazzling ink improves the multiplier of infectious delirium

maybe a bug:

  • spawn of silver getting more guarding is considered the lucky outcome

  • vitality damage from all sources triggers guilt

Developer

negative player confusion triggers as if it’s 1

Fixed

Spider Web has no sanity immunities

Fixed, and gave it immunity to ensnared to boot.

spawn of silver getting more guarding is considered the lucky outcome

Fixed, it was a bit funny since I stared at the “obviously correct” line for a few minutes, thinking that I was affected by insanity from my game, until I finally saw the typo:

E.guarding(new RandomInRange(0, 2), { invert: true }), vs E.guarding(new RandomInRange(0, 2, { invert: true })),

dazzling ink improves the multiplier of infectious delirium

Will fix, but this bug also affects some other cases, for example splicing “Melee” effect from Spear into Revenge with Idea. I need to review those carefully.

vitality damage from all sources triggers guilt

Yes, I have already noticed this, and consider this bug serious enough to again publish mostly-fixes release. Unfortunately this change requires some extensive refactoring, so it will take a few days.

Meanwhile, I would like to get some feedback on Dreamwalker. He is certainly very hard, I actually did not yet manage to win on max-ascension. What was your experience with Dreamwalker? I would like to buff him slightly, but without affecting his core “identity”.

So far, my ideas include:

  • Give “negative insanity” statuses some benefits, like (bad example) additional melee damage from negative fear. So far, I did not invent interesting enough benefits.
  • Tone down guilty damage a bit, but it will make it almost useless when applied to enemies
  • Ignore attacker’s guilt when the victim is immune to guilt itself. I like this idea both thematically (no guilt for destroying mindless things) and for balance (since currently the most dangerous enemy in early game is a chest, as it forces player to use Eldritch Light). The main downside is that this change is hard to explain in status description
  • Give Dreamwalker a summon (as a way to circumvent guilt). I will certainly add dream-themed summon(s) anyway, but the question is whether to add it to the starting deck.
  • Either buff Dispersion or remove it from starting deck, since, although it does save you very rarely, it feels like a burden 90% of the time.
  • Maybe you have other opinions?

Maybe I just got lucky in my runs so far, but I think Dreamwalker isn’t difficult in a way that makes me consider dropping an ascension. Which btw wouldn’t be a bad thing, I’d actually appreciate having a reason not to have all ascensions up.

I save at every victory screen so it’s kinda save-scummy, but I “won” two Dreamwalker runs with all ascensions. For example, in late game I went to laguna and realized I can’t kill the kraken tentacles in time before fatigue kills me, so I reload and go the other way because an idealized, more experienced player would’ve seen that coming.

The early game seems doable, it’s just somewhat finnicky and I often have to retry the stage because I misplay something.

I almost never inflict guilt and upgrade the cards so that I can avoid dealing with guilt as much as possible (first upgrades are one slumber, delirium, and then the tunes). Dispersion is indeed something I immediately stash and never use again. Maybe, if it didn’t cost Wp, I would use it before I can spare gold to remove cards. Later the trimmed down deck is one slumber, light, delirium, and two otherworldly tunes.

So, early on I avoid using conspiracy because stamina is my lowest resource, and later when you don’t need Wp it’s not worth keeping because delirium does it’s job while also avoiding enemy actions.

imo it’s actually good flavor that you learn to let go of guilt as you level up.

Overall I don’t think Dreamwalker needs a buff, but a small buff could make the first stages less finnicky.

Developer

I pushed new update with changes to Dreamwalker. I replaced Dispersion with new Somnicide card, which makes some encounters much more comfortable, and is more thematic.

New Psychotic Strike is a bit unreliable, since it can randomly produce guilty dream, but combos well with negative statuses from Otherworldly Tune and is one of the very few cards with multiplicative upgrade scaling. Hopefully this would be enough to make it worth picking.

I did win once on max-ascension, exploiting new quest for Bounce card, which makes good addition to status-managing toolkit, but takes a lot of brainpower due to combinatorial explosion of possible outcomes depending on card order.

I went to laguna and realized I can’t kill the kraken tentacles in time before fatigue kills me

Kraken is a natural enemy of insanity-based builds. I did consider making tentacles flee/die when “main body” dies, but, although thematically good, it makes Kraken too weak against burst damage builds.

idealized, more experienced player would’ve seen that coming.

I have added “View possible enemies” button to next encounter preview, to reduce amount of memoization needed for such decision. I goes with general principle of “give player convenient access to all information not explicitly hidden by game rules”. You still need enough skill to understand which enemies are good / bad for your build, of course.

I avoid using conspiracy … delirium does it’s job

Yeah, when creating Conspiracy, I added potentially much better scaling to compensate, but seemingly that was not enough.

I’d actually appreciate having a reason not to have all ascensions up.

One, admittedly convoluted, reason is achievement hunting. For example, quest-related achievements are much easier without ‘harder quests’ ascension. Of course, that is only relevant if you are into this sort of thing. I personally am not, but I know a few players who enjoy forcing builds and chasing strange achievement goals.

Overall, I think currently late game is too easy in the sense that if you live past ~stage 15, you are probably busted enough to just stomp the rest. I have vague plans to add significant spike in difficulty for the final boss, comparable to Heart in Slay the Spire.

Somnicide is a good addition.

Not sure if I’d pick up psychotic strike as dreamwalker, it has a Wp cost and adds a complication, while delirium and eldritch light already have my long-term offense covered. But it’s a cool idea.

“View possible enemies” button

That’s a great feature! (Though not really related because I did expect the kraken itself, I just didn’t realize my damage output would be too low.)

Rn the default filter doesn’t take into account the “encounters may appear earlier” ascension. For example, frozen fields on lvl 2 shows nothing.

achievement hunting

Good point. Come to think of it, it’s not just achievements, I could always have my own conducts to have a reason to drop ascensions, e.g. needing to remove a certain starter card before a certain level.

currently late game is too easy in the sense that if you live past ~stage 15, you are probably busted enough to just stomp the rest

true, I often start skipping the rewards at some point after lvl 16.

Developer

default filter doesn’t take into account the “encounters may appear earlier” ascension.

Will be fixed in next release. Meanwhile, you can manually add 1 to the high value of stage range filter

I could always have my own conducts to have a reason to drop ascensions

If you find some interesting conducts of this nature, I can add them as achievements.

For example, existing ‘Revolutionary’ achievement is somewhat close to the ‘remove starting card’ goal you mentioned.