* 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.
Adds a HUD for observers
Adds a HUD for rigs and mechs
Adds up/down buttons for AI hud
Add more tg style alerts
Fix some bugs with the tg alerts
Improve icon_states usage by caching it
Redo how respawning works, add a button to ghost hud for it
Sets dirt to use the dirt declaration instead of asteroid, removes the TURF_HAS_EDGES flag (which causes error overlays on dirt at the edges), and adds dirt footstep sounds which were overlooked
Shuttle tiles, default floors are still "regular".
Lava, sand, water, grass, beach, mining turfs all have sounds playing now for each footstep. <3
A small balance note - water tiles slow you down by 4, and 8 for deep/ocean tiles. I'll remove these and put them in a separate PR if requested.
Massive credit to @Arokha for helping me figure out the floor system and sitting through getting it put together. <3 <3 <3
* Large amount of work; Animal taming, shearing. Random animal spawns on sif grass/forest turfs. New PoIs, thermal poncho.
* Combat drone DMI moved to drones folder. Mining Drone subtype added. "Tameable" with ores, will collect and store ores when not in active combat.
* Fix Runtime in atoms_movable.dm,597: list index out of bounds
* Fix Runtime in floor_attackby.dm,118: Cannot execute 0.is crowbar().
* Fix null values being present in mob_list.
* Another fix for Runtime in update_icons.dm,254: Cannot execute null.GetUIState().
- This time lets just ensure dna is instantiated no matter who is calling dress_preview_mob().
* Fix Runtime in suit_storage_unit.dm,792: Cannot execute null.set machine().
- Also fixed other mixups of usr vs. user that I found in the same file.
* Fixes Runtime in find_spawning.dm,688: Cannot read null.origin_tech
- if this else if block is reached, new_item must not exist, so we obviously can't set origin_tech on it. Examination of the code seems to suggest the original author intended that for any "talking" items to have arcane and precursor tech; since src is now being made talking, src should get the tech.
* Fix talking artifacts downgrading arcane/precursor tech
- Bump up the values by one for talking artifact items instead of overwriting whatever the value was.
- Set initialized = FALSE on unsimulated turfs that need to intialize.
- Most of area/New() to initialize
- Faster lookup of self-init on atoms
- Split air alarm and fire alarm files, move new to initialize
- Tweak decals and opacity
Co-authored-by: Aronai Sieyes <arokha@arokha.com>
Co-authored-by: Leshana <Leshana@users.noreply.github.com>
* Make shuttle corner turfs look slightly better
* Add 'antilight' overlay on corner turfs to make them look good
* Split update into own proc so it can be called in two places
* Further tweak to shuttle corner turf appearances
Removes some weirdness.
* Further make shuttle corners look better