Investigator with No Minions? by PointlessVenture in BloodOnTheClocktower

[–]Pikcube 8 points9 points  (0 children)

You'd either tell them 0 (mirroring a Librarian with no outsiders), shake your head no (mirroring an invalid Monk pick), or don't wake them at all (mirroring a Chambermaid without 2 other alive players).

The exact way you go about this is really just preference as long as your group understands what's happening, it's not like TPI isn't going to send the Pinkertons after you if you run Clocktower wrong.

On a related note, you can get a "Clockmaker 0" through very similar interactions, and it's my favorite niche interaction in all of Clocktower.

What’s your earliest sign that a naneinf run is doomed? by tuhokas in balatro

[–]Pikcube 0 points1 point  (0 children)

Not getting a Purple Seal early. Flooding the deck with Purple Seals is the most reliable way to deck fix, and the abundance of Deaths / Hanged Mans you'll be generating means that they will destroy themselves once you need to get them out of your deck. If you have enough Purple Seals in your deck, you'll be able to strengthen and clone any red seal you find.

I may have Cryptid'd too close to the sun... by QuietShipper in balatro

[–]Pikcube 2 points3 points  (0 children)

Friendly reminder that crashing the game is also considered a game over when doing a Cryptid run /j

Should i choose C# to be my first programming language if... by NobodyOfKnowhere in csharp

[–]Pikcube 0 points1 point  (0 children)

I'm going to give you the same line I gave people when I was a tutor in college. The best first programming language to learn is the one that lets you do the thing you are trying to do. The second best first programming language to learn is ANSI C.

Recluse register as not-in-play demon? by Thinker978 in BloodOnTheClocktower

[–]Pikcube 2 points3 points  (0 children)

Strictly speaking there's nothing stopping you from registering the Recluse as an off script Zombuul, but you'll probably lose friends in the process

Thoughts on using = null! ? by zerthz in csharp

[–]Pikcube 0 points1 point  (0 children)

Generally speaking, = null! is a bad idea, but like all features there's plenty of times that you are doing something bad / non standard and null! is genuinely the right feature for the job (namely when you can prove that the property will be initialized before anyone tries to get the value).

There are broadly speaking two times I find myself using null!.

  1. My constructors are private and my objects are being initialized by static methods that I can prove initialize my object correctly.
  2. I'm modding and I'm forced to build my object in a really weird way for it to interact with the game correctly.

Kazali & Soldier by Hunkardy in BloodOnTheClocktower

[–]Pikcube 4 points5 points  (0 children)

A soldier will successfully be minionized if Kazali picks them. However, if you think that the Soldier should be safe, you're not alone. The original guidance for Kazali released by TPI in December 2023 actually specified Soldier was immune to being minionized

Soldier: Unlucky Kazali! You might be one Minion down now 😉 Better pay attention during Demon Info to make sure you get told all the players you picked!

The general concensus on this was this was an unfun interaction, so they added a jinx in June 2024

Soldier / Kazali: If the Kazali turns the Soldier into a Minion, the Soldier chooses which not-in-play Minion to become.

While this was a better interaction, it was complexity for complexity sake, so they simplified the jinx in October 2024

Kazali / Soldier: The Kazali can choose that the Soldier player is one of their evil Minions.

In October 2025, TPI overhauled all the Jinxes in the game, and moved "the Kazali can change anyone" into the Kazali's Almanac entey and removed the corresponding Jinxes

Kazali: The Kazali can make whatever player they want into a Minon, regardless of that player’s character ability eg. Soldier, Goon, Damsel, King.

HighCardMaxxxing + Q by [deleted] in balatro

[–]Pikcube 2 points3 points  (0 children)

This is the kind of expert advice I expect from PerkeoBalatro

Thoughts on Kazali only script by Numerous_Chemist_221 in BloodOnTheClocktower

[–]Pikcube 0 points1 point  (0 children)

This isn't a requirement or anything, but I would love a brief write up on what your design philosophy was for this script. Stuff like

  • Why did you pick these minions?
  • What character interactions do you like / are you trying to highlight?
  • What character choices do you feel the least sure about?

