From a8687f0cca5e7b51ab59d21c8f494f418c09fc57 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 16 Jun 2022 15:07:02 +0100 Subject: [PATCH 01/13] wow! --- code/__DEFINES/traits.dm | 3 ++ code/modules/mob/living/blood.dm | 3 ++ .../innate_abilities/limb_regeneration.dm | 40 ++++++++---------- .../carbon/human/species_types/jellypeople.dm | 42 +++++++++++-------- 4 files changed, 48 insertions(+), 40 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 94ace816ac..5f8c4bf78f 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -363,3 +363,6 @@ #define MAPPING_HELPER_TRAIT "mapping-helper" /// Trait associated with mafia #define MAFIA_TRAIT "mafia" + +/// snowflake blood process (slimes) +#define TRAIT_SNOWFLAKE_BLOOD_PROCESS "snowflake_blood_process" diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 2d3ceb728c..ec1409c7b7 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -38,6 +38,9 @@ if(HAS_TRAIT(src, TRAIT_NOMARROW)) //Bloodsuckers don't need to be here. return + if(HAS_TRAIT(src, TRAIT_SNOWFLAKE_BLOOD_PROCESS)) //slimes regenerate blood in their own way and take damage from not having blood in their own way + return + if(bodytemperature >= TCRYO && !(HAS_TRAIT(src, TRAIT_HUSK))) //cryosleep or husked people do not pump the blood. if(integrating_blood > 0) var/blood_integrated = max(integrating_blood - 1, 0) diff --git a/code/modules/mob/living/carbon/human/innate_abilities/limb_regeneration.dm b/code/modules/mob/living/carbon/human/innate_abilities/limb_regeneration.dm index ce36397c91..672b6f5b7a 100644 --- a/code/modules/mob/living/carbon/human/innate_abilities/limb_regeneration.dm +++ b/code/modules/mob/living/carbon/human/innate_abilities/limb_regeneration.dm @@ -22,28 +22,24 @@ return FALSE return 0 -/datum/action/innate/ability/limb_regrowth/Activate() +/datum/action/innate/limb_regrowth/Activate() var/mob/living/carbon/human/H = owner var/list/limbs_to_heal = H.get_missing_limbs() - if(limbs_to_heal.len < 1) - to_chat(H, "You feel intact enough as it is.") + if(!length(limbs_to_heal)) + to_chat(H, span_notice("You feel intact enough as it is.")) return - to_chat(H, "You focus intently on your missing [limbs_to_heal.len >= 2 ? "limbs" : "limb"]...") - var/mode = H.get_ability_property(INNATE_ABILITY_LIMB_REGROWTH, PROPERTY_LIMB_REGROWTH_USAGE_TYPE) - switch(mode) - if(REGROWTH_USES_BLOOD) - if(H.blood_volume >= 40*limbs_to_heal.len+(BLOOD_VOLUME_OKAY*H.blood_ratio)) - H.regenerate_limbs() - H.blood_volume -= 40*limbs_to_heal.len - to_chat(H, "...and after a moment you finish reforming!") - return - else if(H.blood_volume >= 40)//We can partially heal some limbs - while(H.blood_volume >= (BLOOD_VOLUME_OKAY*H.blood_ratio)+40) - var/healed_limb = pick(limbs_to_heal) - H.regenerate_limb(healed_limb) - limbs_to_heal -= healed_limb - H.blood_volume -= 40 - to_chat(H, "...but there is not enough of you to fix everything! You must attain more mass to heal completely!") - return - to_chat(H, "...but there is not enough of you to go around! You must attain more mass to heal!") - + to_chat(H, span_notice("You focus intently on your missing [length(limbs_to_heal) >= 2 ? "limbs" : "limb"]...")) + if(H.blood_volume >= 40*length(limbs_to_heal)+BLOOD_VOLUME_OKAY) + H.regenerate_limbs() + H.blood_volume -= 40*length(limbs_to_heal) + to_chat(H, span_notice("...and after a moment you finish reforming!")) + return + else if(H.blood_volume >= 40)//We can partially heal some limbs + while(H.blood_volume >= BLOOD_VOLUME_OKAY+40) + var/healed_limb = pick(limbs_to_heal) + H.regenerate_limb(healed_limb) + limbs_to_heal -= healed_limb + H.blood_volume -= 40 + to_chat(H, span_warning("...but there is not enough of you to fix everything! You must attain more mass to heal completely!")) + return + to_chat(H, span_warning("...but there is not enough of you to go around! You must attain more mass to heal!")) diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 13c9aaa8f1..3ab8ca1d07 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -55,38 +55,44 @@ //update blood color to body color exotic_blood_color = "#" + H.dna.features["mcolor"] -/datum/species/jelly/spec_life(mob/living/carbon/human/H) - if(H.stat == DEAD || HAS_TRAIT(H, TRAIT_NOMARROW)) //can't farm slime jelly from a dead slime/jelly person indefinitely, and no regeneration for bloodsuckers +/datum/species/jelly/spec_life(mob/living/carbon/human/H, delta_time, times_fired) + if(H.stat == DEAD) //can't farm slime jelly from a dead slime/jelly person indefinitely return - if(!H.blood_volume) - H.adjust_integration_blood(5) - H.adjustBruteLoss(5) - to_chat(H, "You feel empty!") - if(H.blood_volume < (BLOOD_VOLUME_NORMAL * H.blood_ratio)) + if(!H.blood_volume) + H.blood_volume += 2.5 * delta_time + H.adjustBruteLoss(2.5 * delta_time) + to_chat(H, span_danger("You feel empty!")) + + if(H.blood_volume < BLOOD_VOLUME_NORMAL) if(H.nutrition >= NUTRITION_LEVEL_STARVING) - H.adjust_integration_blood(3) - H.nutrition -= 2.5 - if(H.blood_volume < (BLOOD_VOLUME_OKAY*H.blood_ratio)) - if(prob(5)) - to_chat(H, "You feel drained!") - if(H.blood_volume < (BLOOD_VOLUME_BAD*H.blood_ratio)) + H.blood_volume += 1.5 * delta_time + H.adjust_nutrition(-1.25 * delta_time) + + if(H.blood_volume < BLOOD_VOLUME_OKAY) + if(DT_PROB(2.5, delta_time)) + to_chat(H, span_danger("You feel drained!")) + + if(H.blood_volume < BLOOD_VOLUME_BAD) Cannibalize_Body(H) - ..() + + var/datum/action/innate/ability/regrowth = H.ability_actions[INNATE_ABILITY_LIMB_REGROWTH] + if(regrowth) + regrowth.UpdateButtonIcon() /datum/species/jelly/proc/Cannibalize_Body(mob/living/carbon/human/H) var/list/limbs_to_consume = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) - H.get_missing_limbs() var/obj/item/bodypart/consumed_limb - if(!limbs_to_consume.len) + if(!length(limbs_to_consume)) H.losebreath++ return if(H.get_num_legs(FALSE)) //Legs go before arms limbs_to_consume -= list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM) consumed_limb = H.get_bodypart(pick(limbs_to_consume)) consumed_limb.drop_limb() - to_chat(H, "Your [consumed_limb] is drawn back into your body, unable to maintain its shape!") + to_chat(H, span_userdanger("Your [consumed_limb] is drawn back into your body, unable to maintain its shape!")) qdel(consumed_limb) - H.adjust_integration_blood(20) + H.blood_volume += 20 ////////////////////////////////////////////////////////SLIMEPEOPLE/////////////////////////////////////////////////////////////////// @@ -407,7 +413,7 @@ limbs_id = SPECIES_SLIME default_color = "00FFFF" species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,HAS_FLESH) - inherent_traits = list(TRAIT_TOXINLOVER) + inherent_traits = list(TRAIT_TOXINLOVER, TRAIT_SNOWFLAKE_BLOOD_PROCESS) mutant_bodyparts = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF","mcolor3" = "FFFFFF", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "Plain", "mam_snouts" = "None", "taur" = "None", "deco_wings" = "None", "legs" = "Plantigrade") say_mod = "says" hair_color = "mutcolor" From 0a61bb3813cb000f70dc17424012614e1b2517f6 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 16 Jun 2022 15:37:04 +0100 Subject: [PATCH 02/13] forgot to push some final changes --- code/modules/mob/living/blood.dm | 102 +++++++++--------- .../modules/mob/living/carbon/damage_procs.dm | 6 +- .../carbon/human/species_types/jellypeople.dm | 2 +- 3 files changed, 55 insertions(+), 55 deletions(-) diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index ec1409c7b7..651912ca1d 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -38,60 +38,58 @@ if(HAS_TRAIT(src, TRAIT_NOMARROW)) //Bloodsuckers don't need to be here. return - if(HAS_TRAIT(src, TRAIT_SNOWFLAKE_BLOOD_PROCESS)) //slimes regenerate blood in their own way and take damage from not having blood in their own way - return - if(bodytemperature >= TCRYO && !(HAS_TRAIT(src, TRAIT_HUSK))) //cryosleep or husked people do not pump the blood. - if(integrating_blood > 0) - var/blood_integrated = max(integrating_blood - 1, 0) - var/blood_diff = integrating_blood - blood_integrated - integrating_blood = blood_integrated - if(blood_volume < BLOOD_VOLUME_MAXIMUM) - blood_volume += blood_diff - if(blood_volume < BLOOD_VOLUME_NORMAL) - var/nutrition_ratio = 0 - if(!HAS_TRAIT(src, TRAIT_NOHUNGER)) - switch(nutrition) - if(0 to NUTRITION_LEVEL_STARVING) - nutrition_ratio = 0.2 - if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) - nutrition_ratio = 0.4 - if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED) - nutrition_ratio = 0.6 - if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED) - nutrition_ratio = 0.8 - else - nutrition_ratio = 1 - if(satiety > 80) - nutrition_ratio *= 1.25 - adjust_nutrition(-nutrition_ratio * HUNGER_FACTOR) - blood_volume = min(BLOOD_VOLUME_NORMAL, blood_volume + 0.5 * nutrition_ratio) + if(!HAS_TRAIT(src, TRAIT_SNOWFLAKE_BLOOD_PROCESS))) + if(integrating_blood > 0) + var/blood_integrated = max(integrating_blood - 1, 0) + var/blood_diff = integrating_blood - blood_integrated + integrating_blood = blood_integrated + if(blood_volume < BLOOD_VOLUME_MAXIMUM) + blood_volume += blood_diff + if(blood_volume < BLOOD_VOLUME_NORMAL) + var/nutrition_ratio = 0 + if(!HAS_TRAIT(src, TRAIT_NOHUNGER)) + switch(nutrition) + if(0 to NUTRITION_LEVEL_STARVING) + nutrition_ratio = 0.2 + if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) + nutrition_ratio = 0.4 + if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED) + nutrition_ratio = 0.6 + if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_WELL_FED) + nutrition_ratio = 0.8 + else + nutrition_ratio = 1 + if(satiety > 80) + nutrition_ratio *= 1.25 + adjust_nutrition(-nutrition_ratio * HUNGER_FACTOR) + blood_volume = min(BLOOD_VOLUME_NORMAL, blood_volume + 0.5 * nutrition_ratio) - //Effects of bloodloss - if(!HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM)) //Synths are immune to direct consequences of bloodloss, instead suffering penalties to heat exchange. - var/word = pick("dizzy","woozy","faint") - var/blood_effect_volume = blood_volume + integrating_blood - switch(blood_effect_volume) - if(BLOOD_VOLUME_MAXIMUM to BLOOD_VOLUME_EXCESS) - if(prob(10)) - to_chat(src, "You feel terribly bloated.") - if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE) - if(prob(5)) - to_chat(src, "You feel [word].") - adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.01, 1)) - if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_OKAY) - adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.02, 1)) - if(prob(5)) - blur_eyes(6) - to_chat(src, "You feel very [word].") - if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD) - adjustOxyLoss(5) - if(prob(15)) - Unconscious(rand(20,60)) - to_chat(src, "You feel extremely [word].") - if(-INFINITY to BLOOD_VOLUME_SURVIVE) - if(!HAS_TRAIT(src, TRAIT_NODEATH)) - death() + //Effects of bloodloss + if(!HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM)) //Synths are immune to direct consequences of bloodloss, instead suffering penalties to heat exchange. + var/word = pick("dizzy","woozy","faint") + var/blood_effect_volume = blood_volume + integrating_blood + switch(blood_effect_volume) + if(BLOOD_VOLUME_MAXIMUM to BLOOD_VOLUME_EXCESS) + if(prob(10)) + to_chat(src, "You feel terribly bloated.") + if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE) + if(prob(5)) + to_chat(src, "You feel [word].") + adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.01, 1)) + if(BLOOD_VOLUME_BAD to BLOOD_VOLUME_OKAY) + adjustOxyLoss(round((BLOOD_VOLUME_NORMAL - blood_volume) * 0.02, 1)) + if(prob(5)) + blur_eyes(6) + to_chat(src, "You feel very [word].") + if(BLOOD_VOLUME_SURVIVE to BLOOD_VOLUME_BAD) + adjustOxyLoss(5) + if(prob(15)) + Unconscious(rand(20,60)) + to_chat(src, "You feel extremely [word].") + if(-INFINITY to BLOOD_VOLUME_SURVIVE) + if(!HAS_TRAIT(src, TRAIT_NODEATH)) + death() var/temp_bleed = 0 //Bleeding out diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index 1a159a56bb..dcd72fd5d1 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -90,10 +90,12 @@ /mob/living/carbon/adjustToxLoss(amount, updating_health = TRUE, forced = FALSE, toxins_type = TOX_DEFAULT) if(!forced && HAS_TRAIT(src, TRAIT_TOXINLOVER) && toxins_type != TOX_SYSCORRUPT) //damage becomes healing and healing becomes damage amount = -amount + // don't allow toxinlover to push blood levels past BLOOD_VOLUME_MAXIMUM, but also don't set it back down to this if it's higher from something else + var/blood_cap = blood_volume > BLOOD_VOLUME_MAXIMUM ? blood_volume : BLOOD_VOLUME_MAXIMUM if(amount > 0) - blood_volume -= 3 * amount //5x was too much, this is punishing enough. + blood_volume blood_volume - min((3 * amount), blood_cap) //5x was too much, this is punishing enough. else - blood_volume -= amount + blood_volume = min(blood_volume - amount), blood_cap) return ..() /mob/living/carbon/getStaminaLoss() diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 3ab8ca1d07..8356eff08c 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -59,7 +59,7 @@ if(H.stat == DEAD) //can't farm slime jelly from a dead slime/jelly person indefinitely return - if(!H.blood_volume) + if(H.blood_volume <= 0) H.blood_volume += 2.5 * delta_time H.adjustBruteLoss(2.5 * delta_time) to_chat(H, span_danger("You feel empty!")) From c7f6d3b574c488d50e16dbb39bd4d0d2ecc29dd8 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 16 Jun 2022 15:44:40 +0100 Subject: [PATCH 03/13] dumbass forgets a bracket and cant even compile his code --- code/modules/mob/living/blood.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 651912ca1d..e6c93d4daa 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -39,7 +39,7 @@ return if(bodytemperature >= TCRYO && !(HAS_TRAIT(src, TRAIT_HUSK))) //cryosleep or husked people do not pump the blood. - if(!HAS_TRAIT(src, TRAIT_SNOWFLAKE_BLOOD_PROCESS))) + if(!HAS_TRAIT(src, TRAIT_SNOWFLAKE_BLOOD_PROCESS)) if(integrating_blood > 0) var/blood_integrated = max(integrating_blood - 1, 0) var/blood_diff = integrating_blood - blood_integrated From d1ba1247436de9d71275b6e0558251e0a0d73832 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 16 Jun 2022 15:47:04 +0100 Subject: [PATCH 04/13] blood cap --- code/modules/mob/living/carbon/damage_procs.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index dcd72fd5d1..672db6db53 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -93,9 +93,9 @@ // don't allow toxinlover to push blood levels past BLOOD_VOLUME_MAXIMUM, but also don't set it back down to this if it's higher from something else var/blood_cap = blood_volume > BLOOD_VOLUME_MAXIMUM ? blood_volume : BLOOD_VOLUME_MAXIMUM if(amount > 0) - blood_volume blood_volume - min((3 * amount), blood_cap) //5x was too much, this is punishing enough. + blood_volume blood_volume - min((3 * amount), blood_cap) //5x was too much, this is punishing enough. else - blood_volume = min(blood_volume - amount), blood_cap) + blood_volume = min((blood_volume - amount), blood_cap) return ..() /mob/living/carbon/getStaminaLoss() From 0a29f26eba683de1d75a000840505ee51023ca08 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 16 Jun 2022 15:51:46 +0100 Subject: [PATCH 05/13] fixes issue with the blood cap --- code/modules/mob/living/carbon/damage_procs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index 672db6db53..85c188d2ab 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -93,7 +93,7 @@ // don't allow toxinlover to push blood levels past BLOOD_VOLUME_MAXIMUM, but also don't set it back down to this if it's higher from something else var/blood_cap = blood_volume > BLOOD_VOLUME_MAXIMUM ? blood_volume : BLOOD_VOLUME_MAXIMUM if(amount > 0) - blood_volume blood_volume - min((3 * amount), blood_cap) //5x was too much, this is punishing enough. + blood_volume = min((blood_volume - (3 * amount)), blood_cap) //5x was too much, this is punishing enough. else blood_volume = min((blood_volume - amount), blood_cap) return ..() From 09e351277ab71d6b95b08a29693f0c004c323901 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Sun, 3 Jul 2022 01:28:39 -0300 Subject: [PATCH 06/13] this --- code/game/objects/items.dm | 1 + code/game/objects/items/tools/weldingtool.dm | 5 +++++ code/modules/projectiles/guns/energy/special.dm | 5 +++++ icons/effects/welding_effect.dmi | Bin 0 -> 22046 bytes 4 files changed, 11 insertions(+) create mode 100644 icons/effects/welding_effect.dmi diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index be3f1709a9..0dcc23f3aa 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1,4 +1,5 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/effects/fire.dmi', "fire")) +GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons/effects/welding_effect.dmi', "welding_sparks", GASFIRE_LAYER, ABOVE_LIGHTING_PLANE)) GLOBAL_VAR_INIT(rpg_loot_items, FALSE) // if true, everyone item when created will have its name changed to be diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index d93547e642..75e1c0a29b 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -119,6 +119,11 @@ dyn_explosion(T, plasmaAmount/5)//20 plasma in a standard welder has a 4 power explosion. no breaches, but enough to kill/dismember holder qdel(src) +/obj/item/weldingtool/use_tool(atom/target, mob/living/user, delay, amount, volume, datum/callback/extra_checks) + target.add_overlay(GLOB.welding_sparks) + . = ..() + target.cut_overlay(GLOB.welding_sparks) + /obj/item/weldingtool/attack(mob/living/carbon/human/H, mob/user) if(!istype(H)) return ..() diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 15acd40172..67abc977e2 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -167,6 +167,11 @@ /obj/item/gun/energy/plasmacutter/use(amount) return cell.use(amount * 100) +/obj/item/gun/energy/plasmacutter/use_tool(atom/target, mob/living/user, delay, amount, volume, datum/callback/extra_checks) + target.add_overlay(GLOB.welding_sparks) + . = ..() + target.cut_overlay(GLOB.welding_sparks) + /obj/item/gun/energy/plasmacutter/adv name = "advanced plasma cutter" icon_state = "adv_plasmacutter" diff --git a/icons/effects/welding_effect.dmi b/icons/effects/welding_effect.dmi new file mode 100644 index 0000000000000000000000000000000000000000..8b8db2dcaeaca42a01809ce0c25f59569d887e36 GIT binary patch literal 22046 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 A`Tzg` literal 0 HcmV?d00001 From 33bfcf67b5392a13a3d24fed9309be83e77adc8f Mon Sep 17 00:00:00 2001 From: SandPoot Date: Sun, 3 Jul 2022 01:37:26 -0300 Subject: [PATCH 07/13] solves missing keyword args --- code/game/objects/items/tools/weldingtool.dm | 2 +- code/modules/projectiles/guns/energy/special.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index 75e1c0a29b..5bd7217484 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -119,7 +119,7 @@ dyn_explosion(T, plasmaAmount/5)//20 plasma in a standard welder has a 4 power explosion. no breaches, but enough to kill/dismember holder qdel(src) -/obj/item/weldingtool/use_tool(atom/target, mob/living/user, delay, amount, volume, datum/callback/extra_checks) +/obj/item/weldingtool/use_tool(atom/target, mob/living/user, delay, amount, volume, datum/callback/extra_checks, skill_gain_mult) target.add_overlay(GLOB.welding_sparks) . = ..() target.cut_overlay(GLOB.welding_sparks) diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 67abc977e2..bb7b21596f 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -167,7 +167,7 @@ /obj/item/gun/energy/plasmacutter/use(amount) return cell.use(amount * 100) -/obj/item/gun/energy/plasmacutter/use_tool(atom/target, mob/living/user, delay, amount, volume, datum/callback/extra_checks) +/obj/item/gun/energy/plasmacutter/use_tool(atom/target, mob/living/user, delay, amount, volume, datum/callback/extra_checks, skill_gain_mult) target.add_overlay(GLOB.welding_sparks) . = ..() target.cut_overlay(GLOB.welding_sparks) From 1635700bc91c79a54a387be60c1cfb25aa041248 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 5 Jul 2022 19:22:59 +0100 Subject: [PATCH 08/13] changes suggested by kevin --- code/__DEFINES/traits.dm | 3 --- code/modules/mob/living/blood.dm | 2 +- code/modules/mob/living/carbon/human/species.dm | 7 +++++++ .../mob/living/carbon/human/species_types/jellypeople.dm | 6 ++++-- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 5f8c4bf78f..94ace816ac 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -363,6 +363,3 @@ #define MAPPING_HELPER_TRAIT "mapping-helper" /// Trait associated with mafia #define MAFIA_TRAIT "mafia" - -/// snowflake blood process (slimes) -#define TRAIT_SNOWFLAKE_BLOOD_PROCESS "snowflake_blood_process" diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index e6c93d4daa..29ed0d86a5 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -39,7 +39,7 @@ return if(bodytemperature >= TCRYO && !(HAS_TRAIT(src, TRAIT_HUSK))) //cryosleep or husked people do not pump the blood. - if(!HAS_TRAIT(src, TRAIT_SNOWFLAKE_BLOOD_PROCESS)) + if(species.handle_blood()) // if this returns TRUE, then the species is not handling blood itself and we can control everything if(integrating_blood > 0) var/blood_integrated = max(integrating_blood - 1, 0) var/blood_diff = integrating_blood - blood_integrated diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 3a5d35a115..af49998afe 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -2452,6 +2452,13 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) return TRUE return FALSE +//////////////// +//Blood Stuff/// +//////////////// +// true = handle blood normally, false = do not (and then handle blood in this proc instead please!!) +/datum/species/proc/handle_blood() + return TRUE + //////////////// //Tail Wagging// //////////////// diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 8356eff08c..b6a10b0abc 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -55,9 +55,9 @@ //update blood color to body color exotic_blood_color = "#" + H.dna.features["mcolor"] -/datum/species/jelly/spec_life(mob/living/carbon/human/H, delta_time, times_fired) +/datum/species/jelly/handle_blood(mob/living/carbon/human/H, delta_time, times_fired) if(H.stat == DEAD) //can't farm slime jelly from a dead slime/jelly person indefinitely - return + return TRUE // we dont handle blood when dead if(H.blood_volume <= 0) H.blood_volume += 2.5 * delta_time @@ -80,6 +80,8 @@ if(regrowth) regrowth.UpdateButtonIcon() + return FALSE // to let living/handle_blood know that the species is handling blood instead + /datum/species/jelly/proc/Cannibalize_Body(mob/living/carbon/human/H) var/list/limbs_to_consume = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) - H.get_missing_limbs() var/obj/item/bodypart/consumed_limb From 0625ccab6168532ff40f21bcf77961841fe86d63 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 5 Jul 2022 19:27:19 +0100 Subject: [PATCH 09/13] more changes --- code/modules/mob/living/blood.dm | 2 +- .../mob/living/carbon/human/species_types/jellypeople.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 29ed0d86a5..99bfa7a91d 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -39,7 +39,7 @@ return if(bodytemperature >= TCRYO && !(HAS_TRAIT(src, TRAIT_HUSK))) //cryosleep or husked people do not pump the blood. - if(species.handle_blood()) // if this returns TRUE, then the species is not handling blood itself and we can control everything + if(dna.species.handle_blood()) // if this returns TRUE, then the species is not handling blood itself and we can control everything if(integrating_blood > 0) var/blood_integrated = max(integrating_blood - 1, 0) var/blood_diff = integrating_blood - blood_integrated diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index b6a10b0abc..4712fe4475 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -415,7 +415,7 @@ limbs_id = SPECIES_SLIME default_color = "00FFFF" species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,HAS_FLESH) - inherent_traits = list(TRAIT_TOXINLOVER, TRAIT_SNOWFLAKE_BLOOD_PROCESS) + inherent_traits = list(TRAIT_TOXINLOVER) mutant_bodyparts = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF","mcolor3" = "FFFFFF", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "Plain", "mam_snouts" = "None", "taur" = "None", "deco_wings" = "None", "legs" = "Plantigrade") say_mod = "says" hair_color = "mutcolor" From ed85c1814d95d3d9507f37448f717ef4f03664c0 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 8 Jul 2022 16:20:43 -0500 Subject: [PATCH 10/13] Automatic changelog generation for PR #15696 [ci skip] --- html/changelogs/AutoChangeLog-pr-15696.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-15696.yml diff --git a/html/changelogs/AutoChangeLog-pr-15696.yml b/html/changelogs/AutoChangeLog-pr-15696.yml new file mode 100644 index 0000000000..83744f60ca --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15696.yml @@ -0,0 +1,4 @@ +author: "timothyteakettle" +delete-after: True +changes: + - rscadd: "slimes no longer die from having no blood, properly consume limbs when at low blood, and suffer brute damage and oxygen loss for having no blood and no limbs left to consume respectably, they cannot go past BLOOD_VOLUME_MAXIMUM from consuming toxin" From f96e302685c2f5fbc7eff20b32819ad588c146af Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 8 Jul 2022 16:21:16 -0500 Subject: [PATCH 11/13] Automatic changelog generation for PR #15684 [ci skip] --- html/changelogs/AutoChangeLog-pr-15684.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-15684.yml diff --git a/html/changelogs/AutoChangeLog-pr-15684.yml b/html/changelogs/AutoChangeLog-pr-15684.yml new file mode 100644 index 0000000000..6a059da533 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15684.yml @@ -0,0 +1,11 @@ +author: "Bhijn & Myr" +delete-after: True +changes: + - code_imp: "Barks can now be intercepted via component signals. Both bark queuing and individual barks can be intercepted via signals!" + - rscadd: "The \"Brassy\" bark has been added, using the cog installation sound as a sample! This works surprisingly well as a bark" + - rscadd: "Genetics can now give people goose1.ogg +tweak: If new barks are queued before the current barks are finished, this will interrupt all ongoing barks +tweak: Yelling no longer cuts the minimum bark time variance down to half, as this proved to sound pretty awful with most barks. +tweak: Chitter now uses a completely unique audio sample, which is based on the original ratchet.ogg it used to be. This new sample is shorter, and has significantly less harsh noise on the higher frequencies, making it much easier on the ears. Additionally, the minimum speed for chitter has been reduced from 6 to 4. +tweak: Setting vocal_bark to a file should now automatically turn it into a sound datum (in theory, at least! as of writing i haven't tested this at all)" + - bugfix: "Barks and other DNA features after the first mob color now work exactly as you'd expect. This was the cause for horrid eldritch bark sounds when the wrong part of DNA gets hit. The first mob color has lost some genetics resolution as an indirect result of this (the higher resolution is what caused this bug)" From b3eed59e197277a2d21cffd2b6f68c50424e84a8 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 8 Jul 2022 16:21:35 -0500 Subject: [PATCH 12/13] Automatic changelog generation for PR #15702 [ci skip] --- html/changelogs/AutoChangeLog-pr-15702.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-15702.yml diff --git a/html/changelogs/AutoChangeLog-pr-15702.yml b/html/changelogs/AutoChangeLog-pr-15702.yml new file mode 100644 index 0000000000..b0d8f04f54 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15702.yml @@ -0,0 +1,4 @@ +author: "UDaV73rus, Tokoriso, dragomagol" +delete-after: True +changes: + - rscadd: "welding now has an animation!" From 6f06329e4d1a942456490e71c5559361568dd83e Mon Sep 17 00:00:00 2001 From: Sandstorm Bot <85452301+Sandstorm-Bot@users.noreply.github.com> Date: Fri, 8 Jul 2022 23:22:48 +0000 Subject: [PATCH 13/13] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-15684.yml | 11 --------- html/changelogs/AutoChangeLog-pr-15696.yml | 4 ---- html/changelogs/AutoChangeLog-pr-15702.yml | 4 ---- html/changelogs/archive/2022-07.yml | 27 ++++++++++++++++++++++ 4 files changed, 27 insertions(+), 19 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-15684.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-15696.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-15702.yml diff --git a/html/changelogs/AutoChangeLog-pr-15684.yml b/html/changelogs/AutoChangeLog-pr-15684.yml deleted file mode 100644 index 6a059da533..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15684.yml +++ /dev/null @@ -1,11 +0,0 @@ -author: "Bhijn & Myr" -delete-after: True -changes: - - code_imp: "Barks can now be intercepted via component signals. Both bark queuing and individual barks can be intercepted via signals!" - - rscadd: "The \"Brassy\" bark has been added, using the cog installation sound as a sample! This works surprisingly well as a bark" - - rscadd: "Genetics can now give people goose1.ogg -tweak: If new barks are queued before the current barks are finished, this will interrupt all ongoing barks -tweak: Yelling no longer cuts the minimum bark time variance down to half, as this proved to sound pretty awful with most barks. -tweak: Chitter now uses a completely unique audio sample, which is based on the original ratchet.ogg it used to be. This new sample is shorter, and has significantly less harsh noise on the higher frequencies, making it much easier on the ears. Additionally, the minimum speed for chitter has been reduced from 6 to 4. -tweak: Setting vocal_bark to a file should now automatically turn it into a sound datum (in theory, at least! as of writing i haven't tested this at all)" - - bugfix: "Barks and other DNA features after the first mob color now work exactly as you'd expect. This was the cause for horrid eldritch bark sounds when the wrong part of DNA gets hit. The first mob color has lost some genetics resolution as an indirect result of this (the higher resolution is what caused this bug)" diff --git a/html/changelogs/AutoChangeLog-pr-15696.yml b/html/changelogs/AutoChangeLog-pr-15696.yml deleted file mode 100644 index 83744f60ca..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15696.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "timothyteakettle" -delete-after: True -changes: - - rscadd: "slimes no longer die from having no blood, properly consume limbs when at low blood, and suffer brute damage and oxygen loss for having no blood and no limbs left to consume respectably, they cannot go past BLOOD_VOLUME_MAXIMUM from consuming toxin" diff --git a/html/changelogs/AutoChangeLog-pr-15702.yml b/html/changelogs/AutoChangeLog-pr-15702.yml deleted file mode 100644 index b0d8f04f54..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15702.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "UDaV73rus, Tokoriso, dragomagol" -delete-after: True -changes: - - rscadd: "welding now has an animation!" diff --git a/html/changelogs/archive/2022-07.yml b/html/changelogs/archive/2022-07.yml index 5fe4bdbe9c..4e15402428 100644 --- a/html/changelogs/archive/2022-07.yml +++ b/html/changelogs/archive/2022-07.yml @@ -1,3 +1,30 @@ 2022-07-05: Putnam3145: - bugfix: Miasma is brown again +2022-07-08: + Bhijn & Myr: + - code_imp: Barks can now be intercepted via component signals. Both bark queuing + and individual barks can be intercepted via signals! + - rscadd: The "Brassy" bark has been added, using the cog installation sound as + a sample! This works surprisingly well as a bark + - rscadd: 'Genetics can now give people goose1.ogg tweak: If new barks are queued + before the current barks are finished, this will interrupt all ongoing barks + tweak: Yelling no longer cuts the minimum bark time variance down to half, as + this proved to sound pretty awful with most barks. tweak: Chitter now uses a + completely unique audio sample, which is based on the original ratchet.ogg it + used to be. This new sample is shorter, and has significantly less harsh noise + on the higher frequencies, making it much easier on the ears. Additionally, + the minimum speed for chitter has been reduced from 6 to 4. tweak: Setting vocal_bark + to a file should now automatically turn it into a sound datum (in theory, at + least! as of writing i haven''t tested this at all)' + - bugfix: Barks and other DNA features after the first mob color now work exactly + as you'd expect. This was the cause for horrid eldritch bark sounds when the + wrong part of DNA gets hit. The first mob color has lost some genetics resolution + as an indirect result of this (the higher resolution is what caused this bug) + UDaV73rus, Tokoriso, dragomagol: + - rscadd: welding now has an animation! + timothyteakettle: + - rscadd: slimes no longer die from having no blood, properly consume limbs when + at low blood, and suffer brute damage and oxygen loss for having no blood and + no limbs left to consume respectably, they cannot go past BLOOD_VOLUME_MAXIMUM + from consuming toxin