* Adds the Vibebot and associated files
* Refactored code
* Further code fixes
* Fixed UI issue
* See last commit
* god why
* Fixed bug related to color priority
Implements the geysers and pumps I originally added along with the first draft of plumbing.
Geysers
A geyser can be plungered with a reinforced plunger to activate. At wich point, it'll either produce clf3, hollow water, protozine or rarely wittel.
Pumps
Adds the liquid pump to the plumbing RCD. Place on an active geyser and wrench it to start pumping the geyser of its delicious juicess. I also changed it to not use power, because it would be awful drawing kilometer long wires along with the ducts.
Chems
Hollow water works basically like blood and mutage, where you can mix it with 1 unit of holy water for more holy water.
Protozine has a .2 healing, down from omnizine's .5. The healing is just kind of a side thing and not really what this chem was implemented for.
If it wasn't obvious, this allows chemists to industrialize strange reagent creation, with hollow water being able to create limitless holy water alongside protozine being a valid replacement for omnizine. Getting 2 geysers with those chems and on lavaland is quite the hassle, and you still need to get some holy water from the chaplain as kickstarter. I honestly think this is fine, and otherwise I could add a unique botany catalyst, so they don't become useless in the process.
Wittel
Adds wittel, wich is rare. Does nothing, but can be processed into two fun/regrettable chems.
Adds gravitum. Metabolizes very slowly. Drinking it makes you weightless, and spraying it makes that object temporarily weightless. Make 10u by mixing 1 wittel with 10 sorium
Adds metalgen. Created by mixing it with mutagen and bluespace powder. Must then be mixed with 40u of a powedered material and 1u of liquid dark matter.
The material used becomes imprinted on the chem. It can then be applied to anything, except mobs, to turn it into that material. Radiation is bad, and no you can't turn the nuke into plasma to blow it up.
The chem is difficult to get and use, but it can turn the escape shuttle into solid gold wich looks really cool. You could also turn it into plasma and vaporize everything. It can be used to, with some effort, duplicate materials.
🆑
add: Adds geysers to lavaland! They can be activated by using a reinforced plunger found in the medical vendor. They can be harvested by using a new plumbing device, magically powered liquid pumps!
add: Adds Hollow Water to geysers, wich can be combined with Holy Water as catalyst for more Holy Water
add: Adds Protozine to geyers, a very weak version of Omnizine. Can be used in Strange Reagent mixing
add: Adds Wittel, a very rare geyser chem. Can be processed into gravitum, wich removes gravity. Can also be processed into metalgen, wich has a strange tendency to transform objects into the imprinted material.
/🆑
Why:
This is what I originally wanted to do. The idea was to have a lot more chems, but I can't focus on one thing for that long. Hopefully this'll empower the bored chemist and make the rounds just that more interesting. Hopefully this'll spark the creation of some other geyser chems aswell.
That and makes shaft miners not the only ones hunting on lavaland.
AddComponent/AddElement now support named arguments. This requires passing around an argument list instead of using actual proc args which a bit gross but we can blame byond for forcing this.
InheritComponent uses mirrored init arguments instead of an argument list which means no more accessing it via index to get to the same arguments as in init.
As a small bonus I restructured dcs defines to be a bit more manageable. Mainly just splits them into separate files and gives them their own folder.
* adds rideable goliaths
* stamding on the emdge
* plems work
* this should be it
* FUCK YOU TRAVIS
* primal friendly
* ok athath buddy
* mmm grayons
* sprite gang
* placeholder sprite, works till someone makes a new one maybe haha
* lets do this
* An object tames a monstrous beast somehow. More news at 5.
* component
* progress
* stuff
* Makes minor progress on edible component
* Finishes component and applies it to organs
* newline
* forgot to send signal
* domob addition
* wave that organ flag
* return adde
* fixes some minor issues
* fixes
* done
* done
* done
* added last one
* done
* done
* fix
Trying this again. When *spin-ing as a cyborg, the way mobs are thrown off you depends on your intent. On help intent, they will be thrown a shorter distance from you and will never be damaged or stunned (they will still be knocked down). On harm intent, they will be thrown the current distance and will be damaged and stunned if they hit a wall or another person.
WHAT THIS ACTUALLY CHANGES:
Currently, whether or not *spin-ing will actually hurt/stun someone depends on whether or not the *spin-ing borg is emagged. This PR also reduces the range of the help intent throw, but since the knockdown happens whether or not the thrown mob hits something this is in most circumstances a cosmetic change. So, in summary, if you are a non-emagged borg in help intent the only thing this changes is you will chuck people a slightly shorter distance.
Why It's Good For The Game
This isn't exactly the most important change, but a borg should be able to control their behavior. Having damage/stun from throwing determined solely by emag-ness seems more like a hacky kludge than a legitimate design choice. Also, having the behavior of borg-throwing determined in the code for carbons is messy.
Changelog
🆑
add: The behavior of cyborg's *spin emote now changes with intent; on harm intent, it will throw its passenger farther and damage and stun them if they hit a wall or another person.
/🆑
About The Pull Request
Allows the crafting component to not be limited to just mobs but also able to be put on just about any atom, in addition it also gives a bit more settings to play around with like increasing the range of the ingredients search or choosing what to do with an item before it's placed anywhere.
Why It's Good For The Game
Enables greater functionality and may be a precursor PR before implementing automatic crafting machinery as this PR would allow machines to be able to do such a thing.
Changelog
🆑 ma44
refactor: Crafting has now been refactored and allows non mobs to have the ability to craft, at least that's what would come out of it if someone further developed the idea.
/🆑
Living and machine stat vars are pretty different, one uses flags and other number-defines.
This should make some other mass-replacements and searches a bit easier.
* Initial commit, wood datum mat. Works on my machine.
* Wait this makes baseball bats worthless nevermind
* Review changes, uses the define now, just don't know how bitflags work well enough for that other bit
* Adds the material dependance check
* FINE
* Unicode support Part 2 -- copytext()
This is the transition of all copytext() calls to be unicode aware and also some nearby calls in the same functions. Most things are just replacing copytext() with copytext_char() as a terrible character limiter but a few others were slightly more involved.
I replaced a ton of
````
var/something = sanitize(input())
something = copytext(something, 1, MAX_MESSAGE_LEN)
````
with a single stripped_input() call. stripped_input() already calls html_encode(), trim(), and some other sanitization so there shouldn't be any major issues there.
This is still VERY rough btw; DNA is a mess, the status displays are complete ass, there's a copytext() in code\datums\shuttles.dm that I'm not sure what to do with, and I didn't touch anything in the tools folder. I haven't tested this much at all yet, I only got it to compile earlier this morning. There's also likely to be weird bugs until I get around to fixing length(), findtext(), and the rest of the string procs.
* Makes the code functional
* Assume color hex strings are always # followed by ascii.
Properly encodes and decodes the stuff in mob_helpers.dm which fixes some issues there.
* Removes ninjaspeak since it's unused