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.
A collection of misc. micro-optimizations to the various human update-icons procs.
changes to human update icons:
Removed some unused human layers.
Merged the l_ear and r_ear layers into one layer.
Minor optimizations to update_ears (optimized for only one ear in use)
update_collar() no longer creates an icon each time it runs just to check icon_states.
update_collar() now uses a cached assoc list of icon_states for comparison instead of in IconStates().
Human body types are now cached on first access so the proc doesn't need to be called all the time.
Contained icons now involve less temporary strings.
Manual tail swish now uses client-time timers instead of server-time timers.
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.
Makes /proc/gotwallitem use typecaches & a compile-time checked list of types instead of a list of strings. Probably faster, not that it really matters here.
-fixes #3226
-fixes zipties boxes
-fixes the mounted pulse module using the wrong gun
-fixes ballistic guns icons showing as empty when the round starts
-tweaks the uplink vest to include the matching helmet
Fixes hatches & maint overlays not properly being cleared during the door open animation.
Thanks go to TheGreatJorge for figuring out why this was happening.
-fixes being unable to slit people's throat
-fixes the sprite of make's custom item being wrong
-fixes the infestation event using the incinerator area, something that don't seems to exist anymore, it is replaced with the waste disposal now
Bunch of fixes and balance tweaks to the devour system. Notable changes are that xenomorphs can eat people again and that human-types no longer take ridiculous amounts of damage from devour.
changes:
Devour type checks now actually operate on species for human-types and are all-around hopefully more sane.
Replaced an obsolete define with a boolean.
Fixed xenomorphs being unable to swallow human-types.
Rebalanced digestion damage to not kill human-types in one tick.
Digestion now deals fire+brute instead of cloneloss (bite still deals cloneloss as I didn't touch its damage function)
Misc code tweaks.
Adds a shared cooldown to Mice squeaking, soft squeaking, and squealing. no more will we have to endure squeak spam
Tweaks mouse-traps to do 8-14 halloss damage instead of brute. They still do brute, but only 1-3. this'll make giant mouse-trap piles in maint less of a meme.
-fixes #3218
-fixes #3213
Fixes a messed up table at telescience
Fixes a wrong cable at engineering
Fixes a broken uplink item
Fixes a wrong named camera
Changes the location of the heister and merc shuttles in the under station z level to be near the engine pipe area
changes:
Lifts no longer automatically generate lights if they're set to not clear the shaft.
Mapped in lifts now have mapped in small lights, only in the lift cabin.
Port of the merchant mechanics from baystation12.
All of the trader, prices and most essential system are done, as well the job datum and the like. Mapping the shuttle, the base and a new dock will be done in a later pr.
Also adds phazon construction and several other items used in this pr.
The chance of the merchant slow being open at round start can be changed via the config, it is 20% by default.
changes:
Fixed an issue where the segment count argument of orbit() was ignored, leading to the Tesla not animating as it was intended to.
Fixed an issue where /datum/event had two completely unrelated definitions (fixes#3192).
Facing an opaque object with a directional light source will now temporarily change the light to LIGHT_OMNI and halve the range instead of slightly tweaking where the light cone is drawn.
changes:
/obj/effect/list_container/mobl has been replaced with /datum/mobl.
/obj/effect/stop has been removed as it is unused.
/obj/effect/shut_controller has been removed as it is unused.
Uristrunes now cache in SSicon_cache.
-removes the need for word research
-allows nullrods to shatter pylons on hit, to disable forcewalls, close gateways, and turn cult swords in less powerful claymores
-allows ghosts to flicks lights if the round is spooky enough
-renames some cult items
-converts ritual.dm and rune.dm into proper pathing and remove some in world from it
-adds a machine that allows people around it to see ghosts, with some side effects
-manifested ghosts don't count for nar'sie summoning anymore
-manifested ghosts do not use the dummy type anymore, they are their own species with a similar behavior
-visible ghosts can now whisper to people and move small objects around
-fixes #3145
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 a bug where openturf would unexpectedly delete an overlay if it was updated via. update_above() when it was already queued for update. Also fixes#3191 and includes some minor performance optimizations.
changes:
Autodrobes no longer steal your clothes if you had an oversuit on but not a custom jumpsuit.
Late Miscellaneous Init (LMI) no longer uses silent init logging.
equip_to_slot_or_del() will now equip even if the target slot would normally be inaccessible.
May fix#2826.
Fixes#2512.
changes:
The GC now truncates its lists using a single Cut() call per run instead of one cut call per item removed.
Nar-sie and Supermatter Cascades now disable the GC to reduce lag during these events - round is ending in 5 minutes anyways, so enforcing deletes is not important.
Garbage's MC status panel now displays how many objects are awaiting queueing.
changes:
Progress bars will now stack if there is multiple ones on a single turf.
Progress bars' update speed is now mediated by stoplag() instead of arbitrary numticks numbers.
A callback can now be passed to do_after or do_mob which will be called every check - if the callback returns FALSE, the action is cancelled.
Progress bars no longer show an X briefly when their associated action is cancelled.
Progress bar itself is from /tg/, do_after changes are not.
Adds Champagne, Bitters, Mint Syrup and 11 different cocktails. All of the spritework is awful. I'm sorry about that.
Cocktails: Champagne Mojito, The Classic, Cork Popper, French 75, Muscovite Mule, Orange Mimosa, Pink Gin, Pink Gin and Tonic, Pirate Punch, Planters Punch and Southside Royale.
changes:
Organs now use Initialize().
The observe message now shows the configured respawn delay instead of always 30 minutes.
Seed datums no longer have a timer in New().
External organs no longer have a timer in New()/Initialize()
Converted some spawns in organs to timers.
Floor init no longer breaks to plating first for mapped in tiles.
Added the INITIALIZE_IMMEDIATE macro to make Initialize() not wait for SSatoms init.
Mannequins now use INITIALIZE_IMMEDIATE instead of a custom-defined New().
Mannequins (from get_mannequin) now delete themselves if unused for 5 minutes or longer.
-fixes some issues with sawing off the ghetto shotgun
-adds cargo access to the maint leading to the elevator, to stop people from breaking so easily into cargo
-Fixes #3169
-Fixes #3158
-Fixes #3157
-Fixes #3147
-Fixes #3148