Mining Map Changes
There is an easier way for paramedics/miners to traverse down zlevels, without the using of a mobile ladder. A new area is built for that purpose. Main level has a ladder going up and down to two different areas. Both areas are guaranteed to be connected to another airlock. Top level is connected to science, bottom level is connected to a cargo elevator. Atmospherics system in mining is more saner. The mining processor was made shorter, and 4 grates are guaranteed to spawn now for each miner slot, and contains it's own maintenance hatch for easy upgrades. Mining also now has its own requests console and disposals delivery destination. The industrial smelter is now twice as fast, however uses three times as much power.
Ash will now track onto a user's boots, creating footprints in both the ash and any subsequent tiling the user steps on. Currently these footprints use the track template that blood uses, and indeed are a subtype of blood-tracks. The result is perhaps not the best sprite. Even so, I thought it at least a worthy experiment.
Overview
This is just a misc fix PR to minor annoyances I encountered while playing on the server. This fixes the following:
Resisting from a chair unrestrained no longer adds a cooldown to activating objects.
Action figures are no longer massive, and only take up 1 slot in your inventory.
Boxing gloves can now be worn by any race.
The ore summoner can only move up to 10 ore at a time.
This PR rips out the old Bump() and Bumped() procs and replaces them with Collide() and CollidedWith() respectively. Behavior should be the same, but Bump() should no longer be double-called, and no longer relies on spawns.
Other changes:
LAssailant is now a weakref.
Some direct loc setting are now forceMove().
changes:
SSatlas will now warn if it detects a compiled-in map.
The asteroid gen no longer stops working if no smelter is mapped in.
Multiple smelters can now be mapped in without all but one being nonfunctional.
changes:
Replaced some bad references to the old asteroid turf type.
Fixed an issue where asteroid walls being mined down would always spawn the ash variant instead of rocky where appropriate.
Changed the abstract asteroid turf type to have a unique debug texture & description to make it more identifiable.
Debug tex (from TG):
2018-02-10_17-52-39
Fixes#4275.
Adds lava interaction: humans walking on lava titles will suffer a slowdown then being set on fire, cyborgs and simple mobs will only take burn damage.
Added the lava and basalt turfs to a random map generator, and replaces the tundra's ocean with the title just named water.
changes:
Lighting's ChangeTurf() override has been merged into the base ChangeTurf() proc.
Turfs can now set an alternate openturf type to be used instead of the default one when ChangeTurf(/turf/space) or ChangeToOpenturf() is used.
Added ChangeToOpenturf() helper.
Added a missing dig icon state to the rocky ash DMI.
Fixed an issue where the above var was not properly carried over on ChangeTurf().
Fixed an issue where Z-mimicing turfs would not be notified of their below turf ChangeTurf()ing unless they were an openspace.
* Openturf icon fixes and improvements
* more things
* Remove some pointless/bad layering/planing
* yeah well I didn't need this anyways
* Refactor Z mimickry to be at /turf
* more refactoring
* Cleanup, use turf/flags instead of z_mimic_flags
* Fix turf/Entered()
* misc optimizations
* fixes
* Major icon smoothing optimizations
* Speed up boot some more
* Fix AO
* Remove some redundant code
* Tie Z-lights to Z-mimic instead of openturfs
* Fix an opacity issue with no_mutate turfs
* Fix some issues with Z-mimic AO not properly clearing
* Fix some OT->OT changetuf bugs
* Add helpers for changing Z-mimic operational state on turfs
* Fix some merge issues, change how F_CUT smoothhint works a bit.
* indentation
* SSopenturf -> SSzcopy
changes:
Adds three new turf types: lava (separate from the existing lava which is bound to the flooring system), basalt (a child of asteroid turfs), and chasm open spaces.
canSmoothWith lists on asteroid turfs are now in the form of a shared global list for performance reasons.
'Ash' turfs have been repathed to /turf/simulated/asteroid/ash. Base asteroid turf type should not be used directly anymore; maps have been updated to new path.
Airless openspace, chasms, and airless chasms now have map-time debug icons.
No player-visible changes, just prepwork for future things and performance tweaks.
Sprites from TG.
changes:
Overlays now creates less temporary lists.
Falling no longer queues unsimulated atoms that wouldn't fall anyways (incl. LOs).
Pixel-shifted AO is now cached too.
Changed some references to get_map_cell() to macro equivalents in random maps.
Added smoothing hinting to the icon smoother, allowing for major performance improvements in common cases.
Space initialization no longer involves appearance churn (and is much faster as a result).
changes:
Z-levels below the surface now use 'rocky' ash instead of ash turfs. (Sprites from TG)
Fixed an issue where openturfs would incorrectly inherit their mimiced turf's gender.
Tweaked the names & descriptions of sand (now ash) and rock.
Reduced some pointless locate() calls in icon smoothing code for turf paths.
Replaced the empty space map with runtime Z expansion.
Fixes#2756.
changes:
Maps are no longer compiled in, instead loaded directly from the DMMs at runtime.
Z level defines have been moved from the config to map datums.
Unit tests now use typecaches.
DMMS now actually works.
DMMS has been updated slightly.
DMMS is now capable of loading simple lists of non-text types.
DMMS is now faster when loading many types without mapped in attributes and when loading area instances.
Asteroid generation is now defined on the map datum instead of being hard-coded in SSasteroid.
Holodeck presets are now defined on the map datum.
Atmos machinery now uses Initialize().
Nerfs mining making a fuckton of money easily, now you need 1,000 mining points to get 100 credits.
Also, thermal lances are more expensive and you can buy only five of them.
changes:
use_check() will now show failure messages to the affected mob by default. It still returns the failure reason & permits disabling of messages via. the show_messages parameter.
Lockers now take 2 seconds to weld or disassemble.
A progress bar is now shown to mobs with the progress bars pref enabled while attempting to break out of welded lockers.
Adds the ability to upgrade the following:
- Sleepers
- The ore processor
- All cooking appliances (Minus the microwave)
- Tesla Coil
Also makes components not spawn in machines until they are needed (When they are being upgraded) to reduce the objects generated. Adds some new macro's and converts some istypes to use them. And moves stock parts into their own file.
Machinery objects' component_parts list is now automatically populated with the types in the component_types list. Types can have an associated number which is interpreted as an instruction to spawn that number of that type. This eliminates a few Initialize() procs, and simplifies others.
Example:
component_types = list(
/obj/foo/bar,
/obj/baz = 2
)
Other changes:
Cable coils will now no longer force a stack size of 30 when created without their stack size passed as a parameter - this fixes anonymous types not working correctly with cable coils.
Adds a limit to items in the mining vendor. Most items have 10, some items have more/less, all items that come from the shuttle have infinite stock along with some other items like point transfers. And the floodlight comes on the shuttle now.
Fixes#3195Fixes#3194 by reducing a bit the mining pickaxes damage and the kinetic accelerator damage
Allows fitness machines to drain a bit of nutrition as you use them
Fixes one of the syndicate cyborgs sprites having a rogue pixel somewhere
Fixes some barsigns not having icons for all directions
Brings back the illegal guns crate to cargo due to massive popular request
Fixes#3051Fixes#3055Fixes#3057Fixes#3061
Fixes some food having no taste, also fixe cheese tasting like meat and other minor things like grammar.
Removes the ,45 magazine from the warden's locker, and give them a helmet to match his armor
Fixes a missing window at the main central level
Fixes a messed up hall at central command
Adds a small room for interview for the ccia in the odin, that was left out due to map issues
Adds the captain chair overlay that I forgot to add way back
Turns the mining flags into light emitting beacons. This is for added ambiance and to make them more useful in the not-at-all lit asteroid of Nümap. They can now be used as waypoint markers!
Preview: https://kama.skullnet.me/index.php/s/E9ko2agfntCCamA
Ports Baystation12/Baystation12#12658
Changing how the calculation of armor works , instead of just being a check if it is protected fully, half or nothing. Making armor more reliable and less rng dependant.
Also, uranium meteors will irradiate nearby people when they explode.
changes:
Atom types can now define custom adjacency code for the smoothing system.
Walls now draw using the generic icon smoothing system.
Walls now pre-bake colors into their icons instead of doing it client-side with the color var.
Walls can now use the SSoverlay appearance cache; wall icon updates should be faster.
The "rusty" wall type now actually works.
Smoothing now uses mutable_appearance instead of image in some places.
Should be a bit easier on clients, though I haven't done profiling.
This PR breaks 510 compatibility.
changes:
Clipboard overlays are now a little gentler on SSoverlays.
Ported potential performance improvements for getFlatIcon and listclearnulls from /tg/.
Icon smoothing now clears the base icon by default; SMOOTH_NO_CLEAR_ICON disables this behavior.
Potential SSoverlays performance improvement from /tg/.
Speculative fix for #2826.
Fixes#2832Fixes#2821Fixes#2805
Adds a tint to the bomb suit helmet
Fixes the wizard voidsuit an outdated wizard faction check
Fixes pants don't convering the legs
Fixes hailers showing their messages on the lobby
Reduces the recharge cost of the mounted thermal drill, so, it won't use an entire powercell when you fire it once