Adds flags to atoms to allow them to reflect projectiles based on that projectile's reflection chance!
(can be overridden later for angle-based chances but this is good for now, ja?)
Gives titanium walls an 80% chance to reflect beams and 30% chance to reflect everything else!
Mostly-realistic reflection angles
If the math isn't fucked (I tested and the glitches seem to be from pixel projectile movement, not the math itself), this means we can have pixel projectile reflectors soon 😂😂😂😂😂🆑
rscadd: Nanotrasen's new titanium wall blueprints are smooth enough that it can reflect projectiles!
/🆑https://puu.sh/vYzMA/4f00c2a4a1.gif
o ya if this goes through i'll add pixel projectile support for reflectors when i have time so we can finally dump legacy b00lits.
* Refactors ear damage into ear organs
🆑 coiax
add: Centcom would like to inform all employees that they have ears.
add: Adds "ear" organs to all carbons. These organs store ear damage and
deafness. A carbon without any ears is deaf. Genetic
deafness functions as before.
/🆑
- `ear_damage` and `ear_deaf` vars removed from /mob.
- All mobs have a `can_hear` proc, which returns TRUE always except for
carbons.
- Carbons need to have an ear organ that has 0 `deaf` var.
- Explanation of how ear damage works is in the code, it hasn't been
changed from previously. Deafness is applied in number of Life ticks
until you regain hearing, while damage is long team, heals slower, and
when high enough, can cause flashbangs to make you go permamently deaf,
as before.
- Wearing earmuffs halves the healing time of deafness, and promotes
healing long term ear damage, as before. Earmuffs now have a secondary
flag HEALS_EARS, which currently only they own.
* Changes how soundbang deafness works slightly
* Ear organ icon
* Code review I
* Makes fully healing carbons not dependent on having a dna and species
* Gives monkeys and aliens ears
* Whoops
* Split organs into seperate files
* Tweaks.
* Un-removes brain damage lines
* Moved procs onto /mob for ear stuff
* Massages things into compiling
* Replacement of spam_flag with world.time tracker
* Initial burst of languages
* Scratchings of beginnings
* Code review I
* Compilation!
* You can now understand your own speech
* Fixes whispering
* Gets typecaches working again
* Remie's `PASS`ing
* Back to pass() to stop the compiler whining
* Why can't drones check their languages
* Everyone speaks how they should
* Removes world string debug stuff
* Currently failing to massage radio code into working
* The radio transmits the languages!
* ,0 to talk common
* Replaces speech wheel with language menu
* Observers can speak all languages
* pAIs now speak languages FOREVER
* New action button for language menu
* pAIs have an action button to open their language menu
* AIs can talk and all that
* AIs have a language menu button
* Fixes supermatter making strange noises
* Fixes AI holopads
* Fixes request consoles
* Fixes bots making strange sounds
* Meaningless MMI change
* Some caching of datums
* Brains in MMIs speak common
* Ratvarian AIs can only speak Ratvarian
* Tables can speak common, apparently
* Removes var in args
* Fixes the (AI Eye) problem
Thanks to Shadowmobile for their help with this one.
* Fixes tape recorders
* Fixes humans being able to speak in languages they did not know
* Adds some new posibrain names
Honk.
* The voice analyzer replies in the language you spoke to it
* Gives swarmers only swarmer language
* `initial_languages` var.
* OMNITONGUE, clockwork restrictions
* Fixes barmaid and bardrone language abilities
* Code review I
* Omnitongue correction
* Code review II
* Removes force_compose var
* New bitflag CLEAN_ON_MOVE
Time to use those highspeed bitflag slots.
If an atom/movable has CLEAN_ON_MOVE set, it will behave like a janitor
cyborg when moving.
Current owners of the CLEAN_ON_MOVE flag are janitor cyborgs and the
janitor's pimping ride (when upgraded).
Also moves BLOCK_GAS_SMOKE_EFFECT and THICKMATERIAL to seperate flags.
* Stop double floor buffer upgrades
* Also have a pre-upgraded janicart, why not
* Display the buffer if you got it
Unless we get a clothing item that can be worn on the head, and the
ears, and only protects from loud noises in one of the configurations,
this isn't going to be an issue.
Frees up another flag slot, all hail the secondary flags.
* Objects can now be stationloving
Stationloving objects are objects that love the station so much, they
will relocate back to the station if spaced or if destroyed.
Yes, this does sound a lot like the behaviour of the nuke disk. Except
made more generic.
Currently the only stationloving object is the nuke disk.
* Moved from /obj to /atom/movable
* Remie fix
No difference mechanically, but frees up a bitflag slot. Reminder that
if there are no secondary flags on an object, the check is the same as
checking a var is null.
There are only a handful of hologram items in place at any time, they
don't need a full slot in flags.
🆑 coiax
fix: Cyborg radios can no longer have their inaccessible wires pulsed by
EMPs.
/🆑
Adds a secondary flags system, for stuff that should be set as a flag,
but is too rare to clog up one of our coveted high speed flag slots.
Uses a null list to store the flags, when instanced, the list is in the
form flag_string->booleon, for the highest speed. I suggest we locate
other rare flags and move them to this system. (Like EARBANGPROTECT, I
mean come on).
* Overlay queuing
* Fix SS flags
* Don't copy on assignment
* Flags processing
* Fix icon_smoothing
* MSO's helper proc
* Legacy detection
* Make it work
* Fixes shitcode
* Fix the flag
* |= -> +=
* OK, how did I fuck that up?
* shitcode
* Conditional assoc queue while initializing
* Cleanup everything
* Orange meme
* This isn't perfect, but its the best byond will give us.
* forgot about dir
* oh ya
* This was litterally the last thing i did last night before heading to bed
You can tell can't you?
* Fixes various shit
* Let's not ever pause
* Fix the flag
* Cleaned up some missing shit. Added image dummys
* Remove the one usage of FPRINT
* Jesus get rid of this
🆑 coiax
fix: Deadchat is now notified of any deaths on the shuttle or on
Centcom. The CTF arena does not generate death messages, due to the high
levels of death.
/🆑
Basically, deathrattles would not fire on shuttles, or if there's a
scuffle on an abductor UFO, or if people are beating the crap out of
each other on the thunderdome. I originally changed it to non-Z2 to
remove CTF spam, but that was too much.
* Allows syringes and droppers to show their reagents when examined.
* rearranges my logic
* replaces SEMIOPENCONTAINER with TRANSPARENT
* Silly spelling error fix.
* Moves the defines from flags to container_type to avoid issues with conflicting flags
* changes it back to obj/item/O
* Moves the OPENCONTAINER and TRANSPARENT defines to the reagents.dm
* Random dirtiness refactor
* Further speeds up MakeDirty
* Removes legacy code
* Replaces flag numbers with defines
* Adds another define in place of an integer
* Re-adds attackby arguments in holofloors
Slime/Jelly people also gain a new "power" that forces their limbs to be eaten for jelly if the slimeperson is in threat of dying from a lack of jelly.
Slime/Jelly people can now be dismembered
New specflag: TOXINLOVER
Species with TOXINLOVER (Slime and Jelly people, as well as zombies) take inverse toxin damage, things that typically heal toxin damage will instead cause it and visa versa. Additionally this ties the mutant's blood level to these transactions, reaffirming the slime and jelly peoples vulnerability to antitoxin and the like, which had been lost in the blood rewrite
EASYDISMEMBER races have about double the chance to get dismembered when attacked with something that can dismember.
EASYLIMBATTACHMENT allows races with the flag to just shove limbs found lying on the floor into empty limb slots to regain their use. However this DOESN'T heal the damaged limbs, so in most cases doing this will actually add damage to the mob. Comically, the limbs attached don't need to be the originals, so these races can go around ripping off other peoples limbs and then using them for themselves.
Both these abilities are given to the the zombie and skeleton races, and constitute a significant nerf to lichs
Fixes#17932
No more ""infection holder" bursts out of" memes, as zombie infection is
now done with a body egg in the head.
- Added 'romerol' a silent bioweapon reagent that adds the zombie
infection organ to a living person. This will lie dormant until they
die. Then they will stand up again.
- Zombie infection uses body_egg, meaning it shows up on healthHUDs.
- Zombies are now a full subspecies of humans, instead of
simple_animals. However, they should still be mostly the same, still
unable to pick up items, still zombify on attack and still able to claw
open doors.
Side Effects
- Zombies now take time to destroy tables
- Zombies can have their limbs cut off and be reduced to wandering
around being a bit pathetic. This is a feature.
- Zombies can be stunned and are vulnerable to stamina damage and
chemicals
- Zombies are armoured, but instantly die in crit, meaning they have
approximately 120 hp as before
- Zombie hands are just bloody hands, a proper sprite maybe sometime
gjkafldksfjkl
The reagents datum now has its own flags, which currently includes
REAGENT_NOREACT, which functions in the same way. Shouldn't be touched
directly, use set_reacting(bool) to modify it, as modification also adds
or removes the reagents datum from the SSobj.processing list.
Also refactors cigs a little, adds a Destroy(), uses the open_flame()
proc for the hotspot exposure.
Current human species that don't need to eat:
- Plasmamen
- Skeletons
- Agents
They now have the NOHUNGER specflag, which means their nutrition does
not decay like a baseline human's; no change in behaviour.
* Adds NODISMEMBER to the species specflags to remove the var. It's not DISMEMBER because that's the default expectation and specflags need to be manually set for every race.
Merges RESISTHEAT and RESISTCOLD into RESISTTEMP. Every situation where one occurred the other did as well. It also doesn't make thermodynamic sense that something good at one wouldn't be good at the other anyways.
* T H E S E A R E N O T B I T F L A G S
Dismemberment support added as well as a way to use the limbs of another species for dismemberment for visually identical species
Flying var changed to species flag
Fixes not seeing glasses through the riot helmet.
Fixes gas mask protruding from the abductor helmet.
Fixed radiation hood not hiding your hair, earpiece, mask.
Fixes colored justice hats not having an on-mob icon_stat.
Removed BLOCKHAIR bit from var/flags , moved it to flags_inv and renamed to HIDEHAIR
Added HIDEFACIALHAIR bitflag so certain hat/helmet can show just the beard.
Fixed human/update_inv_glasses not checking if our mask hides our glasses.
Fixed check_obscured_slots() not checking if our masj obscur our glasses.
Fixes some bits of flags_inv having the same value.
Fixes crusader hood and other headgear not hiding your identity when they should.
Fixes drone mask icon not appearing.