Skip to content

Implement patterns from overevaluate#1177

Open
IridescentVoid wants to merge 4 commits into
FallingColors:1.21from
IridescentVoid:feat_overevaluate_patterns
Open

Implement patterns from overevaluate#1177
IridescentVoid wants to merge 4 commits into
FallingColors:1.21from
IridescentVoid:feat_overevaluate_patterns

Conversation

@IridescentVoid

Copy link
Copy Markdown
Contributor

Closes #1107

From the issue body:

  • Extirpating Gambit: cutting a list into three parts, before/iota/after
  • Reflecting Gambit: flip top three iotas
  • Bubbling Gambit: swap 2nd and 3rd iotas from the top
  • Dioscuri Gambit II: dup n iotas
  • Tutu's Gambit: does nothing at all
  • Janus' Gambit: terminates the hex
  • Atalanta's Gambit: skip to next iteration in a thoth's loop

@IridescentVoid IridescentVoid added enhancement New feature or request 1.21 labels Jun 23, 2026

@Robotgiggle Robotgiggle left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Functionality all looks good, but I found a couple issues with the lang - see below

swap: "Swaps the top two iotas of the stack.",
rotate: "Yanks the iota third from the top of the stack to the top. [0, 1, 2] becomes [1, 2, 0].",
rotate_reverse: "Yanks the top iota to the third position. [0, 1, 2] becomes [2, 0, 1].",
swap_one_three: "Swaps the top and third-from-the-top iota. [0, 1, 2] becomes [2, 1 0].",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing comma in second example list

over: "Copy the second-to-last iota of the stack to the top. [0, 1] becomes [0, 1, 0].",
tuck: "Copy the top iota of the stack, then put it under the second iota. [0, 1] becomes [1, 0, 1].",
"2dup": "Copy the top two iotas of the stack. [0, 1] becomes [0, 1, 0, 1].",
duplicate_many: "Copy the top n iotas of the stack while preserving order.",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should probably mention that it pops a number - you could use the duplicate_n description as an example

no_spell_circle: "requires a spell circle",
others_name: "Tried to invade the privacy of %s's soul",
"others_name.self": "Tried to divulge my Name too recklessly",
needs_loop_context: "needs to be cast within a skippable meta-evaluation pattern",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would change pattern here to context - you can't really cast anything "within" another pattern

Comment thread CHANGELOG.md
### Added

- Updated to Minecraft 1.21.1 ([#985](https://github.com/FallingColors/HexMod/pull/985)) @SuperKnux @slava110
- Added Extirpating Gambit, Reflecting Gambit, Bubbling Gambit, Dioscuri Gambit II, Tutu's Gambit, Janus' Gambit, and Atalanta's Gambit ([#1177](https://github.com/FallingColors/HexMod/pull/1177)) @IridescentVoid

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might want to mention that these come from Overevaluate

"thanatos.1": "Adds the number of patterns a _Hex is still capable of evaluating to the stack. This is reduced by one for each pattern cast by the _Hex."
"thanatos.1": "Adds the number of patterns a _Hex is still capable of evaluating to the stack. This is reduced by one for each pattern cast by the _Hex.",

"nop.1": "Does nothing. Executing it does not consume an operation, consume media, produce particles, or have any other impact on the world.",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think "operation" is used to refer to the pattern limit anywhere in-game. Maybe "does not count towards the pattern limit"?

"halt.2": "But when combined with $(l:patterns/meta#hexcasting:eval)$(action)Hermes'/$ or $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambits/$, it becomes $(italics)far/$ more interesting. Those patterns serve to 'contain' that halting, and rather than ending the entire _Hex, those gambits end instead. This can be used to cause $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$ not to operate on every iota it's given. An escape from the madness, as it were.",


"truly_halt.1": "This pattern forcibly halts a _Hex, ignoring any $(l:patterns/meta#hexcasting:eval)$(action)Hermes'/$ or $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambits/$ that might otherwise contain $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit/$.",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The use of "contain" here is kinda ambiguous - I think your intent was to refer to the previous page where it talks about hermes and thoth "containing" the break effect, but it could also refer to such patterns evaluating a list that contains the charon pattern as an iota. Maybe "contain the effect of Charon's Gambit" or "hold back the effect of Charon's Gambit"?

@github-project-automation github-project-automation Bot moved this from 📋 Backlog to 🏗 In progress in Hex Casting Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1.21 enhancement New feature or request

Projects

Status: 🏗 In progress

Development

Successfully merging this pull request may close these issues.

2 participants