* Fixes dice servants not receiving any indication of who their master is (#72017)
Gives the antag datum AFTER the servant's body is taken over a by a
ghost. Also announces servant's objectives.
This gives dice servants indicators to who their master is and what they
should be doing during the round (helping their master).
* Fixes dice servants not receiving any indication of who their master is
Co-authored-by: Striders13 <53361823+Striders13@users.noreply.github.com>
* Refactors some of the dice code to be more general (#70849)
## About The Pull Request
Refactors the dice code some, namely adding 3 things to it:
Making the comments affect all dice and not just d20's
Adding an option to put custom comments on custom faces
Generalizing manipulating the result for the d00, so other dice can
potentially add their own
## Why It's Good For The Game
Makes the dice code a bit more modular, and removing the hardcoding for
the d20 and d00 will help make the dice feel more organic
Co-authored-by: etherware-novice <candy@ notarealaddr.com>
* Refactors some of the dice code to be more general
Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: etherware-novice <candy@ notarealaddr.com>
* New Knucklebones crate (#70211)
* Adds a new 'Knucklebone' crate to the Cargo console under Service's "Costume & Toys" section, which comes with a crayon, 19 dices, and a paper explaining how Knucklebone works.
* New Knucklebones crate
Co-authored-by: GrimsonGrime <90585674+GrimsonGrime@users.noreply.github.com>
* Removes ComponentInitialize()
* Fixes a leftover merge conflict marker
* Fixes the oversight that came from the upstream merge skew
* Fixes all of the instances where we used ComponentInitialize() when we shouldn't've been
* Fixes CI being broken because of the HEV suits
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Tsu's Brand Spanking New Storage: or, How I Learned To Pass Github Copilot As My Own Code
* Delete storage.dm
* yippee
* shit
* holy shit i am stupid
* more fixes
* fuck
* woops
* Removes the code for four removed gateways (#68038)
* gets rid of the four axed gateways's code - Wizard Academy, Challenge, Space Battle, and Wild West.
* Removes the code for the four removed gateways
* WWSR removal
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
* Refactors connect_loc_behalf into a component (#60678)
See title. Also refactors caltrops into a component because they use connect_loc_behalf which requires them to hold the state.
This also fixes COMPONENT_DUPE_SELECTIVE from just outright not working.
connect_loc_behalf doesn't make sense as an element because it tries to hold states. There is also no way to maintain current behaviour and not have the states that it needs.
Due to the fact that it tries to hold states, it means the code itself is a lot more buggy because it's a lot harder to successfully manage these states without runtimes or bugs.
On metastation, there is only 2519 connect_loc_behalf components at roundstart. MrStonedOne has told me that datums take up this much space:
image
If we do the (oversimplified) math, there are only ever 5 variables that'll likely be changed on most connect_loc_behalf components at runtime:
connections,
tracked,
signal_atom,
parent,
signal_procs
This means that on metastation at roundstart, we take up this amount: (24 + 16 * 5) * 2519 = 261.97600 kilobytes
This is not really significant and the benefits of moving this to a component greatly outweighs the memory cost.
(Basically the memory cost is outweighed by the maint cost of tracking down issues with the thing. It's too buggy to be viable longterm basically)
* Update glass.dm
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* update_icon() improvements
Fixes some update_icon() calls to properly call parent and use update_overlays() and update_icon_state().
The rest of obj/item fuck it
* Suggested fixes, also passes the linter
* I always forget . = ..() is faster than return ..() FOR SOME FUCKING REASON
* Actually this is better
* Signilzes datum/action to update its icon when its connected item does.
About The Pull Request
This PR resprites the D6, adds two money bags and a bag of 5 d6'es to the bardrobe. Be on the look out for the expensive ebony dice.
I have also made code improvement by filling dice bags using PopulateContents() and giving the special dice their own loot spawner.
Why It's Good For The Game
I have recently in anticipation for the roulette update tried playing some simple dice games with my bar patrons to great success. I did however notice that the old d6 sprites were quite bad, so i decided it was time for a resprite,
I have also added money bags to the BarDrobe since those will be needed if more forms of gambling are added to prevent greytiders from stealing all your winnings.
DiceComparasion
EbonyDiceLarge
Changelog
cl
add: Money bags can now be obtained from the BarDrobe.
add: A bag of d6'es is now available in the BarDrone. May contain a rare die.
imageadd: New d6 base sprites and variant.
refactor: Improved the way the normal dice bags is populated.
/cl
* Reverts italics-span back to no color.
* Cleans up many extra spaces and indents.
* Adds 'hear' span class.
* Replaces all 'italics' used in heard messages with 'hear'.
About The Pull Request
Adds 'notice' span class to all visible_messages which had no span class, making all those black messages blue.
Why It's Good For The Game
This should help differentiate action-messages from talking-messages in the chat. More actions will be blue, thus black talking-messages should pop out more.
* Die of fate tweaks and fixes
🆑 coiax
fix: Rolling a 6 with a die of fate now reduces your speed as intended.
fix: Rolling an 8 with a die of fate will cause the explosion to be
around the roller, not the die.
tweak: Die of fate effects now make loud visible messages so it's
obvious what has happened.
admin: Dice can now be "totally rigged" with admin edits to
unconditionally always roll a certain value, rather than just some of
the time. A new "cursed die of fate" has been added to demonstrate this
effect.
/🆑
- new proc `do_smoke` that does basic smoke effects, to avoid the same
pattern for making smoke effects.
- Dice rigging has been split into two vars, "rigged" for the severity
of the rigging (not rigged, basically rigged, totally rigged), and
rigged_value for the value it's trying to rig to.
* Stealth die of fates
* Code review II?
* Passes thrownthing to hitby
* Items now also pass thrownthing
* No longer uses default arguments
Also fixes bananium shield
* Adds more arguments to hitby calls
* Standardises throw_impact
* Clears up some loose ends
* Adds back wacky comment
* Reinstates can_push=FALSE on bananium shield
* Add caltrop component for spikey floor objects
The caltrop component now can be added to any crossable atom, and it'll
act like a shard of glass, or a d4. Additional flags are possible for it
to bypass shoes or ignore people who are walking.
This means d4 don't reimplement shard logic, and also open the window
for caltrop grenades later.
Also, it taught me how components work.
* Code review I
* Caltrop damage is 4
* Cactus hurts
* Whoops
* Ignore restraints = true