* virtual limbsanity
* remove old file
* indent fail
* dumbassery cleanup
* unlint + tweak
* stop coding while high
* internal screaming
* kill another species dependancy
* make sure it has a default
* makes the unit test actually work
* fix monkeys
Airlock shells made from airlock electronic and door assemblies would not trigger the 'Airlock Access Event' circuit component because the registered signals did not include the signals called by regular airlocks. This fixes that.
* Removes persistence of species-restricted items through changing
Makes use of item's mob_can_equip instead of mob's can_equip, making it take the item's restrictions into account.
Also, fixes the inventory's color, so it's properly red when you can't equip such an item, by making it also use mob_can_equip.
Finally, expands the species clothing unit test to take that into account, to prevent it breaking in the future.
* Refactors hallucinations slightly, organizes them
* Refactors hallucination into a status effect
* Further hallucination proper refactoring
* Refactors battle hallucinations
* Refactors "fake item other" hallucination
* Gets it a bit closer to working state
* Refactors screwydoll and fake alerts
* Refactors fake inhand items
* Refactors a few more.
- Fake death
- Fake messages
- Fake sounds
- Projectiles
* Refactoring delusions, hallucination effects
* Furthering the hallucination status effect
- removes copypaste of hallucination pulses
* Almost finalizes the changeover to status effect
* Last staus effect stuff
* Delusion business
* Airlocks, fire, and more delusion stuff
* Finishes screwyhud. It compiles now!
* Swaps screwyhud over to a grouped status effect
* Removes hal_screwyhud
* Comment
* Bugfixing
* image cleaning
* Get rid of this it came back
* What if I finished this branch?
* Oops
* Messing with the randomness
* Mass hallucination tweaks
* +
* Some more mass tweaks
* Review
* Updates
* Unit tests hallucination icons
* More tweaks
* Move folder
* Another re-name
* Minor tweaks
* Anomaly unity
* Mass hallucination buffs
* t
* Sig
* Merge
* Lints
* Unit test already coming in clutch
* Another failure
* Use named args for cause_hallucination via some define trickery
* Some cleanup
* This is better
* adds some hallucinations
* Oops
* More sounds
* Tweaks
* Some additional documentation
* Flash
* Fixes mass hallucination
* Json changes
* Updates documentation
* Json conflicts
* Makes it work
* Missed that one too
* Helpers
* More signalization (WIP)
* Fixes bump
* Missed a helper use
* Dumb
Fixes get_team_antags and documents it
get_team_antags had a case where no defined antag_datum would let all antag datums pass by, used for admin's antagonist panels.
Experimentor no negative temperature.
Simplifies the cold and hot air interactions with the experimentor. Removing a portion of the air and heating or cooling it, then merging it has no difference than just heating the air, as the heating or cooling is purely energy based.
Adds max check for experimentor cold air reaction, to prevent negative temperatures.
About The Pull Request
First and foremost, guts out the previous, arguably cursed "rigged" functionality from light tubes. Light tubes now have a capacity of 20 reagents. Light tubes will now splash their contents upon shattering, instead of just releasing plasma gas into the air (if rigged). Lightbulbs with reagents inside of them will now transfer with them to the light fixture they're inserted into, which will slowly heat the contents to a maximum of 1000 degrees.
Heating the plasma reagent manually leads to it harmlessly boiling out of the container and dissipating, effectively ruining the original functionality. To account for plasma boiling over (when it should be bursting into flames) a SEALED_CONTAINER reagent container flag has been added. This is mostly just to prevent the plasma from leaving the container until it is ignition-ready. As a result, light tubes rigged the old way no longer harmlessly explode, and instead produce a small, (mostly) self-contained fire in the area surrounding the light.
Light tubes (and light fixtures with reagents in their lightbulb) now show their reagent contents upon examine. It's only fair to reward attentive people with a chance to avoid impending disaster, but on the other hand lightbulbs are transparent and you should just be able to look through them anyways.
As a bonus, all of this SHOULD be handled in a way that doesn't put any unnecessary strain on machine processing or anything. Rejoice.
Why It's Good For The Game
Lightbulbs being reagent holders was a huge missed opportunity, with their only use being for the disappointingly ineffective plasma-rigging functionality. This expands on the idea, and reworks the original functionality to be much more interactive. Bigger sandbox! Deeper sandbox!
Changelog
cl
add: Rigging light fixtures now works with more reagents than just plasma. Light fixtures will heat the reagents of their inserted lightbulb, up to a maximum of 1000 degrees. Lightbulb tubes now hold 20 reagents to make this more usable.
add: Lightbulbs will now splash their contents on whatever they're shattered by. Their contents are also now visible upon examination.
* Brand Intelligence false alarm will no longer only report that a cola vendor has been hit, and will instead use an on-station vendor to lie to players more accurately.
* Modified the brand intelligence announcement slightly to give a bit more direction to the crew.
* Changed some vendor vars to use TRUE/FALSE instead of 1/0
* Murders the last remaining single character varname in the brand intelligence file.
* Brand Intelligence event now supports admin setup. Choose your brand of brand intelligence!
* Stray meteor event admin setup message no longer lies to you.
* Allows the icebox aux base to land on ice moon, with the exception of the top floor, because it would be rather lame to random drop right next to engineering.
Brand new sec sprites. Done by yours truly. Revival of #68024.
Resprited Items:
Security Jumpsuit
Security Skirt
Warden Jumpsuit
Warden Skirt
HoS Jumpsuit
HoS Skirt
HoS Formal Uniforms
Armour Vest
Security Winter Coat
Warden Jacket
HoS Coat
HoS Parade Coats
HoS Wintercoat
Security Belt
* Refactors team antagonists and roundend report handling
Refactors teams and subtypes
* Makes use of ``as anything`` and ``\improper``
* Removes many single letter variables
* Moves team code to the team file
* Makes team objectives only allow objectives for SpacemanDMM
* Makes members and objectives clear when a team is deleted
* Generalizes team's add_objective
* Checks for show_roundend_report in roundend
* Replaces ``get_team == src`` with a simple mind check
* Makes Bloodbrothers fit using parent's endround report.
* Removes the unused procs ``is_solo`` and ``antag_listing_footer``
* Makes replaces ``get_team_antag`` ``specific`` with ``include_subtypes`` to be consistent with Antag helpers (and because I thought it looked better that way)
So when livers fail it adds something about eyes to the carbon's examine text. The 2nd state of eye yellowness used a static he, that has been replaced by a helper to get the correct pronoun. The 3rd state didn't capitalise the first pronoun use and followed it up with a static they, that has also been replaced by a pronoun helper.
* boxes change material content with ammo remaining
+ fills in custom_mats for printable ammo
+ makes equation for changing material content work
+ fixes printing cost for two boxes
* fixes ammo boxes being almost universal
fixes fail message to properly work
used to only use "can't fit any more",
now properly uses "no equipment can use this ammo"
* Uses update_appearance instead of update_name
* Object Window Niceties
Alright. I got bored and polished up the object/alt click window.
It had a few issues:
First, we generated all our images in bulk, as soon as requested
Second, the caching was global, despite only working on a client to
client basis
Third, we only generated up to 10 images. This could be fine, but the
javascript code will continuiously rerender assuming unrendered images
will come eventually, and they well, weren't. This caused MASSIVE
clientside lag
Fourth and finally, I did not like how moving away from the viewed turf
lagged behind, in sync with the stat tab update. Looked bad.
I've resolved all these.
I solved the first three issues by reworking how obj images were
generatated and managed.
Rather then storing a basic cache on the subsystem, and doing all the
image generation at once, we queue up image generation as we like, and
generate images inside a new processing subsystem fire.
This isn't the best solution, since it still eats cpu somewhat, but it's
a whole lot better then the other options, outside either removing the
need to getflat, or somehow predicting what items a client will want to
see
I've started storing three bits of info. First, a list of all the
objects we currently want to display.
Second, a list of atom -> image html
Third, a list of atoms to imageify.
This information is stored on a datum on /client, since I want this to
have a lifetime linked to well, clients.
I've used this datum to solve that fourth bit, using a component I made
for parallax a bit back. This lets me react to our client's mob, and
update the tab linked to that, rather then on a subsystem call by call
basis.
That's about it.
Co-authored-by: san7890 <the@san7890.com>
Gas reaction radiation.
Sets TRITIUM_RADIATION_RANGE_DIVISOR to 0.5, from 1.5. This effectively makes the range behave as if there are 10 times the tritium getting burned than before.
Renamed TRITIUM_RADIATION_THRESHOLD_BASE, PN_TRITIUM_RAD_THRESHOLD_BASE, and PN_BZASE_RAD_THRESHOLD_BASE to TRITIUM_RADIATION_THRESHOLD, PN_TRITIUM_RAD_THRESHOLD, and PN_BZASE_RAD_THRESHOLD. Updates description for these defines, and sets them to 0.3.
The radiation threshold for tritium combustion, proto-nitrate tritium response, and proto-nitrate bz response has been changed to be their radiation threshold defines, instead of a scaling factor from 1 to 0.
When someone does a node concentration change with the ui interact, it logs the concentration it was set to. The concentration is a value from 0 to 1, with the logging saying it is in percentage, but it did not adjust the node concentration to use percentage, making it off by a factor of 100.
This commit will make the string contain the node concentration values at 100 times their value, so it gets adjusted for percentage properly.
Hey there,
One thing that's been frustrating me over the last few months is that we have absolutely no data on how long it might take the average person to complete any given gulag sentence. This tends to matter a bit for administrative matters, and especially when there's a disconnect between policy and players in regards to how long any given point-sentence might take a player to complete. This should hopefully allow us to collect more good data in these affairs.
admin: Prisoners returning from the gulag as well as reclaiming their items from the gulag item reclaimer are now both logged.
* Excited groups care about reactions.
Adds reacting var for open turfs. Reacting gets set to the return of react() inside the open turf's process_cell() proc.
Adds turf_reactions var for excited groups. turf_reactions gets set to the result of has_reactions OR reacting. Excited group processing will check if the excited group's has_reactions is REACTING or STOP_REACTIONS before dismantling the excited group. Excited group processing will set the excited group's has_reactions to NONE at the end before MC_TICK_CHECK.
Fixes water vapour not consuming water vapour when temperature is below WATER_VAPOR_DEPOSITION_POINT.
Changes water vapour reaction to have a consumed var, it gets set to MOLES_GAS_VISIBLE when it freezes a turf or makes it slippery. If consumed, then water vapour moles decrease by consumed, set reaction results and set return value to REACTING.
Fixes water_vapour reaction by making its mole count decrease by consumed instead of attempting to do arithmetic on the water vapour list, which somehow didn't runtime.
On light mode, and in light mode only, .binarysay is display: block. This generates a newline because I moved the follow link outside of the relevant span.
fix: ghost follow links no longer appear above binary messages using light theme
The main functionality is allowing for reaction suppression in canisters to still be a thing by allowing people to add a hypernoblium crystal to a can/pump/scrubber to add a toggleable option to stop it from reacting. The crystal can only be retrieved by deconstructing the canister to make transferring 1 crystal between 5 different cans less of an option.
Some other changes included in this:
Hypernoblium crystals are now single use, and their cost has been halved to reflect this. (So players dont have to waste 2 uses of a crystal on a can)
Canister UI's cell charge display style has been slightly changed.
Removed unused id_tag variable from scrubber UI code that was from 5 years ago
Some various variable name changes (snake_case to camelCase) in relevant UI code for consistency with other JS UI code.
Allows some preservation of the ability to stop canisters from reacting when wrenched in #68420, while also making it more intuitive and giving an incentive for people to make hypernob crystals
You can now insert a hypernoblium crystal into portable atmospheric devices (ie. canisters, pumps, and scrubbers) to allow you to toggle reactions inside the can on and off, similar to how wrenching and unwrenching it on a connector did previously.
The crystal once inserted cannot be removed without deconstructing the canister. However, hypernoblium crystals are now single-use items, and their cost has been halved to account for it.
Variable names in canister, pump, and scrubber UI code have been changed to camel case for consistency.
The canister UI has been slightly changed in terms of how it displays cell charge.
* Fixes emergency pods not working
* ``get_control_console()`` currently doesn't work because it's runtiming instead of properly finding the shuttle computer, which would cause pod's request() to return and call parent, but parent handles sending the pods off, so I fixed it by not calling parent if they didn't have a console, and also fixed it finding its console.
* wtf emagged shuttles can just go?
* replaces || with &&
* Basic outline for Bartender RCD
* Alphabetically sorted drink and booze dispenser reagent lists
* Added soda/booze synthesizers to the service plumbing constructor
* name change
* Syntax Error fixing
* Name and research updates
* Updated constructor selection
* Mixing chamber sister class
* brewery RCD redo again
* Custom Mixing Chamber UI
* Finalized plumbing reskins
* Allowed the service techfab to print chemical recipient boards
* added test sprites and removed un-needed renames
* Last Rename
* leftover whitespace fixes
* more whitespace removal
* one more name update
* refactor for upstream
* fixing TGUI i broke
* last whitespace fix
* last last whitespace fix
* please have this fix the whitespace
* updated doc comments
* updated ui_data and ui_act procs make more sense
* Update code/modules/plumbing/plumbers/reaction_chamber.dm
Co-authored-by: lex <alexdpow@gmail.com>
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
* Fixes Bread Smite Causing Some Fucked Up Shit
Hey there,
So basically, when you had the bread smite done on you, you were _just_ added to the contents of the bread. Nothing more. That means that you could pick it up. You couldn't add it to your bag (it would always return back into your hand(?)), but it would create some weird oddities that was just cursed in general. Let's make it so you can't hold the container that you are contained within by giving you HANDS_BLOCKED.
* actually we don't need the named arg
lets get rid of the cursed thing entirely
* removes sanity check
* we do a bit of component trolling
THIS TOOK ME TWO HOURS FUCK YOU
* removes cruft comment
* cleans up code a teeny bit, upgrades to incapacitated
* wait that named arg is still there wtf
* Review Time
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
* wrong operator and wrong order of operations
* null out the container
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* checks to see if container is qdeld
* weakref time
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>