* THE NERF
* fixes a dumb mistake
* Sanity check and second thoughts
* mosin jamming
* adds the cleaning supplies, sprites, slight changes to dmg and jamming and HNNNG ONE LAST BUG
* adds maint kit to russian surplus, second try at fixing
* everything is fixed now :)
* finishing touches
* Last fix?
* fix
* fix var names
* a new sound and few more fixes
* add /brand_new variant to all ert/special spawned mosins, added a check if bolt is locked
* Bolt_locked is true when bolt is open 😂
* added a clamp just in case
Co-authored-by: Sparkezel <1haslo4@gmail.com>
For historical purposes, there was a `step_action()` proc on shoes,
which were called on every step. It normally triggers a signal, which
some components, like squeaky clown shoes use to hook on behaviour. But
there were a few remaining procs that still used the old format; they
now use signals.
This thus saves a proc call on nearly all Move() calls by humans, unless
their shoes have special behaviour, and also enables non-shoes being
able to hook into stepping behaviour.
A common pattern is clothing that gives a certain trait when equipped in
the correct slot, for example, mesons making you immune to supermatter
madness, or the bartender's beer goggles giving them the ability to
"booze slide".
Now, instead of implementing essentially the same logic on equip and
dropped, it is now supported at the clothing level with the
`clothing_traits` lazylist.
Some tweaking and code smoothing of the spray-on gloves. The only
mechanical change is in also letting them be washed off (although it
takes a while under a shower or using a sink).
A visible message also provides better feedback.
* Make /wash a SHOULD_CALL_PARENT proc
A number of things depend on that signal being called.
* Makes suggested changes
- Adds SIGNAL_HANDLER to signal handler
- Changes name of turf variable for readability
- Reenables lighting object override of parent
* Bespoke Material Backend
- Adds support for bespoke materials:
- Reimplements [/datum/material/var/id]
- Ports GetIdFromArguments from SSdcs
- Adds a wrapper define for GetMaterialRef
- Adds [MATERIAL_INIT_BESPOKE]
- Adds [/datum/material/proc/Initialize]
- Does not actually add any bespoke materials
- [ ] TODO: Code docs
- [ ] TODO: Actually adding bespoke materials
* Some has_material procs and cleaning up some spaghetti
- Adds a pair of has_material procs for use in checking whether a given atom has a given material
* Adds meat
- Adds bespoke meat variants
- Does not make them accessible
- Shuts up the linter
* Implements bespoke meat
- Makes the material container preserve bespoke materials
- Makes the sheetifier accept bespoke materials
- Makes the autolathe accept bespoke materials
- Makes the gibber produce bespoke meats
* Makes butchering produce bespoke meats
This is jank and really needs to be folded into a unified butchering and gibbing system
* Material documentation
- Adds, fixes, and touches up some documentation
* Material container insertion callback
- Changes the proc used to expand the material container's material list ot a proc used to check whether a material fits into a material container
- Instantiating new materials is no longer O(n) relative to the number of autolathes in existence.
* Makes processing meat conserve materials
- Makes bespoke meat carry over into meatballs
* Makes preserving custom materials an option
- Implements the ability to turn preserving custom materials _off_ for processor recipes
* Fixes all bespoke materials of the same type using the same singleton
- We use ids now, not just types.
* Makes the fat sucker produce bespoke meats
- Because consistency is good.
* Fixes autolathes merging bespoke stacks into normal stacks.
* Makes the callback to test materials for holdibility optional
- @Floyd
* GetMaterialRef -> GET_MATERIAL_REF
- We capitalize macros.
* Removes an extraneous callback
- Makes the sheetifier use functionality I didn't notice I implemented a few commits ago.
* Makes mob and species meat null compatible
* Fixes the ore silo
- The ore silo had really snowflake material handling that has been brought in line with the rest.
- The materials should show up in the correct order.
* Fixes minor lathe bugs
- Fixes stack_traces caused when lathes tried to fetch materials using reagent typepaths
- Fixed the selective reagent disposal topic. I have no idea how long this has been broken.
* Various documentation fixes
- Clarified a couple comments
- Removes an extraneous ?. operator
- Fixed mat floor tiles having bugged reagent temperatures
* More fixes
-/datum/material/meat/mob -> /datum/material/meat/mob_meat
- Adds atom typecheck to material containers.
* Fixes old typepaths
## About The Pull Request
What it says on the tin.
Practically everything but pistols, SMGs, and traitor weapons can no longer be stashed into bags.
I had considered making some large guns that traitors can order (like the blast cannon) also bulky, but concealment is important for some of those things.
However, the bulldog shotgun and sniper rifle have been made bulky, because they're shotguns and sniper rifles!
Traitor objectives are still normal size and can fit in backpacks.
## Why It's Good For The Game
Makes previous changes to weapons and thus balance consistent across our full list of guns. Players can clearly understand what can fit in the bag based on the size of the weapon.
Speeds up gas movement significantly
Documents the intent and finer details of the atmos system (Thanks dunc)
Fixes excited groups constantly rebuilding, this broke 4 years ago
Fixes superconductors just straight up not working
Allows turfs to sleep while inside an excited group
Adds a new subprocess to SSAir to support rebuilding in this state
Most heat based behavior no longer relies on being inside a fire
Adds a new element to support doing this cleanly
Adds a new subprocess to SSAir to support doing this while a turf is asleep
Refactors air_update_turf to allow for finer control
Makes apcs take damage in heat to prevent infinite plasma fire diffs
Cleans up immutable gas mixtures to make them work properly when the mix has gas in it
Planetary turfs no longer create a new copy of themselves each time they process. We instead use a global
immutable mix
Cleans up a typed for loop in reactions
Canisters will take damage from outside heat now
Speeds up excited group dismantle
Increases the superconductor threshold by 200k
Cleans up some roundstart ATs on some ruins
Uses /turf/open/var/excited to track if a turf is actively processing, preventing a |=
Prevents openspace from trying to melt
Tweaks a canister examine line
Makes planetary turfs reset to base when broken down as part of an excited group
Makes it impossible for planetary turfs to rebuild, just like space tiles
Fixes closed turfs not activating their replacement when destroyed by moving closed -> open turf activation to
the adjacent air subsystem. They were activating and then going back to sleep before adjacent air got a chance
to tick.
Fire alarms will trigger when the area gets too cold for humans
Adds sprites for adjusted/folded jumpskirts sprites made by Papaporo, just like jumpsuits have.
Makes Doctors life a lot easier. It's really annoying when you can quickly adjust the jumpsuit of someone for a surgery while if they have a skirt you end up being forced to fully strip the patient.
Hopefully less ID theft for when doctors decide to fully strip you at stasis.
* HARK! THERE ARE SOME MAIDENS THAT NEED SAVING!
* claymores, chairs
* mapmerge, price increase, no losing the flag, no teleporting in, other small stuff
* oldworld language, medieval mutation, reviews
* see desc for full changelog
huge improvements to how medieval speech feels, CTF now fully lit, json beautified, bugs squashed and more NOTELEPORT exploits also quashed. (I NEED TO UNDO THIS FOR ATOMIZATION)
* removes my fixes? also bugfixes and CTF separation
* dumb json mistake, starting work on reality simulators
* BOWS ARE BROOOOOOOOOOOOOOOOOKEN
* br
* getting closer to working
* well, mostly everything now.
* finally ready
* removes languages stuff as it is buggy and does not work, fixes more bugs, fixes more bugs, fixes more bugs
* conflict fix
* linting
* more lint
* bow buff, speech fix, TON of ctf fixes
* oh fuck year
* NO MORE INSTA DELETING CREW
* whoops
* review handled
* pooosh
* conflict fix
* Bananium golems can wear clown shoes and are clumsy. Clownlike creatures, including clowns, bananium golems and clown ops, heal from bananas and bananahonk. Clown Ops also don't understand death, like real clowns!
🆑 coiax
tweak: The knowledge of nuclear disk serial numbers is now stored as a
skillchip installed in captains, death squad members and nuclear
operatives.
/🆑
Captain gone braindead, lost the pinpointer, and you need to work out if
a given disk is legitimate? Just cut out the skillchip from their brain,
and install it for knowledge of that horrendously long serial number.
---
Moving the TRAIT_DISK_VERIFIFER from an innate mind trait from the job,
to a skillchip allows for some more in-game methods to gaining access to
disk verification, including the chameleon skillship.
* 👀 Make eye(s) of god NODROP only when equipped
🆑 coiax
tweak: The "eye of god" only becomes unremovable when put in your eye.
/🆑
- The lavaland chest reward "eye of god", will only become NODROP (ie.
unremovable) when actually placed in someone's glasses slot, rather
than becoming immediately stuck in your hand.
- Eyes of god now hurt when implanted, causing temporary blindness and
screaming.
- A pre-doubled eye of god is now a typepath.
- Eyes of god are no longer made out of glass.
- Glasses colouring procs have been moved to the top of the glasses
file, but unchanged.
* Apply suggestions from code review
- Refactor out explicit `src` with implicit instance access.
- Use ternary string expression for burrow grammar
Co-authored-by: Fikou <piotrbryla@onet.pl>
* Fix NODROP staying on beheading
Even though the item is NODROP, it can still be removed from someone,
such as when they're beheaded. We don't want it to remain sticky, so
remove the NODROP trait.
Co-authored-by: Fikou <piotrbryla@onet.pl>
* Uranium golems no longer irradiate by mere presence. Instead, they irradiate by punching people. Also some statistic changes including durability from brute damage, punch damage, etc. Also uranium golems can wear engineering clothes
* Adds radiation emissions from being struck as a uranium golem
- Psychologists are no longer mistakenly told they have headaches
when near the supermatter.
- Immunity to supermatter hallucinations is now provided by a new trait
`TRAIT_SUPERMATTER_MADNESS_IMMUNE`, provided by mesons, and being the
Psychologist.
- The ability for Psychologists to cause the supermatter to act slightly
differently (by turning pink, and having a higher minimum healing
temperature) is now a trait, `TRAIT_SUPERMATTER_SOOTHER`, which
currently only Psychologists get.
Fixes#55347.
Because the food eating is invoked async-ly, the qdel was being run while you were still taking a bite. This means it was no longer edible, thus quitting the check after the timer was finished.
This moves moths eating clothes behavior to instead lazily create the food item once chomped into, which is then preserved and reused until the clothing itself goes away.
So i was told to make this if i wanted to get an outfit that actually could work on things like radiation. I also gave it a box full of stabilized extracts because those give quite good effects like more speed and regeneration.
Adds a MAPTEXT macro that wraps the given text in the maptext class, the thing we use for Runechat to make it so you can actually read it. Everything that sets maptext now uses this.
I wanted to refactor how movetype flags are added and removed into traits to prevent multiple sources of specific movement types from conflicting one other. I ended up also having to refactor the floating animation loop (the one that bobs up and down) code in the process.
Why It's Good For The Game
A way to avoid conflict from multiple sources of movement types.
This also stops melee attacks, jitteriness and update_transform() from temporarily disabling the floating movetype bitflag altogether until the next life tick.
Tested, but i'm pretty sure improvements could be made.
Changelog
cl
fix: jitteriness, melee attack animations and resting/standing up should no longer momentarily remove the floating movement type.
/cl
This is an alternative to the PR Ryll made, it does some things similar e.g. the default limit of 1 interaction per target for a person, however, it refactors do_afters to support overrides for max interaction counts and unique sources.
For example, stripping uses the item being stripped as the source, allowing you to strip multiple items, but not the same item multiple times.
I've also fixed most other edge-cases this could cause where balance would be affected, but feel free to point out any I might've missed, this'll probably require some longer-term testmerging.
fixes hiero staff recall mesage not working
Reworks the champion's hardsuit
changes:
name: champion's hardsuit -> berserker hardsuit
armor: (MELEE = 65, BULLET = 50, LASER = 50, ENERGY = 60, BOMB = 50, BIO = 100, RAD = 100, FIRE = 80, ACID = 80) -> (MELEE = 30, BULLET = 10, LASER = 10, ENERGY = 20, BOMB = 10, BIO = 100, RAD = 10, FIRE = 100, ACID = 100)
doesnt have ert stripping time so its shorter
it cant hold the pka or cutter on itself, but it carries knives, resonators, spears and the crusher
adds berserk mechanic: with every hit you take thats not from yourself, you get berserk charge equal to the damage dealt to you divided by 4, if its a projectile attack this value is multiplied by 1.5, so a 20 damage melee hit gives you 5 charge, while a 20 damage projectile gives you 7 charge
use berserk ability with 100 charge to go berserk
you move a bit faster, you hit 2 times faster, you get a cool color and your melee armor is massively increased for the duration (about 10 seconds?), but you cannot shoot guns during the effect
About The Pull Request
Honestly, I'm not sure this is the... Correct solution? But people more familiar with this will likely show me da wae.
Prohibits creating names that can't actually be spoken in-character due to chat filters by adding CHAT_FILTER_CHECKs to the procs that handle sanitising them.
For admin-utilised renaming procs, they'll be given a simple alert box to warn them their chosen name contains words prohibited by the IC chat filter and be allowed to confirm or cancel out.
Why It's Good For The Game
If you can't speak the name IC, chances are the name shouldn't be allowed at all. Players may occasionally be forced to ahelp certain names because they contain words prohibited in chat filters.
This changes how carbon/humans stabilize body temperature, and changes how damage and wounds are applied based on temperature.
Humans now have a core body temperature along with body temperature. The core temperature is used for natural stabilization and what viruses like fever and shivers target by raising or lowing the core temperature of the mob.
The standard body temperature still exists and acts exactly the same for most items at this time but is now treated as surface temperature in humans.
Damage from body temperature for humans is now based on the core temperature instead of body temperature now.
Humans will now receive burn wounds when the body (surface) temperature is to high for to long.
This causes you to see alerts for the area temperature before you take damage in most cases improving visibility of dangerous situations.
You can no longer quick swap another pair of glasses with nearsighted to see perfectly.
Currently you can:
Choose nearsighted
Quick swap to another pair of glasses
See perfectly
This wasn't fixed by Shaps' changes since those call dropped, which do not run through unequip code.
I know one of you is abusing this, show yourself!