From c7e4e900044bb772511f8b671e74d55abf695667 Mon Sep 17 00:00:00 2001 From: RikuTheKiller <88713943+RikuTheKiller@users.noreply.github.com> Date: Thu, 15 Jan 2026 07:30:35 +0200 Subject: [PATCH] Adds a new antag, the Blood Worm (#93787) ## LTS Document Check this document before making any significant future changes to blood worms, please. https://hackmd.io/@RikuTheKiller/H1AHQSKNZx ## About The Pull Request THIS PR SHOULD ABSOLUTELY BE TM'D FIRST Blood worms are a new progression antag. When the event runs, 2 candidates are picked from ghosts and spawned in as blood worm hatchlings, which then have to grow up, do a couple objectives and take over the station. Hatchlings are weak outside of a host, while juveniles can stand their own reasonably well. Adults have high offensive power and can only be dealt with using the right gear or a lot of luck and robustness. They're meant to be a moment of glory for achieving maximum progression and they can bootstrap the next hatchlings by gathering corpses before cocooning. Each growth stage requires 30 seconds in a cocoon, which can only be created after consuming a lot of blood. There's a falloff curve on a per-blood-type basis, meaning you can't drain the same person over and over again to reach adulthood. The medbay freezer is a priority target for the blood worms and can get one of them to the juvenile stage if fully ransacked. It takes 500 blood to mature from hatchling to juvenile, and 1500 blood to mature from juvenile to adult. You can only get up to 1000 blood from synthetic sources like monkeys, and consuming synthetic blood is 30% less efficient. Blood worms can also examine living targets to see how much blood a target has, and how much growth the blood worm would gain for consuming that blood. Blood worms spawn in vents and have night vision for maneuvering in maintenance. Hatchlings can ventcrawl, while juveniles can move around by breaking things. Optionally, you can take over a host with a lot of access like the Captain to go basically anywhere, especially if nobody knows you killed the captain. Behind the scenes, host-taking kicks the host's original mind to a backseat mob. This needs the most testing in practice, but it's confirmed that it returns the host's mind back to their body, at least in testing. All mob, ability and action sprites are made by INFRARED_BARON. Legal rights were transferred to me after I paid for the commission. Note, I've been working on this massive PR for quite a while, so documenting every small change is really hard! Apologies for anything I've missed. There's a lot. Final note, admins can spawn these by either: A. Trigger the midround event via the dynamic-panel verb, under the Rulesets tab. B. Giving someone the Blood Worm antag datum via the Traitor Panel in the Player Panel for the target player. This will transform their mob into a valid Blood Worm, with all of the associated objectives and such. ### Active Abilities 1. Leech Blood (No Host) - Lets the blood worm drain blood from living targets and reagent containers. Uses an aggressive grab to restrain living targets until leeching is over, which takes around a second to initiate. Causes oxyloss during the leeching. NPC monkeys can't escape from this and it floors targets as well. 2. Spit Blood (Both) - Multi-function ability, lets the blood worm fire ranged corrosive blood spit at targets, melt restraints on their hosts by right-clicking, and as an adult, shoot a burst of blood spit at a target by right-clicking. Note of the right-click abilities, shooting bursts can't be done while in a host. (to avoid unfair stealth kills) Shooting a burst has a much longer cooldown than shooting normally. All spit types cost blood to use. 3. Invade Corpse (No Host) - Lets the blood worm take a host for themselves, consuming all of the host's blood and in essence, "becoming" the host. Any bloodloss inflicted on the host is taken as damage to the blood worm, and the blood worm retains its weakness to fire even in this state. Burn damage itself no longer has any extra damage, though. 4. Leave Host (Host) - Title, literally just leaves the host after a delay. Notably works even while the host is moving, dead, incapacitated or otherwise fucked up in any way, shape or form. 5. Inject Blood (Host) - Lets the blood worm heal its host. The potency of this increases as the worm grows up, but so does the cooldown and blood consumption. This works on organ damage, injuries, etc. 6. Mature (No Host) - Makes the blood worm enter a cocoon for 30 seconds, emerging as the next growth stage. Requires an increasing amount of consumed blood / growth as the blood worm uses it. 7. Reproduce (No Host, Adult Only) - Makes the blood worm enter a cocoon for 30 seconds, with 4 hatchlings emerging out of it, including the original blood worm, now reverted back into a hatchling as well. 8. Revive Host (Host) - If the host is in a viable state to be revived, revives them after an animation sequence plays out. ### Passive Abilities 1. Space Immunity - Blood worms are immune to the cold, low pressures and a lack of oxygen. Only the immunity to a lack of oxygen carries on to hosts from this. 2. Organ Insertion - Blood worms can insert organs into their hosts by right-clicking on them with the organ in-hand. This mainly exists to deal with hosts that lack organs, and avoids the gotcha where an adult blood worm ends up gutting their host by hitting them too hard, as they can simply fix it on the spot. 3. Life Support - Blood worm hosts don't need a heart, lungs or a liver to survive. Lungs are useful for speaking, and a liver is necessary to process reagents. 4. Regeneration - Blood worms slowly heal over time. This is nowhere near enough to overcome bleeding or heat damage, since it's 0.3 hp/s for a hatchling, 0.4 hp/s for a juvenile and 0.5 hp/s for an adult. 5. Night Vision - Blood worms can see in the dark. This doesn't extend to hosts. 6. Ventcrawling - Hatchling blood worms can ventcrawl. 7. Doorcrawling - Hatchling and juvenile blood worms can slide under doors. Doing so takes 3 seconds for a hatchling and 5 seconds for a juvenile. 8. HUD - Blood worms can tell how much blood targets have at a glance, via a blood HUD bar exclusive to them. They can also tell apart other blood worm hosts from normal people via an antag HUD. There's also an examine message they can use on living targets for even more info. ### Weaknesses 1. Heat and Fire - Blood worms quickly die to heat, their bodies are flammable and their blood will burn up if their host's core temperature is too high. The main counter to this is getting a host with flame-resistant gear. 2. Bleeding - While in a host, bleeding wounds will directly damage the blood worm itself. How much a host needs to bleed before the worm dies depends on their growth stage. Blood worm hosts keep bleeding even while dead, so just keep hitting them and they'll die. Blood worms automatically leave their hosts when they hit 10% health or lower, and their hosts bleed 50% faster than normal people. 3. Stuns - Blood worms have no way of dealing with a stunned host other than getting out. They can deal with any restraints by melting them, though. 4. Testing - Security can order a blood worm testing crate from cargo, either for a 20 minute cooldown via the security cargo interface console, or for 10000 credits via the supply console. It contains 4 single-use testers that hurt a bit when applied, but are instant to use and 100% accurate. The stopgap is that they're really fucking expensive and only work once per item. ### Screenshot image ## Why It's Good For The Game Antagonist variety, mainly. This is basically Cortical Borers 2: Electric Boogaloo. Currently, we lack any antagonists with mind control abilities. That really sucks! I've also gotten a lot of positive feedback about the antagonist while working on it. This antagonist also has great potential for roleplay, as they can take over hosts, surprise attack people by getting out of a dead corpse, talk to each other using Wormspeak, etc. I think we're also itching for variety on "pest" antagonists. Right now we just have spiders and xenos. Everybody knows these two, so why not mix it up a bit? And as for balance? Blood worms are relatively easy to dispatch when you know their weaknesses, which are extremely clear. Bleeding for hosts, fire for either one, lasers for the worms themselves. As long as you get the host in crit and keep hitting, you've pretty much won, and they can't keep spamming Inject Blood forever since they'll quickly run out of blood to use. ## Changelog :cl: add: Added a new heavy roundstart/midround antagonist, the Blood Worm. Credit to INFRARED_BARON for the sprites! fix: Removing traits based on a source no longer causes issues with trait signals. fix: High-priority effects no longer double-trigger due to subsystem issues. fix: Weighted averaging in reagent merging code has been band-aid fixed. It's not the best, but it works. /:cl: --- code/__DEFINES/_flags.dm | 2 + code/__DEFINES/antagonists.dm | 1 + code/__DEFINES/atom_hud.dm | 5 +- code/__DEFINES/blood.dm | 7 + code/__DEFINES/blood_worm_defines.dm | 12 + .../dcs/signals/signals_blood_worm.dm | 4 + .../signals/signals_mob/signals_mob_living.dm | 3 + .../signals/signals_mob/signals_mob_simple.dm | 2 +- code/__DEFINES/is_helpers.dm | 2 + code/__DEFINES/language.dm | 1 + code/__DEFINES/living.dm | 7 +- code/__DEFINES/logging.dm | 1 + code/__DEFINES/mobfactions.dm | 2 + code/__DEFINES/role_preferences.dm | 2 + code/__DEFINES/sound.dm | 1 + code/__DEFINES/traits/_traits.dm | 2 +- code/__DEFINES/traits/declarations.dm | 15 + code/__DEFINES/traits/sources.dm | 6 + .../{level_traits.dm => _level_traits.dm} | 0 code/__HELPERS/events.dm | 19 + code/__HELPERS/logging/antagonists.dm | 4 + code/__HELPERS/mobs.dm | 1 + code/_globalvars/blood_worms.dm | 1 + code/_globalvars/lists/poll_ignore.dm | 1 + code/_globalvars/traits/_traits.dm | 6 + code/_globalvars/traits/admin_tooling.dm | 3 + .../configuration/entries/general.dm | 4 + .../dynamic/dynamic_ruleset_midround.dm | 61 ++- .../dynamic/dynamic_ruleset_roundstart.dm | 34 ++ code/datums/actions/action.dm | 5 + code/datums/brain_damage/split_personality.dm | 2 +- code/datums/components/slide_under_doors.dm | 188 ++++++++ code/datums/components/synth_blood.dm | 39 ++ code/datums/elements/anti_self_harm.dm | 27 ++ code/datums/elements/blood_reagent.dm | 11 + code/datums/elements/hand_organ_insertion.dm | 83 ++++ code/datums/hud.dm | 2 + code/datums/mood.dm | 93 ++-- .../mood_events/generic_negative_events.dm | 5 + .../mood_events/generic_positive_events.dm | 5 + code/datums/status_effects/_status_effect.dm | 2 +- code/game/data_huds.dm | 26 ++ code/game/objects/items/food/meatslab.dm | 22 + code/game/sound/sound_keys/sound_keys.dm | 7 + .../antagonists/_common/antag_datum.dm | 14 +- .../blood_worm/actions/_base_action.dm | 21 + .../antagonists/blood_worm/actions/cocoon.dm | 405 ++++++++++++++++++ .../blood_worm/actions/inject_blood.dm | 243 +++++++++++ .../blood_worm/actions/invade_corpse.dm | 66 +++ .../blood_worm/actions/leave_host.dm | 51 +++ .../blood_worm/actions/leech_blood.dm | 272 ++++++++++++ .../blood_worm/actions/revive_host.dm | 105 +++++ .../blood_worm/actions/spit_blood.dm | 282 ++++++++++++ .../blood_worm/blood_worm_antag.dm | 101 +++++ .../blood_worm_blood_consumption.dm | 38 ++ .../blood_worm/blood_worm_host_handling.dm | 260 +++++++++++ .../blood_worm/blood_worm_host_mob.dm | 17 + .../antagonists/blood_worm/blood_worm_mob.dm | 403 +++++++++++++++++ .../blood_worm/blood_worm_objectives.dm | 81 ++++ .../antagonists/blood_worm/blood_worm_team.dm | 86 ++++ .../blood_worm/blood_worm_tester.dm | 87 ++++ .../blood_worm/blood_worm_text_feedback.dm | 97 +++++ code/modules/antagonists/brother/brother.dm | 2 +- .../changeling/powers/expel_worm.dm | 26 ++ code/modules/cargo/packs/security.dm | 10 + code/modules/language/_language_holder.dm | 9 + code/modules/language/wormspeak.dm | 8 + .../logging/categories/log_category_game.dm | 5 + code/modules/mob/living/blood.dm | 71 ++- .../mob/living/carbon/human/human_defines.dm | 2 +- .../modules/mob/living/carbon/init_signals.dm | 11 + code/modules/mob/living/carbon/life.dm | 10 + code/modules/mob/living/init_signals.dm | 26 ++ code/modules/mob/living/life.dm | 3 + code/modules/mob/living/living_defines.dm | 5 +- code/modules/mob/mob.dm | 6 + .../reagents/chemistry/holder/holder.dm | 2 +- .../reagents/chemistry/recipes/others.dm | 20 +- .../reagents/reagent_containers/blood_pack.dm | 3 +- .../modules/reagents/withdrawal/_addiction.dm | 5 + .../spell_types/shapeshift/_shapeshift.dm | 4 +- .../screenshot_antag_icons_bloodworm.png | Bin 0 -> 508 bytes ...nshot_antag_icons_bloodworminfestation.png | Bin 0 -> 508 bytes config/dynamic.toml | 20 + config/logging.txt | 3 + icons/hud/screen_gen.dmi | Bin 113998 -> 114129 bytes icons/mob/actions/actions_blood_worm.dmi | Bin 0 -> 3719 bytes icons/mob/actions/actions_changeling.dmi | Bin 10647 -> 24497 bytes icons/mob/huds/antag_hud.dmi | Bin 5405 -> 5048 bytes icons/mob/huds/hud.dmi | Bin 11413 -> 11442 bytes .../inhands/equipment/security_lefthand.dmi | Bin 12179 -> 12683 bytes .../inhands/equipment/security_righthand.dmi | Bin 13669 -> 12875 bytes .../mob/nonhuman-player/blood_worm_32x32.dmi | Bin 0 -> 5727 bytes .../mob/nonhuman-player/blood_worm_32x48.dmi | Bin 0 -> 3701 bytes icons/obj/antags/blood_worm.dmi | Bin 0 -> 496 bytes icons/obj/weapons/guns/projectiles.dmi | Bin 149951 -> 147060 bytes icons/ui/chat/language.dmi | Bin 6213 -> 5437 bytes sound/effects/alien/alien_spitacid.ogg | Bin 0 -> 15239 bytes sound/effects/alien/alien_spitacid2.ogg | Bin 0 -> 17473 bytes tgstation.dme | 28 +- .../tgui/interfaces/AntagInfoBloodWorm.tsx | 166 +++++++ .../antagonists/antagonists/bloodworm.ts | 15 + .../antagonists/bloodworminfestation.ts | 15 + 103 files changed, 3737 insertions(+), 93 deletions(-) create mode 100644 code/__DEFINES/blood_worm_defines.dm create mode 100644 code/__DEFINES/dcs/signals/signals_blood_worm.dm rename code/__HELPERS/{level_traits.dm => _level_traits.dm} (100%) create mode 100644 code/_globalvars/blood_worms.dm create mode 100644 code/datums/components/slide_under_doors.dm create mode 100644 code/datums/components/synth_blood.dm create mode 100644 code/datums/elements/anti_self_harm.dm create mode 100644 code/datums/elements/hand_organ_insertion.dm create mode 100644 code/modules/antagonists/blood_worm/actions/_base_action.dm create mode 100644 code/modules/antagonists/blood_worm/actions/cocoon.dm create mode 100644 code/modules/antagonists/blood_worm/actions/inject_blood.dm create mode 100644 code/modules/antagonists/blood_worm/actions/invade_corpse.dm create mode 100644 code/modules/antagonists/blood_worm/actions/leave_host.dm create mode 100644 code/modules/antagonists/blood_worm/actions/leech_blood.dm create mode 100644 code/modules/antagonists/blood_worm/actions/revive_host.dm create mode 100644 code/modules/antagonists/blood_worm/actions/spit_blood.dm create mode 100644 code/modules/antagonists/blood_worm/blood_worm_antag.dm create mode 100644 code/modules/antagonists/blood_worm/blood_worm_blood_consumption.dm create mode 100644 code/modules/antagonists/blood_worm/blood_worm_host_handling.dm create mode 100644 code/modules/antagonists/blood_worm/blood_worm_host_mob.dm create mode 100644 code/modules/antagonists/blood_worm/blood_worm_mob.dm create mode 100644 code/modules/antagonists/blood_worm/blood_worm_objectives.dm create mode 100644 code/modules/antagonists/blood_worm/blood_worm_team.dm create mode 100644 code/modules/antagonists/blood_worm/blood_worm_tester.dm create mode 100644 code/modules/antagonists/blood_worm/blood_worm_text_feedback.dm create mode 100644 code/modules/antagonists/changeling/powers/expel_worm.dm create mode 100644 code/modules/language/wormspeak.dm create mode 100644 code/modules/unit_tests/screenshots/screenshot_antag_icons_bloodworm.png create mode 100644 code/modules/unit_tests/screenshots/screenshot_antag_icons_bloodworminfestation.png create mode 100644 icons/mob/actions/actions_blood_worm.dmi create mode 100644 icons/mob/nonhuman-player/blood_worm_32x32.dmi create mode 100644 icons/mob/nonhuman-player/blood_worm_32x48.dmi create mode 100644 icons/obj/antags/blood_worm.dmi create mode 100644 sound/effects/alien/alien_spitacid.ogg create mode 100644 sound/effects/alien/alien_spitacid2.ogg create mode 100644 tgui/packages/tgui/interfaces/AntagInfoBloodWorm.tsx create mode 100644 tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodworm.ts create mode 100644 tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodworminfestation.ts diff --git a/code/__DEFINES/_flags.dm b/code/__DEFINES/_flags.dm index 53b1514ed6a..e54b939404c 100644 --- a/code/__DEFINES/_flags.dm +++ b/code/__DEFINES/_flags.dm @@ -318,6 +318,8 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define IGNORE_INCAPACITATED (1<<3) /// Used to prevent important slowdowns from being abused by drugs like kronkaine #define IGNORE_SLOWDOWNS (1<<4) +/// Cancel the action if the user does another action (mainly via clicking) +#define DO_AFTER_CHECK_NEXT_MOVE (1<<5) // Spacevine-related flags /// Is the spacevine / flower bud heat resistant diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 60d1212540c..36225923fe0 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -422,6 +422,7 @@ GLOBAL_LIST_INIT(human_invader_antagonists, list( #define ANTAG_GROUP_ARACHNIDS "Arachnid Infestation" #define ANTAG_GROUP_ASHWALKERS "Ash Walkers" #define ANTAG_GROUP_BIOHAZARDS "Biohazards" +#define ANTAG_GROUP_BLOODY "Bloody Monstrosities" #define ANTAG_GROUP_CLOWNOPS "Clown Operatives" #define ANTAG_GROUP_ERT "Emergency Response Team" #define ANTAG_GROUP_GLITCH "Digital Anomalies" diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm index 7b65c539cd4..3c043eae400 100644 --- a/code/__DEFINES/atom_hud.dm +++ b/code/__DEFINES/atom_hud.dm @@ -46,8 +46,10 @@ #define DIAG_CAMERA_HUD "21" /// Steady Hacked APC effect, visible only to Malf AIs #define MALF_APC_HUD "22" +/// Blood volume bar, visible to blood worms +#define BLOOD_HUD "23" /// Big Manipulator interaction point HUDs -#define BIG_MANIP_HUD "23" +#define BIG_MANIP_HUD "24" //by default everything in the hud_list of an atom is an image //a value in hud_list with one of these will change that behavior @@ -65,6 +67,7 @@ #define DATA_HUD_AI_DETECT 8 #define DATA_HUD_FAN 9 #define DATA_HUD_MALF_APC 10 +#define DATA_HUD_BLOOD 11 /// cooldown for being shown the images for any particular data hud #define ADD_HUD_TO_COOLDOWN 20 diff --git a/code/__DEFINES/blood.dm b/code/__DEFINES/blood.dm index 92753667574..aacd75db56f 100644 --- a/code/__DEFINES/blood.dm +++ b/code/__DEFINES/blood.dm @@ -24,3 +24,10 @@ /// Mobs will drop everything #define DROP_ALL_REMAINS (DROP_BRAIN | DROP_ORGANS | DROP_BODYPARTS | DROP_ITEMS) + +// Keys for indexing blood data lists. HIGHLY INCOMPLETE. +/// Indexing a blood reagent data list with this returns how synthetic the blood is, used for blood worms to nerf common blood sources like monkeys. +#define BLOOD_DATA_SYNTH_CONTENT "synth_content" + +/// Returns whether this mob always has synthetic blood. Used to cap growth for blood worms from easily accessible sources of blood. +#define IS_BLOOD_ALWAYS_SYNTHETIC(mob) (!ishuman(mob) || HAS_TRAIT(mob, TRAIT_BORN_MONKEY) || HAS_TRAIT(mob, TRAIT_SPAWNED_MOB)) diff --git a/code/__DEFINES/blood_worm_defines.dm b/code/__DEFINES/blood_worm_defines.dm new file mode 100644 index 00000000000..f0a5bed60d9 --- /dev/null +++ b/code/__DEFINES/blood_worm_defines.dm @@ -0,0 +1,12 @@ +#define BLOOD_WORM_BLOOD_TO_HEALTH (100 / BLOOD_VOLUME_NORMAL) +#define BLOOD_WORM_HEALTH_TO_BLOOD (BLOOD_VOLUME_NORMAL / 100) + +/// The health percentage at which blood worms are forcibly kicked out from their hosts. +#define BLOOD_WORM_EJECT_THRESHOLD 0.1 + +/// How much faster blood worm hosts bleed. Required because blood worms, unlike people, don't die at ~60% blood, instead they leave hosts at 10% blood, and adults have a ton of blood. +/// This means blood worms are ridiculously strong against one of their own weaknesses without this. Don't make this too high, because blood worms use blood to heal, attack and survive. +#define BLOOD_WORM_BLEED_MOD 1.5 + +/// Returns a blood worm from the mob if it's a blood worm or the host of one. +#define FIND_BLOOD_WORM(mob) ((isbloodworm(mob) ? mob : null) || ((mob && HAS_TRAIT(mob, TRAIT_BLOOD_WORM_HOST)) ? (locate(/mob/living/basic/blood_worm) in mob) : null)) diff --git a/code/__DEFINES/dcs/signals/signals_blood_worm.dm b/code/__DEFINES/dcs/signals/signals_blood_worm.dm new file mode 100644 index 00000000000..55ede86dbdf --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_blood_worm.dm @@ -0,0 +1,4 @@ +/// From /mob/living/basic/blood_worm/proc/consume_blood() : (normal_blood_amount, synth_blood_amount, total_blood_amount) +#define COMSIG_BLOOD_WORM_CONSUMED_BLOOD "blood_worm_consumed_blood" +/// From /datum/action/cooldown/mob_cooldown/blood_worm/cocoon/adult/transfer() : () +#define COMSIG_BLOOD_WORM_REPRODUCED "blood_worm_reproduced" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm index e6d71fefae7..4922c80f9d1 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm @@ -370,6 +370,9 @@ /// From /mob/living/proc/mob_pickup() : (mob/living/user, obj/item/mob_holder/holder) #define COMSIG_LIVING_SCOOPED_UP "living_scooped_up" +/// From /mob/living/proc/update_blood_status(), sent when the return value of /mob/living/proc/can_have_blood() changes, but before the new blood status is applied : (had_blood, has_blood, old_blood_volume) +#define COMSIG_LIVING_PRE_UPDATE_BLOOD_STATUS "living_pre_update_blood_status" + /// From /mob/living/proc/update_blood_status(), sent when the return value of /mob/living/proc/can_have_blood() changes : (had_blood, has_blood, old_blood_volume, new_blood_volume) #define COMSIG_LIVING_UPDATE_BLOOD_STATUS "living_update_blood_status" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.dm index cdbd0d3e432..e2f04dd8fe0 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_simple.dm @@ -5,7 +5,7 @@ #define COMSIG_SIMPLEMOB_TRANSFERPOTION "simplemob_transferpotion" // /mob/living/simple_animal/hostile signals -///before attackingtarget has happened, source is the attacker and target is the attacked +///before attackingtarget has happened, source is the attacker and target is the attacked : (atom/target, is_adjacent, modifiers) #define COMSIG_HOSTILE_PRE_ATTACKINGTARGET "hostile_pre_attackingtarget" #define COMPONENT_HOSTILE_NO_ATTACK COMPONENT_CANCEL_ATTACK_CHAIN //cancel the attack, only works before attack happens ///after attackingtarget has happened, source is the attacker and target is the attacked, extra argument for if the attackingtarget was successful diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index c5e9d39690f..c4cffab911e 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -177,6 +177,8 @@ GLOBAL_LIST_INIT(turfs_pass_meteor, typecacheof(list( #define isstargazer(A) (istype(A, /mob/living/basic/heretic_summon/star_gazer)) +#define isbloodworm(A) (istype(A, /mob/living/basic/blood_worm)) + /// returns whether or not the atom is either a basic mob OR simple animal #define isanimal_or_basicmob(A) (istype(A, /mob/living/simple_animal) || istype(A, /mob/living/basic)) diff --git a/code/__DEFINES/language.dm b/code/__DEFINES/language.dm index 9189ae20b2e..937fc987aa6 100644 --- a/code/__DEFINES/language.dm +++ b/code/__DEFINES/language.dm @@ -40,6 +40,7 @@ #define LANGUAGE_BABEL "babel" #define LANGUAGE_EMP "emp" #define LANGUAGE_TONGUE "tongue" +#define LANGUAGE_BLOOD_WORM "blood_worm" // Language flags. Used in granting and removing languages. /// This language can be spoken. diff --git a/code/__DEFINES/living.dm b/code/__DEFINES/living.dm index ac2cb64efae..0aa8bee1064 100644 --- a/code/__DEFINES/living.dm +++ b/code/__DEFINES/living.dm @@ -12,8 +12,9 @@ #define STOP_OVERLAY_UPDATE_BODY_PARTS (1<<2) /// Nutrition changed last life tick, so we should bulk update this tick #define QUEUE_NUTRITION_UPDATE (1<<3) -/// Blood volume has changed since the last [proc/update_blood_effects] call -#define QUEUE_BLOOD_UPDATE (1<<4) +/// Blood volume or status has changed since the last [proc/update_blood_effects] call. +/// Nowhere near guaranteed to happen only once per life tick, or at all. +#define BLOOD_UPDATE_QUEUED (1<<4) /// This mob can have blood, cached value of [proc/can_have_blood] #define LIVING_CAN_HAVE_BLOOD (1<<5) @@ -21,6 +22,8 @@ #define GET_LYING_ANGLE(mob) (UNLINT(mob.lying_angle)) /// Checks if the mob can have blood #define CAN_HAVE_BLOOD(mob) (mob.living_flags & LIVING_CAN_HAVE_BLOOD) +/// Queues a blood update for the next life tick for the mob +#define QUEUE_BLOOD_UPDATE(mob) mob.living_flags |= BLOOD_UPDATE_QUEUED // Used in living mob offset list for determining pixel offsets #define PIXEL_W_OFFSET "w" diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm index 53a82a57555..8b730ef4659 100644 --- a/code/__DEFINES/logging.dm +++ b/code/__DEFINES/logging.dm @@ -141,6 +141,7 @@ // Game categories #define LOG_CATEGORY_GAME "game" #define LOG_CATEGORY_GAME_ACCESS "game-access" +#define LOG_CATEGORY_GAME_BLOOD_WORM "game-blood-worm" #define LOG_CATEGORY_GAME_EMOTE "game-emote" #define LOG_CATEGORY_GAME_INTERNET_REQUEST "game-internet-request" #define LOG_CATEGORY_GAME_OOC "game-ooc" diff --git a/code/__DEFINES/mobfactions.dm b/code/__DEFINES/mobfactions.dm index ae3b506484a..04126755f9d 100644 --- a/code/__DEFINES/mobfactions.dm +++ b/code/__DEFINES/mobfactions.dm @@ -13,6 +13,8 @@ #define FACTION_ASHWALKER "ashwalker" /// Bears of all varieties #define FACTION_BEAR "bear" +/// Blood worms +#define FACTION_BLOOD_WORM "blood_worm" /// Megafauna bosses of mining #define FACTION_BOSS "boss" /// CARPS diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 004f990bcdf..12e2718caad 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -8,6 +8,7 @@ //then you MUST update the database! // Roundstart roles +#define ROLE_BLOOD_WORM "Blood Worm" #define ROLE_BROTHER "Blood Brother" #define ROLE_CHANGELING "Changeling" #define ROLE_CULTIST "Cultist" @@ -23,6 +24,7 @@ #define ROLE_ALIEN "Xenomorph" #define ROLE_BLOB "Blob" #define ROLE_BLOB_INFECTION "Blob Infection" +#define ROLE_BLOOD_WORM_INFESTATION "Blood Worm Infestation" #define ROLE_CHANGELING_MIDROUND "Changeling (Midround)" #define ROLE_FUGITIVE "Fugitive" #define ROLE_LONE_OPERATIVE "Lone Operative" diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 23fc91dca3b..1e6a51e23b2 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -320,6 +320,7 @@ GLOBAL_LIST_EMPTY(sfx_datum_by_key) #define SFX_HARD_HAT_PICKUP "hard_hat_pickup" #define SFX_HARD_HAT_DROP "hard_hat_drop" #define SFX_HARD_HAT_EQUIP "hard_hat_equip" +#define SFX_ALIEN_SPIT_ACID "alien_split_acid" // Standard is 44.1khz #define MIN_EMOTE_PITCH 40000 diff --git a/code/__DEFINES/traits/_traits.dm b/code/__DEFINES/traits/_traits.dm index 0b1231c081f..c873152d2d5 100644 --- a/code/__DEFINES/traits/_traits.dm +++ b/code/__DEFINES/traits/_traits.dm @@ -104,7 +104,7 @@ }; \ if (!length(_L[_T])) { \ _L -= _T; \ - SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(_T)); \ + SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(_T), _T); \ }; \ };\ if (!length(_L)) { \ diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index 3b8503f9706..38f63b681b2 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -262,6 +262,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_EASYBLEED "easybleed" /// Mob recovers from addictions at an accelerated rate #define TRAIT_ADDICTIONRESILIENT "addiction_resilient" +/// Mob is immune to the effects of addictions +#define TRAIT_NO_WITHDRAWALS "no_withdrawals" #define TRAIT_TOXINLOVER "toxinlover" /// Doesn't get overlays from being in critical. #define TRAIT_NOCRITOVERLAY "no_crit_overlay" @@ -444,6 +446,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_MEDICAL_HUD_SENSOR_ONLY "med_hud_lesser" #define TRAIT_SECURITY_HUD "sec_hud" #define TRAIT_SECURITY_HUD_ID_ONLY "sec_hud_lesser" +#define TRAIT_BLOOD_HUD "blood_hud" #define TRAIT_ABDUCTOR_HUD "abductor_hud" /// Stop the user from seeing the sechud. Only works for trait handled sechuds. #define TRAIT_BLOCK_SECHUD "block_sechud" @@ -1616,6 +1619,18 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Mob is artificially spawned rather than being created through more natural means - applied to monkey cubes and such #define TRAIT_SPAWNED_MOB "spawned_mob" +/// Mob is the host of a living blood worm. +#define TRAIT_BLOOD_WORM_HOST "blood_worm_host" + +/// Mob just doesn't fucking care. No mood and no sanity. +#define TRAIT_APATHETIC "apathetic" + +/// Mob can't be inflicted with the split personality trauma. +#define TRAIT_NO_SPLIT_PERSONALITY "no_split_personality" + +/// Mob is shapeshifted, e.g. via a polymorph belt. +#define TRAIT_SHAPESHIFTED "shapeshifted" + /// Turf is one that ai mobs will generally avoid pathing through /// Doesn't need to be applied to any turfs that override can_cross_safely #define TRAIT_AI_AVOID_TURF "warning_turf" diff --git a/code/__DEFINES/traits/sources.dm b/code/__DEFINES/traits/sources.dm index 8f40c3c8b8e..8cbe3049d0f 100644 --- a/code/__DEFINES/traits/sources.dm +++ b/code/__DEFINES/traits/sources.dm @@ -330,6 +330,12 @@ /// Permanent trait from an overdose effect #define OVERDOSE_TRAIT "overdose" +/// Trait from a blood worm being in a host +#define BLOOD_WORM_HOST_TRAIT "blood_worm_host_trait" + +/// Trait from being under a door via [/datum/component/slide_under_doors] +#define UNDER_DOOR_TRAIT "under_door_trait" + /// Trait gained from bioware surgeries #define BIOWARE_TRAIT "bioware" diff --git a/code/__HELPERS/level_traits.dm b/code/__HELPERS/_level_traits.dm similarity index 100% rename from code/__HELPERS/level_traits.dm rename to code/__HELPERS/_level_traits.dm diff --git a/code/__HELPERS/events.dm b/code/__HELPERS/events.dm index 58d91c8caa8..ad937029026 100644 --- a/code/__HELPERS/events.dm +++ b/code/__HELPERS/events.dm @@ -47,6 +47,25 @@ return pick(possible_spawns) +/// Finds us all suitable vent spawn locations on the station. +/proc/find_vent_spawns() + var/list/vents = list() + var/list/vent_pumps = SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/atmospherics/components/unary/vent_pump) + for(var/obj/machinery/atmospherics/components/unary/vent_pump/temp_vent as anything in vent_pumps) + if(QDELETED(temp_vent)) + continue + if(!is_station_level(temp_vent.loc.z) || temp_vent.welded) + continue + var/datum/pipeline/temp_vent_parent = temp_vent.parents[1] + if(!temp_vent_parent) + continue + // Stops antagonists getting stuck in small networks. + // See: Security, Virology + if(length(temp_vent_parent.other_atmos_machines) <= 20) + continue + vents += temp_vent + return vents + /proc/force_event(event_typepath, cause) var/datum/round_event_control/our_event = locate(event_typepath) in SSevents.control if(!our_event) diff --git a/code/__HELPERS/logging/antagonists.dm b/code/__HELPERS/logging/antagonists.dm index 5df39c69ade..514c4a3acfa 100644 --- a/code/__HELPERS/logging/antagonists.dm +++ b/code/__HELPERS/logging/antagonists.dm @@ -25,3 +25,7 @@ /// Logs bounties completed by spies and their rewards /proc/log_spy(text, list/data) logger.Log(LOG_CATEGORY_UPLINK_SPY, text, data) + +/// Logs blood worm events like entering/leaving a host. +/proc/log_blood_worm(text, list/data) + logger.Log(LOG_CATEGORY_GAME_BLOOD_WORM, text, data) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index a93f3d7402a..4a9d2e205e2 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -267,6 +267,7 @@ GLOBAL_LIST_INIT(skin_tone_names, list( || (!(timed_action_flags & IGNORE_USER_LOC_CHANGE) && !drifting && user.loc != user_loc) \ || (!(timed_action_flags & IGNORE_HELD_ITEM) && user.get_active_held_item() != holding) \ || (!(timed_action_flags & IGNORE_INCAPACITATED) && HAS_TRAIT(user, TRAIT_INCAPACITATED)) \ + || ((timed_action_flags & DO_AFTER_CHECK_NEXT_MOVE) && world.time < user.next_move) \ || (extra_checks && !extra_checks.Invoke())) . = FALSE break diff --git a/code/_globalvars/blood_worms.dm b/code/_globalvars/blood_worms.dm new file mode 100644 index 00000000000..e3ffde57443 --- /dev/null +++ b/code/_globalvars/blood_worms.dm @@ -0,0 +1 @@ +GLOBAL_DATUM(blood_worm_team, /datum/team/blood_worm) diff --git a/code/_globalvars/lists/poll_ignore.dm b/code/_globalvars/lists/poll_ignore.dm index 2a88c05de6a..5a16fa6bff1 100644 --- a/code/_globalvars/lists/poll_ignore.dm +++ b/code/_globalvars/lists/poll_ignore.dm @@ -5,6 +5,7 @@ #define POLL_IGNORE_ASH_SPIRIT "ash_spirit" #define POLL_IGNORE_ASHWALKER "ashwalker" #define POLL_IGNORE_BLOB "blob" +#define POLL_IGNORE_BLOOD_WORM "blood_worm" #define POLL_IGNORE_BOTS "bots" #define POLL_IGNORE_CARGORILLA "cargorilla" #define POLL_IGNORE_CONSTRUCT "construct" diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index a975dc57457..3124abd35d7 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -179,6 +179,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_ANTIMAGIC" = TRAIT_ANTIMAGIC, "TRAIT_ANTIMAGIC_NO_SELFBLOCK" = TRAIT_ANTIMAGIC_NO_SELFBLOCK, "TRAIT_ANXIOUS" = TRAIT_ANXIOUS, + "TRAIT_APATHETIC" = TRAIT_APATHETIC, "TRAIT_ATTEMPTING_CHRISTENING" = TRAIT_ATTEMPTING_CHRISTENING, "TRAIT_BADDNA" = TRAIT_BADDNA, "TRAIT_BADTOUCH" = TRAIT_BADTOUCH, @@ -197,6 +198,8 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_BLOODY_MESS" = TRAIT_BLOODY_MESS, "TRAIT_BLOOD_CLANS" = TRAIT_BLOOD_CLANS, "TRAIT_BLOOD_FOUNTAIN" = TRAIT_BLOOD_FOUNTAIN, + "TRAIT_BLOOD_HUD" = TRAIT_BLOOD_HUD, + "TRAIT_BLOOD_WORM_HOST" = TRAIT_BLOOD_WORM_HOST, "TRAIT_BOMBIMMUNE" = TRAIT_BOMBIMMUNE, "TRAIT_BONSAI" = TRAIT_BONSAI, "TRAIT_BOOZE_SLIDER" = TRAIT_BOOZE_SLIDER, @@ -453,12 +456,14 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NO_SLIP_SLIDE" = TRAIT_NO_SLIP_SLIDE, "TRAIT_NO_SLIP_WATER" = TRAIT_NO_SLIP_WATER, "TRAIT_NO_SOUL" = TRAIT_NO_SOUL, + "TRAIT_NO_SPLIT_PERSONALITY" = TRAIT_NO_SPLIT_PERSONALITY, "TRAIT_NO_STAGGER" = TRAIT_NO_STAGGER, "TRAIT_NO_STRIP" = TRAIT_NO_STRIP, "TRAIT_NO_THROWING" = TRAIT_NO_THROWING, "TRAIT_NO_TRANSFORM" = TRAIT_NO_TRANSFORM, "TRAIT_NO_TWOHANDING" = TRAIT_NO_TWOHANDING, "TRAIT_NO_UNDERWEAR" = TRAIT_NO_UNDERWEAR, + "TRAIT_NO_WITHDRAWALS" = TRAIT_NO_WITHDRAWALS, "TRAIT_NO_ZOMBIFY" = TRAIT_NO_ZOMBIFY, "TRAIT_HIPPOCRATIC_OATH" = TRAIT_HIPPOCRATIC_OATH, "TRAIT_NUKEIMMUNE" = TRAIT_NUKEIMMUNE, @@ -530,6 +535,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SELF_AWARE" = TRAIT_SELF_AWARE, "TRAIT_SELF_SURGERY" = TRAIT_SELF_SURGERY, "TRAIT_SETTLER" = TRAIT_SETTLER, + "TRAIT_SHAPESHIFTED" = TRAIT_SHAPESHIFTED, "TRAIT_SHAVED" = TRAIT_SHAVED, "TRAIT_SHELL_RETREATED" = TRAIT_SHELL_RETREATED, "TRAIT_SHIFTY_EYES" = TRAIT_SHIFTY_EYES, diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm index 3332013b485..d44821c7857 100644 --- a/code/_globalvars/traits/admin_tooling.dm +++ b/code/_globalvars/traits/admin_tooling.dm @@ -49,6 +49,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_ANTIMAGIC" = TRAIT_ANTIMAGIC, "TRAIT_ANTIMAGIC_NO_SELFBLOCK" = TRAIT_ANTIMAGIC_NO_SELFBLOCK, "TRAIT_ANXIOUS" = TRAIT_ANXIOUS, + "TRAIT_APATHETIC" = TRAIT_APATHETIC, "TRAIT_BADDNA" = TRAIT_BADDNA, "TRAIT_BADTOUCH" = TRAIT_BADTOUCH, "TRAIT_BALD" = TRAIT_BALD, @@ -204,10 +205,12 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_NO_SLIP_SLIDE" = TRAIT_NO_SLIP_SLIDE, "TRAIT_NO_SLIP_WATER" = TRAIT_NO_SLIP_WATER, "TRAIT_NO_SOUL" = TRAIT_NO_SOUL, + "TRAIT_NO_SPLIT_PERSONALITY" = TRAIT_NO_SPLIT_PERSONALITY, "TRAIT_NO_STAGGER" = TRAIT_NO_STAGGER, "TRAIT_NO_TRANSFORM" = TRAIT_NO_TRANSFORM, "TRAIT_NO_TWOHANDING" = TRAIT_NO_TWOHANDING, "TRAIT_NO_UNDERWEAR" = TRAIT_NO_UNDERWEAR, + "TRAIT_NO_WITHDRAWALS" = TRAIT_NO_WITHDRAWALS, "TRAIT_NO_ZOMBIFY" = TRAIT_NO_ZOMBIFY, "TRAIT_NOBLOOD" = TRAIT_NOBLOOD, "TRAIT_NOBREATH" = TRAIT_NOBREATH, diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index d523dfc9866..51b0a579dbb 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -66,6 +66,10 @@ /// log login/logout /datum/config_entry/flag/log_access +/// log blood worm actions like entering/leaving hosts +/datum/config_entry/flag/log_blood_worm + default = TRUE + /// Config entry which special logging of failed logins under suspicious circumstances. /datum/config_entry/flag/log_suspicious_login diff --git a/code/controllers/subsystem/dynamic/dynamic_ruleset_midround.dm b/code/controllers/subsystem/dynamic/dynamic_ruleset_midround.dm index 95672517f9c..2feceaef761 100644 --- a/code/controllers/subsystem/dynamic/dynamic_ruleset_midround.dm +++ b/code/controllers/subsystem/dynamic/dynamic_ruleset_midround.dm @@ -435,7 +435,7 @@ max_antag_cap += prob(50) // 50% chance to get a second xeno, free! /datum/dynamic_ruleset/midround/from_ghosts/xenomorph/can_be_selected() - return ..() && length(find_vents()) > 0 + return ..() && length(find_vent_spawns()) > 0 /datum/dynamic_ruleset/midround/from_ghosts/xenomorph/execute() . = ..() @@ -451,30 +451,53 @@ return new /mob/living/carbon/alien/larva /datum/dynamic_ruleset/midround/from_ghosts/xenomorph/create_execute_args() - return list(find_vents()) + return list(find_vent_spawns()) /datum/dynamic_ruleset/midround/from_ghosts/xenomorph/assign_role(datum/mind/candidate, list/vent_list) // xeno login gives antag datums var/obj/vent = length(vent_list) >= 2 ? pick_n_take(vent_list) : vent_list[1] candidate.current.move_into_vent(vent) -/datum/dynamic_ruleset/midround/from_ghosts/xenomorph/proc/find_vents() - var/list/vents = list() - var/list/vent_pumps = SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/atmospherics/components/unary/vent_pump) - for(var/obj/machinery/atmospherics/components/unary/vent_pump/temp_vent as anything in vent_pumps) - if(QDELETED(temp_vent)) - continue - if(!is_station_level(temp_vent.loc.z) || temp_vent.welded) - continue - var/datum/pipeline/temp_vent_parent = temp_vent.parents[1] - if(!temp_vent_parent) - continue - // Stops Aliens getting stuck in small networks. - // See: Security, Virology - if(length(temp_vent_parent.other_atmos_machines) <= 20) - continue - vents += temp_vent - return vents +/datum/dynamic_ruleset/midround/from_ghosts/blood_worms + name = "Blood Worm Infestation" + config_tag = "Midround Blood Worm" + preview_antag_datum = /datum/antagonist/blood_worm/infestation + // Please set this to HEAVY_MIDROUND once dynamic has fine-grained handling for spawn times and doesn't restrict all heavy midrounds to spawning after 40 minutes. + // Blood worms are intended to spawn 10-30 minutes into a round. This is a band-aid fix, and the better of two evils. (wrong threat tier vs wrong round timing) + midround_type = LIGHT_MIDROUND + false_alarm_able = TRUE + pref_flag = ROLE_BLOOD_WORM_INFESTATION + candidate_role = "Blood Worm" + ruleset_flags = RULESET_INVADER + weight = 2 // For reference, Nightmare has a weight of 5. + min_pop = 20 // Blood worms are limited by resources, so low pop means they have a harder time getting their tail in the door. + min_antag_cap = 1 + max_antag_cap = 2 + signup_atom_appearance = /mob/living/basic/blood_worm/juvenile + +/datum/dynamic_ruleset/midround/from_ghosts/blood_worms/can_be_selected() + return ..() && length(find_vent_spawns()) > 0 + +/datum/dynamic_ruleset/midround/from_ghosts/blood_worms/execute() + . = ..() + addtimer(CALLBACK(src, PROC_REF(announce_worms)), rand(450, 750) SECONDS) + +/datum/dynamic_ruleset/midround/from_ghosts/blood_worms/create_ruleset_body() + return new /mob/living/basic/blood_worm/hatchling + +/datum/dynamic_ruleset/midround/from_ghosts/blood_worms/create_execute_args() + return list(find_vent_spawns()) + +/datum/dynamic_ruleset/midround/from_ghosts/blood_worms/assign_role(datum/mind/candidate, list/vent_list) + candidate.add_antag_datum(/datum/antagonist/blood_worm) + var/obj/vent = length(vent_list) >= 2 ? pick_n_take(vent_list) : vent_list[1] + candidate.current.move_into_vent(vent) + +/datum/dynamic_ruleset/midround/from_ghosts/blood_worms/proc/announce_worms() + priority_announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", ANNOUNCER_ALIENS) + +/datum/dynamic_ruleset/midround/from_ghosts/blood_worms/false_alarm() + announce_worms() /datum/dynamic_ruleset/midround/from_ghosts/nightmare name = "Nightmare" diff --git a/code/controllers/subsystem/dynamic/dynamic_ruleset_roundstart.dm b/code/controllers/subsystem/dynamic/dynamic_ruleset_roundstart.dm index 417f7164c21..8554937f752 100644 --- a/code/controllers/subsystem/dynamic/dynamic_ruleset_roundstart.dm +++ b/code/controllers/subsystem/dynamic/dynamic_ruleset_roundstart.dm @@ -98,6 +98,40 @@ /datum/dynamic_ruleset/roundstart/changeling/assign_role(datum/mind/candidate) candidate.add_antag_datum(/datum/antagonist/changeling) +// Quick thing about this event, it turns out roundstart blood worms, despite being granted a host, are worse at antaggery in practice. +// They have their static, so unlike blood worms who spawn in the middle of the round, they just kinda tend to do nothing. So having at least 2 is ideal. +// This way, if one ends up being a fluke, the other can hopefully pick up the slack. It's a semi-rare event, so having a massive chance to just fizzle out isn't ideal. +/datum/dynamic_ruleset/roundstart/blood_worm + name = "Blood Worms" + config_tag = "Roundstart Blood Worm" + preview_antag_datum = /datum/antagonist/blood_worm + pref_flag = ROLE_BLOOD_WORM + weight = 1 + min_pop = 10 // Resource limited, spawning on lowpop is fine. + max_antag_cap = list("denominator" = 29) // +1 blood worm per 30 pop. + repeatable = FALSE // Yeah no. + +/datum/dynamic_ruleset/roundstart/blood_worm/is_valid_candidate(mob/living/candidate, client/candidate_client) + if (!..()) + return FALSE + + var/species_type = candidate_client.prefs.read_preference(/datum/preference/choiced/species) + var/datum/species/species = GLOB.species_prototypes[species_type] + + return !(TRAIT_NOBLOOD in species.inherent_traits) + +/datum/dynamic_ruleset/roundstart/blood_worm/assign_role(datum/mind/candidate) + if (!CAN_HAVE_BLOOD(candidate.current)) + CRASH("A roundstart blood worm tried to spawn into a candidate mob with no blood. This shouldn't happen, because we already checked for TRAIT_NOBLOOD in species traits.") + + var/mob/living/carbon/human/host = candidate.current + var/mob/living/basic/blood_worm/hatchling/worm = new(get_turf(host)) + + candidate.transfer_to(worm) + candidate.add_antag_datum(/datum/antagonist/blood_worm/infestation) + + worm.enter_host(host, silent = TRUE, gain_progress = FALSE) + /datum/dynamic_ruleset/roundstart/heretic name = "Heretics" config_tag = "Roundstart Heretics" diff --git a/code/datums/actions/action.dm b/code/datums/actions/action.dm index 5b72c3c21e0..64f2f2a6c2b 100644 --- a/code/datums/actions/action.dm +++ b/code/datums/actions/action.dm @@ -452,3 +452,8 @@ else source.next_click = world.time + CLICK_CD_ACTIVATE_ABILITY INVOKE_ASYNC(src, PROC_REF(Trigger)) + +/// Used for setting the keybind via external sources. +/datum/action/proc/set_key(new_full_key) + full_key = new_full_key + build_all_button_icons(UPDATE_BUTTON_STATUS) diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm index 0cf605afc34..57c94e60b1d 100644 --- a/code/datums/brain_damage/split_personality.dm +++ b/code/datums/brain_damage/split_personality.dm @@ -21,7 +21,7 @@ /datum/brain_trauma/severe/split_personality/on_gain() var/mob/living/brain_owner = owner - if(brain_owner.stat == DEAD || !GET_CLIENT(brain_owner) || istype(get_area(brain_owner), /area/deathmatch)) //No use assigning people to a corpse or braindead + if(brain_owner.stat == DEAD || !GET_CLIENT(brain_owner) || istype(get_area(brain_owner), /area/deathmatch) || HAS_TRAIT(brain_owner, TRAIT_NO_SPLIT_PERSONALITY)) //No use assigning people to a corpse or braindead return FALSE . = ..() make_backseats() diff --git a/code/datums/components/slide_under_doors.dm b/code/datums/components/slide_under_doors.dm new file mode 100644 index 00000000000..a43e9a66de9 --- /dev/null +++ b/code/datums/components/slide_under_doors.dm @@ -0,0 +1,188 @@ +// A component for basic mobs that makes them able to slide under doors by right-clicking on them. +// Sliding under doors has a configurable initial delay, and allows the mob to remain under the door indefinitely. +// If the door is opened while the mob is under it, then the mob will be ejected from their hiding spot. +// Instantly sliding under doors should be handled by giving the mob the PASSDOORS pass flag. + +/datum/component/slide_under_doors + can_transfer = TRUE + + /// The delay for sliding under a door in deciseconds. + var/slide_in_delay = 0 + /// The delay for sliding out from under a door in deciseconds. + var/slide_out_delay = 0 + + /// The user that is currently under a door, if any. + var/mob/living/current_user = null + /// The door the user is currently under, if any. + var/obj/machinery/door/current_door = null + +/datum/component/slide_under_doors/Initialize(slide_in_delay = 5 SECONDS, slide_out_delay = 1 SECONDS) + if (!isbasicmob(parent)) + return COMPONENT_INCOMPATIBLE + + src.slide_in_delay = slide_in_delay + src.slide_out_delay = slide_out_delay + +/datum/component/slide_under_doors/RegisterWithParent() + RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, PROC_REF(on_user_login)) + RegisterSignal(parent, COMSIG_LIVING_UNARMED_ATTACK, PROC_REF(on_user_unarmed_attack)) + + notify_user() + +/datum/component/slide_under_doors/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_MOB_CLIENT_LOGIN, COMSIG_LIVING_UNARMED_ATTACK)) + + if (!QDELETED(current_user) && !QDELETED(current_door)) + slide_out_from_under_door() + else if (current_user || current_door) + unregister_user_and_door() + +/datum/component/slide_under_doors/proc/on_user_login(mob/living/user, client/user_client) + SIGNAL_HANDLER + notify_user() + +/datum/component/slide_under_doors/proc/notify_user() + to_chat(parent, span_notice("You can slide under doors! Right-click on a door to slide under it.")) + +/datum/component/slide_under_doors/proc/on_user_unarmed_attack(mob/living/user, atom/target, is_adjacent, modifiers) + SIGNAL_HANDLER + if (!modifiers[RIGHT_CLICK]) + return + if (!istype(target, /obj/machinery/door)) + return + + INVOKE_ASYNC(src, PROC_REF(try_slide_under_door), user, target) + return COMPONENT_CANCEL_ATTACK_CHAIN + +/datum/component/slide_under_doors/proc/try_slide_under_door(mob/living/user, obj/machinery/door/door) + if (!can_slide_under_door(user, door)) + return + + user.visible_message( + message = span_danger("\The [user] start[user.p_s()] sliding under \the [door]!"), + self_message = span_notice("You start sliding under \the [door]."), + blind_message = span_hear("You hear squeezing."), + ) + + playsound(user, 'sound/effects/footstep/gib_step.ogg', vol = 50, vary = TRUE, ignore_walls = FALSE) + + if (!do_after(user, slide_in_delay, door, extra_checks = CALLBACK(src, PROC_REF(can_slide_under_door), user, door))) + return + + slide_under_door(user, door) + +/datum/component/slide_under_doors/proc/can_slide_under_door(mob/living/user, obj/machinery/door/door) + if (!user.Adjacent(door)) + return FALSE + if (user.loc == door) + return FALSE + if (!isturf(user.loc)) + user.balloon_alert(user, "not on the ground!") + return FALSE + if (!door.IsReachableBy(user)) + user.balloon_alert(user, "can't reach!") + return FALSE + if (HAS_TRAIT(user, TRAIT_INCAPACITATED)) + user.balloon_alert(user, "incapacitated!") + return FALSE + if (!(door.pass_flags_self & PASSDOORS)) + door.balloon_alert(user, "impassable!") + return FALSE + if (!door.density) + door.balloon_alert(user, "already open!") + return FALSE + return TRUE + +/datum/component/slide_under_doors/proc/slide_under_door(mob/living/user, obj/machinery/door/door) + user.visible_message( + message = span_danger("\The [user] slide[user.p_s()] under \the [door] with a pop!"), + self_message = span_notice("You slide under \the [door] with a pop!"), + blind_message = span_hear("You hear a pop."), + ) + + playsound(user, 'sound/effects/meatslap.ogg', vol = 50, vary = TRUE, ignore_walls = FALSE) + + user.forceMove(door) + + register_user_and_door(user, door) + +/datum/component/slide_under_doors/proc/try_slide_out_from_under_door(move_dir) + if (DOING_INTERACTION_WITH_TARGET(current_user, current_door)) + return + + var/turf/visible_turf = get_step(current_user, move_dir) + + if (visible_turf) + visible_turf.visible_message( + message = span_danger("Something starts sliding out from under \the [current_door]!"), + blind_message = span_hear("You hear squeezing."), + ignored_mobs = current_user, + ) + + playsound(visible_turf, 'sound/effects/footstep/gib_step.ogg', vol = 50, vary = TRUE, ignore_walls = FALSE) + + to_chat(current_user, span_notice("You start sliding out from under \the [current_door].")) + + if (!do_after(current_user, slide_out_delay, current_door, timed_action_flags = IGNORE_INCAPACITATED)) + return + + slide_out_from_under_door(move_dir) + +/datum/component/slide_under_doors/proc/slide_out_from_under_door(move_dir) + // We need to store local references to the user and the door before unregistering them. + var/mob/living/user = current_user + var/obj/machinery/door/door = current_door + + unregister_user_and_door() + + user.forceMove(door.drop_location()) + + if (move_dir) + user.Move(get_step(user, move_dir), move_dir) + + user.visible_message( + message = span_danger("\The [user] slide[user.p_s()] out from under \the [door] with a pop!"), + self_message = span_notice("You slide out from under \the [door] with a pop!"), + blind_message = span_hear("You hear a pop."), + ) + + playsound(user, 'sound/effects/meatslap.ogg', vol = 50, vary = TRUE, ignore_walls = FALSE) + +/datum/component/slide_under_doors/proc/register_user_and_door(mob/living/user, obj/machinery/door/door) + ADD_TRAIT(user, TRAIT_INCAPACITATED, UNDER_DOOR_TRAIT) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_user_moved)) + current_user = user + + RegisterSignal(door, COMSIG_QDELETING, PROC_REF(on_door_qdeleting)) + RegisterSignal(door, COMSIG_ATOM_DENSITY_CHANGED, PROC_REF(on_door_density_changed)) + RegisterSignal(door, COMSIG_ATOM_RELAYMOVE, PROC_REF(on_door_relaymove)) + current_door = door + +/datum/component/slide_under_doors/proc/unregister_user_and_door() + if (current_user) + REMOVE_TRAITS_IN(current_user, UNDER_DOOR_TRAIT) + UnregisterSignal(current_user, COMSIG_MOVABLE_MOVED) + current_user = null + + if (current_door) + UnregisterSignal(current_door, list(COMSIG_QDELETING, COMSIG_ATOM_DENSITY_CHANGED, COMSIG_ATOM_RELAYMOVE)) + current_door = null + +/datum/component/slide_under_doors/proc/on_user_moved(mob/living/user, obj/machinery/door/door, dir, forced, list/old_locs) + SIGNAL_HANDLER + if (user.loc != door) + unregister_user_and_door() + +/datum/component/slide_under_doors/proc/on_door_qdeleting(obj/machinery/door/door, force) + SIGNAL_HANDLER + unregister_user_and_door() + +/datum/component/slide_under_doors/proc/on_door_density_changed(obj/machinery/door/door) + SIGNAL_HANDLER + if (!door.density) + slide_out_from_under_door() + +/datum/component/slide_under_doors/proc/on_door_relaymove(obj/machinery/door/door, mob/living/user, move_dir) + SIGNAL_HANDLER + INVOKE_ASYNC(src, PROC_REF(try_slide_out_from_under_door), move_dir) + return COMSIG_BLOCK_RELAYMOVE diff --git a/code/datums/components/synth_blood.dm b/code/datums/components/synth_blood.dm new file mode 100644 index 00000000000..7b835a752ed --- /dev/null +++ b/code/datums/components/synth_blood.dm @@ -0,0 +1,39 @@ +/// Used for tracking mobs that have had synthetic blood injected into them. +/// The higher the synth content, the more nerfed the blood is for blood worms. +/// This decays over time while the mob is alive. +/datum/component/synth_blood + // This has a performance improvement over COMPONENT_DUPE_HIGHLANDER as it skips creating a new component instance. + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + + /// 0-1 of how synthetic this mobs blood is right now. + var/synth_content = 0 + +/datum/component/synth_blood/Initialize(new_synth_content = 0) + if (!isliving(parent)) + return COMPONENT_INCOMPATIBLE + if (new_synth_content <= 0) + return COMPONENT_REDUNDANT + + synth_content = min(new_synth_content, 1) + + RegisterSignal(parent, COMSIG_LIVING_LIFE, PROC_REF(on_life)) + +/datum/component/synth_blood/InheritComponent(datum/component/synth_blood/new_component, i_am_original, new_synth_content) + if (new_component) + new_synth_content = new_component.synth_content + if (new_synth_content <= 0) + qdel(src) + + synth_content = min(new_synth_content, 1) + +/datum/component/synth_blood/Destroy(force) + UnregisterSignal(parent, COMSIG_LIVING_LIFE) + return ..() + +/datum/component/synth_blood/proc/on_life(mob/living/living_parent, seconds_per_tick, times_fired) + SIGNAL_HANDLER + if (synth_content <= 0) + qdel(src) + else if (living_parent.stat != DEAD) + // Ten minutes (or 600 seconds) to fully clear synth content from one to zero. + synth_content = max(synth_content - (1/600) * seconds_per_tick, 0) diff --git a/code/datums/elements/anti_self_harm.dm b/code/datums/elements/anti_self_harm.dm new file mode 100644 index 00000000000..97e32766ca9 --- /dev/null +++ b/code/datums/elements/anti_self_harm.dm @@ -0,0 +1,27 @@ +// Prevents a basic mob from hitting themselves by accident. +// This is useful if you don't want self-harm as a balancing factor. +// There are a lot of basic mobs that never benefit from hitting themselves. +// Properly implementing this for carbons would require a more complex setup. + +/datum/element/anti_self_harm + +/datum/element/anti_self_harm/Attach(datum/target) + . = ..() + if (!isbasicmob(target)) + return ELEMENT_INCOMPATIBLE + RegisterSignal(target, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(on_hostile_pre_attackingtarget)) + +/datum/element/anti_self_harm/Detach(datum/target, ...) + UnregisterSignal(target, COMSIG_HOSTILE_PRE_ATTACKINGTARGET) + return ..() + +/datum/element/anti_self_harm/proc/on_hostile_pre_attackingtarget(mob/living/basic/parent_mob, atom/target, is_adjacent, modifiers) + SIGNAL_HANDLER + if (parent_mob != target) + return + if (modifiers[RIGHT_CLICK]) + return + + // A balloon alert would be too distracting mid-combat. + to_chat(parent_mob, span_warning("You decide against attacking yourself. You can still do so with right-click.")) + return COMPONENT_HOSTILE_NO_ATTACK diff --git a/code/datums/elements/blood_reagent.dm b/code/datums/elements/blood_reagent.dm index 78ecae8c117..f71c1a7aca8 100644 --- a/code/datums/elements/blood_reagent.dm +++ b/code/datums/elements/blood_reagent.dm @@ -172,6 +172,17 @@ /datum/element/blood_reagent/proc/on_merge(datum/reagent/source, list/mix_data, amount) SIGNAL_HANDLER + // Proportionally mix synth contents + if (source.data?[BLOOD_DATA_SYNTH_CONTENT] || mix_data?[BLOOD_DATA_SYNTH_CONTENT]) + var/added_synth_volume = amount * mix_data?[BLOOD_DATA_SYNTH_CONTENT] + var/existing_synth_volume = source.volume * source.data?[BLOOD_DATA_SYNTH_CONTENT] + + if (!source.data) + source.data = list() + + // A simple weighted average that simplifies down to "total synth volume / total blood volume" i.e. "how much of the blood is synthetic" + source.data[BLOOD_DATA_SYNTH_CONTENT] = (added_synth_volume + existing_synth_volume) / (amount + source.volume) + // Presumably artificially generated blood if (!source.data || !mix_data) return diff --git a/code/datums/elements/hand_organ_insertion.dm b/code/datums/elements/hand_organ_insertion.dm new file mode 100644 index 00000000000..2320af18e4d --- /dev/null +++ b/code/datums/elements/hand_organ_insertion.dm @@ -0,0 +1,83 @@ +/datum/element/hand_organ_insertion + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + + var/insertion_time = 0 SECONDS + +/datum/element/hand_organ_insertion/Attach(datum/target, insertion_time = 5 SECONDS) + . = ..() + if (!iscarbon(target)) + return ELEMENT_INCOMPATIBLE + + src.insertion_time = insertion_time + + RegisterSignal(target, COMSIG_USER_ITEM_INTERACTION_SECONDARY, PROC_REF(on_item_interaction_secondary)) + +/datum/element/hand_organ_insertion/Detach(datum/source, ...) + . = ..() + + UnregisterSignal(source, COMSIG_USER_ITEM_INTERACTION_SECONDARY) + +/datum/element/hand_organ_insertion/proc/on_item_interaction_secondary(mob/living/carbon/parent, atom/target, obj/item/tool, list/modifiers) + SIGNAL_HANDLER + if (target != parent) + return FALSE + if (!isorgan(tool)) + return FALSE + + INVOKE_ASYNC(src, PROC_REF(attempt_to_insert_organ), parent, tool) + return TRUE + +/datum/element/hand_organ_insertion/proc/attempt_to_insert_organ(mob/living/carbon/user, obj/item/organ/organ) + if (!can_insert_organ(user, organ, feedback = TRUE)) + return + + var/zone_name = user.parse_zone_with_bodypart(organ.zone) + + user.visible_message( + message = span_danger("\The [user] begin[user.p_s()] inserting \the [organ] into [user.p_their()] [zone_name]!"), + self_message = span_danger("You begin inserting \the [organ] into your [zone_name]!"), + blind_message = span_hear("You hear squelching!") + ) + + user.balloon_alert(user, "inserting...") + + playsound(user, 'sound/items/handling/surgery/organ2.ogg', vol = 80, vary = TRUE, ignore_walls = FALSE) + + if (!do_after(user, insertion_time, extra_checks = CALLBACK(src, PROC_REF(can_insert_organ), user, organ))) + user.balloon_alert(user, "interrupted!") + return + + zone_name = user.parse_zone_with_bodypart(organ.zone) + + user.visible_message( + message = span_danger("\The [user] insert[user.p_s()] \the [organ] into [user.p_their()] [zone_name]!"), + self_message = span_danger("You insert \the [organ] into your [zone_name]!"), + blind_message = span_hear("You hear a loud, final squelch!") + ) + + user.balloon_alert(user, "inserted!") + + playsound(user, 'sound/items/handling/surgery/organ1.ogg', vol = 80, vary = TRUE, ignore_walls = FALSE) + + user.temporarilyRemoveItemFromInventory(organ, force = TRUE) + organ.Insert(user) + organ.on_surgical_insertion(user, user, organ.zone, organ) + +/datum/element/hand_organ_insertion/proc/can_insert_organ(mob/living/carbon/user, obj/item/organ/organ, feedback = FALSE) + if (!user.get_bodypart(deprecise_zone(organ.zone))) + user.balloon_alert(user, "you don't have a [parse_zone(organ.zone)]!") + return FALSE + + var/obj/item/organ/existing_organ = user.get_organ_slot(organ.slot) + if (existing_organ) + user.balloon_alert(user, "your [existing_organ] [existing_organ.p_are()] in the way!") + return FALSE + + if (!organ.pre_surgical_insertion(user, user, organ.zone)) + user.balloon_alert(user, "failed!") + return FALSE + if (!organ.useable) + user.balloon_alert(user, "unusable!") + return FALSE + return TRUE diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 7741eeca095..4e69d701355 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -18,6 +18,7 @@ GLOBAL_ALIST_INIT(huds, alist( DATA_HUD_AI_DETECT = new /datum/atom_hud/ai_detector(), DATA_HUD_FAN = new /datum/atom_hud/data/human/fan_hud(), DATA_HUD_MALF_APC = new /datum/atom_hud/data/malf_apc(), + DATA_HUD_BLOOD = new /datum/atom_hud/data/human/blood(), )) /// Assoc list of traits to the huds they give. @@ -31,6 +32,7 @@ GLOBAL_LIST_INIT(trait_to_hud, list( TRAIT_MIME_FAN = DATA_HUD_FAN, TRAIT_SECURITY_HUD = DATA_HUD_SECURITY_ADVANCED, TRAIT_SECURITY_HUD_ID_ONLY = DATA_HUD_SECURITY_BASIC, + TRAIT_BLOOD_HUD = DATA_HUD_BLOOD, )) /// Assoc list of traits that block other traits' huds to list of hud (traits) that they block diff --git a/code/datums/mood.dm b/code/datums/mood.dm index 1fc07130b13..6ee75391517 100644 --- a/code/datums/mood.dm +++ b/code/datums/mood.dm @@ -271,16 +271,17 @@ mood = 0 shown_mood = 0 - for(var/category in mood_events) - var/datum/mood_event/the_event = mood_events[category] - var/event_mood = the_event.mood_change - event_mood *= max((event_mood > 0) ? positive_mood_modifier : negative_mood_modifier, 0) - mood += event_mood - if (!the_event.hidden) - shown_mood += event_mood + if (!HAS_TRAIT(mob_parent, TRAIT_APATHETIC)) + for(var/category in mood_events) + var/datum/mood_event/the_event = mood_events[category] + var/event_mood = the_event.mood_change + event_mood *= max((event_mood > 0) ? positive_mood_modifier : negative_mood_modifier, 0) + mood += event_mood + if (!the_event.hidden) + shown_mood += event_mood - mood *= max(mood_modifier, 0) - shown_mood *= max(mood_modifier, 0) + mood *= max(mood_modifier, 0) + shown_mood *= max(mood_modifier, 0) switch(mood) if (-INFINITY to MOOD_SAD4) @@ -423,41 +424,44 @@ if(81 to INFINITY) msg += "[span_boldwarning("I'm completely wasted.")]
" - msg += span_notice("My current sanity: ") //Long term - switch(sanity) - if(SANITY_GREAT to INFINITY) - msg += "[span_boldnicegreen("My mind feels like a temple!")]
" - if(SANITY_NEUTRAL to SANITY_GREAT) - msg += "[span_nicegreen("I have been feeling great lately!")]
" - if(SANITY_DISTURBED to SANITY_NEUTRAL) - msg += "[span_nicegreen("I have felt quite decent lately.")]
" - if(SANITY_UNSTABLE to SANITY_DISTURBED) - msg += "[span_warning("I'm feeling a little bit unhinged...")]
" - if(SANITY_CRAZY to SANITY_UNSTABLE) - msg += "[span_warning("I'm freaking out!!")]
" - if(SANITY_INSANE to SANITY_CRAZY) - msg += "[span_boldwarning("AHAHAHAHAHAHAHAHAHAH!!")]
" + if (HAS_TRAIT(mob_parent, TRAIT_APATHETIC)) + msg += span_notice("My mood: [span_grey("I don't feel anything.")]
") + else + msg += span_notice("My current sanity: ") //Long term + switch(sanity) + if(SANITY_GREAT to INFINITY) + msg += "[span_boldnicegreen("My mind feels like a temple!")]
" + if(SANITY_NEUTRAL to SANITY_GREAT) + msg += "[span_nicegreen("I have been feeling great lately!")]
" + if(SANITY_DISTURBED to SANITY_NEUTRAL) + msg += "[span_nicegreen("I have felt quite decent lately.")]
" + if(SANITY_UNSTABLE to SANITY_DISTURBED) + msg += "[span_warning("I'm feeling a little bit unhinged...")]
" + if(SANITY_CRAZY to SANITY_UNSTABLE) + msg += "[span_warning("I'm freaking out!!")]
" + if(SANITY_INSANE to SANITY_CRAZY) + msg += "[span_boldwarning("AHAHAHAHAHAHAHAHAHAH!!")]
" - msg += span_notice("My current mood: ") //Short term - switch(mood_level) - if(MOOD_LEVEL_SAD4) - msg += "[span_boldwarning("I wish I was dead!")]
" - if(MOOD_LEVEL_SAD3) - msg += "[span_boldwarning("I feel terrible...")]
" - if(MOOD_LEVEL_SAD2) - msg += "[span_boldwarning("I feel very upset.")]
" - if(MOOD_LEVEL_SAD1) - msg += "[span_warning("I'm a bit sad.")]
" - if(MOOD_LEVEL_NEUTRAL) - msg += "[span_grey("I'm alright.")]
" - if(MOOD_LEVEL_HAPPY1) - msg += "[span_nicegreen("I feel pretty okay.")]
" - if(MOOD_LEVEL_HAPPY2) - msg += "[span_boldnicegreen("I feel pretty good.")]
" - if(MOOD_LEVEL_HAPPY3) - msg += "[span_boldnicegreen("I feel amazing!")]
" - if(MOOD_LEVEL_HAPPY4) - msg += "[span_boldnicegreen("I love life!")]
" + msg += span_notice("My current mood: ") //Short term + switch(mood_level) + if(MOOD_LEVEL_SAD4) + msg += "[span_boldwarning("I wish I was dead!")]
" + if(MOOD_LEVEL_SAD3) + msg += "[span_boldwarning("I feel terrible...")]
" + if(MOOD_LEVEL_SAD2) + msg += "[span_boldwarning("I feel very upset.")]
" + if(MOOD_LEVEL_SAD1) + msg += "[span_warning("I'm a bit sad.")]
" + if(MOOD_LEVEL_NEUTRAL) + msg += "[span_grey("I'm alright.")]
" + if(MOOD_LEVEL_HAPPY1) + msg += "[span_nicegreen("I feel pretty okay.")]
" + if(MOOD_LEVEL_HAPPY2) + msg += "[span_boldnicegreen("I feel pretty good.")]
" + if(MOOD_LEVEL_HAPPY3) + msg += "[span_boldnicegreen("I feel amazing!")]
" + if(MOOD_LEVEL_HAPPY4) + msg += "[span_boldnicegreen("I love life!")]
" var/list/additional_lines = list() SEND_SIGNAL(user, COMSIG_CARBON_MOOD_CHECK, additional_lines) @@ -574,6 +578,9 @@ if (amount > maximum) amount = min(amount, maximum) + if (HAS_TRAIT(mob_parent, TRAIT_APATHETIC)) + amount = SANITY_NEUTRAL + if(amount == sanity) //Prevents stuff from flicking around. return diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index 8bce84f73b4..fa358243f45 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -638,3 +638,8 @@ mood_change = 0 description = "I just got coated in blood. Fascinating!" return + +/datum/mood_event/jabbed_with_tester + description = "Man, getting jabbed with that thing really sucked." + mood_change = -4 + timeout = 5 MINUTES diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index cb4aa022224..b8a4e90ecc5 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -268,6 +268,11 @@ mood_change = 6 timeout = 5 MINUTES +/datum/mood_event/blood_worm + description = "KILL, CONSUME, MULTIPLY, CONQUER." + mood_change = 999 // Makes it bold green and gives the special obj a higher priority. Blood worm hosts are apathetic, so this is otherwise meaningless. + hidden = TRUE + /datum/mood_event/family_heirloom description = "My family heirloom is safe with me." mood_change = 1 diff --git a/code/datums/status_effects/_status_effect.dm b/code/datums/status_effects/_status_effect.dm index 4a569858655..8b4de47d9ea 100644 --- a/code/datums/status_effects/_status_effect.dm +++ b/code/datums/status_effects/_status_effect.dm @@ -100,7 +100,7 @@ /// Updates the status effect alert's maptext (if possible) /datum/status_effect/proc/update_shown_duration() - PRIVATE_PROC(TRUE) + PROTECTED_PROC(TRUE) if(!linked_alert || !show_duration) return diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 8611d41305c..c5836e75016 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -68,6 +68,9 @@ /datum/atom_hud/data/malf_apc hud_icons = list(MALF_APC_HUD) +/datum/atom_hud/data/human/blood + hud_icons = list(BLOOD_HUD) + /* MED/SEC/DIAG HUD HOOKS */ /* @@ -150,6 +153,21 @@ Medical HUD! Basic mode needs suit sensors on. else return "health-100" +/// A helper for getting the appropriate icon state for the blood hud. +/proc/round_blood_for_hud(mob/living/bloodbag) + var/blood_level = (bloodbag.get_blood_volume(apply_modifiers = TRUE) / BLOOD_VOLUME_NORMAL) * 100 + switch(blood_level) + if(87.5 to INFINITY) + return "hudblood100" + if(62.5 to 87.5) + return "hudblood75" + if(37.5 to 62.5) + return "hudblood50" + if(12.5 to 37.5) + return "hudblood25" + if(-INFINITY to 12.5) + return "hudblood0" + //HOOKS //called when a living mob changes health @@ -496,6 +514,14 @@ Diagnostic HUDs! SET_PLANE(holder,ABOVE_LIGHTING_PLANE,src) set_hud_image_active(MALF_APC_HUD) +/*~~~~~~~~~~~~ + BLOOD FOR THE BLOOD GOD!!! +~~~~~~~~~~~~~*/ + +/mob/living/proc/blood_hud_set_status() + if (CAN_HAVE_BLOOD(src)) + set_hud_image_state(BLOOD_HUD, round_blood_for_hud(src)) + #define CACHED_WIDTH_INDEX "width" #define CACHED_HEIGHT_INDEX "height" diff --git a/code/game/objects/items/food/meatslab.dm b/code/game/objects/items/food/meatslab.dm index 55fa78c3295..1a7d14df2af 100644 --- a/code/game/objects/items/food/meatslab.dm +++ b/code/game/objects/items/food/meatslab.dm @@ -506,6 +506,22 @@ ) // Marble starting_reagent_purity = 1 +/obj/item/food/meat/slab/blood_worm + name = "blood worm meat" + desc = "Who thought eating this would be a good idea? At least it's juicy..." + foodtypes = RAW | MEAT | BUGS | GORE + food_reagents = list( + /datum/reagent/blood = 30, // What did you expect? + /datum/reagent/consumable/nutriment/protein = 5, // Rich in protein. + /datum/reagent/consumable/nutriment/vitamin = 3, // Rich in vitamins. + /datum/reagent/consumable/nutriment/fat = 2, // Rather lean. + ) + bite_consumption = 10 + starting_reagent_purity = 1 + +/obj/item/food/meat/slab/blood_worm/make_grillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/blood_worm, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? + ////////////////////////////////////// MEAT STEAKS /////////////////////////////////////////////////////////// /obj/item/food/meat/steak name = "steak" @@ -619,6 +635,12 @@ tastes = list("pig" = 1) foodtypes = MEAT +/obj/item/food/meat/steak/blood_worm + name = "blood worm steak" + desc = "Now that's a bloody good steak!" + tastes = list("meat" = 1) + foodtypes = MEAT | BUGS + //////////////////////////////// MEAT CUTLETS /////////////////////////////////////////////////////// //Raw cutlets diff --git a/code/game/sound/sound_keys/sound_keys.dm b/code/game/sound/sound_keys/sound_keys.dm index 52d97f4f8f6..d65615e707b 100644 --- a/code/game/sound/sound_keys/sound_keys.dm +++ b/code/game/sound/sound_keys/sound_keys.dm @@ -1136,3 +1136,10 @@ 'sound/items/hard_hat/hard_hat_equip2.ogg', 'sound/items/hard_hat/hard_hat_equip3.ogg', ) + +/datum/sound_effect/alien_spit_acid + key = SFX_ALIEN_SPIT_ACID + file_paths = list( + 'sound/effects/alien/alien_spitacid.ogg', + 'sound/effects/alien/alien_spitacid2.ogg' + ) diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 1ba92e66292..4e6ade226cd 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -194,6 +194,10 @@ GLOBAL_LIST_EMPTY(antagonists) if(old_body) info_button.Remove(old_body) info_button.Grant(new_body) + if (antag_moodlet) + if (old_body) + clear_antag_moodies(old_body) + give_antag_moodies(new_body) apply_innate_effects(new_body) if(new_body.stat != DEAD) new_body.add_to_current_living_antags() @@ -364,18 +368,20 @@ GLOBAL_LIST_EMPTY(antagonists) /** * Proc that assigns this antagonist's ascribed moodlet to the player. */ -/datum/antagonist/proc/give_antag_moodies() +/datum/antagonist/proc/give_antag_moodies(mob/living/mob_override) if(!antag_moodlet) return - owner.current.add_mood_event("antag_moodlet_[type]", antag_moodlet) + var/mob/living/target = mob_override || owner.current + target.add_mood_event("antag_moodlet_[type]", antag_moodlet) /** * Proc that removes this antagonist's ascribed moodlet from the player. */ -/datum/antagonist/proc/clear_antag_moodies() +/datum/antagonist/proc/clear_antag_moodies(mob/living/mob_override) if(!antag_moodlet) return - owner.current.clear_mood_event("antag_moodlet_[type]") + var/mob/living/target = mob_override || owner.current + target.clear_mood_event("antag_moodlet_[type]") /** * Proc that will return the team this antagonist belongs to, when called. Helpful with antagonists that may belong to multiple potential teams in a single round. diff --git a/code/modules/antagonists/blood_worm/actions/_base_action.dm b/code/modules/antagonists/blood_worm/actions/_base_action.dm new file mode 100644 index 00000000000..0dd381b6d79 --- /dev/null +++ b/code/modules/antagonists/blood_worm/actions/_base_action.dm @@ -0,0 +1,21 @@ +/datum/action/cooldown/mob_cooldown/blood_worm + abstract_type = /datum/action/cooldown/mob_cooldown/blood_worm + + background_icon = 'icons/mob/actions/backgrounds.dmi' + background_icon_state = "bg_demon" + + button_icon = 'icons/mob/actions/actions_blood_worm.dmi' + + overlay_icon = 'icons/mob/actions/backgrounds.dmi' + overlay_icon_state = "bg_demon_border" + active_overlay_icon_state = "bg_spell_border_active_red" + + ranged_mousepointer = 'icons/effects/mouse_pointers/weapon_pointer.dmi' + +/datum/action/cooldown/mob_cooldown/blood_worm/set_click_ability(mob/on_who) + . = ..() + build_all_button_icons(UPDATE_BUTTON_OVERLAY) + +/datum/action/cooldown/mob_cooldown/blood_worm/unset_click_ability(mob/on_who, refund_cooldown) + . = ..() + build_all_button_icons(UPDATE_BUTTON_OVERLAY) diff --git a/code/modules/antagonists/blood_worm/actions/cocoon.dm b/code/modules/antagonists/blood_worm/actions/cocoon.dm new file mode 100644 index 00000000000..2fa5facf264 --- /dev/null +++ b/code/modules/antagonists/blood_worm/actions/cocoon.dm @@ -0,0 +1,405 @@ +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon + cooldown_time = 30 SECONDS + shared_cooldown = NONE + + click_to_activate = FALSE + + var/cocoon_type = null + var/obj/structure/blood_worm_cocoon/cocoon = null + + var/new_worm_type = null + + var/total_blood_required = 0 + + var/timer_id = null + + var/cocoon_time = 30 SECONDS + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/Grant(mob/granted_to) + . = ..() + if (!owner) + return + + RegisterSignal(owner, COMSIG_MOB_STATCHANGE, PROC_REF(on_worm_stat_changed), override = TRUE) + RegisterSignal(owner, COMSIG_BLOOD_WORM_CONSUMED_BLOOD, PROC_REF(update_status_on_signal)) + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/Remove(mob/removed_from) + if (!QDELETED(cocoon)) + cancel() + UnregisterSignal(owner, COMSIG_BLOOD_WORM_CONSUMED_BLOOD) + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/IsAvailable(feedback) + if (!istype(owner, /mob/living/basic/blood_worm)) + return FALSE + if (!ispath(cocoon_type, /obj/structure/blood_worm_cocoon)) + return FALSE + if (!ispath(new_worm_type, /mob/living/basic/blood_worm)) + return FALSE + if (HAS_TRAIT(owner, TRAIT_SHAPESHIFTED)) + if (feedback) + owner.balloon_alert(owner, "not while shapeshifted!") + return FALSE + if (!isturf(owner.loc)) + if (feedback) + owner.balloon_alert(owner, "get on the ground!") + return FALSE + if (!check_consumed_blood(feedback)) + return FALSE + if (!QDELETED(cocoon)) + return FALSE + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/Activate(atom/target) + owner.visible_message( + message = span_danger("\The [owner] start[owner.p_s()] growing a cocoon!"), + self_message = span_notice("You start growing a cocoon."), + blind_message = span_hear("You start hearing fleshy knitting!") + ) + + if (!do_after(owner, 5 SECONDS, extra_checks = CALLBACK(src, PROC_REF(check_consumed_blood)))) + return FALSE + + owner.visible_message( + message = span_danger("\The [owner] enter[owner.p_s()] a cocoon!"), + self_message = span_green("You enter your freshly grown cocoon!"), + blind_message = span_hear("You stop hearing fleshy knitting!") + ) + + cocoon = new cocoon_type(get_turf(owner)) + + playsound(cocoon, 'sound/effects/blob/blobattack.ogg', vol = 60, vary = TRUE, ignore_walls = FALSE) + + owner.forceMove(cocoon) + + owner.add_traits(list(TRAIT_INCAPACITATED, TRAIT_IMMOBILIZED, TRAIT_MUTE, TRAIT_EMOTEMUTE), REF(src)) + + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(on_worm_moved)) + RegisterSignal(cocoon, COMSIG_QDELETING, PROC_REF(on_cocoon_qdel)) + + INVOKE_ASYNC(src, PROC_REF(handle_timer)) + + return TRUE + +/// Override this if you want special timer behaviors like polling ghosts for hatchling candidates. +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/proc/handle_timer() + timer_id = addtimer(CALLBACK(src, PROC_REF(finalize)), cocoon_time, TIMER_UNIQUE | TIMER_STOPPABLE | TIMER_DELETE_ME) + +/// Called upon successfully finishing the incubation process. +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/proc/finalize() + var/mob/living/basic/blood_worm/new_worm = new new_worm_type(get_turf(cocoon)) + + transfer(owner, new_worm) + + for (var/mob/living/unfortunate_observer in view(3, cocoon)) + if (new_worm.faction_check_atom(unfortunate_observer)) + continue // Don't harm our siblings. + if (unfortunate_observer.stat == DEAD) + continue // Harms potential hosts. + + unfortunate_observer.visible_message( + message = span_danger("\The [unfortunate_observer] is splashed with a wave of corrosive blood!"), + self_message = span_userdanger("You're splashed with a wave of corrosive blood! YEOWCH!"), + blind_message = span_hear("You hear sizzling!") + ) + + unfortunate_observer.Knockdown(3 SECONDS) + unfortunate_observer.adjust_fire_loss(rand(30, 50)) + + var/range = 4 - get_dist(cocoon, unfortunate_observer) + unfortunate_observer.throw_at(get_ranged_target_turf_direct(cocoon, unfortunate_observer, range), range = range, speed = 2) + + for (var/turf/turf in view(3, cocoon)) + if (prob(100 - get_dist(cocoon, turf) * 20)) + new /obj/effect/decal/cleanable/blood(turf) + + playsound(cocoon, 'sound/effects/splat.ogg', vol = 100, vary = TRUE, ignore_walls = FALSE) + + shared_unregister_cocoon() + + qdel(owner) + +/// Transfers the owning blood worm from one worm mob to another. +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/proc/transfer(mob/living/basic/blood_worm/old_worm, mob/living/basic/blood_worm/new_worm) + old_worm.mind?.transfer_to(new_worm) + + new_worm.id_number = old_worm.id_number + new_worm.update_name() + + // Safety check: If someone gets turned into a blood worm, they need to keep their old mind name. + if (new_worm.mind.name == old_worm.real_name) + new_worm.mind.name = new_worm.real_name + + new_worm.consumed_normal_blood = old_worm.consumed_normal_blood + new_worm.consumed_synth_blood = old_worm.consumed_synth_blood + + new_worm.spit_action?.set_key(old_worm.spit_action?.full_key) + new_worm.leech_action?.set_key(old_worm.leech_action?.full_key) + new_worm.invade_action?.set_key(old_worm.invade_action?.full_key) + new_worm.cocoon_action?.set_key(old_worm.cocoon_action?.full_key) + + new_worm.transfuse_action?.set_key(old_worm.transfuse_action?.full_key) + new_worm.eject_action?.set_key(old_worm.eject_action?.full_key) + new_worm.revive_action?.set_key(old_worm.revive_action?.full_key) + + new_worm.cocoon_action?.StartCooldown() + +/// Cancels the incubation process, destroying the cocoon early. +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/proc/cancel() + cocoon.visible_message( + message = span_danger("\The [cocoon] fall[cocoon.p_s()] apart, expelling \the [owner] within."), + blind_message = span_danger("You hear a splat!"), + ignored_mobs = owner + ) + + if (!QDELETED(owner) && owner.stat != DEAD) + to_chat(owner, span_userdanger("Your cocoon falls apart!")) + + playsound(cocoon, 'sound/effects/splat.ogg', vol = 60, vary = TRUE, ignore_walls = FALSE) + + // A little less punishing since you need a do_after to set it up again after anyway, and because this can occur due to adults canceling Reproduce for meta reasons outside of their control. + StartCooldown(10 SECONDS) + + shared_unregister_cocoon() + +/// Unregisters the cocoon. Used by both [proc/cancel] and [proc/finalize]. +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/proc/shared_unregister_cocoon() + UnregisterSignal(owner, COMSIG_MOVABLE_MOVED) + UnregisterSignal(cocoon, COMSIG_QDELETING) + + owner.remove_traits(list(TRAIT_INCAPACITATED, TRAIT_IMMOBILIZED, TRAIT_MUTE, TRAIT_EMOTEMUTE), REF(src)) + + if (!QDELETED(owner)) + owner.forceMove(cocoon.drop_location()) + + if (!QDELETED(cocoon)) + qdel(cocoon) + + cocoon = null + + if (timer_id) + deltimer(timer_id) + timer_id = null + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/proc/on_worm_stat_changed(datum/source, new_stat, old_stat) + SIGNAL_HANDLER + if (cocoon && old_stat != DEAD && new_stat == DEAD) // Alive -> Dead + cancel() + update_status_on_signal(source, new_stat, old_stat) + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/proc/on_worm_moved(datum/source, atom/old_loc, dir, forced, list/old_locs) + SIGNAL_HANDLER + cancel() + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/proc/on_cocoon_qdel(datum/source) + SIGNAL_HANDLER + cancel() + +/// Checks if the blood worm has consumed enough blood to use this action. +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/proc/check_consumed_blood(feedback = FALSE) + var/mob/living/basic/blood_worm/worm = owner + var/total_consumed_blood = worm.get_consumed_blood() + + if (total_consumed_blood < total_blood_required) + if (feedback) + worm.balloon_alert(worm, "only at [FLOOR(total_consumed_blood / total_blood_required * 100, 1)]% of required growth!") + return FALSE + return TRUE + +/obj/structure/blood_worm_cocoon + icon = 'icons/mob/nonhuman-player/blood_worm_32x32.dmi' + + faction = list(FACTION_BLOOD_WORM) + + density = TRUE + anchored = TRUE + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/hatchling + name = "Mature" + desc = "Enter incubation in a cocoon, emerging as a juvenile blood worm." + + button_icon_state = "mature_hatchling" + + cocoon_type = /obj/structure/blood_worm_cocoon/hatchling + new_worm_type = /mob/living/basic/blood_worm/juvenile + + total_blood_required = 500 + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/hatchling/Activate(atom/target) + if (tgui_alert(owner, "Are you sure? After [cocoon_time / 10] seconds, you will become a juvenile, gaining stat increases and the ability to spit corrosive blood, but losing the ability to ventcrawl.", "Mature", list("Yes", "No"), 30 SECONDS) != "Yes") + return + if (!IsAvailable(feedback = TRUE)) + return + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/hatchling/transfer(mob/living/basic/blood_worm/old_worm, mob/living/basic/blood_worm/new_worm) + . = ..() + + log_blood_worm("[key_name(new_worm)] finished maturing into a juvenile blood worm") + +/obj/structure/blood_worm_cocoon/hatchling + name = "small blood cocoon" + desc = "The incubation cocoon of a hatchling blood worm. Its surface is slowly shifting." + + icon_state = "cocoon-small" + + max_integrity = 100 + damage_deflection = 10 + +/obj/structure/blood_worm_cocoon/hatchling/examine(mob/user) + return ..() + span_warning("It can be broken to prevent the blood worm from maturing.") + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/juvenile + name = "Mature" + desc = "Enter incubation in a cocoon, emerging as an adult blood worm." + + button_icon_state = "mature_juvenile" + + cocoon_type = /obj/structure/blood_worm_cocoon/juvenile + new_worm_type = /mob/living/basic/blood_worm/adult + + total_blood_required = 1500 + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/juvenile/Activate(atom/target) + if (tgui_alert(owner, "Are you sure? After [cocoon_time / 10] seconds, you will become an adult, gaining stat increases and the ability to spit bursts of corrosive blood by right-clicking with Spit Blood while outside of a host.", "Mature", list("Yes", "No"), 30 SECONDS) != "Yes") + return + if (!IsAvailable(feedback = TRUE)) + return + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/juvenile/transfer(mob/living/basic/blood_worm/old_worm, mob/living/basic/blood_worm/new_worm) + . = ..() + + log_blood_worm("[key_name(new_worm)] finished maturing into an adult blood worm") + +/obj/structure/blood_worm_cocoon/juvenile + name = "medium blood cocoon" + desc = "The incubation cocoon of a juvenile blood worm. Its surface is slowly shifting." + + icon_state = "cocoon-medium" + + max_integrity = 150 + damage_deflection = 15 + +/obj/structure/blood_worm_cocoon/juvenile/examine(mob/user) + return ..() + span_warning("It can be broken to prevent the blood worm from maturing, but it looks rather tough.") + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/adult + name = "Reproduce" + desc = "Enter incubation in a cocoon, creating 4 new hatchlings including yourself." + + button_icon_state = "reproduce" + + cocoon_type = /obj/structure/blood_worm_cocoon/adult + new_worm_type = /mob/living/basic/blood_worm/hatchling + + total_blood_required = 0 + + var/num_hatchlings = 3 // in addition to the original + + var/list/candidates = null + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/adult/Grant(mob/granted_to) + . = ..() + if (!owner) + return + + RegisterSignal(SSdcs, COMSIG_GLOB_MOB_LOGGED_IN, PROC_REF(update_status_on_signal)) + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/adult/Remove(mob/removed_from) + UnregisterSignal(SSdcs, COMSIG_GLOB_MOB_LOGGED_IN, PROC_REF(update_status_on_signal)) + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/adult/Activate(atom/target) + if (tgui_alert(owner, "Are you sure? After [cocoon_time / 10] seconds, you will create [num_hatchlings + 1] new hatchlings, including yourself.", "Reproduce", list("Yes", "No"), 30 SECONDS) != "Yes") + return + if (!IsAvailable(feedback = TRUE)) + return + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/adult/handle_timer() + cocoon.balloon_alert(owner, "polling ghosts") + + candidates = SSpolling.poll_ghost_candidates( + question = "Would you like to become a newly hatched blood worm? (x[num_hatchlings])", + role = ROLE_BLOOD_WORM_INFESTATION, + check_jobban = ROLE_BLOOD_WORM_INFESTATION, + poll_time = cocoon_time, + ignore_category = POLL_IGNORE_BLOOD_WORM, + alert_pic = cocoon_type, // The hatchling icon is too small, and a well-cropped juvenile icon is already used for the main spawn event. + jump_target = cocoon, + role_name_text = "blood worm", + amount_to_pick = num_hatchlings + ) + + var/num_candidates = length(candidates) + + if (QDELETED(cocoon)) + send_apology_to_candidates() // If this is reached, then [proc/cancel], which normally handles apologizing to the candidates, has already been called before the poll was finished. + return + if (num_candidates <= 0) + cancel() + owner.balloon_alert(owner, "no candidates!") // We can't host this balloon alert on a deleted cocoon. + return + if (num_candidates < num_hatchlings && tgui_alert(owner, "There are only [num_candidates]/[num_hatchlings] candidates for hatchlings, want to proceed anyway?", "Ghost Shortage", list("Yes", "No"), 10 SECONDS) != "Yes") + cancel() + return + + finalize() // The poll is the timer. + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/adult/finalize() + for (var/mob/candidate as anything in candidates) + if (isnull(candidate) || isnull(candidate.key) || isnull(candidate.client)) + continue + + // The crew now has 3 new problems to deal with. + var/mob/living/basic/blood_worm/hatchling/new_hatchling = new(cocoon.drop_location()) + var/datum/mind/fresh_mind = new(candidate.key) + + fresh_mind.transfer_to(new_hatchling, force_key_move = TRUE) + fresh_mind.add_antag_datum(/datum/antagonist/blood_worm/infestation) + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/adult/transfer(mob/living/basic/blood_worm/old_worm, mob/living/basic/blood_worm/new_worm) + . = ..() + + new_worm.reset_consumed_blood() + + SEND_SIGNAL(new_worm, COMSIG_BLOOD_WORM_REPRODUCED) + + log_blood_worm("[key_name(new_worm)] finished reproducing, resetting their growth back into a hatchling blood worm") + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/adult/cancel() + send_apology_to_candidates() + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/adult/shared_unregister_cocoon() + candidates = null + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/adult/proc/send_apology_to_candidates() + for (var/mob/candidate as anything in candidates) + if (isnull(candidate) || isnull(candidate.key) || isnull(candidate.client)) + continue + + // Sucks, but that's just how it is sometimes. + to_chat(candidate, span_warning("The blood worm cocoon you rolled a hatchling spot for was canceled. Sorry.")) + +/obj/structure/blood_worm_cocoon/adult + name = "large blood cocoon" + desc = "The incubation cocoon of an adult blood worm. You can see many faint shadows within." + + icon_state = "cocoon-large" + + max_integrity = 200 + damage_deflection = 20 + +/obj/structure/blood_worm_cocoon/adult/examine(mob/user) + return ..() + span_warning("It can be broken to prevent the blood worm from reproducing, but it looks extremely tough.") diff --git a/code/modules/antagonists/blood_worm/actions/inject_blood.dm b/code/modules/antagonists/blood_worm/actions/inject_blood.dm new file mode 100644 index 00000000000..57f12a05ace --- /dev/null +++ b/code/modules/antagonists/blood_worm/actions/inject_blood.dm @@ -0,0 +1,243 @@ +#define REQUIRED_ACCUMULATION(wound) (1 + (wound.severity - 1) * 0.3) + +/datum/action/cooldown/mob_cooldown/blood_worm/inject + name = "Inject Blood" + desc = "Inject your blood into the damaged tissues of your host, healing them in exchange for your own health." + + button_icon_state = "inject_blood" + + cooldown_time = 30 SECONDS + shared_cooldown = NONE + + click_to_activate = FALSE + + check_flags = NONE + + var/health_cost = 0 + var/minimum_health = 10 + + var/status_effect_type = null + +/datum/action/cooldown/mob_cooldown/blood_worm/inject/New(Target, original) + . = ..() + RegisterSignal(target, COMSIG_LIVING_HEALTH_UPDATE, PROC_REF(update_status_on_signal)) + +/datum/action/cooldown/mob_cooldown/blood_worm/inject/Destroy() + UnregisterSignal(target, COMSIG_LIVING_HEALTH_UPDATE) + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/inject/IsAvailable(feedback) + if (!ishuman(owner) && !istype(owner, /mob/living/basic/blood_worm)) + return FALSE + + var/mob/living/basic/blood_worm/worm = target + + if (worm.get_worm_health() - health_cost < minimum_health) + if (feedback) + owner.balloon_alert(owner, "out of blood!") + return FALSE + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/inject/Activate(atom/target) + var/mob/living/basic/blood_worm/worm = src.target + var/mob/living/carbon/human/host = worm.host + + host.apply_status_effect(status_effect_type, worm) + + host.visible_message( + message = span_danger("[host]'s wounds start healing unnaturally quickly!"), + ignored_mobs = owner + ) + + to_chat(owner, span_notice("You inject blood into the damaged tissues of your host.")) + + worm.adjust_worm_health(-health_cost) + + return ..() + +/datum/status_effect/blood_worm_transfuse + id = "blood_worm_transfuse" + duration = 20 SECONDS + show_duration = TRUE + alert_type = /atom/movable/screen/alert/status_effect/blood_worm_transfuse + status_type = STATUS_EFFECT_REPLACE + processing_speed = STATUS_EFFECT_PRIORITY + + var/damage_regen_rate = 0 + + var/wound_regen_rate = 0 + var/wound_regen_accumulation = 0 + + var/organ_regen_rate = 0 + + var/trauma_regen_rate = 0 + var/trauma_regen_accumulation = 0 + + var/atom/movable/screen/alert/status_effect/worm_alert = null + var/mob/living/basic/blood_worm/worm = null + + var/last_tick_time = 0 + +/datum/status_effect/blood_worm_transfuse/on_creation(mob/living/new_owner, mob/living/basic/blood_worm/new_worm) + . = ..() + if (!.) + return + + attach_to_worm(new_worm) + last_tick_time = world.time + +/datum/status_effect/blood_worm_transfuse/Destroy() + detach_from_worm() + return ..() + +/datum/status_effect/blood_worm_transfuse/tick(seconds_between_ticks) + var/need_mob_update = FALSE + + need_mob_update |= heal_damage(seconds_between_ticks) + need_mob_update |= heal_wounds(seconds_between_ticks) + need_mob_update |= heal_organs(seconds_between_ticks) + heal_traumas(seconds_between_ticks) + + if (need_mob_update) + owner.updatehealth() + + last_tick_time = world.time + +/datum/status_effect/blood_worm_transfuse/update_shown_duration() + . = ..() + + if (worm_alert && linked_alert) + worm_alert.maptext = linked_alert.maptext + +/datum/status_effect/blood_worm_transfuse/proc/heal_damage(seconds_between_ticks) + var/healing_left = damage_regen_rate * seconds_between_ticks + + if (owner.get_brute_loss() > 0 && healing_left > 0) + var/amount_healed = max(0, owner.adjust_brute_loss(-healing_left, forced = TRUE, updating_health = FALSE)) + healing_left -= amount_healed + . |= amount_healed + + if (owner.get_fire_loss() > 0 && healing_left > 0) + var/amount_healed = max(0, owner.adjust_fire_loss(-healing_left, forced = TRUE, updating_health = FALSE)) + healing_left -= amount_healed + . |= amount_healed + + if (owner.get_tox_loss() > 0 && healing_left > 0) + var/amount_healed = max(0, owner.adjust_tox_loss(-healing_left, forced = TRUE, updating_health = FALSE)) + healing_left -= amount_healed + . |= amount_healed + +// I tried to set this up reasonably with SPT_PROB(), but it was too inconsistent, especially for wounds with high severity. +// So I switched to an accumulation system instead. This way, the blood worm gets a consistent return on their health investment. +/datum/status_effect/blood_worm_transfuse/proc/heal_wounds(seconds_between_ticks) + var/mob/living/carbon/human/host = owner + + if (length(host.all_wounds)) + wound_regen_accumulation += wound_regen_rate * seconds_between_ticks + else + wound_regen_accumulation = 0 + return + + while (wound_regen_accumulation >= 1 && length(host.all_wounds)) + var/list/candidates = list() + + for (var/datum/wound/wound in host.all_wounds) + if (wound_regen_accumulation >= REQUIRED_ACCUMULATION(wound)) + candidates += wound + + if (!length(candidates)) + return + + var/datum/wound/wound_to_heal = pick(candidates) + wound_regen_accumulation = max(0, wound_regen_accumulation - REQUIRED_ACCUMULATION(wound_to_heal)) + wound_to_heal.remove_wound() + . = TRUE + +/datum/status_effect/blood_worm_transfuse/proc/heal_organs(seconds_between_ticks) + var/mob/living/carbon/human/host = owner + + for (var/obj/item/organ/organ in host.organs) + // I thought about making this require ORGAN_ORGANIC, but changelings can heal robotic organs, so why not blood worms? + // In addition, none of the other blood worm code gives a shit about targets being organic, so this is more consistent. + . |= organ.apply_organ_damage(-organ_regen_rate * seconds_between_ticks) + +/datum/status_effect/blood_worm_transfuse/proc/heal_traumas(seconds_between_ticks) + var/mob/living/carbon/human/host = owner + + if (host.has_trauma_type(resilience = TRAUMA_RESILIENCE_SURGERY)) + trauma_regen_accumulation += trauma_regen_rate * seconds_between_ticks + else + trauma_regen_accumulation = 0 + return + + while (trauma_regen_accumulation >= 1 && host.has_trauma_type(resilience = TRAUMA_RESILIENCE_SURGERY)) + host.cure_trauma_type(resilience = TRAUMA_RESILIENCE_SURGERY) + trauma_regen_accumulation = max(0, trauma_regen_accumulation - 1) + +/datum/status_effect/blood_worm_transfuse/proc/attach_to_worm(mob/living/basic/blood_worm/new_worm) + worm = new_worm + + if (!worm || !alert_type) + return + + RegisterSignal(worm, COMSIG_QDELETING, PROC_REF(detach_from_worm)) + + worm_alert = worm.throw_alert(id, alert_type) + worm_alert.attached_effect = src + update_shown_duration() + +/datum/status_effect/blood_worm_transfuse/proc/detach_from_worm(datum/source, force) + SIGNAL_HANDLER + + UnregisterSignal(worm, COMSIG_QDELETING) + + worm_alert = null + worm.clear_alert(id) + + worm = null + +/atom/movable/screen/alert/status_effect/blood_worm_transfuse + name = "Blood Injection" + desc = "The injected blood is rapidly healing your host." + icon = 'icons/mob/actions/actions_blood_worm.dmi' + icon_state = "inject_blood" + +/atom/movable/screen/alert/status_effect/blood_worm_transfuse/Initialize(mapload, datum/hud/hud_owner) + . = ..() + underlays += mutable_appearance('icons/mob/actions/backgrounds.dmi', "bg_demon", layer = layer, offset_spokesman = src, plane = plane) + +/datum/action/cooldown/mob_cooldown/blood_worm/inject/hatchling + health_cost = 20 + cooldown_time = 30 SECONDS // Effective host healing rate is 4 hp/s, Effective worm consumption rate is 0.667 hp/s, Worm max health is 2.5x less than host max health, Worm heals at 0.3 hp/s + status_effect_type = /datum/status_effect/blood_worm_transfuse/hatchling + +/datum/status_effect/blood_worm_transfuse/hatchling + damage_regen_rate = 6 // 20 s * 6 hp/s = 120 hp, note that major host healing is expected as the worm itself is very vulnerable to bleeding. + wound_regen_rate = 1 / 6 // One wound every 6 seconds, +30% per wound severity level. + organ_regen_rate = 2.5 // 20 s * 2.5 hp/s = 50 hp + trauma_regen_rate = 1 / 6 // One trauma every 6 seconds. + +/datum/action/cooldown/mob_cooldown/blood_worm/inject/juvenile + health_cost = 35 + cooldown_time = 40 SECONDS // Effective host healing rate is 4 hp/s, Effective worm consumption rate is 0.875 hp/s, Worm max health is 1.66x less than host max health, Worm heals at 0.4 hp/s + status_effect_type = /datum/status_effect/blood_worm_transfuse/juvenile + +/datum/status_effect/blood_worm_transfuse/juvenile + damage_regen_rate = 8 // 20 s * 8 hp/s = 160 hp, note that major host healing is expected as the worm itself is very vulnerable to bleeding. + wound_regen_rate = 1 / 5 // One wound every 5 seconds, +30% per wound severity level. + organ_regen_rate = 4 // 20 s * 4 hp/s = 80 hp + trauma_regen_rate = 1 / 5 // One trauma every 5 seconds. + +/datum/action/cooldown/mob_cooldown/blood_worm/inject/adult + health_cost = 50 + cooldown_time = 50 SECONDS // Effective host healing rate is 4 hp/s, Effective worm consumption rate is 1 hp/s, Worm max health is 1.11x less than host max health, Worm heals at 0.5 hp/s + status_effect_type = /datum/status_effect/blood_worm_transfuse/adult + +/datum/status_effect/blood_worm_transfuse/adult + damage_regen_rate = 10 // 20 s * 10 hp/s = 200 hp, note that major host healing is expected as the worm itself is very vulnerable to bleeding. + wound_regen_rate = 1 / 4 // One wound every 4 seconds, +30% per wound severity level. + organ_regen_rate = 5 // 20 s * 5 hp/s = 100 hp, which is also the standard organ health threshold. + trauma_regen_rate = 1 / 4 // One trauma every 4 seconds. + +#undef REQUIRED_ACCUMULATION diff --git a/code/modules/antagonists/blood_worm/actions/invade_corpse.dm b/code/modules/antagonists/blood_worm/actions/invade_corpse.dm new file mode 100644 index 00000000000..26ad54e931e --- /dev/null +++ b/code/modules/antagonists/blood_worm/actions/invade_corpse.dm @@ -0,0 +1,66 @@ +/datum/action/cooldown/mob_cooldown/blood_worm/invade + name = "Invade Corpse" + desc = "Invade a humanoid corpse, taking it as your host." + + button_icon_state = "invade_corpse" + + cooldown_time = 0 SECONDS + shared_cooldown = NONE + + unset_after_click = FALSE // Unsetting is handled explicitly. + +/datum/action/cooldown/mob_cooldown/blood_worm/invade/IsAvailable(feedback) + if (!istype(owner, /mob/living/basic/blood_worm)) + return FALSE + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/invade/Activate(atom/target) + if (!ishuman(target)) + return FALSE + + var/mob/living/basic/blood_worm/worm = owner + var/mob/living/carbon/human/victim = target + + if (!worm.Adjacent(victim)) + victim.balloon_alert(worm, "too far away!") + return FALSE + if (!victim.IsReachableBy(worm)) + victim.balloon_alert(worm, "can't reach!") + return FALSE + + unset_click_ability(worm, refund_cooldown = FALSE) // If you fail after this point, it's because your attempt got interrupted or because the victim is invalid. + + if (!invade_check(worm, victim, feedback = TRUE)) + return TRUE // Don't bite the victim. + + worm.visible_message( + message = span_danger("\The [worm] starts entering \the [victim]!"), + self_message = span_notice("You start entering \the [victim]."), + blind_message = span_hear("You hear squeezing.") + ) + + if (!do_after(worm, 5 SECONDS, victim, extra_checks = CALLBACK(src, PROC_REF(invade_check), worm, victim))) + return TRUE // Don't bite the victim. + + worm.enter_host(victim) + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/invade/proc/invade_check(mob/living/basic/blood_worm/worm, mob/living/carbon/human/victim, feedback = FALSE) + if (HAS_TRAIT(victim, TRAIT_BLOOD_WORM_HOST)) + if (feedback) + victim.balloon_alert(worm, "already a host!") + return FALSE + if (victim.stat != DEAD) + if (feedback) + victim.balloon_alert(worm, "still alive!") + return FALSE + if (!CAN_HAVE_BLOOD(victim)) + if (feedback) + victim.balloon_alert(worm, "no blood!") + return FALSE + if (victim.get_blood_volume() + worm.health * BLOOD_WORM_HEALTH_TO_BLOOD <= worm.get_eject_volume_threshold()) + if (feedback) + victim.balloon_alert(worm, "not enough blood for control!") + return FALSE + return TRUE diff --git a/code/modules/antagonists/blood_worm/actions/leave_host.dm b/code/modules/antagonists/blood_worm/actions/leave_host.dm new file mode 100644 index 00000000000..ac9c7edb2d4 --- /dev/null +++ b/code/modules/antagonists/blood_worm/actions/leave_host.dm @@ -0,0 +1,51 @@ +/datum/action/cooldown/mob_cooldown/blood_worm/eject + name = "Leave Host" + desc = "Leave your host, taking their blood with you." + + button_icon_state = "leave_host" + + cooldown_time = 0 SECONDS + shared_cooldown = NONE + + click_to_activate = FALSE + + check_flags = NONE + +/datum/action/cooldown/mob_cooldown/blood_worm/eject/IsAvailable(feedback) + if (!ishuman(owner) && !istype(owner, /mob/living/basic/blood_worm)) + return FALSE + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/eject/Activate(atom/target) + var/mob/living/basic/blood_worm/worm = src.target + var/mob/living/carbon/human/host = worm.host + + host.visible_message( + message = span_danger("\The [host] collapse[host.p_s()] and start[host.p_s()] shaking violently!"), + ignored_mobs = owner + ) + + to_chat(owner, span_danger("You begin leaving your host...")) + + host.add_traits(list(TRAIT_FLOORED, TRAIT_INCAPACITATED, TRAIT_IMMOBILIZED), REF(src)) + + do_jitter_effect(worm) + + for (var/i in 1 to 2) + addtimer(CALLBACK(src, PROC_REF(do_jitter_effect), worm), i SECONDS, TIMER_DELETE_ME) + + if (!do_after(owner, 3 SECONDS, worm.host, timed_action_flags = IGNORE_TARGET_LOC_CHANGE | IGNORE_USER_LOC_CHANGE | IGNORE_INCAPACITATED, extra_checks = CALLBACK(src, PROC_REF(make_sure_shit_doesnt_go_wack), worm))) + REMOVE_TRAITS_IN(host, REF(src)) + return + + REMOVE_TRAITS_IN(host, REF(src)) + + worm.leave_host() + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/eject/proc/make_sure_shit_doesnt_go_wack(mob/living/basic/blood_worm/worm) + return worm.host // Basically, if the worm is somehow removed midway through, the do_after will continue because it ignores the loc change of the worm. This check prevents that. + +/datum/action/cooldown/mob_cooldown/blood_worm/eject/proc/do_jitter_effect(mob/living/basic/blood_worm/worm) + worm.host?.do_jitter_animation(100) diff --git a/code/modules/antagonists/blood_worm/actions/leech_blood.dm b/code/modules/antagonists/blood_worm/actions/leech_blood.dm new file mode 100644 index 00000000000..e7b0360cbcd --- /dev/null +++ b/code/modules/antagonists/blood_worm/actions/leech_blood.dm @@ -0,0 +1,272 @@ +/datum/action/cooldown/mob_cooldown/blood_worm/leech + name = "Leech Blood" + desc = "Aggressively grab a target with your teeth and leech off of their blood. Also works on reagent containers like blood packs. Leeching will be canceled if you do any other actions." + + button_icon_state = "leech_blood" + + cooldown_time = 5 SECONDS + shared_cooldown = NONE + + unset_after_click = FALSE // Unsetting is handled explicitly. + click_cd_override = 0 // Click cooldown is also handled explicitly. + + var/leech_rate = 0 + var/oxyloss_rate = 0 + + var/leech_grab_delay = 1 SECONDS + + /// Associative list of all reagent types that are compatible for leeching from reagent containers. Format is "list[reagent_type] = TRUE" + var/static/list/compatible_container_reagent_types = list( + /datum/reagent/blood = TRUE, // If it's blood, then it works :D + /datum/reagent/consumable/liquidelectricity = TRUE, // Rare enough to allow. + ) + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/IsAvailable(feedback) + if (!istype(owner, /mob/living/basic/blood_worm)) + return FALSE + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/InterceptClickOn(mob/living/clicker, params, atom/target) + var/modifiers = params2list(params) + + // Don't block examines, grabs, etc. + if (modifiers[SHIFT_CLICK] || modifiers[ALT_CLICK] || modifiers[CTRL_CLICK]) + return FALSE + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/Activate(atom/target) + owner.face_atom(target) + + if (!ismovable(target)) + return FALSE + if (!owner.Adjacent(target)) + target.balloon_alert(owner, "too far away!") + return FALSE + if (!target.IsReachableBy(owner)) + target.balloon_alert(owner, "can't reach!") + return FALSE + + // If you fail after this point, it's because your attempt got interrupted or because the victim is invalid. + unset_click_ability(owner, refund_cooldown = FALSE) + + if (isliving(target)) + leech_living(owner, target) + else if (is_reagent_container(target)) + leech_container(owner, target) + else + target.balloon_alert(owner, "can't leech from this!") + + return TRUE // Prevents biting. + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/proc/leech_living(mob/living/basic/blood_worm/leech, mob/living/target) + if (!leech_living_start_check(leech, target)) + return + + leech.visible_message( + message = span_danger("\The [leech] start[leech.p_s()] trying to bite into \the [target]!"), + self_message = span_danger("You start trying to bite into \the [target]!"), + ignored_mobs = list(target) + ) + + target.show_message( + msg = span_userdanger("\The [leech] start[leech.p_s()] trying to bite into you!"), + type = MSG_VISUAL + ) + + leech.changeNext_move(CLICK_CD_CLICK_ABILITY) + + if (!do_after(leech, leech_grab_delay, target, extra_checks = CALLBACK(src, PROC_REF(leech_living_start_check), leech, target))) + return + + if (leech.pulling != target && !leech.grab(target)) + target.balloon_alert(leech, "unable to grab!") + return + if (leech.grab_state < GRAB_AGGRESSIVE) + leech.setGrabState(GRAB_AGGRESSIVE) + + // Flooring the target makes them treat our grab state as one higher, halving their escape chance. + // Using a neck grab would reduce their escape chance to a third, which is too low. + ADD_TRAIT(target, TRAIT_FLOORED, REF(src)) + + // Prevents NPCs from resisting out of this. + if (!target.client) + incapacitate_leech_living_target(target) + + // Remove incapacitation if a client logs into the target, and readd it if they log back out. + RegisterSignal(target, COMSIG_MOB_CLIENT_LOGIN, PROC_REF(deincapacitate_leech_living_target)) + RegisterSignal(target, COMSIG_MOB_LOGOUT, PROC_REF(incapacitate_leech_living_target)) + + leech.visible_message( + message = span_danger("\The [leech] bite[leech.p_s()] into \the [target]!"), + self_message = span_danger("You bite into \the [target]!"), + blind_message = span_hear("You hear a bite, followed by a sickening crunch!"), + ignored_mobs = list(target) + ) + + target.show_message( + msg = span_userdanger("\The [leech] bite[leech.p_s()] into you!"), + type = MSG_VISUAL, + alt_msg = span_userdanger("You feel something bite into you!"), + alt_type = MSG_AUDIBLE + ) + + playsound(target, 'sound/items/weapons/bite.ogg', vol = 80, vary = TRUE, ignore_walls = FALSE) + playsound(target, 'sound/effects/wounds/pierce3.ogg', vol = 100, vary = TRUE, ignore_walls = FALSE) + + var/synth_content = target.get_blood_synth_content() + if (synth_content >= 1) + target.balloon_alert(leech, "fully synthetic") + else if (synth_content > 0) + target.balloon_alert(leech, "[CEILING(synth_content * 100, 1)]% synthetic") + + // Because of DO_AFTER_CHECK_NEXT_MOVE + leech.next_move = 0 + + while (do_after(leech, 1 SECONDS, target, timed_action_flags = IGNORE_USER_LOC_CHANGE | IGNORE_TARGET_LOC_CHANGE | DO_AFTER_CHECK_NEXT_MOVE, extra_checks = CALLBACK(src, PROC_REF(leech_living_active_check), leech, target))) + leech.consume_blood(-target.adjust_blood_volume(-leech_rate), target.get_blood_synth_content()) + + if (target.stat != DEAD) + target.adjust_oxy_loss(oxyloss_rate) // It's really weird if they just stand there until they literally drop dead from going below BLOOD_VOLUME_SURVIVE. + + playsound(target, 'sound/effects/wounds/splatter.ogg', vol = 80, vary = TRUE, ignore_walls = FALSE) + + if (leech.pulling == target && leech.grab_state >= GRAB_AGGRESSIVE) + leech.setGrabState(GRAB_PASSIVE) + + UnregisterSignal(target, list(COMSIG_MOB_CLIENT_LOGIN, COMSIG_MOB_LOGOUT)) + + REMOVE_TRAITS_IN(target, REF(src)) + + StartCooldown() + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/proc/leech_living_start_check(mob/living/basic/blood_worm/leech, mob/living/target) + if (target.get_blood_volume() <= 0) + target.balloon_alert(leech, "no blood!") + return FALSE + if (HAS_TRAIT(target, TRAIT_BLOOD_WORM_HOST)) + target.balloon_alert(leech, "occupied by our kin!") + return FALSE + return TRUE + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/proc/leech_living_active_check(mob/living/basic/blood_worm/leech, mob/living/target) + if (target.get_blood_volume() <= 0) + target.balloon_alert(leech, "no more blood!") + return FALSE + if (HAS_TRAIT(target, TRAIT_BLOOD_WORM_HOST)) + target.balloon_alert(leech, "occupied by our kin!") + return FALSE + if (!leech.Adjacent(target) || leech.pulling != target || leech.grab_state < GRAB_AGGRESSIVE) + target.balloon_alert(leech, "grab lost!") + return FALSE + return TRUE + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/proc/incapacitate_leech_living_target(mob/living/target) + SIGNAL_HANDLER + ADD_TRAIT(target, TRAIT_INCAPACITATED, REF(src)) + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/proc/deincapacitate_leech_living_target(mob/living/target) + SIGNAL_HANDLER + REMOVE_TRAIT(target, TRAIT_INCAPACITATED, REF(src)) + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/proc/leech_container(mob/living/basic/blood_worm/leech, obj/item/reagent_containers/target) + if (!leech_container_start_check(leech, target, feedback = TRUE)) + return + + leech.visible_message( + message = span_danger("\The [leech] start[leech.p_s()] trying to bite into \the [target]!"), + self_message = span_danger("You start trying to bite into \the [target]!") + ) + + leech.changeNext_move(CLICK_CD_CLICK_ABILITY) + + if (!do_after(leech, leech_grab_delay, target, extra_checks = CALLBACK(src, PROC_REF(leech_container_start_check), leech, target))) + return + + leech.visible_message( + message = span_danger("\The [leech] bite[leech.p_s()] into \the [target]!"), + self_message = span_danger("You bite into \the [target]!"), + blind_message = span_hear("You hear a bite!"), + ignored_mobs = list(target) + ) + + playsound(target, 'sound/items/weapons/bite.ogg', vol = 80, vary = TRUE, ignore_walls = FALSE) + + leech_container_alert_synth_info(leech, target) + + // Because of DO_AFTER_CHECK_NEXT_MOVE + leech.next_move = 0 + + while (do_after(leech, 1 SECONDS, target, timed_action_flags = DO_AFTER_CHECK_NEXT_MOVE, extra_checks = CALLBACK(src, PROC_REF(leech_container_active_check), leech, target))) + var/list/blood = get_blood_in_container(target) + + var/total_volume = 0 + for (var/datum/reagent/reagent as anything in blood) + total_volume += reagent.volume + + for (var/datum/reagent/reagent as anything in blood) + var/synth_content = reagent.data?[BLOOD_DATA_SYNTH_CONTENT] + var/amount_consumed = target.reagents.remove_reagent(reagent.type, leech_rate * (reagent.volume / total_volume)) + + leech.consume_blood(amount_consumed, synth_content) + + playsound(target, 'sound/effects/wounds/splatter.ogg', vol = 80, vary = TRUE, ignore_walls = FALSE) + + StartCooldown() + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/proc/leech_container_alert_synth_info(mob/living/basic/blood_worm/leech, obj/item/reagent_containers/target) + var/list/blood = get_blood_in_container(target) + + var/total_volume = 0 + var/synth_content = 0 + + for (var/datum/reagent/reagent as anything in blood) + total_volume += reagent.volume + synth_content += reagent.data?[BLOOD_DATA_SYNTH_CONTENT] * reagent.volume + + synth_content /= total_volume + + if (synth_content >= 1) + target.balloon_alert(leech, "fully synthetic") + else if (synth_content > 0) + target.balloon_alert(leech, "[CEILING(synth_content * 100, 1)]% synthetic") + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/proc/leech_container_start_check(mob/living/basic/blood_worm/leech, obj/item/reagent_containers/target, feedback = FALSE) + if (!length(get_blood_in_container(target))) + if (feedback) + target.balloon_alert(leech, "no blood!") + return FALSE + return TRUE + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/proc/leech_container_active_check(mob/living/basic/blood_worm/leech, obj/item/reagent_containers/target) + if (!length(get_blood_in_container(target))) + target.balloon_alert(leech, "no more blood!") + return FALSE + return TRUE + +/// Returns all of the blood in the given container. Format is "list[reagent_type] = volume" +/datum/action/cooldown/mob_cooldown/blood_worm/leech/proc/get_blood_in_container(obj/item/reagent_containers/target) + . = list() + + if (target.reagents.total_volume <= 0) + return + + for (var/datum/reagent/reagent as anything in target.reagents.reagent_list) + if (reagent.volume <= 0) + continue + if (!compatible_container_reagent_types[reagent.type]) + continue + + . += reagent + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/hatchling + leech_rate = BLOOD_VOLUME_NORMAL * 0.05 // 28 units of blood, 5 points of health, or 6.25% of a hatchling blood worm's health + oxyloss_rate = 11 // crosses from 44 to 55 at 5 seconds (50 is unconscious) + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/juvenile + leech_rate = BLOOD_VOLUME_NORMAL * 0.075 // 42 units of blood, 7.5 points of health, or 6.25% of a juvenile blood worm's health + oxyloss_rate = 15 // crosses from 45 to 60 at 4 seconds (50 is unconscious) + +/datum/action/cooldown/mob_cooldown/blood_worm/leech/adult + leech_rate = BLOOD_VOLUME_NORMAL * 0.1 // 56 units of blood, 10 points of health, or 5.55% of an adult blood worm's health + oxyloss_rate = 20 // crosses from 40 to 60 at 3 seconds (50 is unconscious) diff --git a/code/modules/antagonists/blood_worm/actions/revive_host.dm b/code/modules/antagonists/blood_worm/actions/revive_host.dm new file mode 100644 index 00000000000..a9aa47555f6 --- /dev/null +++ b/code/modules/antagonists/blood_worm/actions/revive_host.dm @@ -0,0 +1,105 @@ +/datum/action/cooldown/mob_cooldown/blood_worm/revive + name = "Revive Host" + desc = "Restart the blood circulation of your host, bringing them back to life." + + button_icon_state = "revive_host" + + cooldown_time = 30 SECONDS + shared_cooldown = NONE + + click_to_activate = FALSE + + check_flags = NONE + +/datum/action/cooldown/mob_cooldown/blood_worm/revive/Grant(mob/granted_to) + . = ..() + + var/mob/living/basic/blood_worm/worm = target + var/mob/living/carbon/human/host = worm.host + + RegisterSignals(host, list(COMSIG_MOB_STATCHANGE, COMSIG_LIVING_HEALTH_UPDATE), PROC_REF(update_status_on_signal)) + +/datum/action/cooldown/mob_cooldown/blood_worm/revive/Remove(mob/removed_from) + var/mob/living/basic/blood_worm/worm = target + var/mob/living/carbon/human/host = worm.host + + UnregisterSignal(host, list(COMSIG_MOB_STATCHANGE, COMSIG_LIVING_HEALTH_UPDATE)) + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/revive/IsAvailable(feedback) + if (!ishuman(owner) && !istype(owner, /mob/living/basic/blood_worm)) + return FALSE + + var/mob/living/basic/blood_worm/worm = target + var/mob/living/carbon/human/host = worm.host + + if (!run_checks(worm, host, feedback)) + return FALSE + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/revive/Activate(atom/target) + var/mob/living/basic/blood_worm/worm = target + var/mob/living/carbon/human/host = worm.host + + to_chat(owner, span_notice("You begin restarting \the [host]'s blood circulation...")) + + for (var/i in 1 to 3) + if (!do_after(owner, 2 SECONDS, host, timed_action_flags = IGNORE_INCAPACITATED | IGNORE_USER_LOC_CHANGE | IGNORE_TARGET_LOC_CHANGE, extra_checks = CALLBACK(src, PROC_REF(run_checks), worm, host))) + return FALSE + + REMOVE_TRAIT(worm, TRAIT_DEAF, BLOOD_WORM_HOST_TRAIT) + playsound(host, 'sound/effects/singlebeat.ogg', vol = 50, vary = TRUE, ignore_walls = FALSE) + ADD_TRAIT(worm, TRAIT_DEAF, BLOOD_WORM_HOST_TRAIT) + + var/original_transform = host.transform + animate(host, transform = host.transform.Translate(0, 3), time = 0.2 SECONDS, easing = CUBIC_EASING | EASE_OUT, flags = ANIMATION_PARALLEL) + animate(transform = original_transform, time = 0.2 SECONDS, easing = CUBIC_EASING | EASE_IN, flags = ANIMATION_PARALLEL) + + host.visible_message( + message = span_danger("\The [host] shake[host.p_s()] violently!"), + ignored_mobs = owner + ) + + if (!host.revive()) + host.balloon_alert(owner, "revival failed!") + return FALSE + + host.visible_message( + message = span_danger("\The [host] rise[host.p_s()] from the dead!"), + ignored_mobs = owner + ) + + to_chat(owner, span_green("You successfully revive \the [host]!")) + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/revive/proc/run_checks(mob/living/basic/blood_worm/worm, mob/living/carbon/human/host, feedback = FALSE) + if (!worm.host) + return FALSE + if (host.stat != DEAD) + if (feedback) + host.balloon_alert(owner, "not dead!") + return FALSE + if (HAS_TRAIT(host, TRAIT_HUSK)) + if (feedback) + host.balloon_alert(owner, "husked!") + return FALSE + if (!host.get_organ_slot(ORGAN_SLOT_BRAIN)) + if (feedback) + host.balloon_alert(owner, "no brain!") + return FALSE + if (host.get_organ_loss(ORGAN_SLOT_BRAIN) >= BRAIN_DAMAGE_DEATH && !HAS_TRAIT(host, TRAIT_BRAIN_DAMAGE_NODEATH)) + if (feedback) + host.balloon_alert(owner, "brain too damaged!") + return FALSE + if (host.health <= HEALTH_THRESHOLD_DEAD) + if (feedback) + host.balloon_alert(owner, "body too damaged!") + return FALSE + if (!host.can_be_revived()) // Fallback, ideally caught by earlier, more descriptive checks. + if (feedback) + host.balloon_alert(owner, "unable to revive!") + return FALSE + return TRUE diff --git a/code/modules/antagonists/blood_worm/actions/spit_blood.dm b/code/modules/antagonists/blood_worm/actions/spit_blood.dm new file mode 100644 index 00000000000..fc765c00906 --- /dev/null +++ b/code/modules/antagonists/blood_worm/actions/spit_blood.dm @@ -0,0 +1,282 @@ +/datum/action/cooldown/mob_cooldown/blood_worm/spit + name = "Spit Blood" + desc = "Spit corrosive blood at your target in exchange for your own health. Right-click to melt restraints while in a host." + + button_icon_state = "spit_blood" + + cooldown_time = 0 SECONDS + shared_cooldown = NONE + + unset_after_click = FALSE // Unsetting is handled explicitly. + + var/health_cost = 0 + var/minimum_health = 10 + + var/projectile_type = null + var/burst_projectile_type = null + var/burst_count = 5 + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/New(Target, original) + . = ..() + RegisterSignal(target, COMSIG_LIVING_HEALTH_UPDATE, PROC_REF(update_status_on_signal)) + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/Destroy() + UnregisterSignal(target, COMSIG_LIVING_HEALTH_UPDATE) + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/set_click_ability(mob/on_who) + . = ..() + var/right_click_message = ishuman(owner) ? ", right-click to melt restraints" : (burst_projectile_type ? ", right-click for a burst" : "") + to_chat(owner, span_notice("You fill your [ishuman(owner) ? "mouth" : "maw"] with blood. Left-click to spit corrosive blood[right_click_message]!")) + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/unset_click_ability(mob/on_who, refund_cooldown) + . = ..() + to_chat(owner, span_notice("You empty your [ishuman(owner) ? "mouth" : "maw"] of blood.")) + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/IsAvailable(feedback) + if (!ishuman(owner) && !istype(owner, /mob/living/basic/blood_worm)) + return FALSE + + var/mob/living/basic/blood_worm/worm = target + + if (worm.host?.is_mouth_covered()) + if (feedback) + owner.balloon_alert(owner, "mouth is covered!") + return FALSE + if (worm.get_worm_health() - health_cost < minimum_health) + if (feedback) + owner.balloon_alert(owner, "out of blood!") + return FALSE + + return ..() + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/InterceptClickOn(mob/living/clicker, params, atom/target) + . = ..() + if (!.) + unset_click_ability(owner, refund_cooldown = FALSE) + return FALSE + + var/modifiers = params2list(params) + + // Don't block examines, grabs, etc. + if (modifiers[SHIFT_CLICK] || modifiers[ALT_CLICK] || modifiers[CTRL_CLICK]) + return FALSE + + owner.face_atom(target) + + var/mob/living/basic/blood_worm/worm = src.target + + if (modifiers[RIGHT_CLICK] && worm.host) + melt_restraints() + else if (modifiers[RIGHT_CLICK] && burst_projectile_type) + fire_burst(clicker, modifiers, target) + else + fire_normal(clicker, modifiers, target) + + if (!IsAvailable(feedback = FALSE)) + unset_click_ability(owner, refund_cooldown = FALSE) + + return TRUE // Intercepts the attack chain. + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/Activate(atom/target) + return TRUE // Has to return true, as otherwise the parent proc of InterceptClickOn will return false, canceling the firing of the projectile. + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/proc/fire_normal(mob/living/clicker, modifiers, atom/target) + if (target == owner) + return + + owner.visible_message( + message = span_danger("\The [owner] spit[owner.p_s()] corrosive blood!"), + self_message = span_danger("You spit corrosive blood!"), + blind_message = span_hear("You hear spitting.") + ) + + spit(target, modifiers, projectile_type) + + playsound(owner, SFX_ALIEN_SPIT_ACID, vol = 25, vary = TRUE) + + owner.changeNext_move(CLICK_CD_RANGE) + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/proc/fire_burst(mob/living/clicker, modifiers, atom/target) + if (target == owner) + return + + var/mob/living/basic/blood_worm/worm = src.target + if (worm.get_worm_health() - health_cost * burst_count < minimum_health) + owner.balloon_alert(owner, "out of blood!") + return + + owner.visible_message( + message = span_danger("\The [owner] spit[owner.p_s()] a burst of corrosive blood!"), + self_message = span_danger("You spit a burst of corrosive blood!"), + blind_message = span_hear("You hear spitting.") + ) + + spit(target, modifiers, burst_projectile_type, count = burst_count, spread = 10) + + playsound(owner, SFX_ALIEN_SPIT_ACID, vol = 40, vary = TRUE) + playsound(owner, 'sound/mobs/non-humanoids/bileworm/bileworm_spit.ogg', vol = 40, vary = TRUE) + + owner.changeNext_move(CLICK_CD_RANGE) + StartCooldown(10 SECONDS) + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/proc/spit(target, modifiers, projectile_type, count = 1, spread = 0) + for (var/i in 1 to count) + var/obj/projectile/blood_worm_spit/spit = new projectile_type(owner.loc) + + spit.firer = owner + spit.fired_from = owner + spit.aim_projectile(target, owner, modifiers, deviation = count == 1 ? 0 : lerp(-spread, spread, (i - 1) / (count - 1))) + spit.fire() + + owner.newtonian_move(get_angle(target, owner), instant = TRUE, drift_force = count) + + var/mob/living/basic/blood_worm/worm = src.target + + worm.adjust_worm_health(-health_cost * count) + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/proc/melt_restraints() + var/mob/living/carbon/human/host = owner + + var/melted_something = FALSE + var/something_to_melt = FALSE + + if (host.handcuffed) + something_to_melt = TRUE + melted_something |= melt_restraints_in_slot(host, ITEM_SLOT_HANDCUFFED) + if (host.legcuffed) + something_to_melt = TRUE + melted_something |= melt_restraints_in_slot(host, ITEM_SLOT_LEGCUFFED) + if (host.wear_suit?.breakouttime) + something_to_melt = TRUE + melted_something |= melt_restraints_in_slot(host, ITEM_SLOT_OCLOTHING) + if (host.shoes?.tied == SHOES_KNOTTED) + something_to_melt = TRUE + melted_something |= melt_restraints_in_slot(host, ITEM_SLOT_FEET) + if (istype(host.loc, /obj/structure/closet)) + something_to_melt = TRUE + melted_something |= melt_closet(host, host.loc) + if (istype(host.loc, /obj/structure/spider/cocoon)) + something_to_melt = TRUE + melted_something |= melt_cocoon(host, host.loc) + + if (melted_something) + playsound(host, SFX_SIZZLE, vol = 80, vary = TRUE, ignore_walls = FALSE) + StartCooldown(20 SECONDS) + if (!something_to_melt) + host.balloon_alert(host, "not restrained!") + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/proc/melt_restraints_in_slot(mob/living/carbon/human/host, slot) + var/obj/restraints = host.get_item_by_slot(slot) + + if (!istype(restraints)) + return FALSE + if (restraints.resistance_flags & (INDESTRUCTIBLE | UNACIDABLE | ACID_PROOF)) + host.balloon_alert(host, "\the [restraints] [restraints.p_are()] too tough!") + return FALSE + + host.visible_message( + message = span_danger("\The [host] spit[host.p_s()] corrosive blood all over \the [restraints]!"), + self_message = span_danger("You spit corrosive blood all over \the [restraints]!"), + blind_message = span_hear("You hear sizzling.") + ) + + log_combat(host, restraints, "melted", addition = "(Spit Blood)") + + addtimer(CALLBACK(src, PROC_REF(finish_melting_restraints), restraints), 5 SECONDS) + return TRUE + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/proc/finish_melting_restraints(obj/restraints) + restraints.visible_message(span_danger("\The [restraints] melt[restraints.p_s()] into a pile of goopy blood!")) + new /obj/effect/decal/cleanable/blood/old(get_turf(restraints)) + qdel(restraints) + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/proc/melt_closet(mob/living/carbon/human/host, obj/structure/closet/closet) + if (closet.resistance_flags & (INDESTRUCTIBLE | UNACIDABLE | ACID_PROOF)) + host.balloon_alert(host, "\the [closet] [closet.p_are()] too tough!") + return FALSE + + closet.visible_message( + message = span_danger("\The [closet]'s hinges overflow with corrosive blood and begin to melt!"), + blind_message = span_hear("You hear sizzling."), + ignored_mobs = host + ) + + to_chat(host, span_danger("You spit corrosive blood all over \the [closet]'s interior hinges!")) + + log_combat(host, closet, "melted", addition = "(Spit Blood)") + + addtimer(CALLBACK(src, PROC_REF(finish_melting_closet), closet), 5 SECONDS) + return TRUE + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/proc/finish_melting_closet(obj/structure/closet/closet) + closet.visible_message(span_danger("\The [closet]'s hinges melt into a pile of goopy blood!")) + new /obj/effect/decal/cleanable/blood/old(get_turf(closet)) + + closet.welded = FALSE + closet.locked = FALSE + closet.broken = TRUE + closet.open() + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/proc/melt_cocoon(mob/living/carbon/human/host, obj/structure/spider/cocoon/cocoon) + if (cocoon.resistance_flags & (INDESTRUCTIBLE | UNACIDABLE | ACID_PROOF)) + host.balloon_alert(host, "\the [cocoon] [cocoon.p_are()] too tough!") + return FALSE + + cocoon.visible_message( + message = span_danger("\The [cocoon]'s threads begin to fall apart!"), + blind_message = span_hear("You hear sizzling."), + ignored_mobs = host + ) + + to_chat(host, span_danger("You spit corrosive blood all over the inside of \the [cocoon]!")) + + log_combat(host, cocoon, "melted", addition = "(Spit Blood)") + + addtimer(CALLBACK(src, PROC_REF(finish_melting_cocoon), cocoon), 5 SECONDS) + return TRUE + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/proc/finish_melting_cocoon(obj/structure/spider/cocoon/cocoon) + cocoon.visible_message(span_danger("\The [cocoon] melt[cocoon.p_s()] into a pile of goopy blood!")) + new /obj/effect/decal/cleanable/blood/old(get_turf(cocoon)) + qdel(cocoon) + +/obj/projectile/blood_worm_spit + name = "corrosive blood spit" + icon_state = "blood_spit" + + damage_type = BURN + armor_flag = BULLET // I'm sorry. Acid armor is too nonsensical for combat, as its granted based on how easily acid should destroy objects. + + hitsound = 'sound/items/weapons/sear.ogg' + hitsound_wall = 'sound/items/weapons/sear.ogg' + + impact_effect_type = /obj/effect/temp_visual/impact_effect/blood_worm_spit + +/obj/effect/temp_visual/impact_effect/blood_worm_spit + color = "#ff1313" + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/juvenile + health_cost = 5.5 // This is enough for 20 shots in a row at full health. (keep in mind that health is VERY important) + projectile_type = /obj/projectile/blood_worm_spit/juvenile + +/obj/projectile/blood_worm_spit/juvenile + damage = 20 // 300 damage total, assuming no armor. + armour_penetration = 30 // So that sec cant just nullify half the kit of the blood worms with bulletproof armor. + wound_bonus = 0 // Juveniles can afford to fix wounds on their hosts. This doesn't cause critical wounds. (at least not in testing) + +/datum/action/cooldown/mob_cooldown/blood_worm/spit/adult + desc = "Spit corrosive blood at your target in exchange for your own health. Right-click to melt restraints while in a host, or fire a burst while out of a host." + health_cost = 6.5 // This is enough for 26 shots in a row at full health. (keep in mind that health is VERY important) + projectile_type = /obj/projectile/blood_worm_spit/adult + burst_projectile_type = /obj/projectile/blood_worm_spit/adult_burst + +/obj/projectile/blood_worm_spit/adult + damage = 25 // 500 damage total, assuming no armor. + armour_penetration = 50 // Yeah no your armor isn't saving you from this. + wound_bonus = 5 // Okay, now we're talking. + +/obj/projectile/blood_worm_spit/adult_burst + damage = 15 // 75 damage per burst if all hit. + armour_penetration = 50 // Same armor penetration. + wound_bonus = 2 // Slightly less wound power than normal. diff --git a/code/modules/antagonists/blood_worm/blood_worm_antag.dm b/code/modules/antagonists/blood_worm/blood_worm_antag.dm new file mode 100644 index 00000000000..fc8206ffdfd --- /dev/null +++ b/code/modules/antagonists/blood_worm/blood_worm_antag.dm @@ -0,0 +1,101 @@ +/datum/antagonist/blood_worm + name = "\improper Blood Worm" + roundend_category = "blood worms" + antagpanel_category = ANTAG_GROUP_BLOODY + pref_flag = ROLE_BLOOD_WORM + antag_hud_name = "blood_worm" + antag_moodlet = /datum/mood_event/blood_worm + hijack_speed = 0.5 + show_to_ghosts = TRUE // I mean let's be honest, even the roundstart versions will become painfully apparent soon enough. + stinger_sound = 'sound/effects/magic/exit_blood.ogg' + ui_name = "AntagInfoBloodWorm" + + var/datum/team/blood_worm/team = null + +/datum/antagonist/blood_worm/Destroy() + team = null + return ..() + +/datum/antagonist/blood_worm/greet() + . = ..() + + to_chat(owner, span_bold("A species of space-faring leech, massive in size and ferocious in hunting. \ + Your origins are unknown to most, but to some, you are among their greatest creations. \ + A failed Syndicate bioweapons project, snuffed out by benefactors after a \"lack of results\", and yet... \ + here you find yourself. On a Nanotrasen space station. What a fitting habitat for you, isn't it?")) + to_chat(owner, span_bolddanger("KILL, CONSUME, MULTIPLY, CONQUER.")) + + owner.announce_objectives() + +/datum/antagonist/blood_worm/forge_objectives() + objectives |= team.objectives + +/datum/antagonist/blood_worm/create_team(datum/team/new_team) + GLOB.blood_worm_team ||= new() + team = GLOB.blood_worm_team + +/datum/antagonist/blood_worm/get_team() + return team + +/datum/antagonist/blood_worm/on_gain() + forge_objectives() + ADD_TRAIT(owner, TRAIT_UNCONVERTABLE, REF(src)) // No blood cultist worms or whatever the fuck + return ..() + +/datum/antagonist/blood_worm/on_removal() + REMOVE_TRAITS_IN(owner, REF(src)) + return ..() + +/datum/antagonist/blood_worm/apply_innate_effects(mob/living/mob_override) + var/mob/living/target = mob_override || owner.current + + add_team_hud(target) + + if (!istype(target, /mob/living/basic/blood_worm)) + target.faction |= FACTION_BLOOD_WORM + + // Apathy and fearlessness are traits inherent to the very mind of a blood worm. + // Being immune to hunger, withdrawals, etc. are physical traits of blood worm hosts. + target.add_traits(list(TRAIT_APATHETIC, TRAIT_FEARLESS), REF(src)) + +/datum/antagonist/blood_worm/remove_innate_effects(mob/living/mob_override) + var/mob/living/target = mob_override || owner.current + + if (!istype(target, /mob/living/basic/blood_worm)) + target.faction -= FACTION_BLOOD_WORM + + REMOVE_TRAITS_IN(target, REF(src)) + +/datum/antagonist/blood_worm/admin_add(datum/mind/new_owner, mob/admin) + if (!new_owner.current) + return + + if (!istype(new_owner.current, /mob/living/basic/blood_worm)) + var/old_mob = new_owner.current + + var/mob/living/basic/blood_worm/hatchling/new_worm = new(get_turf(new_owner.current)) + new_owner.transfer_to(new_worm, force_key_move = TRUE) + + qdel(old_mob) + + return ..() + +/datum/antagonist/blood_worm/get_preview_icon() + var/icon/icon = icon('icons/mob/nonhuman-player/blood_worm_32x32.dmi', "juvenile") + + icon.Crop(1, 1, 32, 32) + icon.Shift(SOUTH, 4) + icon.Scale(ANTAGONIST_PREVIEW_ICON_SIZE, ANTAGONIST_PREVIEW_ICON_SIZE) + + return icon + +/datum/antagonist/blood_worm/ui_static_data(mob/user) + . = ..() + var/list/team_data = list() + team_data["blood_consumed_total"] = floor(team.blood_consumed_total) + team_data["times_reproduced_total"] = floor(team.times_reproduced_total) + .["team"] = team_data + +/datum/antagonist/blood_worm/infestation + pref_flag = ROLE_BLOOD_WORM_INFESTATION + show_in_antagpanel = FALSE diff --git a/code/modules/antagonists/blood_worm/blood_worm_blood_consumption.dm b/code/modules/antagonists/blood_worm/blood_worm_blood_consumption.dm new file mode 100644 index 00000000000..0d36e2202e9 --- /dev/null +++ b/code/modules/antagonists/blood_worm/blood_worm_blood_consumption.dm @@ -0,0 +1,38 @@ +// Any procs that work with blood consumption go here. +// There are quite a few of them, and some of them are lengthy. + +/mob/living/basic/blood_worm/proc/consume_blood(blood_amount, synth_content = 0, should_heal = TRUE) + if (blood_amount <= 0) + return + + synth_content = clamp(synth_content, 0, 1) + + var/was_synth_capped = consumed_synth_blood >= maximum_synth_blood + var/was_ready_to_mature = get_consumed_blood() >= cocoon_action?.total_blood_required + + var/added_normal_blood = blood_amount * (1 - synth_content) + var/added_synth_blood = blood_amount * synth_content * synth_blood_efficiency + var/added_total_blood = added_normal_blood + added_synth_blood + + consumed_synth_blood = min(consumed_synth_blood + added_synth_blood, maximum_synth_blood) + consumed_normal_blood += added_normal_blood + + if (!was_synth_capped && consumed_synth_blood >= maximum_synth_blood) + balloon_alert_self("synthetic cap reached!") + + if (!was_ready_to_mature && get_consumed_blood() >= cocoon_action?.total_blood_required) + balloon_alert_self("ready to mature!") + + if (should_heal) + // Synthetic blood works just fine for healing. + adjust_worm_health(blood_amount * BLOOD_WORM_BLOOD_TO_HEALTH) + + // This is intentionally passing the synth blood amount without any regard for the synth blood growth cap. + SEND_SIGNAL(src, COMSIG_BLOOD_WORM_CONSUMED_BLOOD, added_normal_blood, added_synth_blood, added_total_blood) + +/mob/living/basic/blood_worm/proc/reset_consumed_blood() + consumed_normal_blood = 0 + consumed_synth_blood = 0 + +/mob/living/basic/blood_worm/proc/get_consumed_blood() + return consumed_normal_blood + consumed_synth_blood diff --git a/code/modules/antagonists/blood_worm/blood_worm_host_handling.dm b/code/modules/antagonists/blood_worm/blood_worm_host_handling.dm new file mode 100644 index 00000000000..67543842cd0 --- /dev/null +++ b/code/modules/antagonists/blood_worm/blood_worm_host_handling.dm @@ -0,0 +1,260 @@ +// Any proc that handles host logic and doesn't fit in a more specific file goes here. +// There are a ton of these and they are pretty tightly coupled to each other. + +/mob/living/basic/blood_worm/proc/enter_host(mob/living/carbon/human/new_host, silent = FALSE, gain_progress = TRUE) + if (!silent) + playsound(src, 'sound/effects/magic/enter_blood.ogg', vol = 60, vary = TRUE, ignore_walls = FALSE) + + visible_message( + message = span_bolddanger("\The [src] enter[p_s()] \the [new_host]!"), + self_message = span_notice("You enter \the [new_host]."), + blind_message = span_hear("You hear a squelch.") + ) + + new /obj/effect/temp_visual/blood_worm_invade_host(get_turf(new_host), effect_name) + + host = new_host + + RegisterSignal(host, COMSIG_QDELETING, PROC_REF(on_host_qdel)) + RegisterSignal(host, COMSIG_MOB_STATCHANGE, PROC_REF(on_host_stat_changed)) + RegisterSignal(host, COMSIG_HUMAN_ON_HANDLE_BLOOD, PROC_REF(on_host_handle_blood)) + RegisterSignal(host, COMSIG_LIVING_LIFE, PROC_REF(on_host_life)) + RegisterSignal(host, COMSIG_LIVING_ADJUST_OXY_DAMAGE, PROC_REF(on_host_adjust_oxy_damage)) + RegisterSignal(host, COMSIG_LIVING_PRE_UPDATE_BLOOD_STATUS, PROC_REF(on_host_pre_update_blood_status)) + RegisterSignal(host, COMSIG_MOB_GET_STATUS_TAB_ITEMS, PROC_REF(on_host_get_status_tab_items)) + RegisterSignal(host, COMSIG_MOB_EXAMINING, PROC_REF(on_host_examining)) + + START_PROCESSING(SSfastprocess, src) + + add_traits(list(TRAIT_INCAPACITATED, TRAIT_IMMOBILIZED, TRAIT_MUTE, TRAIT_EMOTEMUTE), BLOOD_WORM_HOST_TRAIT) + + host.add_traits(list( + TRAIT_NOBREATH, // Makes blood worms carry at least one of their atmos immunities to a host. Also allows them to take off masks to be able to spit, without risking suffocation. + TRAIT_STABLEHEART, // Allows blood worms to take fucked up hosts. Especially useful if you accidentally gut your future host yourself. (very possible as an adult) + TRAIT_STABLELIVER, // Ditto. + TRAIT_NOCRITDAMAGE, // Prevents blood worms from noob trapping themselves by reviving a host "too early", since that shouldn't be a thing. + TRAIT_NOHUNGER, // Every single long-deceased corpse is starved. Many people also just ignore hunger the whole shift. Starving with every new host gets old fast. + TRAIT_NO_WITHDRAWALS, // Prevents OOC quirk choices from impacting blood worms as much. Stops withdrawals instead of addictions since the latter can be metagamed. + TRAIT_NO_SPLIT_PERSONALITY, // How about no? + TRAIT_BLOOD_HUD, // Self-explanatory, allows blood worms to seek prey even while in a host. + TRAIT_BLOOD_WORM_HOST), // Used in code for recognizing blood worm hosts with a simple trait check. + BLOOD_WORM_HOST_TRAIT) + + if (client) + ADD_TRAIT(host, TRAIT_MIND_TEMPORARILY_GONE, BLOOD_WORM_HOST_TRAIT) + + host.physiology.bleed_mod *= BLOOD_WORM_BLEED_MOD + + host.AddElement(/datum/element/hand_organ_insertion) + + remove_actions(src, innate_actions) + grant_actions(src, host_actions) + + var/cached_blood_volume = host.get_blood_volume() + + if (gain_progress) + // Apply the host's blood volume to our growth. + consume_blood(cached_blood_volume, host.get_blood_synth_content(), should_heal = FALSE) + + // Combine our health with the blood of our host. + host.set_blood_volume(cached_blood_volume + health * BLOOD_WORM_HEALTH_TO_BLOOD) + + // Modify host blood such that it's BLOOD_VOLUME_NORMAL when we're at max health. + host.set_blood_volume_modifier(REF(src), BLOOD_VOLUME_NORMAL / (maxHealth * BLOOD_WORM_HEALTH_TO_BLOOD)) + + // Caps host blood volume to our custom maximum and syncs our bruteloss with host health. + sync_health() + + if (host.hud_used) + create_host_hud(host) + else + RegisterSignal(host, COMSIG_MOB_HUD_CREATED, PROC_REF(create_host_hud)) + + forceMove(host) + + log_blood_worm("[key_name(src)] entered their new host [key_name(host)]") + + if (host.stat != DEAD) + possess_host() + +/mob/living/basic/blood_worm/proc/leave_host() + if (!host) + return + + visible_message( + message = span_bolddanger("\The [src] emerge[p_s()] from \the [host]!"), + blind_message = span_hear("You hear a squelch."), + ignored_mobs = list(host, src) + ) + + to_chat_self(span_notice("You emerge from \the [host].")) + + log_blood_worm("[key_name(src)] left their host [key_name(host)]") + + forceMove(host.drop_location()) // This will call unregister_host() via Moved() + + playsound(src, 'sound/effects/magic/exit_blood.ogg', vol = 60, vary = TRUE, ignore_walls = FALSE) + + Immobilize(leave_host_duration, ignore_canstun = TRUE) + incapacitate(leave_host_duration, ignore_canstun = TRUE) + + // Uses the icon file of the current mob. This means the animation is 32x48 for the adults. + flick("leave-[effect_name]", src) + +/mob/living/basic/blood_worm/proc/unregister_host() + if (!host) + return + + possess_worm() + + UnregisterSignal(host, list( + COMSIG_QDELETING, + COMSIG_MOB_STATCHANGE, + COMSIG_HUMAN_ON_HANDLE_BLOOD, + COMSIG_LIVING_LIFE, + COMSIG_LIVING_ADJUST_OXY_DAMAGE, + COMSIG_LIVING_PRE_UPDATE_BLOOD_STATUS, + COMSIG_MOB_GET_STATUS_TAB_ITEMS, + COMSIG_MOB_EXAMINING, + COMSIG_MOB_HUD_CREATED, + )) + + STOP_PROCESSING(SSfastprocess, src) + + REMOVE_TRAITS_IN(src, BLOOD_WORM_HOST_TRAIT) + REMOVE_TRAITS_IN(host, BLOOD_WORM_HOST_TRAIT) + host.physiology.bleed_mod /= BLOOD_WORM_BLEED_MOD + host.RemoveElement(/datum/element/hand_organ_insertion) + + remove_actions(src, host_actions) + grant_actions(src, innate_actions) + + host.remove_blood_volume_modifier(REF(src)) + sync_health(already_ejecting = TRUE) + + remove_host_hud() + + host.set_blood_volume(0) + + if (host.stat != DEAD) + host.death() // I don't care if you have TRAIT_NODEATH, can't die from bloodloss normally, or whatever else. I just need you to die. + + log_blood_worm("[key_name(src)] unregistered their host [key_name(host)]") + + host = null + +/mob/living/basic/blood_worm/proc/possess_host() + if (!host || is_possessing_host) + return + + is_possessing_host = TRUE + + if (host.mind) + backseat = new(host) + backseat.death(gibbed = TRUE) // Same thing that the corpse mob spawners do to stop deathgasps and such. + + // If the host is a changeling, then we forcibly move their client to the backseat so they can use Expel Worm if they wish to. + host.mind.transfer_to(backseat, force_key_move = host.mind.has_antag_datum(/datum/antagonist/changeling)) + + mind?.transfer_to(host) + + remove_actions(src, host_actions) + grant_actions(host, host_actions) + + host.grant_language(/datum/language/wormspeak, UNDERSTOOD_LANGUAGE, LANGUAGE_BLOOD_WORM) + + log_blood_worm("[key_name(src)] possessed their host [key_name(host)]") + +/mob/living/basic/blood_worm/proc/possess_worm() + if (!host || !is_possessing_host) + return + + is_possessing_host = FALSE + + host.mind?.transfer_to(src) + + if (backseat) + backseat.mind?.transfer_to(host) + QDEL_NULL(backseat) + + remove_actions(host, host_actions) + grant_actions(src, host_actions) + + host.remove_language(/datum/language/wormspeak, UNDERSTOOD_LANGUAGE, LANGUAGE_BLOOD_WORM) + + log_blood_worm("[key_name(src)] unpossessed their host [key_name(host)]") + +/mob/living/basic/blood_worm/proc/on_host_qdel(datum/source, force) + SIGNAL_HANDLER + qdel(src) + +/mob/living/basic/blood_worm/proc/on_host_stat_changed(datum/source, new_stat, old_stat) + SIGNAL_HANDLER + if (old_stat == DEAD && new_stat != DEAD) + possess_host() + else if (old_stat != DEAD && new_stat == DEAD) + possess_worm() + +/mob/living/basic/blood_worm/proc/on_host_handle_blood(datum/source, seconds_per_tick, times_fired) + SIGNAL_HANDLER + return HANDLE_BLOOD_NO_OXYLOSS | HANDLE_BLOOD_NO_NUTRITION_DRAIN + +/mob/living/basic/blood_worm/proc/on_host_life(datum/source, seconds_per_tick, times_fired) + // Moved to worm life when not in a host. + adjust_worm_health(regen_rate * seconds_per_tick) + + // Required for now, because TRAIT_NOBREATH does not actually prevent oxygen damage. + // This is really weird because it also sets oxygen damage to 0 when added to a mob. + host.set_oxy_loss(0, forced = TRUE) + + if (!HAS_TRAIT(host, TRAIT_STASIS)) + handle_host_blood(seconds_per_tick, times_fired) + handle_host_temperature(seconds_per_tick, times_fired) + +/mob/living/basic/blood_worm/proc/handle_host_blood(seconds_per_tick, times_fired) + if (host.stat == DEAD) + host.handle_blood(seconds_per_tick, times_fired) + + // Ignored while possessing a host, as [carbon/proc/bleed_warn] handles it instead. + if (!is_possessing_host && COOLDOWN_FINISHED(src, host_bleed_alert_cooldown) && host.get_bleed_rate() > 0) + to_chat_self(span_userdanger("Your host is bleeding!")) + COOLDOWN_START(src, host_bleed_alert_cooldown, 15 SECONDS) + +/mob/living/basic/blood_worm/proc/handle_host_temperature(seconds_per_tick, times_fired) + if (host.coretemperature <= maximum_survivable_temperature) + return + + var/burn_coeff = damage_coeff[BURN] + adjust_worm_health(-unsuitable_heat_damage * (burn_coeff ? burn_coeff : 1) * seconds_per_tick) + + if (COOLDOWN_FINISHED(src, host_heat_alert_cooldown)) + to_chat_self(span_userdanger("Your blood is burning up!")) + COOLDOWN_START(src, host_heat_alert_cooldown, 15 SECONDS) + +/mob/living/basic/blood_worm/proc/on_host_adjust_oxy_damage(datum/source, type, amount, forced) + SIGNAL_HANDLER + return COMPONENT_IGNORE_CHANGE // Functionally, this unimplements oxy damage from hosts altogether. Which is exactly what we want. + +/mob/living/basic/blood_worm/proc/on_host_pre_update_blood_status(datum/source, had_blood, has_blood, old_blood_volume) + SIGNAL_HANDLER + if (!has_blood) + leave_host() + +/mob/living/basic/blood_worm/proc/create_host_hud(datum/source) + SIGNAL_HANDLER + UnregisterSignal(host, COMSIG_MOB_HUD_CREATED) + + var/datum/hud/hud = host.hud_used + blood_display = new(null, hud) + hud.infodisplay += blood_display + hud.show_hud(hud.hud_version) + +/mob/living/basic/blood_worm/proc/remove_host_hud() + var/datum/hud/hud = host.hud_used + + if (!hud) + QDEL_NULL(blood_display) + return + + hud.infodisplay -= blood_display + QDEL_NULL(blood_display) diff --git a/code/modules/antagonists/blood_worm/blood_worm_host_mob.dm b/code/modules/antagonists/blood_worm/blood_worm_host_mob.dm new file mode 100644 index 00000000000..310f8a0bd94 --- /dev/null +++ b/code/modules/antagonists/blood_worm/blood_worm_host_mob.dm @@ -0,0 +1,17 @@ +/mob/living/blood_worm_host + name = "Host" + desc = "...how are you examining this? THIS THING ISN'T EVEN EMBODIED." + + var/datum/action/changeling_expel_worm/expel_worm_action + +/mob/living/blood_worm_host/Login() + . = ..() + if (!.) + return + + if (IS_CHANGELING(src)) + to_chat(src, span_good("The blood worm in your body is vulnerable to your genetic prowess!")) + + if (!expel_worm_action) + expel_worm_action = new(src) + expel_worm_action.Grant(src) diff --git a/code/modules/antagonists/blood_worm/blood_worm_mob.dm b/code/modules/antagonists/blood_worm/blood_worm_mob.dm new file mode 100644 index 00000000000..a3a960abcd9 --- /dev/null +++ b/code/modules/antagonists/blood_worm/blood_worm_mob.dm @@ -0,0 +1,403 @@ +/mob/living/basic/blood_worm + icon = 'icons/mob/nonhuman-player/blood_worm_32x32.dmi' + + faction = list(FACTION_BLOOD_WORM) + + initial_language_holder = /datum/language_holder/blood_worm + + // FIXME: This should use MOB_BUG, but it makes hunter boxing instakill juveniles. + // I.e. blood worms should be susceptible to pest killer, but not hunter boxing. + mob_biotypes = MOB_ORGANIC + basic_mob_flags = FLAMMABLE_MOB + status_flags = CANPUSH // No CANSTUN, blood worms are immune to stuns by design. + + damage_coeff = list(BRUTE = 1, BURN = 1.5, TOX = 0, STAMINA = 0, OXY = 0) + + pressure_resistance = 200 + + combat_mode = TRUE + + melee_attack_cooldown = CLICK_CD_MELEE + + attack_sound = 'sound/items/weapons/bite.ogg' + attack_vis_effect = ATTACK_EFFECT_BITE + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + + minimum_survivable_temperature = 0 + maximum_survivable_temperature = T0C + 100 + unsuitable_cold_damage = 0 + + habitable_atmos = null + + // A vivid red. + lighting_cutoff_red = 40 + lighting_cutoff_green = 20 + lighting_cutoff_blue = 20 + + /// Identification number, i.e. "hatchling blood worm (id)" + /// Used for carrying the same number through growth stages. + var/id_number = null + + /// Effect name for stuff like "invade-[effect_name]". + /// Should correspond to the growth stage, like "adult". + var/effect_name = "" + + /// How long the leave host animation lasts for this type, in deciseconds. + var/leave_host_duration = 0 + + /// How much regular (human, blood pack, etc.) blood the worm has consumed. + var/consumed_normal_blood = 0 + /// How much synthetic (monkey, duplicated, etc.) blood the worm has consumed. + var/consumed_synth_blood = 0 + /// The maximum amount of synthetic blood counted for growth. + var/maximum_synth_blood = 1000 + /// How efficient ingesting synthetic blood is compared to normal blood. (ingested amount is multiplied by this) + var/synth_blood_efficiency = 0.7 + + /// The current host of the blood worm, if any. + /// You can use this to check if the blood worm has a host. + var/mob/living/carbon/human/host + /// The backseat mob for the mind of the current host, if any. + /// This mob is always dead as it's just a mind holder. + var/mob/living/blood_worm_host/backseat + + /// The blood display on the left side of the screen, which is shown to the blood worm while in a host, if any. + var/atom/movable/screen/blood_level/blood_display + + // Innate and shared actions + + /// Typed, please initialize with a proper action subtype. (empty = no action) + var/datum/action/cooldown/mob_cooldown/blood_worm/spit/spit_action + /// Typed, please initialize with a proper action subtype. (empty = no action) + var/datum/action/cooldown/mob_cooldown/blood_worm/leech/leech_action + /// Not typed, please leave empty. + var/datum/action/cooldown/mob_cooldown/blood_worm/invade/invade_action + /// Typed, please initialize with a proper action subtype. (empty = no action) + var/datum/action/cooldown/mob_cooldown/blood_worm/cocoon/cocoon_action + + // Host actions + + /// Typed, please initialize with a proper action subtype. (empty = no action) + var/datum/action/cooldown/mob_cooldown/blood_worm/inject/transfuse_action + /// Not typed, please leave empty. + var/datum/action/cooldown/mob_cooldown/blood_worm/eject/eject_action + /// Not typed, please leave empty. + var/datum/action/cooldown/mob_cooldown/blood_worm/revive/revive_action + + /// List of actions outside of a host. + var/list/innate_actions = list() + /// List of actions inside of a host. + var/list/host_actions = list() + + /// Whether the blood worm has a host AND is currently in control of that host. + var/is_possessing_host = FALSE + + /// How quickly the blood worm regenerates, in health per second. + var/regen_rate = 0 + + COOLDOWN_DECLARE(host_heat_alert_cooldown) + COOLDOWN_DECLARE(host_bleed_alert_cooldown) + +/mob/living/basic/blood_worm/Initialize(mapload) + . = ..() + + // Innate and shared actions + + if (ispath(spit_action, /datum/action/cooldown/mob_cooldown/blood_worm/spit)) + spit_action = new spit_action(src) + innate_actions += spit_action + host_actions += spit_action + + if (ispath(leech_action, /datum/action/cooldown/mob_cooldown/blood_worm/leech)) + leech_action = new leech_action(src) + innate_actions += leech_action + + invade_action = new(src) + innate_actions += invade_action + + if (ispath(cocoon_action, /datum/action/cooldown/mob_cooldown/blood_worm/cocoon)) + cocoon_action = new cocoon_action(src) + innate_actions += cocoon_action + + // Host actions + + if (ispath(transfuse_action, /datum/action/cooldown/mob_cooldown/blood_worm/inject)) + transfuse_action = new transfuse_action(src) + host_actions += transfuse_action + + eject_action = new(src) + host_actions += eject_action + + revive_action = new(src) + host_actions += revive_action + + grant_actions(src, innate_actions) + + ADD_TRAIT(src, TRAIT_BLOOD_HUD, INNATE_TRAIT) + + // Move speed delays at min health + // Hatchling goes from 1.5 up to 2 deciseconds + // Juvenile goes from 1.8 up to 2.3 deciseconds + // Adult goes from 2 up to 2.5 deciseconds + // For reference, a cyborg has a move speed delay of 1.5 deciseconds + AddComponent(/datum/component/health_scaling_effects, min_health_slowdown = 0.5) + + AddElement(/datum/element/anti_self_harm) + + id_number = rand(1, 999) + update_name() + +/mob/living/basic/blood_worm/Destroy() + unregister_host() + + spit_action = null + leech_action = null + invade_action = null + cocoon_action = null + + transfuse_action = null + eject_action = null + revive_action = null + + innate_actions = null + host_actions = null + + return ..() + +/mob/living/basic/blood_worm/Login() + . = ..() + if (!. || !client) + return FALSE + if (host) + ADD_TRAIT(host, TRAIT_MIND_TEMPORARILY_GONE, BLOOD_WORM_HOST_TRAIT) + +/mob/living/basic/blood_worm/Logout() + . = ..() + if (host) + REMOVE_TRAIT(host, TRAIT_MIND_TEMPORARILY_GONE, BLOOD_WORM_HOST_TRAIT) + +/mob/living/basic/blood_worm/process(seconds_per_tick, times_fired) + if (!host) + return + + sync_health() + +/mob/living/basic/blood_worm/Life(seconds_per_tick, times_fired) + . = ..() + + if (!host) + // Moved to host life while in a host. + adjust_worm_health(regen_rate * seconds_per_tick) + else + bodytemperature = T20C + +/mob/living/basic/blood_worm/handle_environment(datum/gas_mixture/environment, seconds_per_tick, times_fired) + if (host) + bodytemperature = T20C + else + return ..() + +/mob/living/basic/blood_worm/update_name(updates) + . = ..() + name = "[initial(name)] ([id_number])" + real_name = name + +/mob/living/basic/blood_worm/adjust_health(amount, updating_health, forced) + return host ? 0 : ..() // Prevents damage from adjust_x_loss while in a host, because that damage would be nullified by the next [proc/sync_health] call. Adjust host blood volume instead. + +/mob/living/basic/blood_worm/set_stat(new_stat) + . = ..() + + if (host && stat != CONSCIOUS) + leave_host() + +/mob/living/basic/blood_worm/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) + . = ..() + + if (host && loc != host) + unregister_host() + +/// Gets the current health of the worm, regardless of if its in a host or not. +/mob/living/basic/blood_worm/proc/get_worm_health() + return host ? min(host.get_blood_volume() * BLOOD_WORM_BLOOD_TO_HEALTH, maxHealth) : health + +/// Adjusts the current health of the worm, regardless of if its in a host or not. +/mob/living/basic/blood_worm/proc/adjust_worm_health(amount) + return host ? host.adjust_blood_volume(amount * BLOOD_WORM_HEALTH_TO_BLOOD) * BLOOD_WORM_BLOOD_TO_HEALTH : adjust_brute_loss(-amount) + +/mob/living/basic/blood_worm/proc/grant_actions(mob/target, list/actions) + for (var/datum/action/action as anything in actions) + action.Grant(target) + +/mob/living/basic/blood_worm/proc/remove_actions(mob/target, list/actions) + for (var/datum/action/action as anything in actions) + action.Remove(target) + +/mob/living/basic/blood_worm/proc/sync_health(already_ejecting = FALSE) + if (!host) + return + + var/host_max_blood = maxHealth * BLOOD_WORM_HEALTH_TO_BLOOD + + // Cap host blood to maximum + if (host.get_blood_volume() > host_max_blood) + host.set_blood_volume(host_max_blood) + + var/cached_blood_volume = host.get_blood_volume() + + // Sync mob health to host blood + set_brute_loss(maxHealth * (1 - cached_blood_volume / host_max_blood)) + + // Checks if we still have a host since setBruteLoss() can kill us, causing us to leave our host. + if (!already_ejecting && cached_blood_volume <= get_eject_volume_threshold()) + // Sent before leave_host() for the correct message order in chat + to_chat_self(span_userdanger("You run out of blood to control your host with!")) + + leave_host() + + // Has to be sent after the forceMove() in leave_host() + balloon_alert_self("out_of_blood!") + +/// Gets BLOOD_WORM_EJECT_THRESHOLD as an actionable blood volume threshold. +/mob/living/basic/blood_worm/proc/get_eject_volume_threshold() + return maxHealth * BLOOD_WORM_HEALTH_TO_BLOOD * BLOOD_WORM_EJECT_THRESHOLD + +/obj/effect/temp_visual/blood_worm_invade_host + icon = 'icons/mob/nonhuman-player/blood_worm_32x32.dmi' + icon_state = "invade-hatchling" // Not actually used for anything, it's just a default because otherwise the unit tests scream about it. + duration = 2 SECONDS + +/obj/effect/temp_visual/blood_worm_invade_host/Initialize(mapload, effect_name) + . = ..() + icon_state = "invade-[effect_name]" + +/mob/living/basic/blood_worm/hatchling + name = "hatchling blood worm" + desc = "A freshly hatched blood worm. It looks hungry and weak, requiring blood to grow further." + + icon_state = "hatchling" + icon_living = "hatchling" + icon_dead = "hatchling-dead" + + mob_size = MOB_SIZE_TINY + pass_flags = PASSTABLE | PASSMOB // The benefits of being a tiny little bastard. + + guaranteed_butcher_results = list(/obj/item/food/meat/slab/blood_worm = 1) + + maxHealth = 80 // In practice, escaping into a vent from someone who could 3 hit you with a basic bitch welder was really hard. This used to be 50, and was buffed to 80, but speed was slowed a bit. + health = 80 + + unsuitable_heat_damage = 1 + + obj_damage = 15 // 10 -> 15, in testing 10 proved to be way too slow at breaking morgue trays and such. Make sure that this doesn't go above airlock damage deflection. + melee_damage_lower = 12 + melee_damage_upper = 14 + armour_penetration = 10 + + speed = 0 + + effect_name = "hatchling" + leave_host_duration = 0.6 SECONDS + + leech_action = /datum/action/cooldown/mob_cooldown/blood_worm/leech/hatchling + cocoon_action = /datum/action/cooldown/mob_cooldown/blood_worm/cocoon/hatchling + + transfuse_action = /datum/action/cooldown/mob_cooldown/blood_worm/inject/hatchling + + regen_rate = 0.3 // 266 seconds to recover from 0 to 80, or almost 4 and a half minutes. + +/mob/living/basic/blood_worm/hatchling/Initialize(mapload) + . = ..() + + ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) + + AddComponent(/datum/component/slide_under_doors, slide_in_delay = 3 SECONDS) + +/mob/living/basic/blood_worm/juvenile + name = "juvenile blood worm" + desc = "A mid-sized blood worm. It looks bloodthirsty and has numerous long and extremely sharp teeth." + + icon_state = "juvenile" + icon_living = "juvenile" + icon_dead = "juvenile-dead" + + mob_size = MOB_SIZE_SMALL + + guaranteed_butcher_results = list(/obj/item/food/meat/slab/blood_worm = 2) + + maxHealth = 120 // Note that the juveniles are bigger and slower than hatchlings, making them far easier to hit by comparison. + health = 120 + + unsuitable_heat_damage = 1.5 + + obj_damage = 35 // Able to break most obstacles, such as airlocks. This is mandatory since they can't ventcrawl anymore. + melee_damage_lower = 18 // Juveniles can't run away nearly as easily, so they are expected to do direct combat against normal crew. (but lose hard to well-equipped sec) + melee_damage_upper = 22 + armour_penetration = 30 + + wound_bonus = 0 // Juveniles can afford to heal wounds on their hosts, unlike hatchlings. Note that this can't cause critical wounds. (at least it didn't in testing) + sharpness = SHARP_POINTY + + speed = 0.3 + + effect_name = "juvenile" + leave_host_duration = 1 SECONDS + + spit_action = /datum/action/cooldown/mob_cooldown/blood_worm/spit/juvenile + leech_action = /datum/action/cooldown/mob_cooldown/blood_worm/leech/juvenile + cocoon_action = /datum/action/cooldown/mob_cooldown/blood_worm/cocoon/juvenile + + transfuse_action = /datum/action/cooldown/mob_cooldown/blood_worm/inject/juvenile + + regen_rate = 0.4 // 300 seconds to recover from 0 to 120, or exactly 5 minutes. + +/mob/living/basic/blood_worm/juvenile/Initialize(mapload) + . = ..() + + AddComponent(/datum/component/slide_under_doors, slide_in_delay = 5 SECONDS) + +/mob/living/basic/blood_worm/adult + name = "adult blood worm" + desc = "A monstrosity of a blood worm. It'd probably be better to put your head in an industrial shredder rather than its maw." + + icon = 'icons/mob/nonhuman-player/blood_worm_32x48.dmi' + + icon_state = "adult" + icon_living = "adult" + icon_dead = "adult-dead" + health_doll_icon = "adult_blood_worm" + + // We undershoot a tiny bit so that Proto-Kinetic Crushers don't work on adult blood worms. + mob_size = MOB_SIZE_HUMAN + + guaranteed_butcher_results = list(/obj/item/food/meat/slab/blood_worm = 3) + + maxHealth = 180 // Used to be 150, turns out their lack of armor and weakness to burn made them too squishy. People kited them using lasguns, leaving them with no way to fight back at all. + health = 180 + + unsuitable_heat_damage = 2 + + obj_damage = 50 // You are not getting away. + melee_damage_lower = 25 + melee_damage_upper = 30 // Turns out adults regularly end up encountering advanced weapons like cap's sabre, lasguns + armor, eswords, etc. They need a strong melee. + armour_penetration = 50 // Adults will 100% encounter sec, they are shit out of luck without proper armor pen. + + wound_bonus = 0 // Able to cause critical wounds. + sharpness = SHARP_POINTY + + attack_verb_simple = "gore" + attack_verb_continuous = "gores" + + speed = 0.5 + + effect_name = "adult" + leave_host_duration = 1.4 SECONDS + + spit_action = /datum/action/cooldown/mob_cooldown/blood_worm/spit/adult + leech_action = /datum/action/cooldown/mob_cooldown/blood_worm/leech/adult + cocoon_action = /datum/action/cooldown/mob_cooldown/blood_worm/cocoon/adult + + transfuse_action = /datum/action/cooldown/mob_cooldown/blood_worm/inject/adult + + regen_rate = 0.5 // 360 seconds to recover from 0 to 180, or exactly 6 minutes. diff --git a/code/modules/antagonists/blood_worm/blood_worm_objectives.dm b/code/modules/antagonists/blood_worm/blood_worm_objectives.dm new file mode 100644 index 00000000000..de74b29b754 --- /dev/null +++ b/code/modules/antagonists/blood_worm/blood_worm_objectives.dm @@ -0,0 +1,81 @@ +/datum/objective/blood_worm + abstract_type = /datum/objective/blood_worm + +/datum/objective/blood_worm/proc/get_blood_worm_team() + RETURN_TYPE(/datum/team/blood_worm) + return team + +/datum/objective/blood_worm/kill + name = "KILL" + explanation_text = "We must prevent all members of station command from escaping alive on the emergency shuttle." + +/datum/objective/blood_worm/kill/check_completion() + for (var/mob/player_mob as anything in GLOB.player_list) + if (!(player_mob.mind?.assigned_role.departments_bitflags & DEPARTMENT_BITFLAG_COMMAND)) + continue + if (!considered_alive(player_mob.mind)) + continue + if (considered_exiled(player_mob.mind)) + continue + // Counts whiteship as escaped, but not pods. + if (player_mob.onCentCom() || player_mob.onSyndieBase()) + return FALSE + + return TRUE + +/datum/objective/blood_worm/consume + name = "CONSUME" + + var/blood_required = 0 + +/datum/objective/blood_worm/consume/New(text) + blood_required = rand(20, 30) * 100 + update_explanation_text() + +/datum/objective/blood_worm/consume/update_explanation_text() + explanation_text = "We must consume a total of at least [blood_required] units of real blood to sate our appetite." + +/datum/objective/blood_worm/consume/check_completion() + return get_blood_worm_team().blood_consumed_total >= blood_required + +/datum/objective/blood_worm/multiply + name = "MULTIPLY" + + var/times_required = 0 + +/datum/objective/blood_worm/multiply/New(text) + times_required = rand(2, 3) + update_explanation_text() + +/datum/objective/blood_worm/multiply/update_explanation_text() + explanation_text = "At least [times_required] of us must reproduce to pave the way for our overwhelming numbers." + +/datum/objective/blood_worm/multiply/check_completion() + return get_blood_worm_team().times_reproduced_total >= times_required + +/datum/objective/blood_worm/conquer + name = "CONQUER" + + var/worms_required = 0 + +/datum/objective/blood_worm/conquer/New(text) + worms_required = rand(3, 4) + update_explanation_text() + +/datum/objective/blood_worm/conquer/update_explanation_text() + explanation_text = "At least [worms_required] of us must escape alive on the emergency shuttle to conquer what is on the other side." + +/datum/objective/blood_worm/conquer/check_completion() + var/conquerors = 0 + + for (var/datum/mind/member as anything in team.members) + if (QDELETED(member.current)) + continue + if (!isbloodworm(member.current) && !HAS_TRAIT(member.current, TRAIT_BLOOD_WORM_HOST)) + continue + if (member.current.stat == DEAD) // This assumes that the mind of a blood worm that is inhabiting a dead host is in their blood worm mob. + continue + if (member.current.onCentCom() || member.current.onSyndieBase()) + conquerors++ + + return conquerors >= worms_required diff --git a/code/modules/antagonists/blood_worm/blood_worm_team.dm b/code/modules/antagonists/blood_worm/blood_worm_team.dm new file mode 100644 index 00000000000..5d186eb1280 --- /dev/null +++ b/code/modules/antagonists/blood_worm/blood_worm_team.dm @@ -0,0 +1,86 @@ +/datum/team/blood_worm + name = "\improper Blood Worms" + member_name = "blood worm" + + var/blood_consumed_total = 0 + var/times_reproduced_total = 0 + + var/static/list/objective_types = list( + /datum/objective/blood_worm/kill, + /datum/objective/blood_worm/consume, + /datum/objective/blood_worm/multiply, + /datum/objective/blood_worm/conquer, + ) + +/datum/team/blood_worm/New(starting_members) + . = ..() + + for (var/objective_type in objective_types) + objectives += new objective_type() + + for (var/datum/objective/objective as anything in objectives) + objective.team = src + +/datum/team/blood_worm/add_member(datum/mind/member) + . = ..() + register_member_mob(member.current) + RegisterSignal(member, COMSIG_MIND_TRANSFERRED, PROC_REF(on_mind_transferred)) + +/datum/team/blood_worm/remove_member(datum/mind/member) + UnregisterSignal(member, COMSIG_MIND_TRANSFERRED) + unregister_member_mob(member.current) + return ..() + +/datum/team/blood_worm/proc/on_mind_transferred(datum/mind/member, mob/previous_body) + SIGNAL_HANDLER + unregister_member_mob(previous_body) + register_member_mob(member.current) + +/datum/team/blood_worm/proc/register_member_mob(mob/member_mob) + if (!member_mob) + return + + RegisterSignal(member_mob, COMSIG_BLOOD_WORM_CONSUMED_BLOOD, PROC_REF(on_blood_worm_consumed_blood)) + RegisterSignal(member_mob, COMSIG_BLOOD_WORM_REPRODUCED, PROC_REF(on_blood_worm_reproduced)) + +/datum/team/blood_worm/proc/unregister_member_mob(mob/member_mob) + if (!member_mob) + return + + UnregisterSignal(member_mob, list(COMSIG_BLOOD_WORM_CONSUMED_BLOOD, COMSIG_BLOOD_WORM_REPRODUCED)) + +/datum/team/blood_worm/proc/on_blood_worm_consumed_blood(mob/living/basic/blood_worm/worm, normal_blood_amount, synth_blood_amount, total_blood_amount) + SIGNAL_HANDLER + blood_consumed_total += normal_blood_amount + +/datum/team/blood_worm/proc/on_blood_worm_reproduced(mob/living/basic/blood_worm/worm) + SIGNAL_HANDLER + times_reproduced_total++ + +/datum/team/blood_worm/roundend_report() + var/list/report = list() + + report += span_header("\The [name]:") + report += printplayerlist(members) + + if (length(objectives)) + report += span_header("Their collective goals:") + report += print_objective_list() + + report += "" + + report += did_we_win() ? span_greentext("The [name] were successful!") : span_redtext("The [name] have failed!") + + return "
[report.Join("
")]
" + +/datum/team/blood_worm/proc/print_objective_list() + . = list() + for (var/i in 1 to length(objectives)) + var/datum/objective/objective = objectives[i] + . += "Objective #[i]: [objective.explanation_text] [objective.get_roundend_success_suffix()]" + +/datum/team/blood_worm/proc/did_we_win() + for (var/datum/objective/objective as anything in objectives) + if (!objective.check_completion()) + return FALSE + return TRUE diff --git a/code/modules/antagonists/blood_worm/blood_worm_tester.dm b/code/modules/antagonists/blood_worm/blood_worm_tester.dm new file mode 100644 index 00000000000..33d2fa61afc --- /dev/null +++ b/code/modules/antagonists/blood_worm/blood_worm_tester.dm @@ -0,0 +1,87 @@ +/obj/item/blood_worm_tester + name = "hemoparasite testing tool" + desc = "A proprietary device patented by the DeForest Medical Corporation that is tailor-made for detecting hemoparasites, such as the infamous space-faring blood worm. The testing process is allegedly very painful." + + icon = 'icons/obj/antags/blood_worm.dmi' + icon_state = "tester" + + inhand_icon_state = "blood_worm_tester" + lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' + + w_class = WEIGHT_CLASS_SMALL + + var/spent = FALSE + +/obj/item/blood_worm_tester/Initialize(mapload) + . = ..() + AddElement(/datum/element/update_icon_updates_onmob) + update_appearance(UPDATE_ICON_STATE | UPDATE_DESC) + +/obj/item/blood_worm_tester/update_icon_state() + icon_state = spent ? "tester_spent" : "tester" + inhand_icon_state = spent ? "blood_worm_tester_spent" : "blood_worm_tester" + return ..() + +/obj/item/blood_worm_tester/update_desc(updates) + desc = "[initial(desc)] [spent ? "This one is spent." : "It's loaded for a single use."]" + return ..() + +/obj/item/blood_worm_tester/attack(mob/living/target_mob, mob/living/user, list/modifiers, list/attack_modifiers) + if (spent) + target_mob.balloon_alert(user, "already spent!") + return + if (!ISADVANCEDTOOLUSER(user)) + target_mob.balloon_alert(user, "needs dexterity!") + return + if (!ishuman(target_mob)) + target_mob.balloon_alert(user, "target a human!") + return + if (!target_mob.try_inject(user, injection_flags = INJECT_TRY_SHOW_ERROR_MESSAGE)) + return + + if (target_mob != user) + user.visible_message( + message = span_danger("\The [user] jab[user.p_s()] \the [target_mob] with \the [src]!"), + self_message = span_danger("You jab \the [target_mob] with \the [src]!"), + ignored_mobs = target_mob, + ) + + target_mob.show_message( + msg = span_userdanger("\The [user] jab[user.p_s()] you with \the [src]!"), + type = MSG_VISUAL, + ) + else + user.visible_message( + message = span_notice("\The [user] jab[user.p_s()] [user.p_themselves()] with \the [src]."), + self_message = span_notice("You jab yourself with \the [src]."), + ) + + log_combat(user, target_mob, "tested", src) + + target_mob.painful_scream() + target_mob.apply_damage(rand(10, 15), BRUTE, def_zone = check_zone(user.zone_selected), wound_bonus = CANT_WOUND, attack_direction = get_dir(user, target_mob), attacking_item = src) + target_mob.add_mood_event("tester", /datum/mood_event/jabbed_with_tester) + + playsound(src, 'sound/items/hypospray.ogg', vol = 50, vary = TRUE) + + say("Scanning...") + + // Handling it as a timer instead of a do_after prevents abusing the do_after to do antag checks. + // Otherwise, if the target runs away from the testing do_after, then that means they're likely a host. + // So, contrary to intuition, having this on a timer is way better for the blood worms than a do_after. + addtimer(CALLBACK(src, PROC_REF(report_results), HAS_TRAIT(target_mob, TRAIT_BLOOD_WORM_HOST)), 3 SECONDS) + + spent = TRUE + update_appearance(UPDATE_ICON_STATE | UPDATE_DESC) + +/obj/item/blood_worm_tester/proc/can_inject(mob/living/target_mob, mob/living/user, target_zone) + return target_mob.try_inject(user, target_zone, injection_flags = INJECT_TRY_SHOW_ERROR_MESSAGE) + +/obj/item/blood_worm_tester/proc/report_results(is_worm) + if (is_worm) + say("Active hemoparasite presence detected!") + playsound(src, 'sound/machines/beep/twobeep.ogg', vol = 50, vary = TRUE) + else + say("No anomalous readings found.") + playsound(src, 'sound/machines/buzz/buzz-two.ogg', vol = 40, vary = TRUE) diff --git a/code/modules/antagonists/blood_worm/blood_worm_text_feedback.dm b/code/modules/antagonists/blood_worm/blood_worm_text_feedback.dm new file mode 100644 index 00000000000..c002e271717 --- /dev/null +++ b/code/modules/antagonists/blood_worm/blood_worm_text_feedback.dm @@ -0,0 +1,97 @@ +// Any proc that communicates text to/from a blood worm goes here. +// These procs are usually pretty big and there are quite a few of them. + +/mob/living/basic/blood_worm/examining(atom/target, list/result) + add_special_examining_messages(target, result) + +/mob/living/basic/blood_worm/proc/on_host_examining(datum/source, atom/target, list/examine_strings) + SIGNAL_HANDLER + add_special_examining_messages(target, examine_strings) + +/mob/living/basic/blood_worm/proc/add_special_examining_messages(atom/target, list/result) + if (!isliving(target) || target == host) + return + + var/mob/living/bloodbag = target + + var/cached_blood_volume = bloodbag.get_blood_volume() + + if (cached_blood_volume <= 0) + return + + var/list/blood_data = bloodbag.get_blood_data() + + var/synth_content = blood_data?[BLOOD_DATA_SYNTH_CONTENT] + if (!isnum(synth_content)) + synth_content = 0 // Otherwise the switch statement breaks. + + var/normal_content = 1 - synth_content + + var/normal_blood_after = consumed_normal_blood + cached_blood_volume * normal_content + var/synth_blood_after = min(consumed_synth_blood + cached_blood_volume * synth_content * synth_blood_efficiency, maximum_synth_blood) + + var/total_blood_now = get_consumed_blood() + var/total_blood_after = normal_blood_after + synth_blood_after + + var/potential_gain = total_blood_after - total_blood_now + + var/rounded_volume = CEILING(cached_blood_volume, 1) + + var/growth_string = "" + if (HAS_TRAIT(bloodbag, TRAIT_BLOOD_WORM_HOST)) + growth_string = ", but consuming it is impossible, as they are a host" + else if (total_blood_now < cocoon_action?.total_blood_required) + var/rounded_growth = CEILING(potential_gain / cocoon_action.total_blood_required * 100, 1) + if (rounded_growth > 0) + growth_string = ", consuming it would contribute [rounded_growth]% to your growth" + else + growth_string = ", but consuming it wouldn't contribute to your growth" + else + if (!istype(src, /mob/living/basic/blood_worm/adult)) + growth_string = ". You are already ready to mature" + else + growth_string = ". You are already fully grown" + + var/synth_string = "[CEILING(synth_content * 100, 1)]%" + switch(synth_content) + if (-INFINITY to 0) + synth_string = "not" + if (1 to INFINITY) + synth_string = "fully" + if (0 to 1) + synth_string = "[CEILING(synth_content * 100, 1)]%" + + result += span_notice("[target.p_They()] [target.p_have()] [rounded_volume] unit[rounded_volume == 1 ? "" : "s"] of blood[growth_string]. [target.p_Their()] blood is [synth_string] synthetic.") + +/mob/living/basic/blood_worm/get_status_tab_items() + return ..() + get_special_status_tab_items() + +/mob/living/basic/blood_worm/proc/on_host_get_status_tab_items(datum/source, list/items) + SIGNAL_HANDLER + items += "Worm Health: [round((health / maxHealth) * 100)]%" + items += get_special_status_tab_items() + +/mob/living/basic/blood_worm/proc/get_special_status_tab_items() + . = list() + + var/normal = consumed_normal_blood + var/synth = consumed_synth_blood + var/total = normal + synth + + var/total_required = cocoon_action?.total_blood_required + + if (total_required > 0) + . += "Growth: [FLOOR(total / total_required * 100, 1)]%" + . += "Blood Consumed" + . += "- Normal: [CEILING(normal, 1)]u" + . += "- Synthetic: [CEILING(synth, 1)]u (MAX: [maximum_synth_blood]u)" + . += "- Total: [CEILING(total, 1)]u (REQ: [total_required]u)" + +/// Sends text to the blood worm, whether they are possessing a host or not. +/mob/living/basic/blood_worm/proc/to_chat_self(text) + to_chat(is_possessing_host ? host : src, text) + +/// Sends a balloon alert to the blood worm, whether they are possessing a host or not. +/mob/living/basic/blood_worm/proc/balloon_alert_self(text) + var/mob/living/self = is_possessing_host ? host : src + self.balloon_alert(self, text) diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm index a20da754d4e..6cf17e5efab 100644 --- a/code/modules/antagonists/brother/brother.dm +++ b/code/modules/antagonists/brother/brother.dm @@ -93,7 +93,7 @@ flashed.balloon_alert(source, "[flashed.p_theyre()] loyal to someone else!") return - if (HAS_TRAIT(flashed, TRAIT_UNCONVERTABLE)) + if (HAS_MIND_TRAIT(flashed, TRAIT_UNCONVERTABLE)) flashed.balloon_alert(source, "[flashed.p_they()] resist!") return diff --git a/code/modules/antagonists/changeling/powers/expel_worm.dm b/code/modules/antagonists/changeling/powers/expel_worm.dm new file mode 100644 index 00000000000..7cda9bbe87a --- /dev/null +++ b/code/modules/antagonists/changeling/powers/expel_worm.dm @@ -0,0 +1,26 @@ +/datum/action/changeling_expel_worm + name = "Expel Worm" + desc = "Forcefully expel the blood worm in your body." + + background_icon_state = "bg_changeling" + overlay_icon_state = "bg_changeling_border" + button_icon = 'icons/mob/actions/actions_changeling.dmi' + button_icon_state = "expel_worm" + +/datum/action/changeling_expel_worm/IsAvailable(feedback) + if (!IS_CHANGELING(owner)) + return FALSE + if (!istype(owner, /mob/living/blood_worm_host)) + return FALSE + if (!HAS_TRAIT(owner.loc, TRAIT_BLOOD_WORM_HOST)) + return FALSE + if (!locate(/mob/living/basic/blood_worm) in owner.loc) + return FALSE + return TRUE + +/datum/action/changeling_expel_worm/Trigger(mob/clicker, trigger_flags) + var/mob/living/basic/blood_worm/invader = locate() in owner.loc + to_chat(owner, span_danger("You expel \the [invader] from your body!")) + to_chat(invader, span_userdanger("You are forcefully expelled by the body of \the [owner.loc]!")) + invader.leave_host() // hasta la vista, worm + return TRUE diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index 9754885e423..fc4104420ce 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -400,3 +400,13 @@ /obj/item/mecha_parts/mecha_equipment/weapon/energy/thermal/inferno, ) crate_name = "thermal cannons crate" + +/datum/supply_pack/security/blood_worm_testers + name = "Hemoparasite Testing Crate" + desc = "Contains four single-use hemoparasite testing tools. \ + These devices accurately report whether a patient is inhabited by a hemoparasite, such as the infamous space-faring blood worm. \ + The DeForest Medical Corporation claims no liability for any mental and/or physical trauma caused to patients from the improper use of these devices." + cost = CARGO_CRATE_VALUE * 50 // These aren't meant to be bought en-masse. + access_view = ACCESS_SECURITY + contains = list(/obj/item/blood_worm_tester = 4) + crate_name = "hemoparasite testing crate" diff --git a/code/modules/language/_language_holder.dm b/code/modules/language/_language_holder.dm index dc65a708841..c4207f40f07 100644 --- a/code/modules/language/_language_holder.dm +++ b/code/modules/language/_language_holder.dm @@ -464,6 +464,15 @@ GLOBAL_LIST_INIT(prototype_language_holders, init_language_holder_prototypes()) blocked_speaking = list(/datum/language/common = list(LANGUAGE_ATOM)) blocked_understanding = list(/datum/language/common = list(LANGUAGE_ATOM)) +/datum/language_holder/blood_worm + understood_languages = list( + /datum/language/wormspeak = list(LANGUAGE_ATOM), + /datum/language/common = list(LANGUAGE_ATOM) + ) + + spoken_languages = list(/datum/language/wormspeak = list(LANGUAGE_ATOM)) + blocked_speaking = list(/datum/language/common = list(LANGUAGE_ATOM)) + /datum/language_holder/synthetic understood_languages = list( /datum/language/common = list(LANGUAGE_ATOM), diff --git a/code/modules/language/wormspeak.dm b/code/modules/language/wormspeak.dm new file mode 100644 index 00000000000..b068921853f --- /dev/null +++ b/code/modules/language/wormspeak.dm @@ -0,0 +1,8 @@ +/datum/language/wormspeak + name = "Wormspeak" + desc = "A language used by all kinds of large worms. Formed from the bellowing of their giant maws." + key = "w" + syllables = list("oaaa", "eeo", "aaeo", "ooe", "eaeaea", "aeaeoo", "o", "ae") + icon_state = "wormspeak" + default_priority = 90 + always_use_default_namelist = TRUE diff --git a/code/modules/logging/categories/log_category_game.dm b/code/modules/logging/categories/log_category_game.dm index f337d5f821c..fced988c1fc 100644 --- a/code/modules/logging/categories/log_category_game.dm +++ b/code/modules/logging/categories/log_category_game.dm @@ -61,3 +61,8 @@ category = LOG_CATEGORY_GAME_ACCESS config_flag = /datum/config_entry/flag/log_access master_category = /datum/log_category/game + +/datum/log_category/game_blood_worm + category = LOG_CATEGORY_GAME_BLOOD_WORM + config_flag = /datum/config_entry/flag/log_blood_worm + master_category = /datum/log_category/game diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 7e97ef7a821..7bc5c93c8df 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -30,6 +30,10 @@ var/amount = blood_volume + // For simple multipliers, like a blood worm in a mob. + for (var/source in blood_volume_modifiers) + amount *= blood_volume_modifiers[source] + // Handled here instead of in the saline reagent datum, because this way the modification order is consistent. // E.g. if you have an effect that modifies blood volume over the dilution cap, then saline should do nothing. var/datum/reagent/medicine/salglu_solution/saline = reagents?.has_reagent(/datum/reagent/medicine/salglu_solution) @@ -48,15 +52,15 @@ if (!CAN_HAVE_BLOOD(src) && amount != 0) return cached_blood_volume - if (amount == cached_blood_volume) - return cached_blood_volume + // Don't return early even if "amount == cached_blood_volume", because we don't know if minimum or maximum would change it anyway. + // Putting this here because I made that mistake and it led to a bug. blood_volume = clamp(amount, minimum, maximum) var/updated_blood_volume = get_blood_volume() if (cached_blood_volume != updated_blood_volume) - living_flags |= QUEUE_BLOOD_UPDATE + QUEUE_BLOOD_UPDATE(src) return updated_blood_volume @@ -85,29 +89,53 @@ var/updated_blood_volume = set_blood_volume(cached_blood_volume + amount, minimum = minimum, maximum = maximum, cached_blood_volume = cached_blood_volume) return updated_blood_volume - cached_blood_volume -/// Updates effects that rely on blood volume, like blood HUDs. +/// Updates effects that rely on blood volume or status, like blood HUDs. /mob/living/proc/update_blood_effects() - living_flags &= ~QUEUE_BLOOD_UPDATE + living_flags &= ~BLOOD_UPDATE_QUEUED + blood_hud_set_status() /// Updates effects that rely on whether the mob can have blood. /mob/living/proc/update_blood_status() var/had_blood = CAN_HAVE_BLOOD(src) + var/has_blood = can_have_blood() - living_flags = can_have_blood() ? (living_flags | LIVING_CAN_HAVE_BLOOD) : (living_flags & ~LIVING_CAN_HAVE_BLOOD) - - var/has_blood = CAN_HAVE_BLOOD(src) - + // Must not return early on first init for mobs that can have blood. (otherwise they will miss being added to the blood hud) if (had_blood == has_blood) return var/old_blood_volume = get_blood_volume() + // Must be sent before living flags are updated. + SEND_SIGNAL(src, COMSIG_LIVING_PRE_UPDATE_BLOOD_STATUS, had_blood, has_blood, old_blood_volume) + + living_flags = has_blood ? (living_flags | LIVING_CAN_HAVE_BLOOD) : (living_flags & ~LIVING_CAN_HAVE_BLOOD) + set_blood_volume(has_blood ? default_blood_volume : 0) var/new_blood_volume = get_blood_volume() + // Must be sent after living flags are updated. SEND_SIGNAL(src, COMSIG_LIVING_UPDATE_BLOOD_STATUS, had_blood, has_blood, old_blood_volume, new_blood_volume) + var/datum/atom_hud/data/human/blood/blood_hud = GLOB.huds[DATA_HUD_BLOOD] + + if (has_blood) + blood_hud.add_atom_to_hud(src) + else + blood_hud.remove_atom_from_hud(src) + + update_blood_effects() + +/// Sets the blood volume multiplier for the given source to the given multiplier value. +/mob/living/proc/set_blood_volume_modifier(source, multiplier) + LAZYSET(blood_volume_modifiers, source, multiplier) + QUEUE_BLOOD_UPDATE(src) + +/// Removes the blood volume multiplier for the given source. +/mob/living/proc/remove_blood_volume_modifier(source) + LAZYREMOVE(blood_volume_modifiers, source) + QUEUE_BLOOD_UPDATE(src) + /// A one-time coagulating effect of the mob's bloodiest cut/stab /// Returns TRUE if a wound was affected, FALSE if no wound was found /mob/living/proc/coagulant_effect(amount_to_heal = 1) @@ -382,8 +410,20 @@ adjust_blood_volume(-amount) return amount + var/cached_target_blood_volume = target.get_blood_volume() + // And, obviously, cap it to how much blood the target can take if they're living. amount = target.adjust_blood_volume(amount, maximum = BLOOD_VOLUME_MAX_LETHAL) + + // Synthetic blood handling, used for capping blood worm growth from monkeys, blood bags and basic mobs. This forces blood worms to kill people to reach adulthood. + if (!IS_BLOOD_ALWAYS_SYNTHETIC(target)) + var/added_synth_volume = amount * get_blood_synth_content() + var/existing_synth_volume = cached_target_blood_volume * target.get_blood_synth_content() + + if (added_synth_volume != 0 || existing_synth_volume != 0) + // A simple weighted average that simplifies down to "total synth volume / total blood volume" i.e. "how much of their blood is synthetic" + target.AddComponent(/datum/component/synth_blood, (added_synth_volume + existing_synth_volume) / (amount + cached_target_blood_volume)) + adjust_blood_volume(-amount) return amount @@ -418,6 +458,10 @@ if(LAZYLEN(disease_resistances)) blood_data["resistances"] = disease_resistances.Copy() + var/synth_content = get_blood_synth_content() + if (synth_content > 0) + blood_data[BLOOD_DATA_SYNTH_CONTENT] = synth_content + // DNA, mind, facitons, etc don't get stored in stuff like oil if (!(blood_type.blood_flags & BLOOD_ADD_DNA)) return blood_data @@ -775,5 +819,14 @@ return blood_alcohol_content +/// Returns on a 0-1 scale how synthetic this mobs blood is. Used for blood worms to cap growth from easily accessible sources of blood. +/mob/living/proc/get_blood_synth_content() + if (IS_BLOOD_ALWAYS_SYNTHETIC(src)) + return 1 // Basic mobs, simple mobs, born monkeys and spawned mobs have fully synthetic blood. + + // Handles accounting for synthetic blood injected into mobs that don't normally have it. + var/datum/component/synth_blood/synth_comp = GetComponent(/datum/component/synth_blood) + return synth_comp?.synth_content + #undef BLOOD_DRIP_RATE_MOD #undef DRUNK_POWER_TO_BLOOD_ALCOHOL diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index fd063a075f2..c377632f2f4 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -5,7 +5,7 @@ icon = 'icons/mob/human/human.dmi' icon_state = "human_basic" appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE|LONG_GLIDE - hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPSEC_FIRST_HUD,IMPSEC_SECOND_HUD,ANTAG_HUD,GLAND_HUD,FAN_HUD) + hud_possible = list(HEALTH_HUD,STATUS_HUD,BLOOD_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPSEC_FIRST_HUD,IMPSEC_SECOND_HUD,ANTAG_HUD,GLAND_HUD,FAN_HUD) hud_type = /datum/hud/human pressure_resistance = 25 buckle_lying = 0 diff --git a/code/modules/mob/living/carbon/init_signals.dm b/code/modules/mob/living/carbon/init_signals.dm index 415d1f908c0..a46acd8c520 100644 --- a/code/modules/mob/living/carbon/init_signals.dm +++ b/code/modules/mob/living/carbon/init_signals.dm @@ -14,6 +14,7 @@ RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_VIRUSIMMUNE), PROC_REF(on_virusimmune_trait_gain)) RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_TOXIMMUNE), PROC_REF(on_toximmune_trait_gain)) RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_GENELESS), PROC_REF(on_geneless_trait_gain)) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_NO_SPLIT_PERSONALITY), PROC_REF(on_no_split_personality_trait_gain)) /** * On gain of TRAIT_AGENDER @@ -130,3 +131,13 @@ SIGNAL_HANDLER dna?.remove_all_mutations() + +/** + * On gain of TRAIT_NO_SPLIT_PERSONALITY + * + * This will make the mob lose the split personality trauma if they have it. + */ +/mob/living/carbon/proc/on_no_split_personality_trait_gain(datum/source) + SIGNAL_HANDLER + + cure_trauma_type(/datum/brain_trauma/severe/split_personality, TRAUMA_LIMIT_ABSOLUTE) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 45b4142ed4b..1f5e2b908f9 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -486,9 +486,19 @@ if(blood_type.reagent_type != chem.type) return + var/cached_blood_volume = get_blood_volume() + var/blood_added = adjust_blood_volume(round(reac_volume, CHEMICAL_VOLUME_ROUNDING)) reagents.remove_reagent(chem.type, blood_added) + if(chem.data?[BLOOD_DATA_SYNTH_CONTENT] && !IS_BLOOD_ALWAYS_SYNTHETIC(src)) + var/added_synth_volume = blood_added * chem.data[BLOOD_DATA_SYNTH_CONTENT] + var/existing_synth_volume = cached_blood_volume * get_blood_synth_content() + + if (added_synth_volume != 0 || existing_synth_volume != 0) + // A simple weighted average that simplifies down to "total synth volume / total blood volume" i.e. "how much of our blood is synthetic" + AddComponent(/datum/component/synth_blood, (added_synth_volume + existing_synth_volume) / (blood_added + cached_blood_volume)) + if(chem.data?["blood_type"]) var/datum/blood_type/donor_type = chem.data["blood_type"] if(!(donor_type.type_key() in blood_type.compatible_types)) diff --git a/code/modules/mob/living/init_signals.dm b/code/modules/mob/living/init_signals.dm index eeaeb9d3b72..34579f82174 100644 --- a/code/modules/mob/living/init_signals.dm +++ b/code/modules/mob/living/init_signals.dm @@ -73,6 +73,11 @@ RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_BASIC_HEALTH_HUD_VISIBLE), PROC_REF(add_to_basic_health_hud)) RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_BASIC_HEALTH_HUD_VISIBLE), PROC_REF(remove_from_basic_health_hud)) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_APATHETIC), PROC_REF(on_apathetic_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_APATHETIC), PROC_REF(on_apathetic_trait_loss)) + + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_MIND_TEMPORARILY_GONE), PROC_REF(on_mind_temporarily_gone_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_MIND_TEMPORARILY_GONE), PROC_REF(on_mind_temporarily_gone_trait_loss)) /// Called when [TRAIT_KNOCKEDOUT] is added to the mob. /mob/living/proc/on_knockedout_trait_gain(datum/source) @@ -313,3 +318,24 @@ SIGNAL_HANDLER var/datum/atom_hud/data/human/medical/basic/hud = GLOB.huds[DATA_HUD_MEDICAL_BASIC] hud.remove_atom_from_hud(src) + +/// Called when [TRAIT_APATHETIC] is added to the mob. +/mob/living/proc/on_apathetic_trait_gain(datum/source) + SIGNAL_HANDLER + mob_mood?.update_mood() + mob_mood?.set_sanity(SANITY_NEUTRAL) + +/// Called when [TRAIT_APATHETIC] is removed from the mob. +/mob/living/proc/on_apathetic_trait_loss(datum/source) + SIGNAL_HANDLER + mob_mood?.update_mood() + +/// Called when [TRAIT_MIND_TEMPORARILY_GONE] is added to the mob. +/mob/living/proc/on_mind_temporarily_gone_trait_gain(datum/source) + SIGNAL_HANDLER + med_hud_set_status() + +/// Called when [TRAIT_MIND_TEMPORARILY_GONE] is removed from the mob. +/mob/living/proc/on_mind_temporarily_gone_trait_loss(datum/source) + SIGNAL_HANDLER + med_hud_set_status() diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index c5197578b77..dc50f5ec56c 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -64,6 +64,9 @@ update_nutrition() living_flags &= ~QUEUE_NUTRITION_UPDATE + if (living_flags & BLOOD_UPDATE_QUEUED) + update_blood_effects() + if(stat != DEAD) return TRUE diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index f8ac8fa8d01..cfc7924aa3c 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -1,7 +1,7 @@ /mob/living see_invisible = SEE_INVISIBLE_LIVING abstract_type = /mob/living - hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD) + hud_possible = list(HEALTH_HUD,STATUS_HUD,BLOOD_HUD,ANTAG_HUD) pressure_resistance = 10 hud_type = /datum/hud/living interaction_flags_click = ALLOW_RESTING @@ -169,6 +169,9 @@ var/blood_volume = 0 /// The default blood volume of the mob. Used primarily for healing bloodloss. var/default_blood_volume = 0 + /// Lazylist of blood volume modifiers. These multiply blood volume when get_blood_volume(apply_modifiers = TRUE) is used. + /// Use set_blood_volume_modifier(multiplier, source) and remove_blood_volume_modifier(source) to modify this. + var/list/blood_volume_modifiers = null ///a list of all status effects the mob has var/list/status_effects diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 82aa79711d8..00d80357717 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -583,6 +583,7 @@ if(!result_combined) var/list/result = examinify.examine(src) var/atom_title = examinify.examine_title(src, thats = TRUE) + examining(examinify, result) SEND_SIGNAL(src, COMSIG_MOB_EXAMINING, examinify, result) if(removes_double_click) result += span_notice("You can examine [examinify] closer...") @@ -591,6 +592,11 @@ to_chat(src, span_infoplain(result_combined)) SEND_SIGNAL(src, COMSIG_MOB_EXAMINATE, examinify) +/// Handles adding examine messages for the target that are specific to this mob, e.g. a blood worm examining how much blood a living target has. +/mob/proc/examining(atom/target, list/result) + SHOULD_NOT_SLEEP(TRUE) + return + /mob/Topic(href, list/href_list) . = ..() if(.) diff --git a/code/modules/reagents/chemistry/holder/holder.dm b/code/modules/reagents/chemistry/holder/holder.dm index 64e4d3ed09b..3d50d5c1e28 100644 --- a/code/modules/reagents/chemistry/holder/holder.dm +++ b/code/modules/reagents/chemistry/holder/holder.dm @@ -142,10 +142,10 @@ iter_reagent.purity = ((iter_reagent.creation_purity * iter_reagent.volume) + (added_purity * amount)) /(iter_reagent.volume + amount) //This should add the purity to the product iter_reagent.creation_purity = iter_reagent.purity iter_reagent.ph = ((iter_reagent.ph * (iter_reagent.volume)) + (added_ph * amount)) / (iter_reagent.volume + amount) + iter_reagent.on_merge(data, amount) // Update this before updating volume. FIXME: Move all of the surrounding crap into this proc so implementations decide whether they go first or base code goes first. iter_reagent.volume += amount update_total() - iter_reagent.on_merge(data, amount) if(reagtemp != cached_temp) var/new_heat_capacity = heat_capacity() if(new_heat_capacity) diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index f6ad2894b94..a7dc118f2c0 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -237,11 +237,23 @@ /datum/chemical_reaction/mix_virus/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list - if(B?.data) - var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"] - if(D) - D.Evolve(level_min, level_max) + if(!B) + return + if(!B.data) + B.data = list() + var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"] + if(D) + D.Evolve(level_min, level_max) + + // All blood duplicated via this reaction is synthetic. + var/added_synth_volume = created_volume + + // Blood reagents handle their merger code BEFORE this code runs. So the existing synth volume is already averaged into the total volume. + var/existing_synth_volume = B.volume * B.data[BLOOD_DATA_SYNTH_CONTENT] + + // A simple weighted average that simplifies down to "total synth volume / total blood volume" i.e. "how much of the blood is synthetic" + B.data[BLOOD_DATA_SYNTH_CONTENT] = (added_synth_volume + existing_synth_volume) / B.volume /datum/chemical_reaction/mix_virus/mix_virus_2 required_reagents = list(/datum/reagent/toxin/mutagen = 1) diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 8d98d91b55a..3503649e724 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -14,7 +14,8 @@ if (!blood_type) return var/datum/blood_type/bloodtype = get_blood_type(blood_type) - reagents.add_reagent(bloodtype.reagent_type, volume, list("blood_type" = bloodtype, "blood_DNA" = bloodtype.dna_string), creation_callback = CALLBACK(src, PROC_REF(on_blood_created))) + // Blood pack blood is halfway synthetic, meaning instead of a maximum of like 6 blood worms being able to become adults via 2 freezers, only 3 or so can. + reagents.add_reagent(bloodtype.reagent_type, volume, list("blood_type" = bloodtype, "blood_DNA" = bloodtype.dna_string, BLOOD_DATA_SYNTH_CONTENT = 0.5), creation_callback = CALLBACK(src, PROC_REF(on_blood_created))) /obj/item/reagent_containers/blood/proc/on_blood_created(datum/reagent/new_blood) new_blood.AddElement(/datum/element/blood_reagent, null, get_blood_type(blood_type)) diff --git a/code/modules/reagents/withdrawal/_addiction.dm b/code/modules/reagents/withdrawal/_addiction.dm index 0e763baaf47..2c3e788dec1 100644 --- a/code/modules/reagents/withdrawal/_addiction.dm +++ b/code/modules/reagents/withdrawal/_addiction.dm @@ -60,6 +60,11 @@ LAZYREMOVE(victim_mind.active_addictions, type) /datum/addiction/proc/process_addiction(mob/living/carbon/affected_carbon, seconds_per_tick) + // Acts as if you're on the drug at all times, while also forcibly preventing the effects of withdrawal by returning early. + if(HAS_TRAIT(affected_carbon, TRAIT_NO_WITHDRAWALS)) + end_withdrawal(affected_carbon) + return FALSE + var/current_addiction_cycle = LAZYACCESS(affected_carbon.mind.active_addictions, type) //If this is null, we're not addicted var/on_drug_of_this_addiction = FALSE for(var/datum/reagent/possible_drug as anything in affected_carbon.reagents.reagent_list) //Go through the drugs in our system diff --git a/code/modules/spells/spell_types/shapeshift/_shapeshift.dm b/code/modules/spells/spell_types/shapeshift/_shapeshift.dm index 06b04198e6b..7ecd0e6b852 100644 --- a/code/modules/spells/spell_types/shapeshift/_shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift/_shapeshift.dm @@ -160,7 +160,9 @@ // Make sure it's castable even in their new form. pre_shift_requirements = spell_requirements spell_requirements &= ~(SPELL_REQUIRES_HUMAN|SPELL_REQUIRES_WIZARD_GARB) - ADD_TRAIT(new_shape, TRAIT_DONT_WRITE_MEMORY, SHAPESHIFT_TRAIT) // If you shapeshift into a pet subtype we don't want to update Poly's deathcount or something when you die + + // If you shapeshift into a pet subtype we don't want to update Poly's deathcount or something when you die + new_shape.add_traits(list(TRAIT_DONT_WRITE_MEMORY, TRAIT_SHAPESHIFTED), SHAPESHIFT_TRAIT) // Make sure that if you shapechanged into a bot, the AI can't just turn you off. var/mob/living/simple_animal/bot/polymorph_bot = new_shape diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_bloodworm.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_bloodworm.png new file mode 100644 index 0000000000000000000000000000000000000000..5e96a563b83a57e9a9ea7806f4870bf660ecf585 GIT binary patch literal 508 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 delta 25574 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 diff --git a/icons/mob/actions/actions_blood_worm.dmi b/icons/mob/actions/actions_blood_worm.dmi new file mode 100644 index 0000000000000000000000000000000000000000..95bce38ce6cd53e057a461e1ecf7feba3d6eb0dd GIT binary patch literal 3719 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 PCAfU)if)NEIr9Gi-AJin literal 0 HcmV?d00001 diff --git a/icons/mob/actions/actions_changeling.dmi b/icons/mob/actions/actions_changeling.dmi index 506f91fc5ccc9b4fbee7295fbaea76712bca9ba5..a721505a8c07d8f20c1182cc6270ee7ce8c5b75b 100644 GIT binary patch literal 24497 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 MsyYu#l&wPl4@GMfcmMzZ literal 10647 zcmV;IDQMP-P)&=O!C!r>9k9U9threDOwZ<1Troug*Q7!R!?l0Vv^YiODTEUUS`(qv`ZQ7hIsO$ zi}%2t++$0$sGdZ1#vvyXkjMb2^O_0}0001eRYli~W8b27=(vch zFL3M}Bzpx438yyS^14(41`g3hvf-Qm${6dN49E}{>gwwJ{QUU%_$o*qDk%|Mm+rv8 zz<_{&W@&Aala|88%1#>{BO@cOyqQN77Hm2`nrLllQdZo;!yFtODk>_jmz)3p|AGPl zsR97P2?tgH0ALOaf&c)C4hxqB1)UQRBOWJb7ZQ#a5}_OxlOGss9Tt%t7Nj8?$t4_# z5DShO5|JJjt`G~c84|M|7R474$R8MO9~hG%7_=c6r6e87Cmz7Szzg6DdU}4KprG}@ znvs!|y&UQa00001bW%=J06^y0W&i*J0(w+fbVOxyV{&P5bZKvH004NLl~zq}+b|40 zC%+SEfJ9@gOao5-;Z*JpaT|2Js6OLM~WZsQNGQ&&_x-p12M>`VjpmqWY~Kb9B~|#Ws}Z3i@thdAnCyk{(8L!3 z&Rr!fIC@UA2dCk5dJm9`sUb;erz+750c^V{1-ZZ&+Q1|Zc#W1Yw7IAqjTkVo$p_+& zQafZ6-L-RDoT{OqHF&~YW!N+sLM2%)#I7B;Gws5A2w@pXxkWYEE*t!U+Nnz&?@O>P^^f?y5tg!QZ^uz`|ACq44LOi=C8)e&-?8UMF< z)Kd&_s>gQ^`w!ng`u@v}zPeeE1MB;AZckqwR?>T|UK2TcloS)A4#*MblBC@jixUk( zA?T|hM$4V&Yc{vLm-pxOm*5Z1Nph*R>-vTO03ZNKL_t(|ob8>9e;h}V$7@EjYt8JA z<(0h~MGlG*Y$w=OBpxQ=k-(8RgnQpXFpd)lkU${hF82wKfBvd|Roz|PGi%A*eXt1I zl18&TJ3IZIs;;Vj4$&rU(k7jgR8dt`HPy7$P|dp!bMAyDQ%Muqnb=2;zB*E+X>gJ4ZQ5?zZTZJPW2vLAn{_jq&*voni!6YzA)2lsl-%=1{|)#WPQo>v zggy7=HRDY*5rHuKcIB&UeH9ozoBV9|+wH}RKpYTufFr>Zz8w(yD`=_#XN3MXE7~Rb zxpc`GJvsBqP9w4ld+8(my#WvB4)Sjorv(y`-rw{I@b!J$UL<0|z6axgPm=O6;EYNM zCc>!^=6shfP331g4UFlqP$AEa+e;r1KHLVq8B9o-5be^7#jd5xxdu7Dix-Ws_k>2r z0*rhGV5L_qWmxb{w~z#pWtjj#h0;S!+Dn8C$e+Onr}(m3ujc`oFXC~^2t{7Zr*HxZ z!lb1pKeFSW_Cc#elX0y5RxiVO#GT3Y-!kAF}w$f`5Iteo1l`EY4D|}CC>|7ZF zHn2lND4CZ}W_&|H$G2_zDH4oY>LnNfXLUUjKHf_b%=iQ>l*1%J(N9`hBGuAJr~+(2 zSnGd?&;w4*%mR=NC5oj3Boa9JcX>c47PMW_l2k=`M{H@I0L8X&5(_h{w`$p&kCec` z_gE;05s+XemwT2#$U^miqL=|tRMZ1D3`nY_B3Je!1hbk;kO{?%j*C#hmU|+@i?kQFn6mm!#ORaws4xibyc&nBdpd6H!lP7r~kb z)V(!;{CN=^Y|QQeke&PrBBbU1KHJhg=3C_=WNP`F1$Uv5O}qg39)J9?#~y#2l&`AX z1=z_q5Md|-ocqR!aH51Ygvgsp`66JY_aF%Hg50~@$kZgo4qi}7;G*#JZNKVSgnO{# zYzv5AvL_so;4IR0-p@;b#==u+OhYi7Bsjg)Tx#S3e1)Z4fM2pFjK`HwB=-dW*2Xu@ zE?|C8_%5gjeK0O~3w84%!i?a6!b3kTc8ItJFatR$`Ue?<&z#zU%f;DWw zW90dKG>>XT<1fIxthY&mlc1&QaKM*U2rH}aUbq0+f$%~+41O4x%SuQYA#0MP( z;sgoudut`wl@b&UlK7=b`kARHYon;ByMV~gt7wp+AO`vQ3RRMz)(kIXwJ}0nUUt+) zh_dEJMkTnXj($&7bOg`~kcu*h(l^e>Mn)x=E+8tJ0HqLya;W+_DcUStjeZhD=qeL2 z+(sk{Q|kSo@ks{64a*)xIK~&tpRdnLGtAWU6)g(J=Pv*eMm|yzf-vzp6-AK~1$BV# z24@xCh1Dt2Cn6w;iKBIZ8gMJ0FM%Yr2S|{T{Tv5O7svoL)=|PSK7v<3k-IP^!cdpd zCW}~Uil;|Dm)2O(*=%THluyb)ZOuVtgHz;l$y-q+oPe;g;+K^`QQ`|`K}SWH8l4u4 zR4IITz)%be6>XrJwYK!+#qX?uOo(C_%uC+tRx6+pqCDn~ph{}GaFt$5BYYqn0|X&; zqlea}5k3$;+_!AfCT-FtZPF&4(b5Px1qQ$0s3ZSdT!>{Aw}XxlY5U*JR*ITslWx$LL_=m=yX4GFtIIE;eQ;l-|0 z$H-2W8CP3uJ15!T#bOO}Er+88Vo2}TD zoP?y(BXqSFgq`DSV%o|sp!YlKAbBA!(5ay9w$cSHH&jZbmtaZ)*bxoNU#`s9J)Y{A)pjci}M3x@sVn{eDKnIBOWnChX&`A)&2pwO>H_MyO z$xDzweKiM!2|eh#sdSJ}6);oLz$d8E>2cKq_N>ylBkhDUQ8QmHS~?CmodzK~z!}AA zs3**BfHwLC`OUhFFIUl^?ePP>^0AYE15m~w zHNnV~8p?k;UzFfsYq23;Qw$AJVMU`G+-joyrqc{?VT6}cFO|DP>?TA-O+T$4Y~ca5 z39Sxc=nSqo%`l0s1oEWwg!|t>dpa<`N0U77eaR&O`58o z=m$e*ZB)TpQD}Ab%5QhD1$7*4$(H3t)lD5Nl=s& z{$c8@=-dboThv2(qIoI7AVS95nQPFKg*qV21z6TLpq~Il5nNE7%!Hx^UHWLq8=2m8 zR6L!;pZctY4I+KptCYH zg_d&=>Q0x}CIHCS75}6X%*!B!GKl(8x1+-v>^KwlPckADfe8-_Lf~12olqt0GA-6f zWp{T?AcGq79QvuzC>*`>6Ok=$>l{!jf5Fu^122(TQLQuW3<2>SAsyy^aK}DoxfaB% zLaw1&P`gh`{}6#Rs;VSkp5CX2zg8d9qeCID|nQKu&{M(OIzcX)W% zq6|vv53@*SkP1QzwRgRV$;+VPX*cv@VHIFsU5cZXbt8_@OOQ)X5y|*iEsJDAjnGwi z1yJbPC-on~w!+Sg5V{Wp7qN!0o5NFv`oW@%RfGJ3zfgDYY7=k~j&Dm{MY@4L7PU(K zbO;E(9)Ztx74HVZ+$(KwQEV!YJAZawV7~kjO9m;`(S{It`VDkMOGc? zb*N-Hbw`_awDpmwE55-x&SqL8Y|Gh$n#GLoX%E;-R1upt$=Zan8_>HuP;?Gi2jWal z8ztPvN1p^$|3(I!CofNt!RmH^)lkT^*UN*Gfz~Q z?h87Lf&~qHJ!LATXa=V}A&Z&`LjqqB! zke+hBs`h}Kd(!c%av{=27IM`Y=&;Rtw2qeAi7-sg>@m8W(CXo}wBWO}O5YDYQxW9@ zp}&E8|I`Av0Q5G-6+boAtfEhsfGD=mzXj!m04iGhE~F|4)Y;Ku!=)I?rDwif6nPT; zWCbO|^UWBH; zk*~g97#X&oT8K#N$Fcsm*g5crH70?Yv+Lq*gAw^-zWwaKmyJ6?i1EJp04stFuoQc;=ovA@r1 zaihlUL`_ab4_8fdsJ2uz=dfv3hY8S1pthOdLaL}KwNZPOudc2S{Gb)PR{aDB{T&FR ztAeNUWl$$AVg!>&kH2^&9x)te>#}4n7U8vJ4L+Ge` zq5JR&uGx~b7r!^#vlszn!bL>X*Ofc2*4q(!Km;*5)<6romXwr%WqoaVjnBNc++Qv$ znG7xV)JbrK2^nFq4W?%}K*xv6g?|oEw5<*Hvn~NG5R>;2q+r-wm6gHTlyd<)Q`eav zoJnZ1k_lC<%=>E*$vX+kHTzyo(|#>9!qOaYiD^$&b%X7vDCo7!iqav3rj5oBr#CX9 zla4Qr{c>Lbso_%08U*MydrYrPjMx!TIK3@jaI0Yl6N-*=+hk{G~7wiq? zoA+|Sm6Tgx9*W6bdB8$|!~RP(5oF6RNJ%RIDcTijB!)Q3FLGl;mSk1*8Jd@wGO! zQF=$jKwK{XBcTPomVYndmg?F?YGntX0$K@NS-|Z8rQ^H4vA6-g>PAK4=c5EWyRRuw z%Hk*mq(Vi#hQeTA;)>k>9Rg9cgSA#Ie2rd*c#?Ay#i(S>I;xb_^%40Qp;QY) zeYfBPA=Or0D*0lCUP|B0OsFe@D_Ou|abtIPmvvNv9GP;R)dw}ywwD%eXM;RCt8)gx zyvZinh^N2!#p_Q$J~L&11bs0rAPCNy7Fx=Us7y{~`H}Kj1$@Al zMjB_VdNgY%oE1kmX_Gc-lh&kXo_Y35oSuE=nX$b`oxA^gdgiI8_;>B*Z=dj)r@r)* zi0mm5*hBRryfAaGPJJ`{Y&EQ5fGEFt;k9gGLRb6 z>t>{j17?JQZyHy)^JB#r@XKHM>es&Z)vtVc4WRM4DT>7hnDFMEJGYqcgx2m5I>#BMmDqTJwAch@B#blw_xb=>sf6kzf?yH%h`z=P2?i2jyT* z$WQog-#$L3Z+=S%Bi~siXnd8{_c0XC0p@%`R}-NrXwx`CS(U?OQDqqUzMT-zk@;g3ezHiYtS&Yng=cYr|CM$ko zJjIGCVZmq0sVg=WYZ_t3gBe!g%L!2ecfbci3=2<(VLZ9u9Sh*|x9FDe*|D<#20mT$ z&syDmg=q?{6tg0Fmn>=~fn-7(T^lEppWO^0R6bAW1?WVW0UnEK`OXW+-&H(G4+E%t zXz9_Fcd{z)#MX0!P_SgS62=UwiJ8XYCuWzN3Lngan_$9km;@bQn3-{)w^IRA23SSu z`ID2EUV4e>AEfx*RIhkeKy8h&g&WPnO==)?i}tnKv_Y>{6OZhW-^%=-#Q7t^2#?Pz4A)N2OY(C&VwUN z=O5o@19S3CmYom^a4@20lwcPZ`86w}^LR@Ms`PeLgcD~cgN=cKVLr5-b!*BX5sZuz zaC8$I4TK3`@%-bLBmg~n-T=Q#cY+N)8(?a*4}?H;^TU{sMI=iI2%h|f`i13B15x!3 z^H-a?ZW`&28kJxe@aOpqut^g1fF~~s;Yk9#^}-7;(AguI)MRL@YFPh;zsK{P8Celj z2@(~6r2dcQZNu4r_0?Bf_XXY$5|_f4eF-G1DD8wYxMP*32zc_M1fWty0^w_P=Ud-; zL64oy4<-p(rNYJpT9W8R2qncb=mQm9BLcw->u1x7{CMjad?drA@D*1A$yQ;2Rc_49 z>$(gP@PtF`V|YLYeC;(Uh4c`P-ghg7YM}?5NWt2Hqli{Cd!|Ivrg>Ml&8v;bF9XbC z(K5}gGPon+o2Ds>;rI~l%p|CJv1~PM{VM

n#zU}}Y!cD~0nY&^+7_HJr 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 diff --git a/icons/mob/huds/antag_hud.dmi b/icons/mob/huds/antag_hud.dmi index e2ba2ca89fc2a15fe391eb1862a4a4877d0b9a38..bc8d5a74002513e661eb2071e1cf79b75c740b30 100644 GIT binary patch literal 5048 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 literal 5405 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 literal 11413 zcmcI~c{r5q-}gn7C0SCUq(~7NAxoICM%ihzPIvZ%?Aw@8k)6mMhA7IGh_cKe`!=@7 zI$8G#3SJ=pg8O!Q0 z$75xW0d09caj7p(aP>0@A|3*?#Y7QhxM zHU@^1&y3E0sCvJ8M4_Unn?As|75bx&c(T8?d@;c`=cc~4CRd$lZN6PubiQZ{aiBhQ+%=l1dg6|kfE88; z-iN91CwOjcCc!TwQ-wb@wZDiR8ifWj(J~`-m2hrI#{#)=6`+f5M$r_05zIT4zTYQ!& zG?NI!j%=&5p3cj)xh?GU!oU^xJ^#$8W`EYRuJSkSncV6NO-Zp8iK9+05= zeROSkq`8`E_UpJg?_TkNg7N*{=TVO}&$Owxj&15xp7~vPA=B*5-Q&9Mm#(01zFreI zdn9r6MOW`P)<)&H7$fTE0{Pr@H38EdMZK(hgPH-4j4=I zonO+C%J^n)>i0`PiR383bcu|_!@SU&FEw_Dmm+SX74BISd7CrEu%X7Xt(8(I2;)% zGD+DSEIUbWcFw#Vl|2>n)ifq=; zh~wkCwHx_SH6yRDF53K4U^8c<&+#WccQS$g%X~b(?Cj1zjP^Q0~BoDT^!QAG-HXS8|H1`c{l}sr-iplLtSlqHXO%1N`s~i&s};pX&U-S;aAGzSk>Rr zJ1#3JS^c)YA{pTkP3BMA-bj_ZvGA6=%iT)1ej_tPkT1>@Pn^_k%w`cV8GFsc)OJ_# z-ScqM)@wAY;Qfues==u215U|zR+LfYS~~!^0NmD6zw4j5I*CfMvd1gUp8B#_cepsK?yW{vuiIn43JCFB>X! z^ki!6ihi7iv|wVgx_o}8mVUVOyJ>zThk8uJ)0j&*n#sXkd`+;spO4QZ;o~RbzKOt3%=DW$!0dF$U62H31BN?02pYr=u1QeYC7vq(|xx2d?^}wD@t1VC*-sdlj zBRf>EMaxY?)cPQz2%6emxwXALhQUC&xxdd@j%#b#4PH4N6`>0@OBoe5y^7uT`f#aN zd3`W1ov?#&dmd~#V#z}|KoHAhaCkgyvI>`#tw?O3rOM(U3$dyd$^lceN7CE6ENoY1 zk^;uR#HS*l?l|cFN^?LwbkAvlvbwsuJ=1nxFVhc~sgzE5oBY`8`&>ZFcIa(O0#{-^(6m!iqhKNTU9AtKU`(AGdu+`^8)-r zl2*-l3WC4yh_rzXzsuW?rN#%Z*n)jge?sC#4fhi*6I51Tjsv~BL(ZPN3k992U)EmQ zkY~H5%?4z4t>~T(cKpphSi0>+uf2@la_>^fjr^7Xk6`2l2MiNaOZfd?{Aifj`#lqF zxX*R%Z4@Kv8$%qN(?m@qMO=*`Eb-g%^TSvJyIoam0+9g;BQrmnsZ|Y*XRJoLJovu* zZV*#9n}=9o8H!#Qb5uq=RZhDL%OOSn5R7Z)-G0C&c5T zLi4FEuEG$_zMA74vW&;e$7Q3eb5sIGL^*}Vg6`Yv5dYi?7CMz;2ipgL{)le%ivIPuiGTYAX} z_;UeLo5G)uGo+}G@3ppcK~}4ZCq3{xb1PlM*A=+k{GF#4Lgf=oDLo)cPo)YAA7b=$ zlPiMez4VdvRs@#}sh!g(qioo(i#zipO0iurQa_v%4_Mkk*lI>>#Y?>`LnI7D;F4{; z#|m`N-?X9RYIIVU6!kS?;cc})&WN-sVe`pVVeAwGc{%BtFe$d^L_CE4Y0o}h8QVKL z+gWzK)dif;S}f5k|g|oqj+RB zJaD!sk5=nNf7}f#$so6NmO9c(u9vl!i+f1=Yfxjr0G%mBxSC#4#mUiqDwLW(XrP;ZHcdVyr z&Zp|7TTAk?-IynkDH$|Dz^VUqAcL@cODUYkP83I!f;3PHQw z^nrHZSR?Qss`17^P)Hr&7_i>@(8bK?Na40LE%J^s$Gfq?GncP!?iFMmZFD{kycV=| zyDg&Xwi8V^s=@mh+pCk%zj^|)60-bf;{e47)N_}Z1U*Ptq0e*2E_-6N7Gom09?2YFb+7zk8-eL{JwSgVR%u-C20cUpei6J(rcQk_K=2iF z#sJCes*D~Y4WmW!vHqN$BP`N48Kc~Q;Mj(VSs~QL841+(CsQPKV<#CR znBj95YMF%R#&9?REk7T9}|kFOQ02e$CLzx^>$L-eyRBRPZ=GPh2%bfx)*2qI8gQ~ zyH0dU_+{R!@m$~NCO?2IR}#Kr%~Px@>Jj6^%Y2|VUON&l18H22DUa5^*<8>DVi2p0j)5hspof=NO9v&S(DP?t@FM;$1;7nN)I&?4{Pt6n3B~-Z+L`R;MeOrr`KpW49*7exY zQO~Bt$i7kSe6sKtJk2(850A$I#Y=o2+u`!wWTo ztC8r3oP9y6G}_?1fI-u_C!E#`e$zA!YgcmWNC9+8DHVJ}YhTFnW+K0!&-Y~vn^a^C>nj0@Qt7USXP5E%T?`rYlxI_w>m}7Y7RXOqTH$$%>!s`T`FcxPoB|PlVY@kQAi0N-oMQWD&2&xg z<)}Lo-=xC}0v`1}`F(BdQz$N_LILe)4~{#&SL@@KvL-(@0_)YGov&!imLNnu^IxaM0GVCqpziIQUfc&h~bvEKcQ30Bf<$urtmD*%POS$YX@FPIVFHqiwt*jISC5pem8x@wk`ihN)^M))^@Z(_KGMf_xiS= zoB1nJnf&{9wC=X3V!cabmgkarBsmW1Cr#$bykt7IdrP5VV|i@XW+z_--8J0_F9L(; zKdY` zTj=U?b)7dUB(5w5>Xf1IgY3`GKBlbgX&6ziSbN|5&SX@xcomW!hj$c+OuY5zVw70T zxr^}QyD4%rk#Q`+9`E@en(%kaE49b-@-Y4v)s8&~h29u4$L5A8p58*%jBB>0%WtA*uN2h7|G=^tRf&N$S)VIrxGw;eVzx0o^PZlIeHY7zQ&6WRAHKGT$ykqF2m0Q{ zT;J}?)$|;=edV^FU-daC;$fBR_(KuDN4O^B&X2$N z#DGf02gv?@e4L;%BjlbxIB_wqYp`1{MOPS^0p`;Xn{$EO0w+L6PmSG6C+HUEtI=}X zV+HE%#tep_x&HM6LY!QhXAnjsNI&LrY1c)r)7O9huptEn2J(=rpN`Im!pQ-i)ikS> zvHA}3eZNQq)iv>t?X$hf$Ef|uvpj_Q4Uq?3Z-jc~@zmP{)Mqn8RSA!Ue!>X{8v0q_ z2#@moP{mwJkbBY_shT@l`6{cj_(-X6B9)I=Z=!Wc7b&7b%N;%xMH z1Qr3>X@rfImcNT`_$x)0%d}3sD^TEfjkQJ}Lz+FS>^Di+)6r|#i4IvLpBKj4zd|zb z3O(QVoNjpDtar`ok2>0up%wl-ypN@2Qku${oP)T7| zfq7QSNCi#cu&i*kUAb@|ASzy7H6(=t4u&&1P2(f|8#k5 z5fFXZ9sIAbNV|ng#q&#GWuK4<6PJ8@4c^J4K(#7Wa}D$=Z{p9Cw}u8$W6hmo&H2~p zLKcQUnIFmpSn?*!^m+S6CuO5gCRpVlC|Tt)_TSr+=6Ui%k&Y`3Yn&b6#oU4Rdh_e$ z{)vvp;P6XYtUcdvuZR~!W_o5Yb-=yfmctMRbKzylA2jFad*>41=#!VRcM%fWcJD*Q z8cjF0qII#xFADj5pM!*t%c&+4mY zpj)FoFn1tPj7&K;mFsdTXx)Y#;0Q1JN3}X&d~MY`9AW{3D<}Kb{1}VfubV5#T6=`0 z+CwPL1 zve$w>$XmPoWaQ=^UElSf^!j0D-!tWnhijBpUK2cbF6ldGPsx-0^;9AB{V9M>E-CY; z2kk9Oydu+`U(%@(DfPLT*uQ3p^@IxcO13pl<<-CieVgVJu8lMHi<%zxA2+q`q_!mI z(UJA($--5r6};xVQ_Kll4!c*Xw_|O{UYt9rdS(8!I{~u~Mut^q!SMDlxIMh=2)$W8 zSb90H=Y5j42<2VEyw1Y?1L9O5jW=MKVkTqtrC*iuOK85Mjdn&7g~!pv_K~Nh(2T_z z7^hqHYhe%MP>m2?^o$_I`C8+t1F)%GFh*|A3)b=z87+O2)b)-@K?PYi zGf>aB*fl-H%)9B<6q2)8OJeZ0db55JN+E*iB0?SKXhK6WAfUr zwQ<+hGDMSWE*xu|yIJs%JE6B4E7h(p4H`lwo*JO6&g0c7ZpzQuvX7E#e=CN6#RNl- zp9Q#@w_FOqz=uvGo8G*h}6YA2ZG-7FIKy`(1R>pLsRSt5*xyz)ZRJ9ioK!~BM@bBo$-e3npP}cuZ z-dah?K>!eT=8)``5rR|qNL=eeYsxbRC(ZA}rQc^_eMd})6c?i`t6uoQ#C0Nt^Q>7f z3~xcCOioVDQ=dP7o`Y_$kbzMjZt_uKr{|V?9WA+hExCkI1KFqmgKcV;3-k+*>h93> zfc1~IjijBrC-%6a-@Zraj~1^aY2;oA)3`Xzb9|YIyNyCgJ*2JS^;0IX>H3%fL=|(` zWSGWZehpNsT;uf`hDV^+@-Ikw&F#ra@%^>6T5Mip?zHp7o_7f!sP$n%YPBtn65Kg?I@VpPvZ4Cz%dzT#qRE&t^)^VdHyf* z1|a*pDFXo0)|QLRg~uwUVw^l`n*>OfA|P>h$^fZ_>^*I`D`o}5upo3;k!tL@`6-Z-9?fH;N)_OS)U}k1qS9tX7)V%Zy+ABpmq({p`rqoB#a{ElPv zIZH40%S%AFCL85~i46>(O+C+Jh@n&amiYp0h2W^#CL)V8hW1@ey=pSs zInsvGUJ(k)%#!mv z>^#K@=l(STJ;*~~V05z1bEO6&O7pj={asgFZB%t$jn2!0J@q{qO&jrQ&R4}&$rKSH zuGJ!Lg#ZFJ7OcB_4h*Z5KcaKCOlj6o5jEhN=mg=fL^#h9S*;Ci1a^5RH$G}88_%W_ zW*P!mXe=gxGjIS24&DnPA5QKK8Xr!upwSq7Ig5Yl&izxzvuDW#)-_eDDIPw`9XMO2 zicRh`3I(SVszKZy%*J=us^)<-fI(v{Qp1({mB1N~(MX0Lkj2%2#(Vqy*0ZC#LMW&0 zBe!=fS6xqb73@o+ zZ1qanXUs3fji_(pOrm#aV=qbcmfpeff7Q z=bG0QiI5Z;o-Z0H|3dpswUS@UX)S$>ckS*dOU)K!?#_5aW25??#YL`)saFTi!M4`OjsyS}=;2v_Wn55*+DWmw;^QYyys`u=SyG7dfuJFei#tJQpO&Xy z7P^dzkO+CCkD+QbT&eEe=n5?S#hkGfQJfuq>ByKQOyt+=Ek@{^$Z`hf=c!Z6OCI%EyGOCFE0Acq{~zsJFM6b2?f_)YA;bp^|M#*7T3SzI zH77Tw&?G9YT9i)fM31DvruGN3(O?KP62$tABj=iKc*IUD98v%BREVWJj+rYMlUJ)= zA6e=WLW+(@EPtoXGZy0(A%D&W>SP=$AXzr1)+_CcSFTPM(Lj~+3ck`^~gsA`{}3cEZQ6WGbMyX4SY&{vsN+2 z)0ZtoAiv(Z1mz4cY6ADte9{l(nM=q!n)c-zLbzZF9PaTfEPH=Ao3jDUdiv2KM288; zkv}QcaFe*r1T^FcuuIz@V?b`K=lv^2ySZb46LMCvA)jQs3Eo0y#nf&gfskR7`GAnT zWcZlMtye%u>%DoF&nYst%`AYE)$H!2v`QX35M@qK{$QaC^I)^5KGaKR!bwK}In2#? zKpY0Bc@@s;?e5f494YPVED;eUdDd56U_;yJxsAZ5FDB96+ivd7v&%>@pX8;KPw0ATA zT}QlAN9MI>mn@^D4^XmH0Trj8yy?6qZixnu5aTqJ0dCglLTj(UOuNws06qD`_P^I96oBqxD13#1M6Os?Lh zF!Y6xfrLN-rUEsf-D=F4iyzH+QG?+fLpQwQ`bPZvbC=Wr@#&vkH&2pB+$IR3^totk zN*cXM6;4XT4-URb!`gS9CaHdtnzyvXJY24Bh%pNa3VKX?e&m=1jaiyGB4?p&)afvR z0HzO&J@(%(`?go$pl<_MOaEaiDea+G-mP}`NZt`r$%so8O%amf5%l(IhV0IKQJD6 z&=e)J*_e!9x%ajcwxQ8&3Wvj6jNIMJHn+9{y8OCc%dH0STTv(}@yE4D3`a%3H!Y4> zo&pV>rWI>c(jAYTFNS3lkRHE^>E|?I>aQ~v<^4G_as{M>rbuk9F=rU|?sli%DJxvL zfMVm~xOj7hth9HMUulW`IvcNeERe-zzZg}<&DO4T`WWJ9d%X&TlY1w`hHb_l)CHu6%7VP`%-G< zsoe3!a0F*D_pPjpso;3gYbUm}Z7Gq@c*O*O0`+GCp$iC*xDP*cBbyIXSO5LtlqV5J zFDTjFdMf-InqLOHBGc$q2$RP&Y%Q6V0^{ZdD%p_2)E&F*)qr(JVPVf%7{(B~lT2t? z33>x!JODQ?3u#1IV%jmwIuOy`{f!`_d?tn*ZDxoXdHS}<=>}h#h24CKu&2J=V3a<) z(*qjf?KtH}b3jV~F_oQ-6ZBa6UI;wqb4o-bs1>9*OYE9x5qX6YS?%s`_5-Q{gs?vO zcC9X$0FOLZZ-%T#MWxocXYbt_ttO*Hduvw`vB~UplFUFu^((Q4c{o&k?VGz3ukWVe zD008!%Q~I*fLm!n6z0nGOKHczhQt8Sm{FXcoiNT`dPc8T=`{BF@jLTZOed(H=2r0b zd*>&L-^8fy&UHnSdv6BUsF2^G%PuhhyQk^^?K`4r-a*6jgzlT-l>KjFFu=*Wk-hKC z&7;7y5Sr=8|8U~xy*zh0jBoS0{{R3 diff --git a/icons/mob/inhands/equipment/security_lefthand.dmi b/icons/mob/inhands/equipment/security_lefthand.dmi index e87eebd154ee68662b0ce2394565cd54e728bd77..9616efef550801d2e9fb278b8a4ea982709d1fa3 100644 GIT binary patch literal 12683 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

    UzR6vdpdCr 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ⅆ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

    {aIt0AWwIe#Z4P-^D5#gJfyC>=&jOrhmo=&6 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 literal 6213 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ⅈgiK=!W-^ySuF*gHHu~T9}DLu)>A__Dvio$BNwAC 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 { + const { data } = useBackend(); + const { objectives, team } = data; + return ( + + +
    + + + You are a Blood Worm! + + + + + + + Your team status: + + - Total blood consumed: {team.blood_consumed_total} units
    + - Total times reproduced: {team.times_reproduced_total} times +
    +
    +
    + +
    + + + You are immune to low temperature, low pressure and don't need to breathe. + Your hosts don't have to breathe either, but their bodies remain vulnerable to space. + + + You can grow by using Leech Blood or Invade Corpse to consume blood, + but synthetic blood, such as from monkeys, has a limit. + You can see blood levels at a glance using your HUD, + and examining targets yields advanced information on their blood. + + + You can track your growth in your status tab. Once you're fully grown, + you can incubate in a cocoon to reach the next growth stage. + Reaching juvenile lets you spit blood, and adults are extremely strong. + + + Hatchlings can ventcrawl. Once you grow up, you lose the ability to ventcrawl, + becoming reliant on doorcrawling, breaking doors and ID access to move around. + Secure a good spot or a host before maturing to a juvenile. + + + Hatchlings and juveniles can slide under doors, but adults can't, + becoming entirely reliant on breaking doors and ID access to move around. + Secure a really good spot or a host before maturing to an adult. + + + Once you enter your final stage of growth as an adult, you can reproduce to create 3 new hatchlings, in exchange for reverting into one yourself. + + + You have the supernatural ability to turn into blood upon command. + This allows you to enter a corpse, taking it as your host. + + + You slowly heal over time, taking roughly 5 minutes to fully heal from near-death. While in a host, this translates to recovering blood volume over time. + You can inject blood into the damaged tissues of your host to rapidly heal them in exchange for your own health. + + + While inside of a host, your host doesn't need vital organs to survive, except for a brain. Lungs let you speak, and a liver lets you process chems. + You can insert organs into your host by picking them up and right-clicking on your host with them. This works for cybernetics too. + + + Your mind is not that of a human. You don't experience cravings, fear, sadness or joy from normal sources, even while in a host. + + +
    +
    + +
    + + + Your species is averse to heat and will rapidly burn up in hot environments. Your body is also flammable, so stay away from fires. + This weakness applies even while in a host, but can be covered by equipping your host with fire-resistant gear. + + + While in a host, you are transformed entirely into blood. This renders you extremely vulnerable to bleeding wounds. + When your host bleeds, it directly damages you, and your hosts continue bleeding even while dead. + Your hosts also bleed 50% faster than normal people. + + + Your hosts lack your advanced senses, leaving them vulnerable to ordinary impediments like darkness and flashbangs. + You can use human tools like night-vision goggles, eye protection and ear protection to circumvent this. + + + The DeForest corporation has engineered single-use devices for detecting blood worms. They can be ordered by security + and take no time to use, but using them is painful for the target and they're really expensive. + + +
    +
    + +
    + + + Using medbay to heal your host instead of spending blood will avoid leaving your host with deathly pale skin. + As a bonus, you get to have more blood for spitting and healing later. + + + You can leave your host to surprise attack people, which is especially effective as an adult. Be sure to block + off any paths of escape first, as it takes 3 seconds to leave your host. + + + As a hatchling or a juvenile, you can slide under a door to stalk nearby victims. Be wary of anyone coming to open the door. + + + Hosts are practically meatshields for you, just keep track of any fires, bleeding wounds, cremators or gibbing mechanisms. + Remember to also heal your host periodically using Inject Blood whenever they get too low. + + + Because you can't control corpses while you have less than a tenth of your health in blood volume, you will be ejected from your host when you get really low. + You can use this as insurance to get a last ditch escape attempt. + + + Medbay's blood freezers are all-you-can-eat buffets for you! They are only half synthetic and their high volumes grant you a lot of growth. + Be careful of nearby crew, as the sounds of breaking freezers can travel through walls. + + + You can enter corpses to consume all of their blood extremely quickly. Blood gained while already in a host doesn't affect your growth. + Duplicated blood does, but it's synthetic, limiting its effectiveness. + + + You have night vision and no territory, meaning you can thrive anywhere. Hatchlings can ventcrawl, while + juveniles and adults can break doors and other obstacles with their bare teeth. Nowhere is safe from you! + + + Your kin often share your goals and are willing to work together. You have your own language, Wormspeak, + which is only understandable to your kin. You can tell if someone is a blood worm host via a HUD icon. + + + Sec got you? You can break any restraints on your host, including lockers and such, by right-clicking with Spit Blood active. + You can also leave your host and ventcrawl out or break through the door. + + + As an adult, you can gather corpses for your offspring to use as hosts. Gathering blood can jumpstart the growth of your + hatchlings to juveniles, or even send them all the way to adulthood. + + +
    +
    +
    +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodworm.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodworm.ts new file mode 100644 index 00000000000..951e0f79614 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodworm.ts @@ -0,0 +1,15 @@ +import { type Antagonist, Category } from '../base'; + +const BloodWorm: Antagonist = { + key: 'bloodworm', + name: 'Blood Worm', + description: [ + ` + Become a giant, parasitic blood worm. Start as a hatchling in a host, + consume blood and conquer the entire station alongside your siblings! + `, + ], + category: Category.Roundstart, +}; + +export default BloodWorm; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodworminfestation.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodworminfestation.ts new file mode 100644 index 00000000000..5c524bc68ed --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodworminfestation.ts @@ -0,0 +1,15 @@ +import { type Antagonist, Category } from '../base'; + +const BloodWormInfestation: Antagonist = { + key: 'bloodworminfestation', + name: 'Blood Worm Infestation', + description: [ + ` + Become a giant, parasitic blood worm. Start as a hatchling, take hosts, + consume blood and conquer the entire station alongside your siblings! + `, + ], + category: Category.Midround, +}; + +export default BloodWormInfestation;

    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 literal 13669 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 literal 0 HcmV?d00001 diff --git a/icons/mob/nonhuman-player/blood_worm_32x48.dmi b/icons/mob/nonhuman-player/blood_worm_32x48.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9249cae543e350692888ed7a5c124e686db5443c GIT binary patch literal 3701 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 literal 0 HcmV?d00001 diff --git a/icons/obj/antags/blood_worm.dmi b/icons/obj/antags/blood_worm.dmi new file mode 100644 index 0000000000000000000000000000000000000000..2b9fa5a22cea966a06be2634ff61a1db444b696f GIT binary patch literal 496 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�l7rc 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 literal 149951 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