* Refactors projectile Bump()
* Converts projectile_type var strings to paths
* Reorganizes bullet projectile paths
* Made a pass through all the bullet_act() definitions. Mainly ensured that damage_type is checked when dealing damage to certain objects. Removed stupid /turf bullet_act() override, replaced with on_hit() overrides on the relevant projectiles.
* Adds shotgun pellets projectile. Adds Raptor's shotgun slug sprite.
* Gives stunshots more of their own identity, refluffs them as taser cartridges for shotguns. They still aren't obtainable anywhere unless spawned.
* Makes projectiles pass through girders and cultgirders with a certain probability, unless the girder itself was clicked.
* Projectiles are also able to pass through grilles. Low damage projectiles have a chance to be blocked by grilles. High damage projectiles have a chance to have some damage absorbed by the grille.
* Makes projectiles for blanks invisible.
* Adds flash bullet types
* Adds support for 'penetrating' projectiles
* Swaps .45 and 9mm projectile types. .45s hit slightly harder, 9mils have more ammo capacity.
Borg radio interface toggling was backwards: when usr got the message that the subspace mode was
disabled, the radio would actually enter subspace mode.
You get to cache data, make the best of it.
NanoUI for PDA now won't shove the manifest through list2json every tick, it will cache the json for manifest and shove it into the cache_data so list2json tacks it onto the end.
Removes forks used for ribcage opening/closing since it overlapped with internal organ surgery and for some reason even priorities didn't help with that.
You can now dry plants using a special machine, and you can now stuff
those plants into pipes to smoke then. It slowly transfers the reagents
from the plant into the smoker.
- Allows tanks to be toggled on and off as internals from their UI.
- If internals are off, all tanks capable of being used for internals
will display "tank is connected to a mask".
- If internals are on, only the tank that is actively supplying air is
listed as "connected" and "open". All others will display as "not
connected".
- Tanks inside rigs will correctly display their status in their UI (if
you open it before putting it in the rig, but cannot be toggled on
through the interface. Toggling them on with the internals button works.
Buckling procs and vars have been moved down to /obj.
Behaviour is mostly the same, but you can buckle cuffed people to
pipes and they will automatically unbuckle if the cuffs are removed.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
Long story short, the json encoding doesn't know how to handle "
Adding a check specifically for it breaks other stuff, after banging my head against it for an hour
this is the best means of fixing the problem without breaking and fixing a lot of other things.
`maths.dm`:
Rewrite `Gcd(x)` to remove recursive behaviour.
Remove `RaiseToPower(x)` and its usage from `event_manager.dm`.
Rename `Lerp()` to `Interpolate()`.
Add `Square(x)`, which squares a number.
Rearrange most of the functions in the file. (trigonometric functions together, etc.)
`type2type.dm`:
Rewrite `num2hex()` and optimise `hex2num()` for superior clarity and a 100% speed improvement.
Correct indenting, spaces, make switches more concise.
`time.dm`:
Remove old, slanderous commented-out function `/proc/time_stamp()`
`lists.dm`:
Add the macros, `BITTEST(bitfield,index)`, `BITSET(...)`, `BITRESET(...)`
and `BITFLIP(...)` for bit-manipulation and use them where 20+ files
do it manually, for arguments of reader clarity and standardness.