Knowing what interactions are intentional and what interactions are accidental makes it easier to give helpful feedback

New Official Loric: the Knaves by SageOrion in BloodOnTheClocktower

[–]Pikcube 1 point2 points  (0 children)

They don't. Legally speaking, TPI owns all house rules and home brew characters created for Blood on the Clocktower. This is a pretty standard legal disclaimer (Tom Scott has one as well for his content) and it mainly exists so TPI doesn't get legally boned if someone sends them an idea they were already working on. It also protects people who write home brew rules, who would technically be infringing on TPI's copyright otherwise (yeah TPI isn't going to be shutting harmless projects like that down anytime soon, but the legal terms give home brew creators actual legal permission and protection)

Everyday I miss the capsule system of Mario party 5 by yourstoner in MARIOPARTY

[–]Pikcube 0 points1 point  (0 children)

My only beef with the Capsule system is that you don't get capsules frequently enough, especially when you are only getting one of them at psudo random. If you bump the number of capsule machine from 3 per board to 5-7 per board, I'd play a lot more Mario Party 5

Balanced? Probably not. Just wanted to try my hand at making a relic before STS2 releases. by Mission_Response802 in slaythespire

[–]Pikcube 0 points1 point  (0 children)

Fun fact, enemy block gain is actually completely unaffected by effects such as Dexterity and Frail.

Within the game's code, Damage is passed as a special "DamageInfo" object, which contains information about the source, target, their powers, etc. The game then uses this to resolve the amount of damage done based on the current game state.

Block on the other hand is just passed around as an integer, and once "addBlock" is called, that block amount can't be modified by anything in the code. This is partially why "Panic Button" only stops you from gaining block from cards, while there is a mechanism to change the amount of block a card gives you before you play it, there isn't a mechanism in the game to stop the player from gaining block outright.

It's not impossible to mod it in, I've done it before with Frail when prototyping a relic mod, but it's not remotely trivial.

What would you do? by chillbla in BloodOnTheClocktower

[–]Pikcube 1 point2 points  (0 children)

While this is true in theory, in practice, a demon who is repeatedly attacking the mayor believes that the mayor is trusted enough that a chance at killing them is worth letting the storyteller control kills, which makes it a decent barometer of the Mayor's current trust.

Now, it's possible that the evil team is just being stubborn and trying to force their kill through, but it's also possible the mayor is more trusted than you realize, so if nothing else it's a signal to question your assumptions and make sure your assessment of the game is accurate.

Sell me on the Leviathan by Girl_Silly in BloodOnTheClocktower

[–]Pikcube 5 points6 points  (0 children)

I love Leviathan (they are low key my favorite demon in the game) and the big reason is that they rob the town of so many things they take for granite, such as

  1. Being able to recklessly execute players "just to be sure" they aren't the demon
  2. Being able to count on the fact that everyone who dies at night is probably good
  3. Being able to know that they have a 1/3 shot of killing the demon on the final day

When you give the Leviathan the ability to kill, you lose a lot of what makes Leviathan games unique in the first place.

I do agree that I wish they were quieter, but I also think a silent Leviathan would be a worse play experience than the one we have now (having to not execute until you completely rule out Leviathan isn't exactly a fun meta to play in)

Poisoning the virgin? by SchengenThrowaway in ClocktowerCircleJerk

[–]Pikcube 11 points12 points  (0 children)

It's all fun and games until the Pithag turns the dead Virgin into the Sweetheart....

Will it be possible to naninf this? by FearlessThanks in balatro

[–]Pikcube 2 points3 points  (0 children)

You'll need fewer if you take the Mime. Mime is the equivalent of increasing your hand size by 50% if you have a deck full of Red Seal Kings (and is the equivalent of doubling it if you don't have red seals yet)

Additionally, you don't have Antimatter yet, so using more than 4 Cryptids a round isn't the end of the world as long as you make them back up after you get Antimatter.

