* Sideports a couple of init unit tests from Neb.
* Trying to unfuck initialize logic.
* Removing del()s.
* Adjusting return values to Initialize().
* Moving some dangerous object logic from obj onto the two types that use it.
* Rolling back some init changes and commenting out initialized atom unit test.
* this comment formatting is a minor war crime
* Removed sleep() from signaler circuit Initialize().
* Additional Init fixes post-rebase.
* Uncomments subsystem test since that's passing.
All living mobs will now have a check run every 30 seconds or so to replay the current ambience of the area they're in, if they've not had it played in the last minute. Said check is a 35% chance of playing the ambience. Good for if you're standing around in one area.
Computers + turrets got new sounds, turrets have a deploy, retract, and rotate sound. Arcade machines now play sound effects depending on what step you're on and what you're doing.
Replaced maintenance ambience with different ambience from Paradise/Aurora, and moved our maintenance to foreboding, and moved old foreboding to it's own folder.
This adds throw_alert() and /obj/screen/alert, a system that allows you to do custom hud alerts for any variety of things from "You're too cold!" to mecha status indicators for the pilot.
There's quite a few things that actually got replaced; the
fire/oxy/tox/co2 alerts are all now just alerts, as is nutrition. There's also a number of new alerts, such as blindness, highness, legcuffed, buckled, handcuffed, and probably some more I missed; read code/_onclick/hud/alert.dm and see for yourself!
Additionally, a number of tweaks have been done to resisting code, to make it so that there's an indicator when you're buckled or handcuffed, and can just click the alert to start resisting. This includes a refactor that combines the logic for lockers, holders all into one proc, called container_resist().
Also, the health and internals indicator got moved down one tile each. Needed room for the alerts. If we add the oxygen tank action buttons from /tg/ and remove the internals indicator, the health indicator can go back where it was originally.
Alerts, pictured in the top right.

