Thanks to Razgriz and Dragonhark for coding most of the three plant mobs; piranha plant, spitter and pitcher plant, and Skits for providing the sprites.
I have with help finished the mobs with spitter stunning victims for other plants to eat, pitcher heals when having a meal and both it and spitter produces soyelent which can have fture possible uses!
If the stars align and a space vine has the carnivorous trait and enough potency, it has a chance to spawn these mobs when spreading!
additionally theres now two new variables, one that makes ranged mob stop targeting unconscious victims and another that makes mobs immune to entangling and attacking vines!
We got voltato which is a potato mutant that produces 200 V for all, then we have the solarflower which is a sunflower mutant that glows and can be planted anywhere, perfect for mood lights and blackout! Then we have two lavender mutants, milk dew that produces milk and sweet breeze that produces Serazine!
The two new chems are Serazine that is a mild anti toxin that can be used to enhance drugs, which at the current time is bicaridine with some tungsten added in to produce the other new chem called Alizine that is double as effective as bicaridine, though it sadly cant cure internal bleeding when overdosing patients :c
All th ebenefits of the 3 bean types but in a fraction of the quanitity
Have one plant produce all or 3 plants, 3plants is objectively better but blacksapbeans are easy to care for
Gave soybeans a new mutation, the sapbeans.
Yes they are like soybeans but instead of beans they contain a glowy coloured substance.
No you should not eat them.... maybe i dunno be my guest i guess.
This makes Purplesap and orangesap items available and is my intended fix.
Removes a very large amount of world loops.
Adds a macro to painlessly generate a global list, and the needed code to modify the list when an object is made or deleted automatically.
Cleans up some commented out code.
* Yes, all of them.
* Also did a few corrections to redundant New() and broken Destroy() along the way
* Renamed the turf_initializer.initialize() proc to InitializeTurf to avoid confusion.
* Subsumed /area/proc/initialize into /atom/proc/initialize() - Made /area's LateInitialize to get same behavior as before.
* Moves proc/initialize() from being on /atom/movable, /are and /turf/simulated to being on /atom - Now turfs can initialize too
* Added the SSatoms subsystem which controls initialization of atoms at roundstart and during normal conditions.
* Disabled the old auto_init = 0 behavior, ALL atoms should get initialized() called on them now.
* Refactored the way initialize() is called during /New() to utilize SSatoms instead of SScreation
* Removed SScreation, as it was only a stop-gap until SSatoms could be ported.
* Updated the maploader to inform SSatoms when it is loading maps instead of SScreation.
* Updated the template map loader to use SSatoms to perform initTemplateBounds
* Renamed 'initialized' var in seed_storage to deconflict.
* Removed usage of auto_init = 0, replaced with a no-op initialize() proc for atoms that don't need initialization.
* Yes, all of them.
* Also did a few corrections to redundant New() and broken Destroy() along the way
* Renamed the turf_initializer.initialize() proc to InitializeTurf to avoid confusion.
* Subsumed /area/proc/initialize into /atom/proc/initialize() - Made /area's LateInitialize to get same behavior as before.
* Moves proc/initialize() from being on /atom/movable, /are and /turf/simulated to being on /atom - Now turfs can initialize too
* Added the SSatoms subsystem which controls initialization of atoms at roundstart and during normal conditions.
* Disabled the old auto_init = 0 behavior, ALL atoms should get initialized() called on them now.
* Refactored the way initialize() is called during /New() to utilize SSatoms instead of SScreation
* Removed SScreation, as it was only a stop-gap until SSatoms could be ported.
* Updated the maploader to inform SSatoms when it is loading maps instead of SScreation.
* Updated the template map loader to use SSatoms to perform initTemplateBounds
* Renamed 'initialized' var in seed_storage to deconflict.
* Removed usage of auto_init = 0, replaced with a no-op initialize() proc for atoms that don't need initialization.
Gene masks (like for plant genes) used unpadded num2hex on a random
number 0-255. This had the (technically ok) result of masks for values
1-15 being a single character but also had the (not ok) result of the
mask for value 0 being the empty string. This only happened to 1/256 of
genes, so was easy to miss.
This change pads all of them to 2 characters so this issue won't happen
and to line things up nice.