-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add loaded dice #32845
base: master
Are you sure you want to change the base?
Add loaded dice #32845
Conversation
Love the idea! My only suggestion would be to make it so like you can only change the weighting if you are holding the bag they spawned in or something so it can't easily be metagamed. The only issue with that is it would not be clear how it works when you find it in maints or something... |
can you add some sort of inhand interaction to set the dice to unset so that you can cheat better? |
You can do that from the same menu where you set it to a value, using the wide "Unset" button at the top. Or do you mean I should add a different verb that doesn't require opening a UI? |
I agree that it's not great that anyone can just nab the die from the ground and check it without much counterplay, at least with chameleon clothes they need to strip you. I'm not a fan of "binding" the dice to the bag (both thematically and mechanically), though I don't really have a better solution either. I think as it is should be probably fine until (if) we figure out a better system for covert/stealth items. |
Not a separate verb, but something you can do in-world that sets it back to normal so when people doubt your extreme luck you can just alt-click it and boom, you're not as lucky! |
OH MY GOD THIS IS GREAT! IMAGINE SOMEBODY USING THIS WITH STORYTELLER AI! |
"if I roll a 20 I'm going to fucking kill myself"
|
After re-reading the Metashield rule on Stealth items I think I'm going to remove these from the maints loot pool. If someone were to find them in maints, they'd need to break the stealth item rule and metagame their purpose in order to actually get any use from them, at which point they may as well be regular dice. |
About the PR
This adds a bag full of loaded dice, purchasable under the "Pointless" category of the Syndicate uplink for 1 TC. I considered making them available at an emagged library vending machine instead, but I'm not sure if that's better or worse than the uplink purchase (suggestions welcome).
Loaded dice, and the bag they come in, look exactly like their regular counterparts. When held in the hand (and only when held in the hand), an extra verb is available, which shows a UI to set a predefined value to roll (this is similar to how chameleon clothing can be changed only while being worn). After setting, the die will always roll the set value.
Alt-clicking the die while in hand (or using Alt-Z), as well as the "unset" button in the UI, can be used to unset the die, which makes it behave as normal (rolling random sides). Dice start unset when spawned.
Why / Balance
It's a fun, minor roleplaying gimmick with very few balance repercussions. I had a couple of rounds where dice rolls mattered quite a bit, so I figured antags can get some fun with it. Players can cheat at IC tabletop games, win a wager against the HoS for their shotgun, or maybe convince a DM lawset AI to let them use their own dice. That is, until someone catches them.
Technical details
I added a new
LoadedDiceComponent
which stores the set roll value (if any). When the server-sideDiceSystem
tries to roll a value, it now raises a newDiceRollEvent
, which theLoadedDiceSystem
listens for to override the roll. This event should also make future work aiming to influence dice rolls more modular (for example, lucky/unlucky gear which make you roll higher/lower).The
SharedLoadedDiceSystem
handles a new UI to change the value the die is set to. The UI code is largely based on the chameleon clothes code, but vastly simpler because of the smaller scope of this feature.Media
loaded-dice.webm
Requirements
Breaking changes
No breaking changes (I think)
Changelog
🆑