From 229975e45bb99ee469442512a919ee3620da79bb Mon Sep 17 00:00:00 2001 From: Lucy Date: Sun, 15 Dec 2024 14:08:08 -0500 Subject: [PATCH 1/3] clean up some weird typo'd types that shouldn't exist (#4575) * remove some weird single-letter typo types * `/dish_incubator_dish` -> `/datum/dish_incubator_dish` --- .../blueshift/biogenerator/resources.dm | 1 - .../code/modules/events/brand_intelligence.dm | 1 - .../modules/virology/machines/incubator.dm | 32 +++++++++---------- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/monkestation/code/modules/blueshift/biogenerator/resources.dm b/monkestation/code/modules/blueshift/biogenerator/resources.dm index 9d8f23c84620..9fb685140db7 100644 --- a/monkestation/code/modules/blueshift/biogenerator/resources.dm +++ b/monkestation/code/modules/blueshift/biogenerator/resources.dm @@ -19,4 +19,3 @@ RND_CATEGORY_INITIAL, RND_CATEGORY_AKHTER_RESOURCES, ) -a diff --git a/monkestation/code/modules/events/brand_intelligence.dm b/monkestation/code/modules/events/brand_intelligence.dm index 232f1e70c54d..087d2394675f 100644 --- a/monkestation/code/modules/events/brand_intelligence.dm +++ b/monkestation/code/modules/events/brand_intelligence.dm @@ -241,4 +241,3 @@ #undef MAX_INFECTION_DISTANCE #undef MIN_INFECTION_DISTANCE -z diff --git a/monkestation/code/modules/virology/machines/incubator.dm b/monkestation/code/modules/virology/machines/incubator.dm index b62e38106f2b..56521b843c8c 100644 --- a/monkestation/code/modules/virology/machines/incubator.dm +++ b/monkestation/code/modules/virology/machines/incubator.dm @@ -20,7 +20,7 @@ idle_power_usage = 100 active_power_usage = 200 - // Contains instances of /dish_incubator_dish. + // Contains instances of /datum/dish_incubator_dish. var/list/dish_data = list(null, null, null) var/on = FALSE @@ -90,7 +90,7 @@ if (!user.transferItemToLoc(VD, src)) return - var/dish_incubator_dish/dish_datum = new + var/datum/dish_incubator_dish/dish_datum = new dish_datum.dish = VD dish_data[slot] = dish_datum @@ -108,7 +108,7 @@ if ("power") on = !on if (on) - for (var/dish_incubator_dish/dish_datum in dish_data) + for (var/datum/dish_incubator_dish/dish_datum in dish_data) if (dish_datum.dish.contained_virus) dish_datum.dish.contained_virus.log += "
[ROUND_TIME()] Incubation started by [key_name(usr)]" @@ -120,7 +120,7 @@ if (slot == null || slot < 1 || slot > dish_data.len) return TRUE - var/dish_incubator_dish/dish_datum = dish_data[slot] + var/datum/dish_incubator_dish/dish_datum = dish_data[slot] if (dish_datum == null) return TRUE @@ -154,7 +154,7 @@ if (slot == null || slot < 1 || slot > dish_data.len) return TRUE - var/dish_incubator_dish/dish_datum = dish_data[slot] + var/datum/dish_incubator_dish/dish_datum = dish_data[slot] if (dish_datum == null) return TRUE @@ -166,7 +166,7 @@ if (slot == null || slot < 1 || slot > dish_data.len) return TRUE - var/dish_incubator_dish/dish_datum = dish_data[slot] + var/datum/dish_incubator_dish/dish_datum = dish_data[slot] if (dish_datum == null) return TRUE @@ -176,7 +176,7 @@ var/slot = text2num(params["slot"]) if(slot == null || slot < 1 || slot > dish_data.len) return TRUE - var/dish_incubator_dish/dish_datum = dish_data[slot] + var/datum/dish_incubator_dish/dish_datum = dish_data[slot] if (dish_datum == null) return TRUE var/stage_to_focus = input(usr, "Choose a stage to focus on. This will block symptoms from other stages from being mutated. Input 0 to disable effect focusing.", "Choose a stage.") as num @@ -195,7 +195,7 @@ if (machine_stat & (NOPOWER)) to_chat(user, span_notice("Deprived of power, \the [src] is unresponsive.")) for (var/i in 1 to dish_data.len) - var/dish_incubator_dish/dish_datum = dish_data[i] + var/datum/dish_incubator_dish/dish_datum = dish_data[i] if (dish_datum == null) continue @@ -231,7 +231,7 @@ data["dishes"] = dish_ui_data for (var/i = 1 to dish_data.len) - var/dish_incubator_dish/dish_datum = dish_data[i] + var/datum/dish_incubator_dish/dish_datum = dish_data[i] var/list/dish_ui_datum = list() // tfw no linq dish_ui_data[++dish_ui_data.len] = dish_ui_datum @@ -268,7 +268,7 @@ if (on) use_power = ACTIVE_POWER_USE - for (var/dish_incubator_dish/dish_datum in dish_data) + for (var/datum/dish_incubator_dish/dish_datum in dish_data) dish_datum.dish.incubate(mutatechance, growthrate, effect_focus) else use_power = IDLE_POWER_USE @@ -277,7 +277,7 @@ /obj/machinery/disease2/incubator/proc/find_dish_datum(obj/item/weapon/virusdish/dish) - for (var/dish_incubator_dish/dish_datum in dish_data) + for (var/datum/dish_incubator_dish/dish_datum in dish_data) if (dish_datum.dish == dish) return dish_datum @@ -285,7 +285,7 @@ /obj/machinery/disease2/incubator/proc/update_major(obj/item/weapon/virusdish/dish) - var/dish_incubator_dish/dish_datum = find_dish_datum(dish) + var/datum/dish_incubator_dish/dish_datum = find_dish_datum(dish) if (dish_datum == null) return @@ -295,7 +295,7 @@ /obj/machinery/disease2/incubator/proc/update_minor(obj/item/weapon/virusdish/dish, str=0, rob=0, eff=0) - var/dish_incubator_dish/dish_datum = find_dish_datum(dish) + var/datum/dish_incubator_dish/dish_datum = find_dish_datum(dish) if (dish_datum == null) return @@ -342,7 +342,7 @@ if (dish_data[i] != null) . += add_dish_sprite(dish_data[i], i) -/obj/machinery/disease2/incubator/proc/add_dish_sprite(dish_incubator_dish/dish_datum, slot) +/obj/machinery/disease2/incubator/proc/add_dish_sprite(datum/dish_incubator_dish/dish_datum, slot) var/obj/item/weapon/virusdish/dish = dish_datum.dish var/list/overlays = list() @@ -459,7 +459,7 @@ /obj/machinery/disease2/incubator/Destroy() . = ..() for (var/i in 1 to dish_data.len) - var/dish_incubator_dish/dish_datum = dish_data[i] + var/datum/dish_incubator_dish/dish_datum = dish_data[i] if (dish_datum == null) continue @@ -468,7 +468,7 @@ ..() -/dish_incubator_dish +/datum/dish_incubator_dish // The inserted virus dish. var/obj/item/weapon/virusdish/dish From a1ffdf18d7a90979f2e58766eda6854ae06131bf Mon Sep 17 00:00:00 2001 From: Coll6 Date: Sun, 15 Dec 2024 12:08:39 -0700 Subject: [PATCH 2/3] [Bounty] Oozeling Membrane Murmur Ability (#4365) * Adds Membrane Murmur to oozling cores * Ability clean up when brain deleted * Moved ability to cooldown removing unneded checks * Adds Ellipsis filter to the message picked. * Slight organization. --- .../modules/smithing/oozelings/actions.dm | 39 +++++++++++++++++++ .../modules/smithing/oozelings/body/organs.dm | 9 +++++ 2 files changed, 48 insertions(+) diff --git a/monkestation/code/modules/smithing/oozelings/actions.dm b/monkestation/code/modules/smithing/oozelings/actions.dm index f9442a366d20..4ed04d749891 100644 --- a/monkestation/code/modules/smithing/oozelings/actions.dm +++ b/monkestation/code/modules/smithing/oozelings/actions.dm @@ -171,3 +171,42 @@ else to_chat(owner, span_notice("You fine-tune the electromagnetic signals from your core to be picked up by GPS receivers upon it's rejection.")) core.gps_active = TRUE +/////// +/// MEMBRANE MURMUR SPELL +/// Use your core to attempt to call out for help or attention. +/datum/action/cooldown/membrane_murmur + name = "Membrane Murmur" + desc = "Force your core to pass gasses to make noticable sounds." + button_icon = 'icons/mob/actions/actions_slime.dmi' + button_icon_state = "gel_cocoon" + background_icon_state = "bg_alien" + overlay_icon_state = "bg_alien_border" + + cooldown_time = 25 SECONDS + check_flags = NONE + + var/static/list/possible_cries = list( + "Blorp... glub... help...", + "Glooop... save me...", + "Alone... burbble too quiet...", + "What’s left... of me...?", + "Can’t feel... can’t... think...", + "Plasma... need... plasma...", + "It’s so... quiet...", + ) + +/datum/action/cooldown/membrane_murmur/IsAvailable(feedback = FALSE) + . = ..() + if(.) + var/mob/living/brain/brainmob = owner + if(!istype(brainmob) || !istype(brainmob.loc, /obj/item/organ/internal/brain/slime)) + return FALSE + +/datum/action/cooldown/membrane_murmur/Activate() + . = ..() + var/mob/living/brain/brainmob = owner + if(!istype(brainmob)) + CRASH("[src] cast by non-brainmob [owner?.type || "(null)"]") + var/obj/item/organ/internal/brain/slime/brainitem = brainmob.loc + var/final_cry = brainmob.Ellipsis(pick(possible_cries), chance = 30) + brainitem.say(final_cry, "slime", forced = "[src]", message_range = 2) diff --git a/monkestation/code/modules/smithing/oozelings/body/organs.dm b/monkestation/code/modules/smithing/oozelings/body/organs.dm index 6d91bd2b2c3c..6e33ac028af9 100644 --- a/monkestation/code/modules/smithing/oozelings/body/organs.dm +++ b/monkestation/code/modules/smithing/oozelings/body/organs.dm @@ -69,11 +69,18 @@ var/rebuilt = TRUE var/coredeath = TRUE + var/datum/action/cooldown/membrane_murmur/membrane_mur + /obj/item/organ/internal/brain/slime/Initialize(mapload, mob/living/carbon/organ_owner, list/examine_list) . = ..() + membrane_mur = new /datum/action/cooldown/membrane_murmur() colorize() transform.Scale(2, 2) +/obj/item/organ/internal/brain/slime/Destroy(force) + QDEL_NULL(membrane_mur) + return ..() + /obj/item/organ/internal/brain/slime/examine() . = ..() if(gps_active) @@ -165,6 +172,7 @@ AddComponent(/datum/component/gps, "[victim]'s Core") if(brainmob) + membrane_mur.Grant(brainmob) var/datum/antagonist/changeling/target_ling = brainmob.mind?.has_antag_datum(/datum/antagonist/changeling) if(target_ling) @@ -283,6 +291,7 @@ new_body.visible_message(span_warning("[new_body]'s body fully forms from [new_body.p_their()] core!")) to_chat(owner, span_purple("Your body fully forms from your core!")) + membrane_mur.Remove(brainmob) brainmob?.mind?.transfer_to(new_body) new_body.grab_ghost() transfer_observers_to(new_body) From a3cb2b564c25ebf694af05a72b2fee39a8ac4262 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 15 Dec 2024 19:09:03 +0000 Subject: [PATCH 3/3] Automatic changelog for PR #4365 [ci skip] --- html/changelogs/AutoChangeLog-pr-4365.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4365.yml diff --git a/html/changelogs/AutoChangeLog-pr-4365.yml b/html/changelogs/AutoChangeLog-pr-4365.yml new file mode 100644 index 000000000000..9a3a560490e0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4365.yml @@ -0,0 +1,4 @@ +author: "Siro" +delete-after: True +changes: + - rscadd: "Added an ability for dead oozelings, \"Membrane Murmur\", allowing them to vocalize a short-range cry for help from their core every so often." \ No newline at end of file