Stone blocks without gold
Verified against the spelunky.ai port v0.1.11 on .
Stone blocks without gold is a quirk of Spelunky Classic in which a stone block on a Temple level breaks without a trace, so the City of Gold's give no gold.
In the City of Gold, every block of stone is gold, and breaking one gives three Gold Chunks and a Gold Nugget. One in ten is a stone block rather than temple stone, drawn gold all the same, and it gives nothing: level generation marks every stone block of a Temple level to break cleanly, which leaves no rubble and no gold.
What happens
#A bomb in the City of Gold breaks a stone block and the block of temple stone beside it. The temple stone gives three chunks of gold and a nugget; the stone block, the same gold to look at, gives nothing [1].
Why
#The Temple's room script makes about one block in ten of its 1 and 2 tiles a stone block (oBlock), and the
rest temple stone (oTemple) or, for a 1 tile one time in a hundred, the Jungle's earth
[2]. In the
City, a stone block's create event gives it the gold sprite [3]. Then
scrEntityGen's Temple branch turns some stone blocks into arrow traps, and so that those go without rubble, it
sets the flag on all of them first:
with oBlock
{
cleanDeath = true;
if (not isInShop(x, y))scripts/scrEntityGen.gml:497-500, from spelunky.gmk, Spelunky Classic 1.1's source, © 2008, 2009 Derek Yu and Mossmouth, LLC (Spelunky User License v1.1b).Nothing sets it back on the blocks it leaves [4]. A stone block's destroy event makes its rubble, or in the City its gold, only without the flag:
if (not cleanDeath)
{
if (not global.cityOfGold)objects/oBlock/destroy.gml:1-4, from spelunky.gmk, Spelunky Classic 1.1's source, © 2008, 2009 Derek Yu and Mossmouth, LLC (Spelunky User License v1.1b).So a stone block bombed or dug on a Temple level leaves nothing, and one in the City gives no gold. The temple stone has no such flag, and gives three chunks and a nugget [5]. The Mines' pass over stone blocks doesn't set it, so theirs leave rubble [6] [7].
Reproducing it
#Bomb or dig the blocks of the City of Gold: about one in ten gives no gold. On any Temple level, a stone block leaves no rubble. The replay, with seed 9, reaches the City as a sacrifice pit, and the player throws a bomb onto a stone block by the entrance. It breaks that block and the temple stone beside it, and only one nugget and three chunks fly: the temple stone's [8].
In the port
#The spelunky.ai port reproduces it exactly: it's in docs/quirks.md's list of the 1.1 source's bugs [7], and the oracle's fingerprint of the replay pins the blocks and the gold. No option turns it off.
FAQ
#- Why do some gold blocks in the City of Gold give no gold?
One block in ten of the City is a stone block, drawn gold like the rest. Level generation marks every stone block on a Temple level to break cleanly, and a block that breaks cleanly makes neither its rubble nor, in the City, its gold.
- How can I tell a stone block from a temple block in the City of Gold?
You can't by its look: both are drawn as gold. Only breaking it tells, by whether gold flies.
- Do the Temple's stone blocks leave rubble?
No. A stone block bombed or dug on any Temple level vanishes without rubble, where the Mines' stone blocks leave theirs.
See also
#- Related
References
#- Clip quirks/city-stone-block-no-gold
scripts/scrRoomGen4.gml:317-327objects/oBlock/create.gml:3-4scripts/scrEntityGen.gml:497-524objects/oTemple/destroy.gml:21-32scripts/scrEntityGen.gml:145-171- Quirk 1 (docs/quirks.md)
- Replay
fidelity/replays/city-of-gold-seed-9-sacrifice-pit.txt