Here we go again with another one of these fixes, pfft.
Changelog Notes:
- Fixes typo in Orion Trail event for mutiny regarding a traitor running up to an unfortunate crewmember and murdering them.
* Updates one arcade machine emag message to to_chat, adds another.
* Returns 1 in emag_act for orion trail.
* Converts a bunch of stuff to macros. Should probably not break anything.
* Fixes an improper macro usage.
* Attempts to fix all 20 errors.
* Adds: flamenco dress, bustle dress, cowboy duster, sheriff badge, tiny cowboy hat. To be added: 2 pairs of cowboy boots, stick horse.
* Adds 2 cowboy boots and a stick horse. yeehaw.
* Attempting to squash conflict that was caused by one of my OWN prs. For shame.
* attempting to fix conflict ft. anewbe
* Bouquets
* Fake Bouquets. Can be won from arcade machines.
* Heart box chocolates containing a set arrangement of chocolates.
* Adds said chocolates (milk chocolate, white chocolate, and truffles) all bite-sized.
* Adds 5 cards, one blank and four with covers. Function identical to paper except you can't make an airplane because I hate fun.
* Adds The four cards with covers, 3 real bouquets, and 2 chocolate boxes to cargo under a 'gift crate' for 10 points.
Sprites by me. Code would not be possible without cerebul's help. Let me know if I've goofed on something, but I did test all of the items + ordering them from cargo.
A lot of new defines are now in inventory_sizes.dm, which contains;
All the size identifiers (the thing that tells the game if something is bulky, or w/e).
Storage costs for all the sizes, which are exponents of two, as previously.
A few constants for inventory size.
Also changes all storage item's capacity definitions by basing it off of how many 'normal slots' exist for it. This allows one to change the definition for all of the defines in the file, and everything will follow along without needing to change 500 files. In testing, I made all ITEMSIZE_COST_* defines doubled, and nothing had broke.
The benefit of doing all of this is that it makes adding new weight classes in the future much simpler, and makes knowing how much space a container has easier, as seeing ITEMSIZE_COST_NORMAL * 7 means it can hold seven normal items.
Computers now use an overlay based system, instead of demanding a full set of icons (on, off, broken) for every different computer.
Partially ports ParadiseSS13/Paradise#1468 which is a port of tgstation/-tg-station#9931.
Main correction is the removal of Topic() in code/game/machinery/computer/computer.dm.
Issue introduced in #7617 where I stated multiple times this Topic()-return value was incorrect.
Ensures that computers return the correct value after the ..() check.
Standardization of the object tree and some modified functionality.
Moved a lot of storage/*_kit and similar boxes to storage/box/* ; most of these can now be found in boxes.dm. First aid kits remain a separate item type.
Replacement Light boxes pick up lights (for example broken ones) when used on them
Moved weapon/secstorage to storage/secure
Moved plant bags, ore satchel, trash bag, and sheet snatcher to storage/bag, in bags.dm
Fixed reagent_containers and snacks to pass through attackby() so the use_to_pickup code works. This affects plant bags, trash bags, and pill bottles.
Dice packs are now pill bottles, and all pill bottles can pick up dice.
Added error handling to uplink/generate_menu() so that one mistyped string doesn't bork the whole syndie uplink menu, since strings cannot be type-checked at compile time.
Cigarette packs and crayon boxes are now storage/fancy, however they retain existing update_icon() code.
Added a comment to storage.dm so that future people know where to look for use_to_pickup and allow_quick_gather code.
Updated all maps.
I've tried to test this thoroughly but I wouldn't be surprised if there were a few lingering issues. Try not to panic if you encounter any.
Full (i think) list of changed paths:
/obj/item/weapon/storage/flashbang_kit > /obj/item/weapon/storage/box/flashbangs
/obj/item/weapon/storage/body_bag_box > /obj/item/weapon/storage/box/bodybags
/obj/item/weapon/storage/chemimp_kit > /obj/item/weapon/storage/box/chemimp
/obj/item/weapon/storage/trackimp_kit > /obj/item/weapon/storage/box/trackimp
/obj/item/weapon/storage/seccart_kit > /obj/item/weapon/storage/box/seccarts
/obj/item/weapon/storage/handcuff_kit > /obj/item/weapon/storage/box/handcuffs
/obj/item/weapon/cigpacket > /obj/item/weapon/storage/fancy/cigarettes
/obj/item/weapon/storage/mousetraps > /obj/item/weapon/storage/box/mousetraps
/obj/item/weapon/storage/PDAbox > /obj/item/weapon/storage/box/PDAs
/obj/item/weapon/storage/id_kit > /obj/item/weapon/storage/box/ids
/obj/item/weapon/storage/lightbox/mixed > /obj/item/weapon/storage/box/lights/mixed
/obj/item/weapon/storage/donkpocket_kit > /obj/item/weapon/storage/box/donkpockets
/obj/item/weapon/storage/beakerbox > /obj/item/weapon/storage/box/beakers
/obj/item/weapon/storage/syringes > /obj/item/weapon/storage/box/syringes
/obj/item/weapon/storage/gl_kit > /obj/item/weapon/storage/box/rxglasses
/obj/item/weapon/storage/diskbox > /obj/item/weapon/storage/box/disks
/obj/item/weapon/storage/stma_kit > /obj/item/weapon/storage/box/masks
/obj/item/weapon/storage/lglo_kit > /obj/item/weapon/storage/box/gloves
/obj/item/weapon/storage/lightbox/bulbs > /obj/item/weapon/storage/box/lights/bulbs
/obj/item/weapon/plantbag > /obj/item/weapon/storage/bag/plants
/obj/item/weapon/storage/satchel > /obj/item/weapon/storage/bag/ore
/obj/item/weapon/trashbag > /obj/item/weapon/storage/bag/trash
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5494 316c924e-a436-60f5-8080-3fe189b3f50e
-Made computers use idle_power_usage and active_power_usage that it used from the MC.
I'm sure something is likely to break because I removed a lot of snowflake code. I tried to test all the computers with what I can but if you find something odd then please tell me.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5369 316c924e-a436-60f5-8080-3fe189b3f50e
- Cell charger: Now calls battery emp_act() as well.
- Security Barrier: Now has a chance to toggle the lock.
- Flasher (portable and wall mounted machines, not the item): Now has a chance to flash.
- Wall-Mounted Sparker: Creates sparks.
- Light switch: Toggles the lights when emp'd (not that it'll matter since the lights will probably all have gone out anyway.)
- Weapon Recharger: Calls the energy gun's battery's emp_act() for guns and in the case of stun batons, it sets their charges to 0.
- Cyborg Recharge Station: Cyborgs now get ejected, then emp'd. There would probably be issues with emping the cyborg inside the machine, like being trapped forever or something.
- Sleeper: Eject's the patient. I kind of wish I could make it inject random chems, but it wants a usr and I'm not inclined to start mucking with sleeper code just for this.
- Space Heater: Calls the emp_act() for the battery inside the heater.
- Status Display: Causes the blue screen of death.
- Portable Atmos Pumps: Randomly changes the pressure, has a chance to flip the direction and turn the machine on/off.
- Portable Atmos Scrubber: Has a chance to toggle the machine on/off.
- Arcade Machine: Spits out some random prizes.
- Medical record computer: Runs through the medical records and has a chance to scramble the name, age, sex, blood type, physical or mental state of patients as well as a small chance to delete entries entirely.
- Security record computer: Runs through the security records and has a chance to scramble the name, age, sex, criminal status, physical or mental state of entries as well as a small chance to delete entries entirely.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5237 316c924e-a436-60f5-8080-3fe189b3f50e
>dd_replacetext and dd_replacetext_case are now replacetext and replacetextEx respectively.
>replacetext and replacetextEx works using strings only; it doesn't convert it into a list and then back into a string.
Fixes some dumb-dumbs in textlist and text2listEx
> "<" where there should be a "<="
> no else case for when the separator is longer than the text (causing empty lists to be returned)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4971 316c924e-a436-60f5-8080-3fe189b3f50e