Commit Graph

12712 Commits

Author SHA1 Message Date
Gamer025
a34299e28e Correctly transfer skillchips when ahealing someone (#56064)
When ahealing someone via the player panel their skillchips weren't transfered correctly.
The actually skillchip object was left in the old brain and eventually hard deleted.
This caused a runtime when ahealing someone a second time (after the harddel).
This then caused the target to actually have 2 brains because of the runtime while ahealing
2021-01-10 20:27:37 +00:00
Krysonism
38e3ca1a37 fixies (#56054)
You can now ride the banana glutton properly.
2021-01-09 23:14:16 -08:00
Qustinnus
d9e29ff642 Turns squashing mobs into an element (#55725)
Opens up room for extending squashing behavior for future cytology updates.
2021-01-10 00:03:22 -03:00
John Willard
102fdf8f8f Flypeople can get flashed from any direction (#55724) 2021-01-09 12:10:30 -03:00
Krysonism
e092eb7427 [READY]Da small cytology update. Banana glutton and proper clown mob reagents. (#55694)
* HONK!

* HENK!

* HUNK!

* HJONK!
2021-01-08 22:29:00 +01:00
interestingusernam3
6faf16b501 Caps xenobio mimic contents at 50 things (10 of which can be mobs) to prevent lag (#56011)
Fixes #55850.
Why It's Good For The Game

Performance tweak.
Changelog

🆑
fix: Mimics can no longer eat an unlimited amount of stuff and are instead limited to 10 mobs and 50 things overall. This means player mimics are no longer able to cause significant lag by opening and closing themselves.
/🆑
2021-01-09 09:42:07 +13:00
Qustinnus
c9f74a1a92 Fixes slimes riding monkeys and thus falling off of each other (#55887)
Fixes slimes trying to ride monkeys.
2021-01-08 17:42:43 +01:00
LemonInTheDark
6d1cb94ffb LINDA Reforged (#55604)
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
2021-01-08 08:14:08 +01:00
zxaber
9885e1753d Fixes AIs being unable to access their own APC interface when power is off (#55977)
When an AI runs out of power, they get a short fluff text story about hacking into their own APC through the powernet or whatever, before having the APC's interface open. The intention is that an AI can re-enable their own breaker after a bit if something flipped it off. However, one of the many checks in TGUI will fail if the AI has no power (specifically, if incapacitated() returns TRUE), making this whole feature not work. In fact, it's probably been broken since TGUI APCs were done. I have fixed it by adding a check in the very same proc to return UI_INTERACTIVE if the UI's source object is the same object referenced in the AIs apc_override variable. Closes #52548
    The apc_override variable is now an APC object reference rather than a boolean. It is set to the AI's local APC when the hack flufftext completes, and is null'd when power is restored. This reference is used by the above, so that the AI only gets access to this one APC rather than any APC in general.
    AIs now also get a hyperlink in their chatbox, allowing them to open the APC interface should they have closed it. If they have had power restored, the apc_override reference var will be null, and using the hyperlink will simply result in text stating the backdoor to the APC is closed.
    If the AI reconnects into a state where it has no power and apc_override is set, it will get a hyperlink to the APC, in case the AI player had been reconnecting when the window would have popped up or otherwise does not have the link for whatever reason.
2021-01-07 22:17:07 -03:00
interestingusernam3
9c3e3d9ca1 Monkeyization now causes you to drop cuffs again (#55998) 2021-01-07 22:06:09 -03:00
Rohesie
0bde624a36 Fixes an unlawful call to Destroy() (#55992)
Destroy() should (almost) never be called directly, it is called by qdel() to clean up references and avoid hard deletions.
It is a shame we don't have private methods.
2021-01-07 14:08:10 -08:00
Gamer025
37c23ef428 Fixes and refactors death examine code (#55907)
Examine death bodies should now display the correct text
Changed the logic so that the message tells you if the players is:

- Still in his body (`[t_He] [t_is] limp and unresponsive; there are no signs of life...`) or
- A ghost that could enter the body again (`[t_He] [t_is] limp and unresponsive; there are no signs of life and [t_his] soul has departed, but the link is not yet fully broken...`) or
- No ghost, that can reenter the body and no key (`[t_He] [t_is] limp and unresponsive; there are no signs of life and [t_his] soul has lost the will to live...`)

Also refactored the code a bit:

- Moved the death examine message generation to a proc so that you can work with returns
- Removed pushed_do_not_resuscitate since its not needed this way
2021-01-07 16:18:09 -03:00
Qustinnus
2bf19386b2 Removes a useless proc override from multiz code (#55979) 2021-01-07 09:38:22 -08:00
Seris02
a6f93b4f96 Some of the unsorted chat types being sorted (#55947)
The emote CSS class was no longer in use, it has been unitalicized and made into the actual emote class, back into local.
    A CSS class for info has been created which has no special CSS.
    The who verb has been put into info. (infoplain CSS class)
    PDA message receiving has been put into info (PDA message sending was already in info). (infoplain CSS class)
    Supply radio has been properly placed into radio.
    Service radio has been properly placed into radio.
    Binary talk has been placed into radio.
    A CSS class for minor announcements has been created.
    Minor announcements (shuttle purchases, head of staff office announcements, silicon announcements, etc) have been placed into radio (major announcements are already in radio). (minorannounce CSS class)
2021-01-06 12:20:40 -03:00
necromanceranne
cdf16a2170 Makes the monkey mutation remember your species through transformations (#55844)
* Makes the monkey mutation remember your species through transformations

* Implements suggestions by ghommie
2021-01-06 10:43:21 +01:00
spessbro
3781bf0e6d Cats have normal genders (#55772)
This fixes cats from all being male (except for the special cats like runtime and proc)
2021-01-05 21:56:32 -05:00
John Willard
2e2ed0ec70 Flypeople say "s" as "z" and dont get disgusted by toxic food (#55802)
## About The Pull Request

Flypeople will now say "s" as "z" (They already say "z" as "zzz", but s -/> zzz) and arent disgusted by toxic food anymore. 

I'm hoping that by the end of my changes, Flypeople could be considered a unique and viable race, being actually worth something other than "that one unmaintained race we have disabled" (best-case scenario is they become fit to be a proper roundstart race)

## Why It's Good For The Game

Flypeople is the forgotten race of /tg/, this makes them more unique and fits for them.
Not being disgusted by toxic food fits well due to Flypeople being considered disgusting and vile creatures.
2021-01-05 21:52:46 -05:00
Jared-Fogle
b0a54c9dd7 Remove sleep() from hallucinations (#55927)
Changes all uses of sleep in hallucination to fast processing or timers.
2021-01-04 23:25:56 -08:00
小月猫
33626b04df fix Telekinesis teleporting some items (#55916)
* fix Telekinesis teleporting items

Fixed telekinesis from teleporting the Blackbox, bodybags and all its contents, and brains from MMIs - Nari

* fixes

fixes new bug where opening the bodybag in hand will make it vanish - Nari

made a better method for pulling items out of the recorder and MMI, if activated by hand it puts item into your hands, if activated with telekinesis, it drops it on its tile - Nari

* Update bodybag.dm

changes how it gets the location
2021-01-04 17:15:07 -08:00
81Denton
3e1a39b214 Merge pull request #55897 from TemporalOroboros/fix-cyborg-cell-runtime
Fixes the cyborg runtime in update_cell
2021-01-03 12:03:47 +01:00
coiax
917585f60d Refactor plasmaman stomach typepath (#55716)
Skeleton and plasmaman stomachs now share the same code.
Skeletons now heal brute and burn damage from drinking milk, plasmamen
only heal brute damage.
2021-01-02 17:17:39 -08:00
Fikou
ae0959d936 adds xenomorph holdable flag (#55814)
adds a flag that lets something be held by xenos
adds it to facehuggers
makes the xeno "can i hold this item" check check for flag instead of facehuggers
2021-01-02 17:13:35 -08:00
Ryll Ryll
909e47df7f painful (#55826)
Stop me if you've heard this one before: infectious zombies specifically were immune to being wounded and thus dismembered. I'm not sure how this happened or when, but the definition for apply_damage() on their species was missing an argument for spread_damage and thus I think it tried defaulting to spreading out any damage taken, which is obviously problematic for trying to remove specific bodyparts (IE the head). This fixes that, and here's proof you can dismember these bastards
2021-01-02 17:13:00 -08:00
MrMelbert
7c62f9ecf3 fixes digis (#55865)
fix_non_native_limbs was called AFTER the on_species_gain proc gives the lizards their legs, and because digitigrade legs are not in their bodypart_overides list it was immediately replaced with normal legs.
2021-01-02 17:11:09 -08:00
TemporalOroboros
808d2e5965 Fixes clientless cyborg update cell runtime 2021-01-01 23:17:30 -08:00
coiax
e35b84d44a Refactor on_mob_death, death implants, implant permission (#55862)
* Refactor on_mob_death and death implants

There is a proc on `/obj/item` called `on_mob_death` called on all
items in the contents of a mob on that mob's death. It is currently used
for explosive implant detonation, and the deactivation of the
Peaceborg's projectile dampener.

Instead of using this old proc, both of them now instad use the
COMSIG_LIVING_DEATH signal, already emitted when their owner dies.

The activation of an explosive implant will now occur after the rest of
the death code has run, since it activates with an async applied
function, since some other implants may still want the mob's body
intact, and you shouldn't use `sleep()` (which it does in the "slow
explosion mode") in signal handlers.

In addition, the "can_be_implanted" proc for /mob/living (and overriden
for silicons, slimes and simple animals) has been folded into the
`/obj/item/implant/proc/can_be_implanted_to` proc. Some future implants
may want to be more permissive than the current permissions, but that
isn't possible when checking both procs.
2021-01-01 12:30:20 -08:00
Ryll Ryll
91a8cf6cf7 You can now mount things from the side (#55741) 2021-01-01 12:29:57 -08:00
TemporalOroboros
31b940968e Fixes borg tiles (#55858)
- Fixes greyscale material floor tiles created from cyborg stacks
- Makes cyborg stacks contain materials
- Prevents a potential bug involving metalgen and stacks
2021-01-01 14:09:43 -05:00
necromanceranne
66e1ca1646 Clownlike creatures are now more consistent. #fix #honk #banana (#55603)
* 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!
2020-12-31 18:17:46 -08:00
coiax
68be48ed85 Tweaks how some tongues have no taste (#55811)
Skeletons, abductors and ethereals have no sense of taste. Previously
they would taste something "indescribable", but instead, they will not
taste anything or get any message. This also means they will no longer
get mood buffs from eating/drinking high quality food.

Carbons without tongues also can no longer taste anything.

- The utility item "taster" has had some additional messages added.

* Remove can_taste proc

Instead of a single proc that is only used, so carbons can override it
with the missing tongue, just have carbons unable to taste anything by
default, and then have the tongue "supress" that.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-12-31 17:42:36 -08:00
Ryll Ryll
a8d77b57d7 wrinkling my brain (#55829)
#54939 removed a part of individual logging code that used the length of the individual's logging list as part of the index for storing a given line of logging.

The problem is, that number was important for avoiding collisions in the logging lists. Since the length of an atom's logging list can only ever increase by 1 every time a new line is logged, you were guaranteed to always have a unique index for each new line. Without the length in the index, if any logging event was triggered on the same atom multiple times in the same second (like if someone spoke once willingly and once by force from something like tourettes at the same time), two entries would be logged, but both of them would point to whichever one was processed last.

This was most noticeable with wound logging, since the victim would log both the attack itself and the wound it caused at the same time in the same category (LOG_ATTACK), meaning that the wound log would just be turned into a copy of the attack entry, but I believe this is the cause behind most (if not all) of the issues logging has had with duplicating some events and losing others entirely.

The fix is simple, just adding the length of the list to the end of the index. This still allows logs to be sorted by timestamp while ensuring that each log entry is unique.
2020-12-31 17:13:14 -08:00
Qustinnus
5ef0f4afa2 On monkey day, you can play as a monkey roundstart (#55838) 2020-12-31 13:20:53 -08:00
Jordan Brown
25deeb3a19 Merge pull request #55812 from coiax/tom-fears-no-cable
Tweak mice eating cables and electrical immunity
2020-12-30 22:14:20 -05:00
81Denton
53459f6401 Merge pull request #55775 from coiax/shove-simple-animal
Fixes simple animal shoving message
2020-12-31 02:13:25 +01:00
81Denton
df2d29a76f Merge pull request #55798 from spessbro/please-assume-the-position
Integrates vibebots with the pda
2020-12-31 01:55:42 +01:00
81Denton
4283d5031a Merge pull request #55791 from spessbro/more-than-one-way-to-skin-a-felinid
There's more than one way to skin a cat
2020-12-31 01:55:13 +01:00
WarlockD
56345975ba The Great Radio Rework: NTNET Part 1 of many. (#54462)
Machinery networking refactor.
2020-12-30 21:54:34 +01:00
coiax
15557f8ee6 Refactor module traits for cyborg modules (#55769)
`module_traits` are a collection of traits applied to the cyborg/robot
mob when a given module is loaded. When a different module is loaded,
all old module traits are cleared.

As an example, the `can_be_pushed` module variable has been replaced
with the new functionality, adding a TRAIT_PUSHIMMUNE, rather than
setting a `status_flag`.
2020-12-30 16:47:56 +01:00
Qustinnus
f66ca34626 Refactors monkeys into a species (#55614)
Changes monkeys from carbon subtype to species.
2020-12-30 16:30:15 +01:00
Jack Edge
d4bc8476e4 Tweak mice eating cables and electrical immunity
🆑 coiax
tweak: Tom, the legendary prison mouse, no longer fears chewing
electrified wires.
/🆑

If a mouse has the TRAIT_SHOCKIMMUNE trait, whether innately (like in
Tom's case), or if a scientist has installed shock proofing nanites in
the mouse, they will no longer die when chewing electrified wires.

It is sad discovering Tom dead at the hands of an electrified wire in
the brig, life in the brig is hard enough without the friendly mouse
companion. Also, it opens the possibility, however slim, of a horde of
electrically immune nanite mice terrorising the station.
2020-12-29 17:31:44 +00:00
IndieanaJones
ab1b75b145 Space Dragon Fixes (#55759) 2020-12-28 20:12:51 -08:00
Ghom
5b668898c4 Fix zero damage items not showing explicitly set attack verbs in chat (#55509)
Borked exactly five months ago by #52890.

This will close #55219.
2020-12-28 18:12:10 -08:00
MrMelbert
32c267d5b0 Adds a minor negative quirk: Bad Touch (for the anti-huggers) (#55334)
About The Pull Request

Adds a minor negative quirk, Bad Touch. This quirk gives you negative moodlets from hugs instead of positive ones, as well as negative moodlets from headpats and passive grabs.
Why It's Good For The Game

The quirk catalogue is still quite short and could use some more to fill it out. So here's a minor quirk that could be really fun or interesting to play with, especially if you also take unstable and/or hypersensitive, given how common hugs are in station life. Someone suggested it to me so I thought why not.
Changelog

🆑 Melbert
add: New negative quirk: 'Bad Touch'. With it, you gain a negative moodlet from being hugged instead of a positive one, and you gain a negative moodlet from headpats and grabs.
fix: blind people can now feel headpats
/🆑
2020-12-29 14:59:14 +13:00
Ghom
7bc81e5831 Refactors how movetypes are added and removed, No timers this time. (#55444) 2020-12-28 17:57:51 -08:00
fuck
d975512e8a vibing with robotics 2020-12-28 19:32:07 -05:00
fuck
b66cf24f84 many ways to skin a cat 2020-12-28 17:44:18 -05:00
Ryll Ryll
ab25267d13 Fixes dead people not looking dead (#55743) 2020-12-28 14:10:06 -08:00
coiax
829de91a77 Remove TRAIT_ALWAYS_CLEAN from codebase (#55765)
Hygiene is no longer a thing, and the TRAIT_ALWAYS_CLEAN trait is not
actually used anywhere anymore. So it can be safely removed.
2020-12-28 12:31:49 -08:00
Jack Edge
7ed6d1c716 Fixes simple animal shoving message
When you were a simple animal being shoved, you would get a message
along the lines of "You're pushed by Poly!", using you, the animal's
name, rather than the pusher.

This commit corrects that.
2020-12-27 23:57:45 +00:00
Seris02
48efd2d8b2 punctuation (#55753)
Fixes two punctuation errors.
2020-12-28 10:37:33 +13:00