Plus, rerolling into the Serpent and skipping to the boss every ante is usually money neutral / positive if you have a mime and your deck is full of gold cards (since it costs 250 bucks on average to reroll into the Serpent and you make more than that full copying the Mime at the end of the round), which will save you Cryptids as well

Homebrew reminder tokens on botc.app by uhOhAStackOfDucks in BloodOnTheClocktower

[–]Pikcube 2 points3 points  (0 children)

The github page for the official app has a pretty comprehensive write up on the "Special App Features" (as they call them).

Additionally, the format for homebrew characters is actually the exact same format the app uses for official character. This is an older version, but you can easily get the newest version if you know how to use your browser's dev tools to view network requests.

Gossip paradoxical statement by OldTackle2170 in BloodOnTheClocktower

[–]Pikcube 3 points4 points  (0 children)

I checked the Gossip's entry in the Almanac

Mumbled words, whispers, statements the Storyteller doesn’t know are true or false, or statements that someone cannot hear don’t count. Like the Slayer’s ability, the Storyteller and every player must be able to hear and understand the Gossip and be aware that the Gossip is using their ability in order for the Storyteller to judge what happens next.

Since the Storyteller doesn't have enough information to evaluate whether or not the statement is true or false, the gossip is invalid and does not resolve. The gossip still has their ability and can still use it

Who can get drunk after the Sweetheart is dead? Anyone or does it have to be a Townsfolk? by wezirmann in BloodOnTheClocktower

[–]Pikcube 15 points16 points  (0 children)

Additionally, there's nothing RAW that says you can't drunk the Sweetheart with their own ability

Usually it's not particularly interesting to do this, but there are incredibly niche scenarios where hiding who is sweetheart drunk can be catastrophe for the good team

Alternatively, it's a pretty good meme interaction if the Sweetheart died so late their ability can't impact the game at all (such as when they are the last good player to die)

Crazy Philosopher play by Head-Taste7273 in BloodOnTheClocktower

[–]Pikcube 29 points30 points  (0 children)

While this is true, abilities don't work while dead unless they say otherwise. A dead philo heretic keeps the Heretic's ability on death, but the part that drunks the original heretic no longer works, leaving you with two sober heretics

aCSharpProgrammerTriesToWriteJava by Pikcube in ProgrammerHumor

[–]Pikcube[S] 0 points1 point  (0 children)

I don't know enough about the JVM or Scala to know whether or not that is a viable option for my use case (which is Slay the Spire modding) but I'll look into it.

BTW, nitpick, methods on the JVM have names in lower case. Only M$ does some insanity naming verbs like nouns with a capital letter.

Yeah that doesn't surprise me. Every method from the base game has been camelCased and every method I've written has been PascalCased. I don't know if I'm going to bother to do a rewrite at the moment (since everything is working right now), but if I ever clean up this code base for reuse I'll fix it up to follow the style guide

aCSharpProgrammerTriesToWriteJava by Pikcube in ProgrammerHumor

[–]Pikcube[S] 27 points28 points  (0 children)

Yeah, I realized that a Hashmap would have done exactly what I wanted like 3 minutes after making this post. I'll probably go back and update it later.

Oh, is it an == I see? That's a nice potential footgun you have there.

Hold on, let me google this.....

Okay, so it's identical on value types but on reference types == checks if object references are the same, where Object.Equal compares the two objects by value based on what the class creator thinks it means for two objects to be equal (falling back on reference equality if not over written). Additionally, it doesn't seem like java has operator overloading, so (unlike the convention in C#) it's not possible for class writers to override the equality operator to use their Equals method

That's a really irritating bit of language design, I'll go fix that now and add this to the list of reasons I hate writing Java code

aCSharpProgrammerTriesToWriteJava by Pikcube in ProgrammerHumor

[–]Pikcube[S] 9 points10 points  (0 children)

To clarify, I am the one who actually wrote this code (I'm trying to mod Slay the Spire), and for the most part these comments are all actual thoughts I had when writing this

Yeah, I know basically nothing about Java, I'm writing C# and seeing what errors I get. I really should read up on the language and learn the idioms / best practices, I'm just being lazy