* Ban posibrains and mmis from savannah ivanov (#59772)
Savannah Ivanov cannot have mmis or posibrains in them.
Now I know that sounds BAD... but I originally intended to do this as it removes a huge trust element and bypasses recruiting people for cooperation. I simply uuuh genuinely forgot to include this, so sorry for the DRAMA.
I was considering blocking the AI too, but AIs are actually more likely to be turned against you than fellow crewmembers
Co-authored-by: coiax <yellowbounder@ gmail.com>
* bans posibrains and mmis from savannah ivanov
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@ gmail.com>
* Fixes bug in Ripley mech construction where it would say "securing the screwdriver" (#59795)
[I] in this case refers to the inhand item so in this case it would be the screwdriver / hand drill, this changes it to properly reflect that the capacitor is being screwed in.
* Fixes bug in Ripley mech construction where it would say "securing the screwdriver"
Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
Adds set_density()
Fixes one instance of a duplicate density assignment on an object.
Comments two hacky usages of density which will have to forgo using the setter for now.
Lets us append code to the event of density changing.
Pretty sure this is leading up to some multitile object thing -Lemon
Co-authored-by: Rohesie <rohesie@gmail.com>
* Revert "Adds two clown-spection scanners that print clowncrypted reports (#59306) (#6176)"
This reverts commit 91e1aa4fe4.
* Revert "Two Person Mecha for Robotics: The Only Real Solution To An Imminent Geometer Summoning 💪 (#59249) (#6177)"
This reverts commit cf2c1ca19d.
Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
* Makes obj_integrity only updated through procs (#59474)
Having things updating integrity directly is just going to cause more problems down the line as more elements and components depend on being notified of integrity changes. It's an easy mistake to make so making it private should deal with the problem.
get_integrity() might be useful in the future but is mainly a side effect of making obj_integrity private as that also disallows reads.
* Makes obj_integrity private and only updated through procs
* Mirror!
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
* use SIGNAL_HANDLER REEEEEE (#59242)
makes as many procs as i can find use the SIGNAL_HANDLER define which i assumed they all already did
* USE SIGNAL_HANDLER REEEEEE
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Converts some of mech actions into balloons (#59255)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Converts some of mech actions into balloons
Co-authored-by: InsaneRed <47158596+InsaneRed@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Is that a fucking rocke- (#59056)
Being hit directly by a rocket launcher now has a 1% chance to make you briefly try processing what's about to happen before exploding you.
* Is that a fucking rocke-
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Fixes bitwise flag negation errors. (#58870)
These have been in the codebase for many years. Love, ZeWaka
* Fixes bitwise flag negation errors
Co-authored-by: ZeWaka <zewakagamer@gmail.com>
* Removes some boiler plate from working with atmos code (#58885)
Everything that called turf.assume_air and turf.remove_air was already updating turfs, and all that not tying
the two together did was add more boiler plate, and break things when people forgot about it.
This shouldn't add any overhead outside of hotspots, but I think that's trivial
* Removes some boiler plate from working with atmos code
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Converts the atmos senstive component over to connect_loc (#58266)
* Makes all uses of atmos_senstive pass in mapload as context
* Converts atmos senstive to connect_loc, does some general cleanup to the element, and makes it check the state of the tile the thing is on assuming creation didn't happen as a part of map loading
* Updates connect loc to match the new arg list
* Converts the atmos senstive component over to connect_loc
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fixes mechs being unable to move in space (#58727)
* Fixes mechs being unable to move in space
* unnecessary repeated check
* Fixes mechs being unable to move in space
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that. (#58015)
* Adds explosion SFX to the blastcannon and explosive compressor
- Extracts the explosion SFX and screenshake proc from the SSexplosions explosion handling proc and lets the explosive compressor and blastcannon use it.
* Miscellaneous changes
- Adds defines for the internal explosion arglist keys
- Reverses the values of the explosion severity defines
- Changes almost everything that uses `/proc/explosion` to use named arguments
- Removes a whole bunch of argname = 0 in explosion calls.
* Removes named callback arguments.
* Changes the explosion signals to just use the arguments list
Adds a simple framework to let objects respond to explosions occurring inside of them.
Changes a whole bunch of explosions to use the object being exploded as the origin of the explosion rather than the turf the object is on.
Makes the explosive compressor and blastcannon actually use the TTVs they are given.
Adds support for things responding to internal explosions.
Less snowflake code for the explosive compressor and blastcannon calculating bomb range.*
Less confusing explosion severity defines.
Less opaque explosion arguments
*does not guarantee that the solution to letting them actually use the TTV is any less snowflake.
* Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Some quick fixes for the dark gygax icon and its uplink description (#58121)
* Some quick fixes for the dark gygax icon and its uplink description
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Fixes mech HUD's not being properly removed (#57964)
Fixes mech hud's not being removed when leaving the odysseus or clarke
* Fixes mech HUD's not being properly removed
Co-authored-by: MLGTASTICa <61350382+MLGTASTICa@users.noreply.github.com>
* i shot my own phazon to death and i cry. (#57772)
Co-authored-by: MLGTASTICa <ak9bc01d@ yahoo.com>
* Fixes mech projectiles hitting the mech that fires them
Co-authored-by: MLGTASTICa <61350382+MLGTASTICa@users.noreply.github.com>
Co-authored-by: MLGTASTICa <ak9bc01d@ yahoo.com>
* Some explosions code cleanup (#57493)
Clears out two deprecated explosions systems (explosion ids and explosion levels)
Refactors a bunch of contents_explosions procs to be maybe slightly faster.
Cleans up a bunch of ex_act code.
Slightly cleaner code
A few less unused vars on /atom and /turf
* Some explosions code cleanup
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* More mech refactoring (#57629)
The ride never ends
Fixes hack for phasing by making it use the proper code
Removes a bunch of extraneous junk
Moves mech related honkers to mech code
more mech junk
* More mech refactoring
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* Fixes runtimes from firing projectiles, adds unit test for firing guns (#57345)
* Fixes runtimes from firing projectiles, adds unit test for firing guns
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* moves gun related icons to guns folder (#57077)
moves ammo icons, projectile icons and hitscan effect icons to guns folder
renames projectile.dmi to ballistic.dmi so its less confusing
moves rcd ammo from ammo.dmi to tools.dmi with the rcd
* moves gun related icons to guns folder
Co-authored-by: Fikou <piotrbryla@onet.pl>
* Refactors the Light Eater and gives it some flavortext. Some minor behavior changes included. (#55551)
Converts the effects of the nightmares light eater into a component and a couple elements
Adds some flavor text to the light eater
Makes the effects of the nightmare's light eater dispel if the armblade is destroyed
Probably a net increase in code quality
More flavortext
The nightmare's light eater effect can be dispelled if you are willing to sacrifice the armblade
* Refactors the Light Eater and gives it some flavortext. Some minor behavior changes included.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* renames metal sheets to iron sheets
* Merge branch 'master' into upstream-merge-56643
* yay metal
* Update DeltaStation2_skyrat.dmm
* a
* Update CentCom_skyrat_z2.dmm
* a
* a
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* mechs now use base_icon_state for their icon changes (#56480)
* mechs now use base_icon_state for their icon changes
* Update firefighter.dm
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Fixes exosuit console EMP logging and a mech runtime on EMPing. (#56196)
Occupants is a list. Mech EMP logging now correctly outputs the occupants instead of just outputting "/list"
Also when EMPing a mech in testing this PR, I noticed a runtime happening that I've fixed. Untyped for loop where the casting var was never assigned to and thus was always null.
* Fixes exosuit console EMP logging and a mech runtime on EMPing.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fixes removing AIs from mechs (#55986)
Basically the old code attempted to use locate(AI), but the AI in this case is a ref that is supposed to be provided by the card. Since the card is initially empty when removing AIs from the mech, it couldn't find the null in the occupants list and thus failed with a report that there was no AI in the mech.
Now it checks all occupants and makes a list of any AIs it finds, then gives the user the option to pick an AI (though since we don't have any multi-pilot mechs yet the most you can get is one AI, and input with one option just auto-chooses).
* Fixes removing AIs from mechs
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>