Better typepathing and doesnt try to update_icon on things
that don't have an update_icon proc defined
Also adds a holoitem flag so admin area copy doesn't make objects immune
to lava fire and acid
* Implements a full spooky clown event for halloween.dm
* temp
* made requested fixes
* reeeee
* Clowns actually work now. Minor refactors to hallucination thanks oranges
* CLOWNS FINALLY WORK PROPERLY JESUS FUCK
* Fix incorrect prob method call
I moved some things in APC's construction code.
Emaged and malf-AI-hacked APCs can now be fixed replacing theyir board (old one destroyed in process). - We emag and hack APC's board, not frame
You can now add/remove APC's wires even if board is secured
Removing APC's and SMES's terminal no longer ignore current tool's speed
You can repair APC's cover (only if APC is not compleatly broken) by using APC frame on it, while electronicks are still in place
You can no longer unlock AI-hacked APCs, throught AI still can
closing APC's cover will lock it
Guvax is now targeted; invoking it charges your slab to bind and start converting the next target attacked in melee within 10 seconds. This makes your slab visible in-hand.
tweak: Above 5 Servants, the invocation to charge your slab is not whispered, and the conversion time is increased for each Servant above 5.
Using Guvax on an already bound target will stun them. The bound target can resist out, which will prevent conversion.
Sentinel's Compromise is now targeted, like Guvax, but can select any target in vision range.
Sentinel's Compromise now also removes holy water from the target Servant.
Clicking your slab will cancel these scriptures.
Both of these will change your cursor, to make it obvious they're active and you can't do anything else.
Convert times are faster at very high servant amounts, but it's much easier for 1-on-1 conversions to go wrong and have the target escape. (Though the binding makes early conversions slightly easier.)
Resist time for the binding is a flat 4 seconds, and moving/being moved while chanting will break it immediately.
Formula for conversion time is 5 + (0.5 for each valid servant above 5) seconds up to a maximum of 10 seconds at 15 servants.
* Adds Juiceboxes/Cartons
Adds craftable small cartons and juiceboxes.
* Housekeeping
Thanks, goof.
* Acting upon suggestions
Reduce cost of crafting from 2 to 1 sheet of cardboard, reduced volume
of small cartons from 25 to 15. +Housekeeping
* New Sprites + Fixes
Adds distinct grape, orange, and chocolate milk juice box colors (from
Nienhaus). Adds chocolate milk. Changes standard chocolate recipe to
compensate for chocolate milk change (soy milk chocolate bar recipe
remains the same). Fixes being unable to juice grapes in reagent
grinders.
Custom food items are now w_class 2, allowing them to fit in papersacks.
Prevents you from putting custom food items into other custom food items. A minor bugfix that existed before that allowed for infinipizzas and infinicakes.
Gone are the days of:
That's a custom cake slice cake slice cake slice cake slice cake slice cake slice cake slice cake slice cake slice cake slice cake slice cake slice cake slice cake slice cake slice cake. (Feature? You decide.)
It bothered me that a crafted sandwich can fit inside a paper sack, but a custom sandwich that's just two slices of bread put together is suddenly too big. On the other side of this, you can now fit entire custom cakes into paper sacks, which doesn't make a whole lot of sense. If this bothers anybody, it's easily fixed.
* Adds new Halloween content
* Removes the delay
* Replaces archaic code
* Atomizes by removing unrelated tweaks
* Conflicts I
* Conflicts III, I think
* Unticks "halloween.dm"
`/turf`, `/turf/open`, `/turf/open/space`, `/obj` should now no longer have an `init[]` proc in byond.
This mostly abuses the fact that `for (var/thing in null)` works exactly the same as `for (var/thing in emptylist)`
`atmos_adjacent_turfs` is lazy init'ed and set back to null when empty. `GetAtmosAdjacentTurfs()` will always return a list for code that doesn't want to care.
`atmos_overlay_types`, and `proximity_checkers` lazy init and reset back to null when empty.
`armor` is now init'ed in `/obj`'s `New()` if it's blank. This could also be set to some lazy init system if somebody is feeling masochistic enough.
`/obj`s that both don't call parent in `New()` and don't set their own armor will have a null armor list. This might cause bugs so this change may get removed if that becomes an issue.
Minor slightly unrelated change that made doing this change easier, `add_overlay()` now *technically* works properly if given a list
Prevents them from infinite-hitting things by deleting them after they apply hit effects.
Also removes the secondary hit for a 30 brute primary hit instead of attempting to split damage as that's not working well.
Adds hardlight bows and hardlight quivers.
Does 12 brute and 18 burn on hit.
The quivers regenerate one arrow every few seconds and is worn on the back.
Arrows disintegrate on hit and are destroyed after 20 seconds if it is dropped to prevent spam.
ADDED TO UPLINK AT 7 TELECRYSTALS FOR A BOW AND QUIVER. Can be included in surplus crates.
🆑
* moves black shoes recipe to be just below grey jumpsuit recipe
adds recipe for fingerless gloves
* added black gloves recipe
* black gloves require 3 rolls of cloth instead of 2
reduced botanist's leather gloves to only need 150 biomass