* Moves screen objects from mob to hud (#54400)
This moves screen images from icons/mob to icons/hud
Makes more sense and it is easier to find
* Moves screen objects from mob to hud
* Update radial.dm
Co-authored-by: nicbn <nicolas.nattis@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* Disable some effect systems during init (#53929)
Instantly spread gib streaks rather than doing so over a delay
Completely skip broken light fixture sparking during init
* Disable some effect systems during init
Co-authored-by: Tad Hardesty <tad@platymuus.com>
* Adds sidings floor decorations (#53797)
This was a frequent request from mappers ever since trimlines were added, they work similarly to trimlines but they have different use cases and don't necessarily work together, so I am calling them sidings to avoid confusion.
Whereas trimlines are floor paint for plating, these are solid borders to be used either alongside walls, smoothing transitions between floor types or mark/split an area without having to use walls, and work with any floor type.
These are ALL greyscaled, so they're trivial to bikeshed customize and make new types for your mapping needs
- Colored (plastic/vinyl strips, standard departmental colors)
- Plating(metal, grey/white/dark)
- Wood(it's wood)
I've added them to meta's bar as a small example
* Adds sidings floor decorations
Co-authored-by: Mickyan <38563876+Mickyan@users.noreply.github.com>
Makes acid levels a component.
Merges the acid effect object into the component.
Reworks acids decay rates slightly.
Rebalances xenos acid spit so that they can still melt through walls.
Misc. associated changes:
Adds defines for a lot of the acid associated constants.
Documents clean types and adds CLEAN_TYPE_ACID
Adds and implements a return bitflag for COMSIG_COMPONENT_CLEAN_ACT
Adds a looping sound for acid.
Makes /atom/proc/acid_act return a boolean.
Fixes waterclosets creating a new reagent holder datum every time they are used.
Removes waterclosets regenerating reagents on-use and restricts their reaction volume to 5 units.
Adds and implements a couple reagent signals.
Renames a few vars so Rohesie can stop telling me to rename more vars.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Mining sign fix. (#53251)
Turns old mining "signs" into turf decals instead
It looks nothing like a sign, so, this just made sense.
Moved the icon from the mining survival pod walls file, to the turf decal icons file.
Replaced every instance in the maps with the new type path.
* Turns old mining "signs" into turf decals instead.
Co-authored-by: uomo <51800976+uomo91@users.noreply.github.com>
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is
Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
* Bloody feet update (#53109)
Componentized the bloody feet feature.
* Hardsuits and other feet-covering clothing can now get bloody feet as well and spread gunk around.
* Bare feet can now get bloody as well and spread gunk around.
* Shoes/feet won't get bloody if something is covering them.
* Improved blood spreading behaviour. Previously, magic numbers were used in the blood pick up and drop off process. Now, when you step in blood, you and the floor share the blood volume. When you step on a non-bloody tile, you give away half of your shoe blood to the tile, and so on. This means the total blood volume always stays constant when moving around. * Blood doesn't appear out of thin air, nor get flushed to bluespace.
* Lowered footprint minimum opacity. Because it looks better, imo.
* Improved footprint exit/enter dirs.
* Improved footprint examine.
* Removed code for cult magic where a spell can suck up blood on your shoes. I'm pretty sure this code didn't work anyway. Implementing that for this new system would require a new signal and I just don't think it's worth it.
How can this game make you spend 20 hours on fucking spaceman footprints
Hardsuits will become "fully bloody" by just stepping in blood. This is a limitation of the current forensics system, as that is what is used to determine if an item is bloody or not. I'm aware of this but I don't think it fits to fix that in this PR.
cl
add: Footprints and bloody shoes major update. Hardsuits and bare feet can now get bloody as well. Improved blood spreading behaviour.
fix: Shoes will no longer get bloody while wearing something that covers them.
/cl
* Bloody feet update
Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
* Merge pull request #53020 from Qustinnus/fatgrowing
[READY] Vatgrowing: Third time's the charm
* [READY] Vatgrowing: Third time's the charm
Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com>
* Icon smooth refactor (#52864)
bitflag list construct added: an associative list of bitflags for cheap and quick element comparison between two lists using the same system.
canSmoothWith list turned into a bitflag list.
smoothing_groups list added to substitute the type path list.
smoothing procs turned into atom procs, refactored and optimized a bit.
smooth directions redefined in order to fit in 8 bits for a future smoothing system
some variable names changed, foreseeing a second smoothing system
SMOOTH_OBJ flag added, for things that need to scan turfs for smoothing. The old locate() optimization has the risk of returning false negatives by finding a child and returning null while there might be one of the wanted type as well, as it doesn't match the type exactly.
SMOOTH_TRUE and SMOOTH_MORE condensed into SMOOTH_CORNERS. The old behavior can be replicated using smoothing groups without loss.
Does very minor code cleanup.
Processing-wise didn't find a noticeable difference. The system loses on init a bit by setting the bitflag_lists, and by scanning whole turf contents for object smoothing (increasing accuracy), and gains by making less checks per target to smooth, through the same bitflag_lists.
Memory-wise there should be a small improvement, given that on the old system we had 63512 canSmoothWith lists (a few typelists, most unique), and on this new system canSmoothWith + smoothing_groups are both bitflag_lists from the same pool, totaling 46 in number.
Could be tested a bit to see if I missed any icons not properly smoothing.
* Icon smooth refactor
Co-authored-by: Rohesie <rohesie@gmail.com>
* Don't initialize the atom_colours list on atoms until it's actually needed
* Moved bloody_hands var to mob/living/carbon/human instead
* Added COMSIG_COMPONENT_CLEAN_RADIATION signal to reduce moms spaghetti
The shower and suit storage unit now calls this signal instead of either doing it manually or doing it via the washed proc
* Cleaned up carbon washing, renamed washed to wash
* The wash proc now doesn't take the washer as first arg because that wasn't used anywhere
* The wash strength is no longer optional
* Carbons now overrides the wash proc instead of using the signal
* Properly check for obscuredness before washing any equipped items
* Properly wash all items and bloody hands etc
* Added clean_lips proc for humans for cleaning any lipstick
* Cleaned up washing. Washy stuff now calls wash instead of calling the clean signal directly
* Renamed is_cleanable to ismopable, gives this category a more fitting purpose. Many things beyond floor decals are cleanable. It is now also determined using the atom layer instead to make it more generic.
* Properly utilize the is_cleanable define
* Added wash override for turfs where they also wash any mopables on the same tile
* Space cleaner and cleaning element etc now simply washes the mob instead of doing its own manual cleaning on ~some~ equipped items
* Non-component washables now simply override wash instead of registering for the clean signal
* Fixed some left over clean signal registers not returning true
* Added clean_strength var to space cleaner
* Moved human wash proc next to the other washing procs
* Also wash glasses and mask if not obscured when washing face
* Fixed attempting to "scoop up" cleanable decals using a rag
* Fixed plasmaman spacehelm icon not updating when washed
Also removed a duplicated worn_overlays proc
* Fixed head icon not updating when washing lipstick
* Moved radioactive clean signal register to where it should be
* Added atom radiate VV verb for debugging
* Redesigned the CLEAN constants into a more sensible flags setup
This makes it more dynamic, cleaning apparatuses can clean more specific than just a cleaning strength.
* CLEAN_TYPE_* flags indicate a specific cleanable, such as blood, fingerprints or disease
* CLEAN_* consts consist of a combination of cleaning types to make cleaning apparatuses have a consistent behaviour on what they clean
* Fixed broken rad removal logic in showers
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* Removed unneccesary bool from sink code
* Fixed wrongly named variable in turf wash
* Renamed bloody_hands to blood_in_hands
Co-authored-by: Rohesie <rohesie@gmail.com>
* INVOKE_ASYNC
Replaces a zero-delay timer with INVOKE_ASYNC
* More timers
Switches out some more zero-delay timers for `INVOKE_ASYNC`
* lib_codex_gigas
One last switch
...on april fools, and adds a randomly colored tile subtype for mapping
Changelog
🆑
tweak: Due to a new clause in the Crew Satisfaction Program, the clown has been given full control over station decorations during April Fools
tweak: Added randomly colored tile decals for mapping
/🆑
Adds the Families gamemode to the codebase. In this 1 hour showdown,
multiple criminal families are placed onto the station with their goal
to rack up the most points by the end of 1 hour. At which point, the
Space Cops hit up the station to crack down on the family activity. The
severity of the Space Cops is based on how much carnage and murder the
families have committed.
## Why It's Good For The Game
With an actual official medium/heavy RP server, and the codebase taking
a much harder swing towards heavier consequences for death, a more
player focused gamemode with a unique swing on teamwork, the concept of
what exactly is an antagonist, and trust/paranoia will do wonders to
help improve that atmosphere.
Previous tests went extremely well(when administrators weren't
intentionally sabotaging it by welderbombing families as the Head of
Security every single round immediately with no escalation), but
suffered from "this just isn't a gamemode for no RP servers like /tg/".
However, /tg/ is now an RP server.
Get ready to rep your family.
## Isn't this just Gang?
Heck no. Only thing similar is tagging turf and the fact criminal
groups are involved. This mode is completely different otherwise.
## Heck yeah, where do I sign up?
Ask a family member where their Signup Point is, and then simply click
on it with an open hand. You'll be signed up for the family instantly,
and given some sick threads and a spraycan for tagging.
## How do I rep my family?
Wear your gang's uniform or colors similar.
## What does it mean to roll with a crew?
Travel in a group of four or more for bonus points towards your gang.
However, you receive less for having eight or more, so be careful. Try
to spread your crews out!
## I'm an X, what do?
Gangster: Yeah, go do whatever. Wanna backstab your gang? Go for it.
You can switch sides at any time by clicking on an enemy gang's sign up
point. Wanna murder some snitch because they ratted you out to the
pigs? Do it. Wanna pressure the locals into supplying you with goods to
export? Emergent gameplay.
Civilians: Wanna join a gang? Go for it. Gangsters probably shouldn't
be arbitrarily murdering you, but if you're repping someone else's
colors, don't expect to be given a free pass. After all, uniforms are
the only way to really identify a gang member.
SPACE COP: Get rid of all the gangsters. Secure the station. Protect
the law. Uphold the law. Eat donuts.
## No huds? How can I tell if someone's part of my group?
Tough shit, man. I hope you like trust.
In short, this gamemode will be a fun exercise in how far the
playerbase can go in regards to trusting eachother and unifying to meet
a common goal for their group with no rules, gameplay mechanics, or
anything actively forcing them to work together.
## How do I know if someone is a gangster?
1. Are they wearing a gang uniform/color?
If yes, they're probably a gangster.
If no, they're probably a civvie.
2. Are they attacking gangsters?
If yes, they're probably a gangster.
If no, they're probably a civvie.
* Startwork
* "Arcane: Everything works up until the export datum bullshit"
* I got up to "Split Profit" in "sell object"
* This is when I switched over to components and it STILL doesn't work
* alright stopwork for the 'night'
* So this is the version that crashes
* One step further in my descent to madness.
* Alright, this should be working (Minus maybe profit_split)
* Alright splitting up custom sales splits is broken right now.
* Profit split works now.
* Alright what the hell is going on here.
* Revert "Alright what the hell is going on here."
This reverts commit 6cb3b6eb56ea45ede3496bbe219ca18302c806e2.
* Oh wait, I can do commit messages through VSC?
* Adds a quick little box with all the shipping supplies you'll ever want, unwrapping signal
* Added shipping box to all maps and the service/cargo lathes.
* Fuck you mapmerge hook you ain't shit
* Alright, yet another take of making it get rid of the pricetag
* [3:43 PM] oranges: anturk is smart (This is true)
* Tested, cleaned up component procs, and limits signals sent a bit.
* Whoops
* Other comments from Ninja over discord
* Left in a comment line.
* Fixes the issue with ind. barcodes, adds examine.
* Well thank GOD the children wern't there to see it
* Adds a do_after to prevent accidents.
* Fixes merge conflicts
* Fixes merge conflict. Twice in one day.
* Fixes merge conflict.
* one tiny bit of documentation
* Travis play nice.
AddComponent/AddElement now support named arguments. This requires passing around an argument list instead of using actual proc args which a bit gross but we can blame byond for forcing this.
InheritComponent uses mirrored init arguments instead of an argument list which means no more accessing it via index to get to the same arguments as in init.
As a small bonus I restructured dcs defines to be a bit more manageable. Mainly just splits them into separate files and gives them their own folder.
Running over salt (that is, moving over salt while not walking) will
slowly dissipate it. The first two times, nothing will happen, but the
third time the salt will be fully scattered away.
I think salt is a hard enough counter to revenants that it's impossible
to justify how easy it is to apply and how relatively permanent it is
once it's applied. Salt smoke can coat entire departments in salt in
seconds, locking revenants out of them forever with essentially 0
effort.
* Makes all CanPass procs call parent
* Makes CanPass more extendable and gives the mover a say in the matter
* Replace CanPass with CanAllowThrough to use the new system
Regex replace `(?<!proc)/CanPass\(` => `/CanAllowThrough(`
* Simple optimization pass
* Initial Commit, Plastic Boxes and Soda Rings. Basic carp interaction.
* Beads, trash created from breaking plastic, carp eat plastic properly.
* Cleans up sprites, adds designs to autolathe, and adds plastic plants
* Icon Conflict more like Ion Comblict because I can't spell
* Oh neat, there's already a party crate. Added Beer/Soda 6packs to the crate, adjusted price accordingly.
* Aaaaaaaaaa runtime loop.
* You win this round travis.
* Makes the in-hand sprite the soda can sprite because honestly it's close enough don't @ me
* Typo.
* Merge conflict, style changes, FINE CARP DON'T BREATHE.
* BEGONE CONFLICT BEGONE FROM ME
* bra
* ME GRAMMAR GOOD?
* asbestos in your lung
* Merge branch 'master' into CARPET
* Merge branch 'master' into CARPET
* bruh
* Revert "bruh"
This reverts commit 186de868197ee5904ae2e72060736dc3a505f66d.
* Revert "Revert "bruh""
This reverts commit a855f2b838f02b852fb16f4a15123ca5a26b858f.
* orange man, reasonable
* Update code/modules/reagents/chemistry/reagents/other_reagents.dm
Co-Authored-By: Fel <fludd121@gmail.com>
* Update code/modules/reagents/chemistry/reagents/other_reagents.dm
Co-Authored-By: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
* cobby is a good amnitni
* e
I've added some new decals for making colored trims around walls,
points of interest, or color coded guiding lines for that hospital
feeling. These fit perfectly with existing tile coloring.
About The Pull Request
Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage.
Also changes a couple of places where a list was picked from instead of using get_sfx internal calls
This was done via regex:
(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1
(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0
full sed commands:
/(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE
/(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE
I'm not very good with regex and these could probably be optimized, but they worked.
Why It's Good For The Game
Code usability
* ian's birthday
* missing )
* hop shirt + bday cake is on front desk
* confetti 1/2
* confetti 2/2
* corgi balloon, hop gets a knife to cut the cake
* forgot knife + inhands + mapping
* oranges review, old var removed
* oranges request ;)
* Adds stat tracking to mess on station
* Checks for maint to make sure stats aren't counting maint trash which is irrelevant to the janitor
* adds mapload arg to init
* asdasd
* 1/4 done? maybe?
* more
* stuff
* incremental stuff
* stuff
* stuff & things
* mostly done but not yet
* stuffing
* stuffing 2: electric boogaloo
* Git Commit and the Kingdom of the Crystal Skull
* make it actually compile
* found more stuff
* fixes
* fix AI laws appearing out of order
* fix windows
* should be the remaining stuff
* this time for real
* i guess it should compile too
* fix sechuds