* Converts A && A.B into A?.B (#54342)
Implements the ?. operator, replacing code like A && A.B with A?.B
BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
* Converts all A && A.B into A?.B
Co-authored-by: ZeWaka <zewakagamer@gmail.com>
* Renames a few variables. Also reorders fallback order again.
Renames item_state to inhand_icon_state
Renames mob_overlay_icon to worn_icon
Renames mob_overlay_state to worn_icon_state
worn_icon_state/mob_overlay_state now never gets used for inhands.
* Fixes some comments
* Fixes map issue
* Restart lints
* Properly resolves conflicts
About The Pull Request
When #48236 was in progress, there was discussion about how a crew pinpointer was OP for paramedics. I immediately had an idea for a new one and made a PR to the paramedic PR. 81Denton asked me to make this its own PR after the paramedic PR was merged.
The proximity crew pinpointer does not point in the direction of the patient, but has a circle sprite that gets smaller larger as you get closer, so you have to search around, or combine it with the handheld crew monitor.
The circle is at maximum the smallest size after 29 tiles away, so you must be 28 or fewer tiles away for an indication that you are getting close. I welcome feedback on this. The handheld crew monitor can be used to find the area they are in.
proxpin
Demo video: https://youtu.be/_rXeJ49b-e8 (The pinpointer gets bigger rather than smaller now)
This is only attainable at the moment to paramedics as they spawn. Should it also be available elsewhere? now constructable from the Biological Technology techweb
Further changes
Moved Crew Pinpointer into premium nanomed items for 900 credits
Moved Handheld Crew monitor into premium nanomed items for 1750 credits, same price as before
Why It's Good For The Game
In #48236 it was stated that paramedics should start with the bare minimum equipment to do their job. The crew pinpointer that points them in exactly the right direction is pretty powerful, and this nerf will encourage them to either get used to the proximity one, or upgrade to the normal one at a price from the NanoMed or from techwebs.
Moving the Crew Monitor into premium was necessary to make it more of a luxury than an instant grab.
Feedback for nanomed premium prices on the normal pinpointer and the handheld monitor would help a lot
Changelog
cl JJRcop
add: New proximity crew pinpointer.
balance: Paramedic's crew pinpointer replaced with proximity crew pinpointer.
balance: The crew monitor was moved to premium items in nanomed, same with the handheld crew pinpointer
/cl
* 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.
* prices & income
* more prices
* lower megaseed premium prices
* custom prices for premium tools
* slightly lowers prices for some snacks/drinks/cigs
* hey get back here
* Adds sorting to most input() lists.
* Sorted some global lists, added more input sorting
* Should now use correct sort everywhere.
* compiles
* Last fixes.
removes materials list from items, uses custom_materials instead. This might introduce some bugs so we should testmerge this for a while (and Ill test stuff locally as much as I can)
this also adds material crafting to sheets. Test case being chairs. In the future we can add stuff like tables, walls, doors etc.
also applies materials to everything, with fixes, which can close#46299
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
* mostly fixes in this commit
* removes old_god from the dme
* russian shuttle improvements
* TODO: fix the hook gun
* shotgun finished, next commit shuttle
* bounty hunting shuttle
* back up to speed on the dmis
* readds poster 46 and adds the shuttle finally
* dmi fixes
* traps need fixing, work out whatever is happening with synths
* super final touches, see desc
map ports + proper spawners, pinpointer and traps functional. other misc changes
* removes verb stuff from non verb stuff
* review (see desc)
antimagic checks and it now the two objects move inside each other instead
* dmi conflicts
* PLUNGERS. BEGONE.
* 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
* Free codebase churn
* fixes dviewmob
* a commit
* Partial revert "Free codebase churn"
This reverts commit 9dd41b3860c331637bbc85e694dd32dc59768ad5.
* better fix to dviewmob
* renames living_mob_list to alive_mob_list, adds mob_living_list and carbon_list
* make some use out of the shiny carbon list
* make some use out of the shiny new living list
* more things, also make the mobs subsystem (Life) use living list
* bonus
* domo arigato mr. roboto
* compile fixes, also made the drone code less dumb
* better?
* make admin message prettier
* honk
* fixes blobs
* rev fixes
* one small thing