Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is
Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
* Reverts italics-span back to no color.
* Cleans up many extra spaces and indents.
* Adds 'hear' span class.
* Replaces all 'italics' used in heard messages with 'hear'.
* megumin is best girl fucking fight me
* what kind of smoothbrain capizalized these
* uses explosion defines
* more explosion defines
* Removes reagent explosion code for <1 amounts
* Scales explosion knockdown off bomb_armor
Aiming to implement the framework oranges has detailed in https://tgstation13.org/phpBB/viewtopic.php?f=10&t=19102
Moves canmove to a bitflag in a new variable called mobility_flags, that will allow finer grain control of what someone can do codewise, for example, letting them move but not stand up, or stand up but not move.
Adds Immobilize()d status effect that freezes movement but does not prevent anything else.
Adds Paralyze()d which is oldstun "You can't do anything at all and knock down).
Stun() will now prevent any item/UI usage and movement (which is similar to before).
Knockdown() will now only knockdown without preventing item usage/movement.
People knocked down will be able to crawl at softcrit-speeds
Refactors some /mob variables and procs to /mob/living.
update_canmove() refactored to update_mobility() and will handle mobility_flags instead of the removed canmove
cl
rscadd: Crawling is now possible if you are down but not stunned. Obviously, you will be slower.
/cl
Refactors are done. I'd rather get this merged faster than try to fine tune stuff like slips. The most obvious gameplay effect this pr has will be crawling, and I believe I made tiny tweaks but I can't find it Anything I missed or weird behavior should be reported.
* this will end horribly
* s
* kek
* wew
* i dont know what an atomized pr is
* lets hope this doesnt blow up
* ok
* Update living.dm
* Update flightsuit.dm
* Update living.dm
* Update living.dm
* Adds new explosion proc
Adds a new proc for calling explosions, which uses 'power' instead of a
set of ranges.
Power (1 - 100) is based on minimum explosions size (0, 0, 1) to maximum
explosion size (5, 10, 20)
Formula keeps explosions within a 'sane' range. So while it is possible
to bypass maxcap using this, it will require a LOT of work.
I've done some balance testing, and a halfcap (2,5,10) can be made using
a double bluespace beaker of water and potassium. A (3,7,14) can be made
using black powder, and the largest bluespace grenade explosion can be
made using nitroglycerine, at (6, 12, 24) which is only slightly larger
than maxcap.
You can check out https://www.desmos.com/calculator/pgfz0gqqxf to see
how the explosive power affects range. T is 'units of explosion' and P
is a multiplier. Multipliers for explosive reagents are: water/potass =
1/10, black powder/meth = 1/6, nitroglycerin = 1/2.
* Clarity Changes
Renames dynamic explosion proc for clarity.
Makes dyn_x explosions scaleable with DYN_EX_SCALE variable.
Adds debug dyn_x verbs, and a dyn_x drop_bomb proc to fun admin verbs.
* Adjusts formula
better efficiency and readability.
Adds debug proc for changing explosion scale.
Adds a comment containing common power/explosion sizes.
* oops
obj/effect/effect is now renamed obj/effect/particle_effect for better usability.
datum/effect/system and /datum/effect/effect/system are now both /datum/effect_system.
Fixes a bug where wall mounted igniters (and other spark producing objects) didn't produce sparks sometimes.
Moved explosion_particles.dm into the effect_system folder, because it has effect_systems code.
Fixes current_cycle being incremented twice for certain reagents.
Fixes flash never working for /datum/effect/effect/system/reagents_explosion because of a typo.
Readding nitroglycerin reagent, it can now be stabilized with stabilizing agent and can explodes when exposed to 474K (like blackpowder).
Readjusted black powder explosion: no more flash (like nitroglycerin), tweaked the values a bit to not nerf blackpowder explosion.
Adding changelog.
All reagents are back to being metabolized every tick. I adjusted the goon chem so their effects aren't changed too much.
Removing some probability and randomness from goon chem effects to make it more predictable.
Adding overdose to space drug.
Making a drug reagent category.
Changed check_ear_prot() for carbons: alien are now immune, and monkey checks their head for ear protection.
Changed flashpowder flashing code and blackpowder explosion code to use already existing procs.
Moved chemical_mob_spawn and goon_vortex procs to /datum/chemical_reaction/
Fixes double overdose message for sugar.
Remove the "if(!M) M = holder.my_atom" at the beginning of a lot of on_mob_life procs, you already can't call on_mob_life if M is null
(Chemistry-Holder.dm).
Moved random_color_list to datum/reagent/colorful_reagent
Nerfed healing power of stimulant. Buffed ephedrine a bit.
Fixes some goon chem on_reaction() proc leaving resulting chem behind when they shouldn't.
Removes Life, nitroglycerin and Corgium reagents. They're now only a chemical reaction.
Moved grenade launcher and syringe gun from reagents module folder to gun folder.
Added a message for the ghost when someone is trying to revive its corpse with strange reagent. (like defib)
Fixes Frost oil and other consumable reagents using current_cycle var.
Fixes runtime where during metabolization a reagent removes another then the latter still calls on_mob_life().
obj/effect/effect all pool themselves.
PoolOrNew() can now be passed a type and a list instead of a type and a location. In that case, the list will be passed to New() via arglist().
RCD's now delete their spark system and properly garbage collect.